[pylithapp.timedependent] #materials = [plastic] materials.upper_crust = pylith.materials.DruckerPrager3D # Provide a spatial database from which to obtain property values. # In this case, we prefer to obtain the Drucker-Prager properties from one # database and the elastic properties from another database, so we use # a CompositeDB. Each part of the CompositeDB is a SimpleDB. [pylithapp.timedependent.materials.upper_crust] db_properties = spatialdata.spatialdb.CompositeDB db_properties.db_A = spatialdata.spatialdb.SimpleDB db_properties.db_B = spatialdata.spatialdb.SimpleDB fit_mohr_coulomb = circumscribed ; default allow_tensile_yield = True ; default # Provide the values to be obtained from each database and the database # name. [pylithapp.timedependent.materials.upper_crust.db_properties] values_A = [density,vs,vp] ; Elastic properties. db_A.label = Elastic properties db_A.iohandler.filename = spatialdb/mat_elastic.spatialdb values_B = [friction-angle,cohesion,dilatation-angle] db_B.label = Drucker-Prager properties db_B.iohandler.filename = spatialdb/mat_druckerprager.spatialdb [pylithapp.timedependent.materials.upper_crust] db_initial_stress = spatialdata.spatialdb.SimpleDB db_initial_stress.iohandler.filename

= initial\_stress.spatialdb # Since there are additional properties and state variables for the # Drucker-Prager model, we explicitly request that they be output. # Properties are named in cell_info_fields and state variables are named in # cell_data_fields. [pylithapp.timedependent.materials.upper_crust] output.cell_info_fields = [density,mu,lambda,alpha_yield,beta,alpha_flow] output.cell_data_fields = [total_strain,stress,plastic_strain]