MaterialParameters
Material properties for a given phase can be set with SetMaterialParams, whereas all properties are stored in the MaterialParams structure. Information about the material parameter is found at MaterialParamsInfo. This can be employed
GeoParams.MaterialParameters.MaterialParamsInfo Type
MaterialParamsInfoStructure that holds information (Equation, Comment, BibTex_Reference) about a given material parameter, which can be used to create parameter tables, documentation etc.
Usually used in combination with param_info(the_parameter_of_interest)
GeoParams.MaterialParameters.SetMaterialParams Function
SetMaterialParams(; Name::String="", Phase::Int64=1,
Density = nothing,
Gravity = nothing,
CreepLaws = nothing,
Elasticity = nothing,
Plasticity = nothing,
CompositeRheology = nothing,
ChemDiffusion = nothing,
Conductivity = nothing,
HeatCapacity = nothing,
RadioactiveHeat = nothing,
LatentHeat = nothing,
ShearHeat = nothing,
Permeability = nothing,
Melting = nothing,
SeismicVelocity = nothing,
Solubility = nothing,
CharDim::GeoUnits = nothing)Sets material parameters for a given phase.
If CharDim is specified the input parameters are non-dimensionalized. Note that if Density is specified, we also set Gravity even if not explicitly listed
Examples
Define two viscous creep laws & constant density:
julia> Phase = SetMaterialParams(Name="Viscous Matrix",
Density = ConstantDensity(),
CreepLaws = (PowerlawViscous(), LinearViscous(η=1e21Pa*s)))
Phase 1 : Viscous Matrix
| [dimensional units]
|
|-- Name : Viscous Matrix
|-- Density : Constant density: ρ=2900.0 kg m⁻³·⁰
|-- Gravity : Gravitational acceleration: g=9.81 m s⁻²·⁰
|-- CreepLaws : Powerlaw viscosity: η0=1.0e18, n=2.0, ε0=1.0e-15
| Linear viscosity: η=1.0e21Define two viscous creep laws & P/T dependent density and nondimensionalize
julia> CharUnits_GEO = GEO_units(viscosity=1e19, length=1000km);
julia> Phase = SetMaterialParams(Name="Viscous Matrix", Phase=33,
Density = PT_Density(),
CreepLaws = (PowerlawViscous(n=3), LinearViscous(η=1e23Pa*s)),
CharDim = CharUnits_GEO)
Phase 33: Viscous Matrix
| [non-dimensional units]
|
|-- Name : Viscous Matrix
|-- Density : P/T-dependent density: ρ0=2.9e-16, α=0.038194500000000006, β=0.01, T0=0.21454659702313156, P0=0.0
|-- Gravity : Gravitational acceleration: g=9.810000000000002e18
|-- CreepLaws : Powerlaw viscosity: η0=0.1, n=3.0, ε0=0.001
| Linear viscosity: η=10000.0You can also create an array that holds several parameters:
julia> MatParam = Array{MaterialParams, 1}(undef, 2);
julia> Phase = 1;
julia> MatParam[Phase] = SetMaterialParams(Name="Upper Crust", Phase=Phase,
CreepLaws= (PowerlawViscous(), LinearViscous(η=1e23Pa*s)),
Density = ConstantDensity(ρ=2900kg/m^3));
julia> Phase = 2;
julia> MatParam[Phase] = SetMaterialParams(Name="Lower Crust", Phase=Phase,
CreepLaws= (PowerlawViscous(n=5), LinearViscous(η=1e21Pa*s)),
Density = PT_Density(ρ0=3000kg/m^3));
julia> MatParam
2-element Vector{MaterialParams}:
Phase 1 : Upper Crust
| [dimensional units]
|
|-- Name : Upper Crust
|-- Density : Constant density: ρ=2900.0 kg m⁻³·⁰
|-- Gravity : Gravitational acceleration: g=9.81 m s⁻²·⁰
|-- CreepLaws : Powerlaw viscosity: η0=1.0e18, n=2.0, ε0=1.0e-15
| Linear viscosity: η=1.0e23
Phase 2 : Lower Crust
| [dimensional units]
|
|-- Name : Lower Crust
|-- Density : P/T-dependent density: ρ0=3000.0 kg m⁻³·⁰, α=3.0e-5 K⁻¹·⁰, β=1.0e-9 Pa⁻¹·⁰, T0=0.0 °C, P0=0.0 MPa
|-- Gravity : Gravitational acceleration: g=9.81 m s⁻²·⁰
|-- CreepLaws : Powerlaw viscosity: η0=1.0e18, n=5.0, ε0=1.0e-15
| Linear viscosity: η=1.0e21GeoParams.MaterialParameters.MaterialParams Type
MaterialParamsStructure that holds all material parameters for a given phase
source