[CIG-SHORT] Problem setting initial conditions

Oliver Boyd olboyd at usgs.gov
Mon Feb 10 08:29:01 PST 2014


Hi Charles,
If I do as you suggest and apply identical boundary conditions in problem
2 as in problem 1 and apply both the initial stresses and strains from
problem 1, I get the same output (from visual inspection) from problem 2
as from problem 1. Now I'd like to change the boundary conditions on the
fault in problem 2. I want to lock the upper part of the fault and allow
the lower to continue to slip in response to the stresses induced by the
earthquake in problem 1. At this point, it seems to me that in order to be
able to change the boundary conditions on the fault (and perhaps outer
boundaries), I'd have to specify both initial_stress and initial
displacements within the material? Alternatively, if I have to do this in
a single simulation, I could use rate-and-state friction and an earthquake
cycle. Ultimately, I might do this, but it could take a complex model a
while to run.

Oliver

On 2/9/14 3:57 PM, "Charles Williams" <willic3 at gmail.com> wrote:

>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
>
>_______________________________________________
>CIG-SHORT mailing list
>CIG-SHORT at geodynamics.org
>http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short




More information about the CIG-SHORT mailing list