EarthBox.ModelDataContainer.MaterialContainer.Materials — Type
Materials <: CollectionContainerData structure containing parameter, array and dictionary objects associated with material properties.
Fields
parameters::Parameters: Parameter groups for material propertiesarrays::Arrays: Array groups containing material property valuesdicts::Dicts: Dictionary groups for mapping material names to IDscolors::MaterialColors: Struct with material color information
Constructor
Materials()::MaterialsEarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.Parameters — Type
Parameters <: AbstractParameterCollectionParameter collection for material properties.
Fields
material_description::MaterialDescription: Parameters for material model identifiersrandom_friction::RandomFriction: Parameters for spatial and temporal variation of friction coefficientsoftening::Softening: Parameters for strain softening behavior whereby pre-exponential is modified with increasing strainviscosity_limits::ViscosityLimits: Minimum and maximum viscosity limitsstress_limits_yield::StressLimitsYield: Stress limits for plastic yieldingstress_limits_power_law::StressLimitsPowerLaw: Stress limits for power law creephydrothermal::Hydrothermal: Parameters for hydrothermal circulation model used to mimic the effects of hydrothermal circulation on thermal structurecompaction::Compaction: Parameters for sediment compactionboundary_friction::BoundaryFriction: Parameters for boundary friction zonesserpentinization::Serpentinization: Parameters for serpentinization modelmelt_damage::MeltDamage: Parameters for melt-induced damage
Constructor
Parameters()::ParametersEarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.MaterialDescriptionGroup.MaterialDescription — Type
MaterialDescription <: AbstractParameterGroupParameter group for material and plasticity model descriptions.
Fields
itype_mat::ParameterInt: Material and marker initialization model optionstype_mat::ParameterStr: Material and marker initialization model option namenmats::ParameterInt: Maximum number of materials allowed in modelitype_plasticity::ParameterInt: Plasticity model type: 0 = viscoelastic; 1 = purely elasticstype_plasticity::ParameterStr: Plasticity model nameobj_list::Vector{ParameterInt}: List of parameter objects
Nested Dot Access
itype_mat = model.materials.parameters.description.itype_mat.valuestype_mat = model.materials.parameters.description.stype_mat.valuenmats = model.materials.parameters.description.nmats.valueitype_plasticity = model.materials.parameters.description.itype_plasticity.valuestype_plasticity = model.materials.parameters.description.stype_plasticity.value
Constructor
MaterialDescription()Create a new MaterialDescription parameter group with default values.
Returns
MaterialDescription: New MaterialDescription parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.RandomFrictionGroup.RandomFriction — Type
RandomFriction <: AbstractParameterGroupParameter group for random friction properties.
Fields
iuse_random_fric::ParameterInt: Randomize initial friction coefficient using deltafriccoef: 0 off; 1 ondelta_fric_coef::ParameterFloat: Friction coefficient perturbation used to randomize initial marker friction coefficientsiuse_random_fric_time::ParameterInt: Randomize marker friction coefficients with each time step: 0 off; 1 onrandomization_factor::ParameterFloat: Randomization factor used to randomize marker friction coefficients with each time stepobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
iuse_random_fric = model.materials.parameters.random_friction.iuse_random_fric.valuedelta_fric_coef = model.materials.parameters.random_friction.delta_fric_coef.valueiuse_random_fric_time = model.materials.parameters.random_friction.iuse_random_fric_time.valuerandomization_factor = model.materials.parameters.random_friction.randomization_factor.value
Constructor
RandomFriction()Create a new RandomFriction parameter group with default values.
Returns
RandomFriction: New RandomFriction parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.SofteningGroup.Softening — Type
Softening <: AbstractParameterGroupParameter group for viscous strain softening properties.
Fields
iuse_viscous_strain_soft::ParameterInt: Viscous strain softening: 0 off; 1 onvsoftfac::ParameterFloat: Softening factor multiplied by power-law pre-exponentialobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
iuse_viscous_strain_soft = model.materials.parameters.softening.iuse_viscous_strain_soft.valuevsoftfac = model.materials.parameters.softening.vsoftfac.value
Constructor
Softening()Create a new Softening parameter group with default values.
Returns
Softening: New Softening parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.ViscosityLimitsGroup.ViscosityLimits — Type
ViscosityLimits <: AbstractParameterGroupParameter group for viscosity limits.
Fields
viscosity_min::ParameterFloat: Minimum viscosityviscosity_max::ParameterFloat: Maximum viscosityobj_list::Vector{ParameterFloat}: List of parameter objects
Nested Dot Access
viscosity_min = model.materials.parameters.viscosity_limits.viscosity_min.valueviscosity_max = model.materials.parameters.viscosity_limits.viscosity_max.value
Constructor
ViscosityLimits()Returns
ViscosityLimits: New ViscosityLimits parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.StressLimitsYieldGroup.StressLimitsYield — Type
StressLimitsYield <: AbstractParameterGroupParameter group for yield stress limits and plastic failure properties.
Fields
yield_stress_min::ParameterFloat: Minimum stress limit for plastic failure in Payield_stress_max::ParameterFloat: Maximum stress limit for plastic failure in Paiuse_fluid_pressure_for_yield::ParameterInt: Flag to use fluid pressure for yield stress calculationplastic_healing_rate::ParameterFloat: Rate of plastic healing in 1/sobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
yield_stress_min = model.materials.parameters.stress_limits_yield.yield_stress_min.valueyield_stress_max = model.materials.parameters.stress_limits_yield.yield_stress_max.valueiuse_fluid_pressure_for_yield = model.materials.parameters.stress_limits_yield.iuse_fluid_pressure_for_yield.valueplastic_healing_rate = model.materials.parameters.stress_limits_yield.plastic_healing_rate.value
Constructor
StressLimitsYield()Create a new StressLimitsYield parameter group with default values.
Returns
StressLimitsYield: New StressLimitsYield parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.StressLimitsPowerLawGroup.StressLimitsPowerLaw — Type
StressLimitsPowerLaw <: AbstractParameterGroupParameter group for power-law stress limits.
Fields
powerlaw_stress_min::ParameterFloat: Minimum stress limit for power lawobj_list::Vector{ParameterFloat}: List of parameter objects
Nested Dot Access
powerlaw_stress_min = model.materials.parameters.stress_limits_powerlaw.powerlaw_stress_min.value
Constructor
StressLimitsPowerLaw()Returns
StressLimitsPowerLaw: New StressLimitsPowerLaw parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.HydrothermalGroup.Hydrothermal — Type
Hydrothermal <: AbstractParameterGroupParameter group for hydrothermal circulation properties.
Fields
iuse_hydrothermal::ParameterInt: Hydrothermal circulation: 0 off; 1 on (iuse_topo must be 1)iuse_melt_lens::ParameterInt: Include shallow melt lens effect: 0 off; 1 onhydrothermal_smoothing_factor::ParameterFloat: Hydrothermal smoothing factorhydrothermal_nusselt_number::ParameterFloat: Hydrothermal Nusselt numberhydrothermal_max_temperature::ParameterFloat: Hydrothermal max temperature in Celsiushydrothermal_max_depth::ParameterFloat: Hydrothermal max depth in metersiuse_plastic_strain_rate_for_hydrothermal::ParameterInt: Use plastic strain rate for hydrothermal circulation: 0 off; 1 onhydrothermal_decay_length::ParameterFloat: Hydrothermal decay length in metershydrothermal_buffer_distance::ParameterFloat: Hydrothermal buffer distance in metershydrothermal_plastic_strain_rate_reference::ParameterFloat: Hydrothermal plastic strain rate reference in 1/siuse_plastic_strain_for_hydrothermal::ParameterInt: Use plastic strain for hydrothermal circulation: 0 off; 1 onhydrothermal_plastic_strain_reference::ParameterFloat: Hydrothermal plastic strain referencesediment_thickness_threshold::ParameterFloat: Sediment thickness threshold in metersobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of
parameter objects
Nested Dot Access
iuse_hydrothermal = model.materials.parameters.hydrothermal.iuse_hydrothermal.valueiuse_melt_lens = model.materials.parameters.hydrothermal.iuse_melt_lens.valuehydrothermal_smoothing_factor = model.materials.parameters.hydrothermal.hydrothermal_smoothing_factor.valuehydrothermal_nusselt_number = model.materials.parameters.hydrothermal.hydrothermal_nusselt_number.valuehydrothermal_max_temperature = model.materials.parameters.hydrothermal.hydrothermal_max_temperature.valuehydrothermal_max_depth = model.materials.parameters.hydrothermal.hydrothermal_max_depth.valueiuse_plastic_strain_rate_for_hydrothermal = model.materials.parameters.hydrothermal.iuse_plastic_strain_rate_for_hydrothermal.valuehydrothermal_decay_length = model.materials.parameters.hydrothermal.hydrothermal_decay_length.valuehydrothermal_buffer_distance = model.materials.parameters.hydrothermal.hydrothermal_buffer_distance.valuehydrothermal_plastic_strain_rate_reference = model.materials.parameters.hydrothermal.hydrothermal_plastic_strain_rate_reference.valueiuse_plastic_strain_for_hydrothermal = model.materials.parameters.hydrothermal.iuse_plastic_strain_for_hydrothermal.valuehydrothermal_plastic_strain_reference = model.materials.parameters.hydrothermal.hydrothermal_plastic_strain_reference.valuesediment_thickness_threshold = model.materials.parameters.hydrothermal.sediment_thickness_threshold.value
Constructor
Hydrothermal()Create a new Hydrothermal parameter group with default values.
Returns
Hydrothermal: New Hydrothermal parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.CompactionGroup.Compaction — Type
Compaction <: AbstractParameterGroupParameter group for sediment compaction and water properties.
Fields
iuse_sed_porosity::ParameterInt: Depth-dependent sediment porosity: 0 off; 1 onconductivity_water::ParameterFloat: Thermal conductivity of waterdensity_water::ParameterFloat: Density of waterheat_capacity_water::ParameterFloat: Heat capacity of waterobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of
parameter objects
Nested Dot Access
iuse_sed_porosity = model.materials.parameters.compaction.iuse_sed_porosity.valueconductivity_water = model.materials.parameters.compaction.conductivity_water.valuedensity_water = model.materials.parameters.compaction.density_water.valueheat_capacity_water = model.materials.parameters.compaction.heat_capacity_water.value
Constructor
Compaction()Create a new Compaction parameter group with default values.
Returns
Compaction: New Compaction parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.BoundaryFrictionGroup.BoundaryFriction — Type
BoundaryFriction <: AbstractParameterGroupParameter group for boundary friction zone properties.
Fields
boundary_friction_width::ParameterFloat: Width of boundary friction zoneboundary_friction_angle::ParameterFloat: Friction angle of boundary friction zoneboundary_cohesion::ParameterFloat: Cohesion of boundary friction zoneobj_list::Vector{ParameterFloat}: List of parameter objects
Nested Dot Access
boundary_friction_width = model.materials.parameters.boundary_friction.boundary_friction_width.valueboundary_friction_angle = model.materials.parameters.boundary_friction.boundary_friction_angle.valueboundary_cohesion = model.materials.parameters.boundary_friction.boundary_cohesion.value
Constructor
BoundaryFriction()Create a new BoundaryFriction parameter group with default values.
Returns
BoundaryFriction: New BoundaryFriction parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.SerpentinizationGroup.Serpentinization — Type
Serpentinization <: AbstractParameterGroupParameter group for serpentinization model properties.
Fields
iuse_serpentinization::ParameterInt: Serpentinization model: 0 off; 1 on. Topography must be activated for serpentinization (i.e.iuse_topomust be equal to 1). See EarthBox.SurfaceProcesses.Topography.initialize!) for more details on topography initialization.serpentinization_temperature::ParameterFloat: Temperature in Celsius that controls when serpentinization rate reaches maximum and then rapidly decreases. Typical values from the literature are around 613.15K (340.15C) (e.g. Mezri et al. (2024)).maximum_serpentinization_depth::ParameterFloat: Maximum submud serpentinization depth in metersmaximum_serpentinization_rate::ParameterFloat: Maximum serpentinization rate (1/s). Typical values from the literature are around 1e-10 to 1e-11 1/s (e.g. Mezri et al. (2024)).nominal_strain_rate_serpentinization::ParameterFloat: Nominal plastic strain rate for serpentinization (1/s). Plastic strain rate beyond which the effect of plastic strain rate on serpentinization rate rapidly increases and then becomes constant (e.g. Merzi et al., 2024). Typical values from the literature are around 1e-12 to 1e-13 1/s (e.g. Mezri et al. (2024)).obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
iuse_serpentinization = model.materials.parameters.serpentinization.iuse_serpentinization.valueserpentinization_temperature = model.materials.parameters.serpentinization.serpentinization_temperature.valuemaximum_serpentinization_depth = model.materials.parameters.serpentinization.maximum_serpentinization_depth.valuemaximum_serpentinization_rate = model.materials.parameters.serpentinization.maximum_serpentinization_rate.valuenominal_strain_rate_serpentinization = model.materials.parameters.serpentinization.nominal_strain_rate_serpentinization.value
Constructor
Serpentinization()Create a new Serpentinization parameter group with default values.
Returns
Serpentinization: New Serpentinization parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ParameterCollection.MeltDamageGroup.MeltDamage — Type
MeltDamage <: AbstractParameterGroupParameter group for melt damage properties.
Fields
iuse_melt_damage::ParameterInt: Integer flag that activates melt damage model where the damage factor is calculated for markers in the melt damage zone above partially molten mantle.melt_damage_distance::ParameterFloat: Distance in meters from the shallow partially molten mantle where the damage factor is calculated for markers in the melt damage zone.melt_damage_factor::ParameterFloat: Maximum melt damage factor. Friction angle is divided by this factor to account for melt damage.melt_damage_taper_distance::ParameterFloat: Distance in meters over which melt damage factor tapers to one.iuse_probabilistic_melt_damage::ParameterInt: Integer flag that activates probabilistic melt damage model where the damage factor is calculated probabilistically for markers in the melt damage zone.maximum_damage_probability::ParameterFloat: Maximum probability (fraction) of melt damage for markers in the central melt damage zone.magmatic_crust_height_threshold::ParameterFloat: Threshold height in meters for magmatic crust used in linear melt damage probability modelmagmatic_crust_height_minimum::ParameterFloat: Minimum height in meters for magmatic crust used in linear melt damage probability modelmagmatic_crust_height_maximum::ParameterFloat: Maximum height in meters for magmatic crust used in linear melt damage probability model.magmatic_crust_height_intermediate::ParameterFloat: Intermediate height in meters for magmatic crust used in linear melt damage probability model.intermediate_damage_probability::ParameterFloat: Intermediate probability (fraction) of melt damage for markers in the central melt damage zone.obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of
parameter objects
Nested Dot Access
iuse_melt_damage = model.materials.parameters.melt_damage.iuse_melt_damage.valuemelt_damage_distance = model.materials.parameters.melt_damage.melt_damage_distance.valuemelt_damage_factor = model.materials.parameters.melt_damage.melt_damage_factor.valuemelt_damage_taper_distance = model.materials.parameters.melt_damage.melt_damage_taper_distance.valueiuse_probabilistic_melt_damage = model.materials.parameters.melt_damage.iuse_probabilistic_melt_damage.valuemaximum_damage_probability = model.materials.parameters.melt_damage.maximum_damage_probability.valuemagmatic_crust_height_threshold = model.materials.parameters.melt_damage.magmatic_crust_height_threshold.valuemagmatic_crust_height_minimum = model.materials.parameters.melt_damage.magmatic_crust_height_minimum.valuemagmatic_crust_height_maximum = model.materials.parameters.melt_damage.magmatic_crust_height_maximum.valuemagmatic_crust_height_intermediate = model.materials.parameters.melt_damage.magmatic_crust_height_intermediate.valueintermediate_damage_probability = model.materials.parameters.melt_damage.intermediate_damage_probability.value
Constructor
MeltDamage()Returns
MeltDamage: New MeltDamage parameter group with initialized values
EarthBox.ModelDataContainer.MaterialContainer.ArrayCollection.Arrays — Type
ArraysCollection of material property arrays used in EarthBox.
Fields
mat_rho::MaterialArrayFloat2DState: (nmats, 4) : Density-related properties- Column 1: Standard density (kg/m^3)
- Column 2: Thermal expansion coefficient (1/K)
- Column 3: Compressibility (1/Pa)
- Column 4: Melt density (kg/m^3)
mat_flow_type::MaterialArrayInt1DState: (nmats) : Flow law type integer ID for each materialmat_flow::MaterialArrayFloat2DState: (nmats, 17) : Flow law parameters- Column 1: Viscosity for isoviscous models (Pa.s)
- Column 2: Pre-exponential factor for power law (1/s/MPa^n)
- Column 3: Power law stress exponent n
- Column 4: Activation energy for power law (kJ/mol)
- Column 5: Activation volume for power law (J/MPa/mol)
- Column 6: Pre-exponential term for Peierls creep (s^-1*MPa^-2)
- Column 7: Peierls creep stress exponent 1
- Column 8: Peierls creep stress exponent 2
- Column 9: Peierls stress (MPa)
- Column 10: Pre-exponential terms for diffusion creep (1/s/MPa^n)
- Column 11: Activation energy for diffusion creep (kJ/mol)
- Column 12: Activation volume for diffusion creep (J/MPa/mol)
- Column 13: Pre-exponential term for temperature-dependent viscosity (Pa.s)
- Column 14: Activation energy for temperature-dependent viscosity (kJ/mol)
- Column 15: Reference viscosity for flow law from Blankenbach (1989) (Pa.s)
- Column 16: b term for flow law from Blankenbach (1989)
- Column 17: c term for flow law from Blankenbach (1989)
mat_mu::MaterialArrayFloat1DState: (nmats) : Shear modulus (Pa)- Column 1: Shear modulus (Pa)
mat_plastic::MaterialArrayFloat2DState: (nmats, 7) : Plastic deformation parameters- Column 1: Cohesion (C0) at initial strain GAM0 (Pa)
- Column 2: Cohesion (C1) at final strain GAM1 (Pa)
- Column 3: Sine of friction angle at strain GAM0
- Column 3: Sine of friction angle at strain GAM1
- Column 5: Initial strain GAM0
- Column 6: Final strain GAM1
- Column 7: Dilatation angle
mat_cp::MaterialArrayFloat1DState: (nmats) : Heat capacity (J/kg/K)mat_kt::MaterialArrayFloat2DState: (nmats, 2) : Thermal conductivity parameters- Column 1: Reference thermal conductivity k0 (W/m/k)
- Column 2: Thermal conductivity term a (W/m)
mat_hr::MaterialArrayFloat1DState: (nmats) : Radiogenic heat production rate (W/m^3)mat_melting_itypes::MaterialArrayInt2DState: (nmats, 2) : Melting model type IDs- Column 1: Integer type ID for solidus
- Column 2: Integer type ID for liquidus
mat_melting::MaterialArrayFloat2DState: (nmats, 2) : Melting model parameters- Column 1: Latent heat (J/kg)
- Column 2: Shift in solidus and liquidus temperature to account for fractional crystallization above the Moho at spreading ridges. (K)
mat_compaction::MaterialArrayFloat2DState: Compaction parameters- Column 1: Initial porosity at sediment-water interface (fraction)
- Column 2: Porosity decay depth (meters)
Nested Dot Access
mat_rho = model.materials.arrays.mat_rho.arraymat_flow_type = model.materials.arrays.mat_flow_type.arraymat_flow = model.materials.arrays.mat_flow.arraymat_mu = model.materials.arrays.mat_mu.arraymat_plastic = model.materials.arrays.mat_plastic.arraymat_cp = model.materials.arrays.mat_cp.arraymat_kt = model.materials.arrays.mat_kt.arraymat_hr = model.materials.arrays.mat_hr.arraymat_melting_itypes = model.materials.arrays.mat_melting_itypes.arraymat_melting = model.materials.arrays.mat_melting.arraymat_compaction = model.materials.arrays.mat_compaction.array
Constructor
Arrays(nmats::Int)Arguments
nmats::Int: Number of materials
Returns
Arrays: New Arrays collection with initialized arrays
EarthBox.ModelDataContainer.MaterialContainer.DictCollection.Dicts — Type
DictsCollection of material property dictionaries.
Fields
matid_domains::Dict{String, Int64}: Dictionary mapping domain name to a single material IDmatid_types::Dict{String, Vector{Int64}}: Dictionary mapping type name to multiple material IDs
Nested Dot Access
matid_domains = model.materials.dicts.matid_domainsmatid_types = model.materials.dicts.matid_types