<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). &nbsp;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. &nbsp;If we were doing an iterative solution, we could cheat and not reform, but convergence would be slower. &nbsp;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 &lt;<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 &amp; 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 &nbsp;12180<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Phone: &nbsp;&nbsp;&nbsp;(518) 276-3369<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">FAX: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(518) 276-2012<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">e-mail: &nbsp;&nbsp;&nbsp;willic3@rpi.edu &lt;<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"> &nbsp;<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 &amp; 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">&nbsp; </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">&nbsp; &nbsp; </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">&nbsp; &nbsp; &nbsp; &nbsp; </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">&nbsp; &nbsp; </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>