[CIG-SHORT] pylith time stepping

Mark Simons simons at caltech.edu
Tue May 13 19:22:21 PDT 2008


Why does changing delta t cause you to need to reform the stiffness matrix?

Charles Williams wrote:
> I just looked, and there is a _needNewJacobian flag that gets set to 
> true if the time step size changes for the viscoelastic materials, so 
> we should be OK.
>
> Charles
>
>
> On May 13, 2008, at 7:33 PM, Brad Aagaard wrote:
>
>> Chris-
>>
>> Line 56 in libsrc/feassemble/ElasticityImplicit.cc is
>>  assert(_dt == _dtm1); // For now, don't allow variable time step
>>
>> I know we need this assertion in ElasticityExplicit.cc, because the 
>> current
>> explicit time stepping implementation uses a uniform time step. I 
>> don't think
>> there is anything in the implicit time integration implementation 
>> that limits
>> it to a uniform time step. However, there might be issues in the current
>> implementation of the viscoelastic materials that require a uniform time
>> step.
>>
>> If Charles verifies that the viscoelastic materials do not require a 
>> uniform
>> time step, we can remove the assertion and the code will not abort 
>> when it
>> encounters a different time step for implicit time stepping.
>>
>> There are hooks for providing feedback from the integrators on what is a
>> stable time step. Right now they are hardwired to return the initial 
>> time
>> step that was assigned to them. If someone provided the algorithms for
>> computing the stable time step for the various material models (the 
>> elastic
>> cases for implicit time integration are trivial), we could get automatic
>> variable time stepping implemented very easily.
>>
>> Brad
>>
>> On Tuesday 13 May 2008, Christopher DiCaprio wrote:
>>> PyLith developers,
>>>
>>> I'm trying to write a PyLith component for rudimentary variable time
>>> step size. My component, called ImplicitManualdt, is similar to
>>> Implicit, but it replaces the Formulation.stableTimeStep() with a
>>> method that reads time step sizes sequentially from a text file. It
>>> works when I specify the same size for every step (i.e. repeat the
>>> same value in the timestep file), but I get the following error when
>>> I give it a file that has more than one time step size:
>>>
>>>  -- Advancing solution from t=1.57788e+06*s to t=4.73364e+06*s.
>>>
>>>>> /home/dicaprio/local/pylith-build/lib/python2.4/site-packages/
>>>
>>> pylith/problem
>>> s/Formulation.py:381:_reformResidual
>>>  -- implicit_manualdt(info)
>>>  -- Integrating residual term in operator.
>>> [0]0:Return code = 0, signaled with Aborted
>>>
>>> Does this have anything to do with the initialization of the
>>> integrator(s) in Formulation.py? Formulation.initialize() calculates
>>> numTimeSteps assuming a constant time step size and that value is
>>> used here:
>>>
>>> integrator.initialize(totalTime, numTimeSteps)
>>>
>>> Any advice?
>>>
>>> Thanks,
>>> Chris
>>> _______________________________________________
>>> CIG-SHORT mailing list
>>> CIG-SHORT at geodynamics.org <mailto:CIG-SHORT at geodynamics.org>
>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>
>>
>>
>
> Charles A. Williams
>
> Dept. of Earth & Environmental Sciences
>
> Science Center, 2C01B
>
> Rensselaer Polytechnic Institute
>
> Troy, NY  12180
>
> Phone:    (518) 276-3369
>
> FAX:        (518) 276-2012
>
> e-mail:    willic3 at rpi.edu <mailto:willic3 at rpi.edu>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>   

-- 

Mark Simons
Seismological Laboratory
Division of Geological and Planetary Sciences
TEL: 626-395-6984
FAX: 626/564-0715
WWW: www.gps.caltech.edu/~simons




More information about the CIG-SHORT mailing list