The material
Class¶
The material
class contains information regarding block material properties. This includes whether
the block is linear elastic or elastic-plastic in its deformation style, density, elastic modulii, and
plastic failure criteria such as the internal friction coefficient, cohesion, dilatancy, and a
viscoplastic “viscosity.”
Each block in the domain is assigned a material with default properties when it is initialized.
This can be changed by assigning a new material to a particular block using the interface
provided in the problem
class. The density and elastic modulii can also be overridden by
creating a heterogeneous array of material properties that varies in a point-by-point fashion
rather than having block material properties.
-
class
fdfault.
material
(mattype, rho=2.67, lam=32.04, g=32.04, mu=0.5735, c=0.0, beta=0.2867, eta=0.2775)¶ Class describing block material properties
When a new block is initialized, one is created with the following default properties. When creating a new
material
yourself, you must select whether the block is elastic or plastic by specifying themattype
attribute, but the other values will be given default values (see below) if they are not specified.Variables: - mattype (str) – Specifies if a block is elastic or plastic (value must be
'elastic'
or'plastic'
) - rho (float) – Density (default 2.67 MPa s^2 / km / m, see note below about funny units)
- lam (float) – First Lame parameter (default is 32.04 GPa)
- g (float) – Shear modulus (default is 32.04 GPa)
- mu (float) – Internal friction coefficient (only relevant for plastic materials, default is 0.5735)
- c (float) – Cohesion (default is 0.)
- beta (float) – Plastic dilatancy, determines ratio of dilational to shear strain (default 0.2867)
- eta (float) – Plastic viscosity, determines time scale over which stresses in excees of the yield surface decay back to the yield surface (default 0.2775 GPa s)
You are free to choose any self-consistent unit system that you like. For practical purposes, it is best to have all parameters be of order unity to reduce round-off errors when dealing with quantities of vastly different magnitudes. To facilitate this, the default parameters measure distance in km but slip in m, and elastic modulii in GPa but stresses in MPa, which result in quantities of order unity in all fields calculated in the solution for typical values found in simulating earthquake rupture on seismogenic faults. The extra factor of $10^3$ cancels correctly in Hooke’s law, but does not in the momentum conservation eqaution, meaning that the density must have funny units of MPa s^2 / km / m to correct for this.
-
__init__
(mattype, rho=2.67, lam=32.04, g=32.04, mu=0.5735, c=0.0, beta=0.2867, eta=0.2775)¶ Create a new instance of the
material
classInitialize a new material. The user must specify whether the material type is elastic or plastic, but all other parameters are optional (any not specified will take default values). All parameters must be positive (rho, lam, g, mu) or nonnegative (beta, eta, c).
Parameters: - mattype (str) – Material type, must be
'elastic'
or'plastic'
- rho (float) – Density
- lam (float) – First Lame parameter
- g (float) – Shear modulus
- mu (float) – Internal friction coefficient
- c (float) – Cohesion
- beta (float) – Plastic dilatancy
- eta (float) – Plastic viscosity
Returns: New material instance
Return type: - mattype (str) – Material type, must be
-
get_beta
()¶ Returns plastic dilatancy (ratio of dilataional to shear strain)
Returns: Plastic dilatancy Return type: float
-
get_c
()¶ Returns cohesion
Returns: Cohesion Return type: float
-
get_cp
()¶ Returns compressional wave speed
Returns: Compressional wave speed Return type: float
-
get_cs
()¶ Returns shear wave speed
Returns: Shear wave speed Return type: float
-
get_eta
()¶ Returns plastic “viscosity”
Viscosity determines the time scale over which stresses can exceed the yield stress
:returns:Plastic “viscosity” :rtype: float
-
get_g
()¶ returns shear modulus
-
get_lam
()¶ Returns first Lame parameter
Returns: First Lame parameter Return type: float
-
get_mu
()¶ Returns internal friction coefficient
Returns: Internal friction coefficient Return type: float
-
get_rho
()¶ Returns Density
Returns: Density Return type: float
-
get_type
()¶ Returns material type
Returns: Material type ( 'elastic'
or'plastic'
)Return type: str
-
get_zp
()¶ Returns compressional impedance
Returns: Compressional impedance Return type: float
-
get_zs
()¶ Returns shear impedance
Returns: Shear impedance Return type: float
-
set_beta
(beta)¶ Sets plastic dilatancy to a new value
Parameters: beta (float) – New value of plastic dilatancy Returns: None
-
set_c
(c)¶ Sets cohesion to a new value
Parameters: c (float) – New value of cohesion Returns: None
-
set_eta
(eta)¶ Sets plastic “viscosity” to a new value
Parameters: eta (float) – New value of plastic viscosity Returns: None
-
set_g
(g)¶ Sets shear modulus to a new value
Parameters: g (float) – New value of shear modulus Returns: None
-
set_lam
(lam)¶ Sets first Lame parameter to a new value
Parameters: lam (float) – New value of first Lame parameter Returns: None
-
set_mu
(mu)¶ Sets internal friction to a new value
Parameters: mu (float) – New value of internal friction coefficient Returns: None
-
set_rho
(rho)¶ Sets density to a new value
Parameters: rho (float) – New value of density Returns: None
-
set_type
(mattype)¶ Sets material type (must be either
'elastic'
or'plastic'
)Parameters: mattype (str) – New material type (must be either 'elastic'
or'plastic'
)Returns: None
-
write_input
(f)¶ Writes material properties to input file
This method is called when writing each block to the input file. It is called automatically, and writes the material properties in the correct location within the inputs for each block. It also automatically handles whether or not the simulation is elastic or plastic, writing out the plastic parameters only if needed.
Parameters: f (file) – Input file handle Returns: None
- mattype (str) – Specifies if a block is elastic or plastic (value must be