Dear Pylith developers,
I’m modeling fault rupture in a 2D (plane strain) elastic block using FaultCohesiveDyn. I have a horizontal planar fault with three sections (middle - static friction, sides - slip-weakening or rate-and-state).
I would like to load my model quasistatically (lithostatic compression and shear) to accumulate slip on the middle section of the fault and overstress the two side section and then use the output to run the dynamic simulation.
I have my quasistatic results, I wrote separate databases for stresses and strains in the block, traction on the fault and slip on the fault.
So far, I managed to get my initial dynamic stresses look like the last quasistatic output, however, strains are zero in the domain.
I’m doing smth like this:
db_initial_stress = spatialdata.spatialdb.SimpleDB
db_initial_stress.label = Initial stress
db_initial_stress.iohandler.filename = spatialdb/initial_stress_from_prestep.spatialdb
#db_initial_stress.query_type = linear
db_initial_strain = spatialdata.spatialdb.SimpleDB
db_initial_strain.label = Initial strain
db_initial_strain.iohandler.filename = spatialdb/initial_stress_from_prestep.spatialdb
#db_initial_strain.query_type = linear
This file contains both stresses and strains.
Should value-names for strains be total-strain-xx or strain-xx? (Doesn’t work either way though).
Also, should I use initial zz stress? When I try to do this (with stress-zz-initial in the file):
#db_initial_state = spatialdata.spatialdb.SimpleDB
#db_initial_state.label = Initial state
#db_initial_state.iohandler.filename = spatialdb/initial_stress_from_prestep.spatialdb
#db_initial_state.query_type = linear
Pylith outputs an error:
mpinemesis: …/…/…/pylith-2.2.1/libsrc/pylith/materials/Material.cc:191: virtual void pylith::materials::Material::initialize(const pylith::topology::Mesh&, pylith::feassemble::Quadrature*): Assertion `numDBStateVars > 0’ failed.
0:Return code = 0, signaled with Aborted
This is what I was doing for tractions:
traction_perturbation = pylith.faults.TractPerturbation
db_initial = spatialdata.spatialdb.SimpleDB
db_initial.label = Initial fault tractions
db_initial.iohandler.filename = spatialdb/initial_fault_tractions.spatialdb
db_initial.query_type = linear
Didn’t work, tractions on the fault are zero.
How should I prescribe initial tractions?
Is there a way to prescribe initial slip for FaultCohesiveDyn or is it only possible for the kinematic one?
I just need to have the initial state on my model the same as my quasistatic output. Could you please tell me what I’m doing wrong or if there’s any simpler way to achieve that (like with an elastic prestep)?
Please let me know if you need a sketch or any of the codes.
Thank you in advance!