[CIG-SHORT] Problem setting initial conditions

Oliver Boyd olboyd at usgs.gov
Tue Feb 11 13:01:05 PST 2014


Hi Brad,
Yes, that's exactly what I was trying to do, i.e. make the solution the
same at the first time step, but I haven't been able to match the strains
between problem 1 and 2, maybe because of the elastic prestep phase. I
guess I'll have to solve my problem some other way.

Thanks again, Brad and Charles, for your help.
Oliver

On 2/10/14 5:05 PM, "Brad Aagaard" <baagaard at usgs.gov> wrote:

>Oliver,
>
>If you use the same boundary conditions in problems 1 and 2 and get the
>same answer in both problems, then your setup with initial stress and
>strain is working properly for problem 2. If you want to break up a
>simulation into pieces so that you can solve something different, then
>your starting point for the new simulations should be consistent with
>where you left off. In other words, you can replace the BC and fault
>conditions, etc to change the problem but you need to make sure the
>solution is the same at the first time step.
>
>With a purely elastic material, the stress and strain in the domain are
>irrelevant so you only need to transfer the fault tractions (as in
>examples/2d/subduction/step04). For any bulk rheologies with state
>variables (viscous strain), you may be out of luck for right now as we
>have not implemented a way to specify initial state variables for bulk
>constitutive models.
>
>We recognize that we are getting greater interest in setting up these
>types of complicated simulations, where a user wants to take the output
>of one simulation and use pieces from it as input to another simulation.
>Implementing this right now doesn't make sense, because we are about to
>reorganize a bunch of top-level stuff to support multi-physics stuff. As
>we reorganize things it will make sense to set things up so that we can
>swap out the "elastic prestep" phase with an "initial condition" phase
>or a "restart phase" to support this feature. The new functionality
>probably wouldn't be implemented right away but we will be able to add
>it or someone else could add it relatively easily.
>
>Regards,
>Brad
>
>
>On 02/10/2014 08:29 AM, Oliver Boyd wrote:
>> 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
>>
>>
>> _______________________________________________
>> 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




More information about the CIG-SHORT mailing list