Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Getting rid of initial solutions

Please login with a confirmed email address before reporting spam

Dear all,

sorry for the strange subject, but I did not know a better one.

My problem is, that I am running a poroelastic model.
In the first time step, a large settlement takes place (large subsidence in z direction, where z axis is parallel to the g vector).
I guess, this large settlement is due to gravitational effects. It is in the range of 2 meters, when my model block is about 3000 m in z direction.

How can I get rid of this initial or artificial z displacements?
In the past I used to store the solution of the first time step and used a Matlab script, which substracted this initial z deformations from every time step of the rest of the model run.
So I only got deformation relative to the first time step, because I am not interested in this artificial deformations from the first time step.

For model runs with a large number of time steps and a large number of elements, this method using Matlab takes a long time.
Is there any better way to do this?

Thanks for any suggestions,
Juergen

6 Replies Last Post 19 janv. 2011, 16:07 UTC−5
Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 18 janv. 2011, 08:46 UTC−5
Hi

In my experience with v4.1 and time stepping, if you do not define well the initial conditions the t=0 step (and sometime the next step(s)) appear often with a large jump. To get rid of this, I now add a stationary sovler for t=0 conditions, store it and use that as starting point for the transient solver. Could this be also your case ?

The next is if you do a parametric sweep, there are two modes in COMSOL:
a) the full "Paramatric Sweep" via geometry + mesh (if changed) + initial conditions and finally solver, and
b) the "small" Extension - Continuation parametrical sweep that is internal to the solver sequence, hence restarts with previous solution conditions (and not initial conditions) but does not pass via the geometry update (I believe, to be checked again)

This is what I have understood so far, and believe is what I see ;)
But with COSMOL, I must admit, there are so many things involved, and interrelationships that sometimes it's not obvious to tell.

--
Good luck
Ivar
Hi In my experience with v4.1 and time stepping, if you do not define well the initial conditions the t=0 step (and sometime the next step(s)) appear often with a large jump. To get rid of this, I now add a stationary sovler for t=0 conditions, store it and use that as starting point for the transient solver. Could this be also your case ? The next is if you do a parametric sweep, there are two modes in COMSOL: a) the full "Paramatric Sweep" via geometry + mesh (if changed) + initial conditions and finally solver, and b) the "small" Extension - Continuation parametrical sweep that is internal to the solver sequence, hence restarts with previous solution conditions (and not initial conditions) but does not pass via the geometry update (I believe, to be checked again) This is what I have understood so far, and believe is what I see ;) But with COSMOL, I must admit, there are so many things involved, and interrelationships that sometimes it's not obvious to tell. -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 18 janv. 2011, 09:19 UTC−5
Hi Ivar,

thanks for your reply.

This might indeed work for me.
So, if I do a stationary solver for t=0 and use it as initial conditions for my transient run, will displacements, that happen at t=0 be "invisible" in the transient run (i.e. will the transient solver only show displacements relative to the initial situation?) I will try this. It would be great, if that works.

For your other suggestions:
Indeed I use a full parametric sweep, using a parametric curve, that changes the geometry in every time step.
How does this "small" extension, that you mention, work?

Thanks a lot and best regards,
Juergen
Hi Ivar, thanks for your reply. This might indeed work for me. So, if I do a stationary solver for t=0 and use it as initial conditions for my transient run, will displacements, that happen at t=0 be "invisible" in the transient run (i.e. will the transient solver only show displacements relative to the initial situation?) I will try this. It would be great, if that works. For your other suggestions: Indeed I use a full parametric sweep, using a parametric curve, that changes the geometry in every time step. How does this "small" extension, that you mention, work? Thanks a lot and best regards, Juergen

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 18 janv. 2011, 14:53 UTC−5
HI

the "small loop" is the gui tab "EXTENSION - continuation" (closed by default) of the main "Solver node - Stationary"
you select a predefine model "Parameter", and you give it a range.

With the main parametric sweep normally the solver setting restart from initial conditions = 0

You must not forget to STORE the solution. noramally is you set up 1) a Stationary and 2) a Transient solver sequence, in that order, and ask for a "default solver sequence", COMSOL will add the store command between the two sequences. Then ist a question to check the depednet variables of the transient sequence, to be sure it restarts from the stored solution and not from "0".
This works nicely from v4.1 for me

--
Good luck
Ivar
HI the "small loop" is the gui tab "EXTENSION - continuation" (closed by default) of the main "Solver node - Stationary" you select a predefine model "Parameter", and you give it a range. With the main parametric sweep normally the solver setting restart from initial conditions = 0 You must not forget to STORE the solution. noramally is you set up 1) a Stationary and 2) a Transient solver sequence, in that order, and ask for a "default solver sequence", COMSOL will add the store command between the two sequences. Then ist a question to check the depednet variables of the transient sequence, to be sure it restarts from the stored solution and not from "0". This works nicely from v4.1 for me -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 19 janv. 2011, 04:31 UTC−5
Hi Ivar,

I tried what you suggested.
But even when I use a stationary solver for the initial conditions and then use it in the transient solver, the artificial displacements of the first time still appear in the solution.

I would really like to know, where this 2-3 meters of displacement come from in the poroelastic model.
The model is just a simple block with 1000x1000x3000 meter dimensions, where z is the 3000 m and also the direction of the gravity vector. Gravity effects are switched on.

The upper model boundary (surface of the block) is free, whereas the sides of the block are constrained to "rollers" and the lower one is "fixed constraint".

All boundaries are set to no flow, the upper model boundary is set to a constant head of 3000m.
Initial value is hydraulic head = 3000 in the whole domain.

Material properties are: Youngs Modulus 30 GPa, Poissons ratio 0.25, rho = 2700 kg/m3, K=10e-18 m2, porosity = 0.01, alpha = 0.7, rho_fluid = 1000 kg/m3, dynamic viscosity = 0.798 Pa x s, compressibility of fluid = 4e-10 1/Pa.

Maybe someone can reproduce this.


I try to figure out, where the displacements come from and how to avoid them.
Or at least, how to reset them to zero for the transient run, in order to only get real displacements and not include those 2-3 meters, which are an artefact.

Should I find a solution to it, I will post it here in case someone is interested.

Thanks a lot and best wishes,
Juergen
Hi Ivar, I tried what you suggested. But even when I use a stationary solver for the initial conditions and then use it in the transient solver, the artificial displacements of the first time still appear in the solution. I would really like to know, where this 2-3 meters of displacement come from in the poroelastic model. The model is just a simple block with 1000x1000x3000 meter dimensions, where z is the 3000 m and also the direction of the gravity vector. Gravity effects are switched on. The upper model boundary (surface of the block) is free, whereas the sides of the block are constrained to "rollers" and the lower one is "fixed constraint". All boundaries are set to no flow, the upper model boundary is set to a constant head of 3000m. Initial value is hydraulic head = 3000 in the whole domain. Material properties are: Youngs Modulus 30 GPa, Poissons ratio 0.25, rho = 2700 kg/m3, K=10e-18 m2, porosity = 0.01, alpha = 0.7, rho_fluid = 1000 kg/m3, dynamic viscosity = 0.798 Pa x s, compressibility of fluid = 4e-10 1/Pa. Maybe someone can reproduce this. I try to figure out, where the displacements come from and how to avoid them. Or at least, how to reset them to zero for the transient run, in order to only get real displacements and not include those 2-3 meters, which are an artefact. Should I find a solution to it, I will post it here in case someone is interested. Thanks a lot and best wishes, Juergen

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 19 janv. 2011, 06:26 UTC−5
P.S.

Is there any way to use the "with" or "at" operator to access a certain solution, parameter AND time step (not only one of these)?
The comsol online help does not have so much detail on this operators.

If this was possible, I could simply substract solution X, parameter step 1 and time step 0 from any other solution, which I did in Matlab before (but never for a transient parametric run, just for a simple transient run without a parametric sweep).

It would be worthwile in future versions of Comsol to be able to store an initial solution, that can be substracted from all other time steps of a run.


Best regards,
Juergen
P.S. Is there any way to use the "with" or "at" operator to access a certain solution, parameter AND time step (not only one of these)? The comsol online help does not have so much detail on this operators. If this was possible, I could simply substract solution X, parameter step 1 and time step 0 from any other solution, which I did in Matlab before (but never for a transient parametric run, just for a simple transient run without a parametric sweep). It would be worthwile in future versions of Comsol to be able to store an initial solution, that can be substracted from all other time steps of a run. Best regards, Juergen

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 19 janv. 2011, 16:07 UTC−5
Hi

sorry but I do not really know the answers for your issues, but there might be someone else too out there ;)

All tricks are obviously not portable from one physiscs to another, geoscienc is one of the few module I do not have, so I cannot even try it out

--
Good luck
Ivar
Hi sorry but I do not really know the answers for your issues, but there might be someone else too out there ;) All tricks are obviously not portable from one physiscs to another, geoscienc is one of the few module I do not have, so I cannot even try it out -- Good luck Ivar

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.