<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">The stress-strain relation is dependent on the time step size (we do a time integration from the previous state to the current state). Since we use the tangent stress-strain matrix to form the stiffness matrix, we need to reform the stiffness matrix if the time step size changes. If we were doing an iterative solution, we could cheat and not reform, but convergence would be slower. Since this is a linear problem, though, we only want to do one iteration.<div><br></div><div>Charles</div><div><br></div><div><br><div><div>On May 13, 2008, at 10:22 PM, Mark Simons wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Why does changing delta t cause you to need to reform the stiffness matrix?<br><br>Charles Williams wrote:<br><blockquote type="cite">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.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Charles<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On May 13, 2008, at 7:33 PM, Brad Aagaard wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Chris-<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Line 56 in libsrc/feassemble/ElasticityImplicit.cc is<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"> assert(_dt == _dtm1); // For now, don't allow variable time step<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">I know we need this assertion in ElasticityExplicit.cc, because the current<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">explicit time stepping implementation uses a uniform time step. I don't think<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">there is anything in the implicit time integration implementation that limits<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">it to a uniform time step. However, there might be issues in the current<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">implementation of the viscoelastic materials that require a uniform time<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">step.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">If Charles verifies that the viscoelastic materials do not require a uniform<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">time step, we can remove the assertion and the code will not abort when it<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">encounters a different time step for implicit time stepping.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">There are hooks for providing feedback from the integrators on what is a<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">stable time step. Right now they are hardwired to return the initial time<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">step that was assigned to them. If someone provided the algorithms for<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">computing the stable time step for the various material models (the elastic<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">cases for implicit time integration are trivial), we could get automatic<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">variable time stepping implemented very easily.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Brad<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Tuesday 13 May 2008, Christopher DiCaprio wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">PyLith developers,<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I'm trying to write a PyLith component for rudimentary variable time<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">step size. My component, called ImplicitManualdt, is similar to<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Implicit, but it replaces the Formulation.stableTimeStep() with a<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">method that reads time step sizes sequentially from a text file. It<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">works when I specify the same size for every step (i.e. repeat the<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">same value in the timestep file), but I get the following error when<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I give it a file that has more than one time step size:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> -- Advancing solution from t=1.57788e+06*s to t=4.73364e+06*s.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">/home/dicaprio/local/pylith-build/lib/python2.4/site-packages/<br></blockquote></blockquote></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">pylith/problem<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">s/Formulation.py:381:_reformResidual<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> -- implicit_manualdt(info)<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"> -- Integrating residual term in operator.<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">[0]0:Return code = 0, signaled with Aborted<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Does this have anything to do with the initialization of the<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">integrator(s) in Formulation.py? Formulation.initialize() calculates<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">numTimeSteps assuming a constant time step size and that value is<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">used here:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">integrator.initialize(totalTime, numTimeSteps)<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Any advice?<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Thanks,<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Chris<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">CIG-SHORT mailing list<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">CIG-SHORT@geodynamics.org <<a href="mailto:CIG-SHORT@geodynamics.org">mailto:CIG-SHORT@geodynamics.org</a>><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short">http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short</a><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Charles A. Williams<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Dept. of Earth & Environmental Sciences<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Science Center, 2C01B<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Rensselaer Polytechnic Institute<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Troy, NY 12180<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Phone: (518) 276-3369<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">FAX: (518) 276-2012<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">e-mail: willic3@rpi.edu <<a href="mailto:willic3@rpi.edu">mailto:willic3@rpi.edu</a>><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">------------------------------------------------------------------------<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">CIG-SHORT mailing list<br></blockquote><blockquote type="cite"><a href="mailto:CIG-SHORT@geodynamics.org">CIG-SHORT@geodynamics.org</a><br></blockquote><blockquote type="cite"><a href="http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short">http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short</a><br></blockquote><blockquote type="cite"> <br></blockquote><br>-- <br><br>Mark Simons<br>Seismological Laboratory<br>Division of Geological and Planetary Sciences<br>TEL: 626-395-6984<br>FAX: 626/564-0715<br>WWW: <a href="http://www.gps.caltech.edu/~simons">www.gps.caltech.edu/~simons</a><br><br><br><br></blockquote></div><br><div apple-content-edited="true"> <div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Charles A. Williams</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Dept. of Earth & Environmental Sciences</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Science Center, 2C01B</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Rensselaer Polytechnic Institute</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Troy, NY<span class="Apple-converted-space"> </span>12180</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Phone:<span class="Apple-converted-space"><span class="Apple-converted-tab"> </span></span>(518) 276-3369</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">FAX:<span class="Apple-converted-space"><span class="Apple-converted-tab"> </span></span>(518) 276-2012</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">e-mail:<span class="Apple-converted-space"><span class="Apple-converted-tab"> </span></span><a href="mailto:willic3@rpi.edu">willic3@rpi.edu</a></font></p> <br class="Apple-interchange-newline"></div> </div><br></div></body></html>