[CIG-SHORT] Problem setting initial conditions

Charles Williams willic3 at gmail.com
Sun Feb 9 14:57:14 PST 2014


Hi Oliver,

If you look in the material section of the manual it explains how initial stresses and strains work.  In a generic way, the stress is generally computed as:

stress = material_matrix * (strain - initial_strain) + initial_stress

That means that if you have identical boundary conditions for the two problems, if all of the stress were purely elastic, your computed stress would just be equal to the initial stress (the strain would cancel with the initial strain and not generate any stress).  Since you have some viscous strain, this won’t be quite the case, but I’m guessing it won’t be too far off.  Unfortunately, we don’t yet make use of the other state variables (e.g., viscous strain), or we could also take that into account.

Have you tried the following:

1.  Apply identical BC for the two problems.
2.  Use both initial stress and initial strain from problem 1 for problem 2.

You should end up with stresses that are pretty much the same as what you had in problem 1.  The strains will also look very similar at the beginning, because the computed strains don’t include initial strains.  Strains are computed purely from displacements, and are independent of the material model.

Let me know if this helps.  In the meantime, I think I’ll have a look at including all the initial state variables.

Cheers,
Charles



On 10/02/2014, at 11:10 am, Oliver Boyd <olboyd at usgs.gov> wrote:

> Hi Charles,
> Thanks for the suggestion. Yes, the initial conditions are different
> between the two problems. In the first, everything is driven by the
> boundaries. In the second, I wanted everything driven internally. The
> initial material stresses and strains in the second simulation result from
> the first simulation. If I keep the surficial driving boundary conditions
> and add internal stresses, the resulting material stresses double. I tried
> your suggestion of leaving one of the side boundaries free, but it
> produces very similar results.
> 
> It also appears that strains are determined by surficial boundary
> conditions while initial stresses are determined by db_initial_stresses
> and db_initial_strains. When I specify db_initial_strain, it appears that
> it's converted to stress and then added to db_initial_stress. So I'm not
> sure I'll be able to pass the state from one simulation to another.
> 
> Do you know where in the code it reads in db_initial_strain and where it
> might convert it to stress. Do you think I'd be able to get it to assign
> db_initial_strain to the strain field?
> 
> Thanks for your help,
> Oliver
> 
> 
> On 2/9/14 1:30 PM, "Charles Williams" <willic3 at gmail.com> wrote:
> 
>> Sorry for being slow to respond to this, Oliver.  I haven't gone through
>> everything in detail, but one thing I noticed is that your boundary
>> conditions on the external boundaries are different for the two problems,
>> which means that you won't be able to get the same stress/strain state
>> for the two cases.  One possible solution would be to leave one boundary
>> free.  I'm not sure if this will work or not, but it's probably worth a
>> shot.
>> 
>> Cheers,
>> Charles
>> 
>> 
>> On 8/02/2014, at 6:50 am, Oliver Boyd <olboyd at usgs.gov> wrote:
>> 
>>> Hi Brad,
>>> Attached are some figures illustrating what I mean. In step1Kin, I use
>>> Dirichlet boundary conditions on the domain edges and specified 100 cm
>>> of
>>> fault slip on the fault. This generates stresses and strains in the
>>> materials and tractions on the fault as depicted in the figure
>>> step1Kin.png. If I let this simulation run, the viscoelastic layer will
>>> relax. But I'd like to change the conditions on the fault surface. So
>>> as a
>>> first step, I wanted to transfer the stresses and strains to step2Kin
>>> and
>>> let them relax. In step2Kin, domain boundaries and fault surface initial
>>> displacement is zero. I am hoping to get step1Kin and step2Kin to show
>>> the
>>> same results after 200 years. But they don't. There is the expected
>>> relaxation in step1Kin, but there is no relaxation in step2Kin. When I
>>> first transferred just the stress through db_initial_stress and looked
>>> at
>>> the stresses, strains, and tractions, step2Kin_stressini.png, I figured
>>> I
>>> only needed to transfer over the strains to make it look like step1Kin
>>> and
>>> everything would proceed as expected. But I haven't figured out how to
>>> transfer the strains properly. When I attempt to transfer both the
>>> stresses and strains, They appear to be working against each other.
>>> (step2Kin_stress_strain_ini.png).
>>> 
>>> Oliver
>>> 
>>> On 2/6/14 4:45 PM, "Brad Aagaard" <baagaard at usgs.gov> wrote:
>>> 
>>>> Oliver,
>>>> 
>>>> For the db_initial_strain, you are correct in that the values in the
>>>> spatial database are strain-xx, etc.
>>>> 
>>>> I don't know what you mean by "seeing the initial strain field being
>>>> set". You can ask for the "initial_strain" field to be written as one
>>>> of
>>>> the cell info fields to check to make sure it is read in and matches
>>>> what you expect the spatial database to produce. It does look like we
>>>> may not be including the initial strain in the "total_strain" output
>>>> field. Is this what you mean by "not seeing the initial strain field
>>>> being set" or are you seeing the initial strain field not affecting the
>>>> solution in the way you expect?
>>>> 
>>>> Brad
>>>> 
>>>> On 02/03/2014 09:04 AM, Oliver Boyd wrote:
>>>>> Hi Brad,
>>>>> Thanks for your help. I had initially tried using db_initial_strain as
>>>>> well as several of other things. I did as you suggested below, but do
>>>>> not
>>>>> see the initial strain field being set after running step2Kin. Thanks
>>>>> for
>>>>> reminding me of the use of --component.help. I was trying to figure
>>>>> out
>>>>> what variables I needed to set in db_initial_strain. Based on the
>>>>> manual I
>>>>> thought it was strain-xx Š, but I wasn't sure. I thought I might be
>>>>> able
>>>>> to get to it with help-properties, but I still haven't figured that
>>>>> out.
>>>>> In any case, I'm still doing something wrong.
>>>>> 
>>>>> Thanks again for your help,
>>>>> Oliver
>>>>> 
>>>>> On 2/2/14 11:07 AM, "Brad Aagaard" <baagaard at usgs.gov> wrote:
>>>>> 
>>>>>> Oliver,
>>>>>> 
>>>>>> There are separate spatial databases for initial stress and initial
>>>>>> strain.
>>>>>> 
>>>>>> [pylithapp.timedependent.materials.upper_crust]
>>>>>> db_initial_stress = spatialdata.spatialdb.SimpleDB
>>>>>> db_initial_stress.label = Initial stress in upper crust
>>>>>> db_initial_stress.iohandler.filename =
>>>>>> spatialdb/afterslip_stress_uppercrust.spatialdb
>>>>>> db_initial_stress.query_type = nearest
>>>>>> 
>>>>>> # ADD db_initial_strain
>>>>>> db_initial_strain = spatialdata.spatialdb.SimpleDB
>>>>>> db_initial_strain.label = Initial strain in upper crust
>>>>>> db_initial_strain.iohandler.filename =
>>>>>> spatialdb/afterslip_strain_uppercrust.spatialdb
>>>>>> db_initial_strain.query_type = nearest
>>>>>> 
>>>>>> Remember you can use pylith --COMPONENT.help and
>>>>>> --COMPONENT.help-properties and --COMPONENT.help-components to
>>>>>> interrogate what properties and components are available. In this
>>>>>> case
>>>>>> COMPONENT would be
>>>>>> timedependent.materials.upper_crust.
>>>>>> 
>>>>>> pylith step1Kin.cfg
>>>>>> --timedependent.materials.upper_crust.help-components
>>>>>> facilities of 'elasticisotropic3d':
>>>>>>    db_initial_state=<component name>: Database for initial state
>>>>>> variables.
>>>>>>        current value: 'nullcomponent', from {default}
>>>>>>        configurable as: nullcomponent, db_initial_state
>>>>>>    db_initial_strain=<component name>: Database for initial strain.
>>>>>>        current value: 'nullcomponent', from {default}
>>>>>>        configurable as: nullcomponent, db_initial_strain
>>>>>>    db_initial_stress=<component name>: Database for initial stress.
>>>>>>        current value: 'nullcomponent', from {default}
>>>>>>        configurable as: nullcomponent, db_initial_stress
>>>>>>    db_properties=<component name>: Database for physical property
>>>>>> parameters.
>>>>>>        current value: 'simpledb', from {default}
>>>>>>        configurable as: simpledb, db_properties
>>>>>>    output=<component name>: Output manager for elastic material
>>>>>> information.
>>>>>>        current value: 'outputmatelastic', from {default}
>>>>>>        configurable as: outputmatelastic, output
>>>>>>    perf_logger=<component name>: Performance and memory logging.
>>>>>>        current value: 'memory_logger', from {default}
>>>>>>        configurable as: memory_logger, perf_logger
>>>>>>    quadrature=<component name>: Quadrature object for numerical
>>>>>> integration.
>>>>>>        current value: 'quadrature', from {default}
>>>>>>        configurable as: quadrature
>>>>>> 
>>>>>> Brad
>>>>>> 
>>>>>> On 1/31/14 11:26 AM, Oliver Boyd wrote:
>>>>>>> Hello,
>>>>>>> I'm trying to generate a set of initial conditions in one problem
>>>>>>> and
>>>>>>> then use them in another. The first problem calculates the stress
>>>>>>> changes due to an earthquake. Currently, the second problem only
>>>>>>> looks
>>>>>>> at the viscoelastic response (which of course can be done in the
>>>>>>> first
>>>>>>> problem). Once I get the viscoelastic response in the second problem
>>>>>>> to
>>>>>>> equal the first (if I let the first progress through time), I will
>>>>>>> change the fault interface model, but this is not yet implemented.
>>>>>>> 
>>>>>>> I'm able to transfer over the initial stress through
>>>>>>> db_initial_stress
>>>>>>> but I don't know how to transfer the initial strain. I've tried
>>>>>>> putting
>>>>>>> the initial strain in the db_initial_stress.iohandler.filename file
>>>>>>> with
>>>>>>> the components given by p71 of the manual, but they don't appear to
>>>>>>> have
>>>>>>> an effect when I run the simulation. Attached are the files needed
>>>>>>> for
>>>>>>> the simulation.
>>>>>>> 
>>>>>>> Thanks for your assistance,
>>>>>>> Oliver
>>>>>>> 
>>>>>>> Flow
>>>>>>> pylith step1Kin.cfg
>>>>>>> python afterslip_initial_parms.py
>>>>>>> pylith step2Kin.cfg
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> CIG-SHORT mailing list
>>>>>>> CIG-SHORT at geodynamics.org
>>>>>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> CIG-SHORT mailing list
>>>>>> CIG-SHORT at geodynamics.org
>>>>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> CIG-SHORT mailing list
>>>>> CIG-SHORT at geodynamics.org
>>>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>>>> 
>>>> 
>>>> _______________________________________________
>>>> CIG-SHORT mailing list
>>>> CIG-SHORT at geodynamics.org
>>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>> 
>>> 
>>> <step2Kin_stress_strain_ini.png><step2Kin_stressini.png><step1Kin.png><st
>>> ep2Kin.cfg><step1Kin.cfg>_______________________________________________
>>> CIG-SHORT mailing list
>>> CIG-SHORT at geodynamics.org
>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>> 
>> Charles A. Williams
>> Scientist
>> GNS Science
>> 1 Fairway Drive, Avalon
>> PO Box 30368
>> Lower Hutt  5040
>> New Zealand
>> ph (office): 0064-4570-4566
>> fax (office): 0064-4570-4600
>> C.Williams at gns.cri.nz
>> 
>> _______________________________________________
>> CIG-SHORT mailing list
>> CIG-SHORT at geodynamics.org
>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
> 
> 
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short

Charles A. Williams
Scientist
GNS Science
1 Fairway Drive, Avalon
PO Box 30368
Lower Hutt  5040
New Zealand
ph (office): 0064-4570-4566
fax (office): 0064-4570-4600
C.Williams at gns.cri.nz



More information about the CIG-SHORT mailing list