EarthBox.ModelDataContainer.HeatEquationContainer.HeatEquation — Type
HeatEquation <: CollectionContainerData structure containing parameter and array objects for heat equation solver.
Fields
parameters::Parameters: Parameter groups for heat solver configurationarrays::Arrays: Array groups for temperature and thermal properties
Constructor
HeatEquation(ynum::Int, xnum::Int)::HeatEquationArguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.Parameters — Type
Parameters <: AbstractParameterCollectionParameter collection for heat equation solver.
Fields
thermalcond::ThermalCond: Thermal conductivity model optionsheat_options::HeatOptions: Heat solver on/off switchestemp_change_limit::TempChangeLimit: Temperature change limitsbuild::Build: Sparse matrix build parametersinitial_condition::InitialCondition: Initial temperature conditionssteady_state::SteadyState: Steady state thermal structure parametersrhocp::RhoCp: Density times heat capacity options
Constructor
Parameters(ynum::Int, xnum::Int)Create a new Parameters collection with the given grid dimensions.
Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.ThermalCondGroup.ThermalCond — Type
ThermalCond <: AbstractParameterGroupParameter group for thermal conductivity model options.
Fields
itype_conductivity::ParameterInt: Integer flag for thermal conductivity modelstype_conductivity::ParameterStr: Thermal conductivity model option nameobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
itype_conductivity = model.heat_equation.parameters.thermalcond.itype_conductivity.valuestype_conductivity = model.heat_equation.parameters.thermalcond.stype_conductivity.value
Constructor
ThermalCond()Returns
ThermalCond: New ThermalCond parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.HeatOptionsGroup.HeatOptions — Type
HeatOptions <: AbstractParameterGroupParameter group for heat solver on/off switches.
Fields
iuse_heat::ParameterInt: Solve heat equation: 0 off; 1 oniuse_shear_heating::ParameterInt: Shear heating: 0 off; 1 oniuse_adiabatic_heating::ParameterInt: Adiabatic heating: 0 off; 1 oniuse_sticky_correction::ParameterInt: Sticky temperature correction (reset to top boundary temperature): 0 off; 1 onobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
iuse_heat = model.heat_equation.parameters.heat_options.iuse_heat.valueiuse_shear_heating = model.heat_equation.parameters.heat_options.iuse_shear_heating.valueiuse_adiabatic_heating = model.heat_equation.parameters.heat_options.iuse_adiabatic_heating.valueiuse_sticky_correction = model.heat_equation.parameters.heat_options.iuse_sticky_correction.value
Constructor
HeatOptions()Returns
HeatOptions: New HeatOptions parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.TempChangeLimitGroup.TempChangeLimit — Type
TempChangeLimit <: AbstractParameterGroupParameter group for temperature change limits.
Fields
max_temp_change::ParameterFloat: Maximal temperature change allowed for one timestep in Kelvinobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
max_temp_change = model.heat_equation.parameters.temp_change_limit.max_temp_change.value
Constructor
TempChangeLimit()Returns
TempChangeLimit: New TempChangeLimit parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.BuildGroup.Build — Type
Build <: AbstractParameterGroupParameter group for sparse matrix build parameters.
Fields
ibuild::ParameterInt: 0 define full system, 1 only define non-zero elementsN::ParameterInt: Number of rows or columns in the large NxN matrixnonzero_max_heat::ParameterInt: Maximum number of non-zero values allowed for the large matrixobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
ibuild = model.heat_equation.parameters.build.ibuild.valueN = model.heat_equation.parameters.build.N.valuenonzero_max_heat = model.heat_equation.parameters.build.nonzero_max_heat.value
Constructor
Build(xnum::Int, ynum::Int)Arguments
xnum::Int: Number of grid points in x-directionynum::Int: Number of grid points in y-direction
Returns
Build: New Build parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.InitialConditionGroup.InitialCondition — Type
InitialCondition <: AbstractParameterGroupParameter group for initial temperature condition parameters.
Fields
itype_temp::ParameterInt: Option flag for initial temperature conditionstype_temp::ParameterStr: Initial temperature condition option nametemperature_uniform::ParameterFloat: Uniform initial temperature value in Kelvintemperature_of_wave::ParameterFloat: Temperature of wave in Kelvinage_lithosphere_left::ParameterFloat: Age of lithosphere to the left of fracture zone in Myrage_lithosphere_right::ParameterFloat: Age of lithosphere to the right of fracture zone in Myrthermal_lithosphere_depth_left::ParameterFloat: Thermal lithosphere depth to the left of fracture zone in metersthermal_lithosphere_depth_right::ParameterFloat: Thermal lithosphere depth to the right of fracture zone in metersthermal_diffusivity::ParameterFloat: Thermal diffusivity in m^2/sadiabatic_gradient::ParameterFloat: Adiabatic gradient in K/kmobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
itype_temp = model.heat_equation.parameters.initial_condition.itype_temp.valuestype_temp = model.heat_equation.parameters.initial_condition.stype_temp.valuetemperature_uniform = model.heat_equation.parameters.initial_condition.temperature_uniform.valuetemperature_of_wave = model.heat_equation.parameters.initial_condition.temperature_of_wave.valueage_lithosphere_left = model.heat_equation.parameters.initial_condition.age_lithosphere_left.valueage_lithosphere_right = model.heat_equation.parameters.initial_condition.age_lithosphere_right.valuethermal_lithosphere_depth_left = model.heat_equation.parameters.initial_condition.thermal_lithosphere_depth_left.valuethermal_lithosphere_depth_right = model.heat_equation.parameters.initial_condition.thermal_lithosphere_depth_right.valuethermal_diffusivity = model.heat_equation.parameters.initial_condition.thermal_diffusivity.valueadiabatic_gradient = model.heat_equation.parameters.initial_condition.adiabatic_gradient.value
Constructor
InitialCondition()Returns
InitialCondition: New InitialCondition parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.SteadyStateGroup.SteadyState — Type
SteadyState <: AbstractParameterGroupParameter group for steady state thermal structure parameters.
Fields
thick_thermal_lithosphere::ParameterFloat: Thickness of the thermal lithosphere in metersconductivity_upper_crust::ParameterFloat: Thermal conductivity of upper crust W/m/Kconductivity_lower_crust::ParameterFloat: Thermal conductivity of lower crust W/m/Kconductivity_mantle::ParameterFloat: Thermal conductivity of mantle W/m/Kheat_production_upper_crust::ParameterFloat: Radiogenic heat production in upper crust W/m^3heat_production_lower_crust::ParameterFloat: Radiogenic heat production in lower crust W/m^3heat_production_mantle::ParameterFloat: Radiogenic heat production in mantle W/m^3amplitude_perturbation::ParameterFloat: Amplitude of central thermal perturbation in meterswidth_perturbation::ParameterFloat: Width of central thermal perturbation in meterstemperature_surface::ParameterFloat: Initial temperature at the surface for lithospheric models with sticky air in Kelvintemperature_moho::ParameterFloat: Initial temperature at the Moho for lithospheric models in Kelvintemperature_base_lith::ParameterFloat: Initial temperature at the base of the lithosphere in Kelvinobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
thick_thermal_lithosphere = model.heat_equation.parameters.steady_state.thick_thermal_lithosphere.valueconductivity_upper_crust = model.heat_equation.parameters.steady_state.conductivity_upper_crust.valueconductivity_lower_crust = model.heat_equation.parameters.steady_state.conductivity_lower_crust.valueconductivity_mantle = model.heat_equation.parameters.steady_state.conductivity_mantle.valueheat_production_upper_crust = model.heat_equation.parameters.steady_state.heat_production_upper_crust.valueheat_production_lower_crust = model.heat_equation.parameters.steady_state.heat_production_lower_crust.valueheat_production_mantle = model.heat_equation.parameters.steady_state.heat_production_mantle.valueamplitude_perturbation = model.heat_equation.parameters.steady_state.amplitude_perturbation.valuewidth_perturbation = model.heat_equation.parameters.steady_state.width_perturbation.valuetemperature_surface = model.heat_equation.parameters.steady_state.temperature_surface.valuetemperature_moho = model.heat_equation.parameters.steady_state.temperature_moho.valuetemperature_base_lith = model.heat_equation.parameters.steady_state.temperature_base_lith.value
Constructor
SteadyState()Returns
SteadyState: New SteadyState parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.RhoCpGroup.RhoCp — Type
RhoCp <: AbstractParameterGroupParameter group for density times heat capacity model options.
Fields
itype_rhocp::ParameterInt: Integer flag for density*heat_capacity modelstype_rhocp::ParameterStr: Density*heat_capacity model option namemaximum_heat_capacity::ParameterFloat: Maximum heat capacity for rock properties used with Waples temperature-dependent model in J/kg/kobj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects
Nested Dot Access
itype_rhocp = model.heat_equation.parameters.rhocp.itype_rhocp.valuestype_rhocp = model.heat_equation.parameters.rhocp.stype_rhocp.valuemaximum_heat_capacity = model.heat_equation.parameters.rhocp.maximum_heat_capacity.value
Constructor
RhoCp()Create a new RhoCp parameter group with default values.
Returns
RhoCp: New RhoCp parameter group with initialized values
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.Arrays — Type
Arrays <: AbstractArrayCollectionData structure containing array groups for heat equation solver.
Fields
rhs::RhsHeat: Right-hand side arrays for heat equationradiogenic_production::RadiogenicProduction: Radiogenic heat production arraysadiabatic_production::AdiabaticProduction: Adiabatic heat production arraysthermal_conductivity::ThermalConductivity: Thermal conductivity arraystemperature::Temperature: Temperature field arraysrhocp::RhoCp: Density times heat capacity arraysresiduals::HeatResidual: Heat equation residual arrays
Constructor
Arrays(ynum::Int, xnum::Int)::ArraysCreate a new Arrays collection with the given grid dimensions.
Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RhsHeatGroup.RhsHeat — Type
RhsHeat <: AbstractArrayGroupArray group containing right-hand side arrays for heat equation.
Fields
RT1::ScalarArray2DState:(ynum, xnum): Right-hand side values at grid node locations.RHSheat::RhsHeatArray1DState:(ynum*xnum): Right-hand side array for heat equation.
Nested Dot Access
RT1 = model.heat_equation.arrays.rhs.RT1.arrayRHSheat = model.heat_equation.arrays.rhs.RHSheat.array
Constructor
RhsHeat(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
RhsHeat: New RhsHeat array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RadiogenicProductionGroup.RadiogenicProduction — Type
RadiogenicProduction <: AbstractArrayGroupArray group containing radiogenic heat production arrays.
Fields
hr0::ScalarArray2DState:(ynum, xnum): Backup of radiogenic heat production on basic grid in W/m^3.hr1::ScalarArray2DState:(ynum, xnum): Radiogenic heat production interpolated from markers to basic grid in W/m^3.
Nested Dot Access
hr0 = model.heat_equation.arrays.radiogenic_production.hr0.arrayhr1 = model.heat_equation.arrays.radiogenic_production.hr1.array
Constructor
RadiogenicProduction(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
RadiogenicProduction: New RadiogenicProduction array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.AdiabaticProductionGroup.AdiabaticProduction — Type
AdiabaticProduction <: AbstractArrayGroupArray group containing adiabatic heat production arrays.
Fields
ha0::ScalarArray2DState:(ynum, xnum): Backup of adiabatic heat production term on basic grid.ha1::ScalarArray2DState:(ynum, xnum): Adiabatic heat production term (expansivity x temperature) interpolated from markers to basic grid.
Nested Dot Access
ha0 = model.heat_equation.arrays.adiabatic_production.ha0.arrayha1 = model.heat_equation.arrays.adiabatic_production.ha1.array
Constructor
AdiabaticProduction(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
AdiabaticProduction: New AdiabaticProduction array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.ThermalConductivityGroup.ThermalConductivity — Type
ThermalConductivity <: AbstractArrayGroupArray group containing thermal conductivity arrays.
Fields
kt0::ScalarArray2DState:(ynum, xnum): Backup of thermal conductivity on basic grid in W/m/K.kt1::ScalarArray2DState:(ynum, xnum): Thermal conductivity interpolated from markers to basic grid in W/m/K.
Nested Dot Access
kt0 = model.heat_equation.arrays.thermal_conductivity.kt0.arraykt1 = model.heat_equation.arrays.thermal_conductivity.kt1.array
Constructor
ThermalConductivity(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
ThermalConductivity: New ThermalConductivity array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.TemperatureGroup.Temperature — Type
Temperature <: AbstractArrayGroupArray group containing temperature field arrays.
Fields
tk0::ScalarArray2DState:(ynum, xnum): Old temperature array in Kelvin used for: (1) defining old temperature in grids for problematic marker interpolation after being copied from last conductive temperature solution (tk2), (2) defining old initial temperature when solving transient heat equation after being copied from temperature transport array (tk1), and (3) defining old temperature from previous iteration of adaptive time stepping heat loop after being copied from current conductive temperature solution (tk2).tk1::ScalarArray2DState:(ynum, xnum): Transport array with temperature in Kelvin interpolated from advected markers to basic grid used to define initial old temperature when solving conductive heat equation.tk2::ScalarArray2DState:(ynum, xnum): New conductive temperature solution array in Kelvin obtained by solving heat conduction equation on basic grid using adaptive time stepping heat loop and tk1 as initial condition.dtk1::ScalarArray2DState:(ynum, xnum): Temperature change array in Kelvin used for: (1) defining temperature change (tk2 - tk0) on basic grid for iteration of adaptive time stepping heat loop, (2) defining temperature change on basic grid between new conductive solution and old advective transport array temperature (tk2 - tk1). Updated for subgrid diffusion by subtracting dtkn.dtkn::ScalarArray2DState:(ynum, xnum): Subgrid diffusive temperature change array in Kelvin interpolated from markers to basic grid used to update dkt1 for subgrid diffusion.
Nested Dot Access
tk0 = model.heat_equation.arrays.temperature.tk0.arraytk1 = model.heat_equation.arrays.temperature.tk1.arraytk2 = model.heat_equation.arrays.temperature.tk2.arraydtk1 = model.heat_equation.arrays.temperature.dtk1.arraydtkn = model.heat_equation.arrays.temperature.dtkn.array
Constructor
Temperature(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
Temperature: New Temperature array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RhoCpGroup.RhoCp — Type
RhoCp <: AbstractArrayGroupArray group containing density times heat capacity arrays.
Fields
rhocp0::ScalarArray2DState:(ynum, xnum): Backup of density times heat capacity on basic grid in kg/m^3 x J/kg/K.rhocp1::ScalarArray2DState:(ynum, xnum): Density times heat capacity interpolated from markers to basic grid in kg/m^3 x J/kg/K.
Nested Dot Access
rhocp0 = model.heat_equation.arrays.rhocp.rhocp0.arrayrhocp1 = model.heat_equation.arrays.rhocp.rhocp1.array
Constructor
RhoCp(ynum::Int, xnum::Int)Create a new RhoCp array group with the given grid dimensions.
Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
RhoCp: New RhoCp array group with initialized arrays
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.HeatResidualGroup.HeatResidual — Type
HeatResidual <: AbstractArrayGroupArray group containing heat equation residual array.
Fields
rest::ScalarArray2DState:(ynum, xnum): Residual for heat equation.
Nested Dot Access
rest = model.heat_equation.arrays.residuals.rest.array
Constructor
HeatResidual(ynum::Int, xnum::Int)Arguments
ynum::Int: Number of grid points in y-directionxnum::Int: Number of grid points in x-direction
Returns
HeatResidual: New HeatResidual array group with initialized arrays