I start the simulation with Implicit formulation, and want to switch to Explicit formulation somewhere down the line in the simulation at the point at which the fault starts to slip. I am using pylith version 1.8.0. After I sent the previous message, I added those lines of code to def initialize in /problems/Implicit.py to ensure the solution fields have disp(t-dt) and acceleration(t) right off the bat even though we start with Implicit.
The problem I have is now, when I do self.updateSettings inside _reformjacobian, I get the following error:
Fatal error. Calling MPI_Abort() to abort PyLith application.
Traceback (most recent call last):
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/apps/PetscApplication.py”, line 65, in onComputeNodes
self.main(*args, **kwds)
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/apps/PyLithApp.py”, line 126, in main
self.problem.run(self)
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/problems/TimeDependent.py”, line 215, in run
exp_obj.hybrid_step(t, dt, self.normalizer, self.dimension, self.formulation.fields, self.formulation.gprs, self.mesh, self.materials, self.bc, self.interfaces)
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/problems/Explicit.py”, line 320, in hybrid_step
self.hybrid_prestep(t, dt, gprs, fields, mesh, materials, boundaryConditions, interfaceConditions)
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/problems/Explicit.py”, line 240, in hybrid_prestep
self.hybrid_reformJacobian(self.jacobian, t, dt, gprs, fields)
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/problems/Explicit.py”, line 665, in hybrid_reformJacobian
self.updateSettings(jacobian, fields, gprs, t, dt) # BJ: add self.gprs
File “/home/ec2-user/pylithTrial2/pylith/lib/python2.7/site-packages/pylith/problems/problems.py”, line 88, in updateSettings
def updateSettings(self, *args): return _problems.Formulation_updateSettings(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded function ‘Formulation_updateSettings’.
Possible C/C++ prototypes are:
updateSettings(pylith::problems::Formulation *,pylith::topology::Jacobian *,pylith::topology::SolutionFields *,PylithScalar const,PylithScalar const)
updateSettings(pylith::problems::Formulation *,pylith::topology::Jacobian *,pylith::topology::SolutionFields *,pylith::problems::GPRS *,double const,double const)
updateSettings(pylith::problems::Formulation *,pylith::topology::Field< pylith::topology::Mesh > *,pylith::topology::SolutionFields *,PylithScalar const,PylithScalar const)
updateSettings(pylith::problems::Formulation *,pylith::topology::Field< pylith::topology::Mesh > *,pylith::topology::SolutionFields *,pylith::problems::GPRS *,double const,double const)
which is strange, given that I have given the right data structures as arguments. The code framework has coupling with flow, and unfortunately will not be able to share it here because we have not yet made it open source
Saumik