HeatEquation

EarthBox.ModelDataContainer.HeatEquationContainer.HeatEquationType
HeatEquation <: CollectionContainer

Data structure containing parameter and array objects for heat equation solver.

Fields

  • parameters::Parameters: Parameter groups for heat solver configuration
  • arrays::Arrays: Array groups for temperature and thermal properties

Constructor

HeatEquation(ynum::Int, xnum::Int)::HeatEquation

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.ParametersType
Parameters <: AbstractParameterCollection

Parameter collection for heat equation solver.

Fields

  • thermalcond::ThermalCond: Thermal conductivity model options
  • heat_options::HeatOptions: Heat solver on/off switches
  • temp_change_limit::TempChangeLimit: Temperature change limits
  • build::Build: Sparse matrix build parameters
  • initial_condition::InitialCondition: Initial temperature conditions
  • steady_state::SteadyState: Steady state thermal structure parameters
  • rhocp::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-direction
  • xnum::Int: Number of grid points in x-direction
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.ThermalCondGroup.ThermalCondType
ThermalCond <: AbstractParameterGroup

Parameter group for thermal conductivity model options.

Fields

  • itype_conductivity::ParameterInt: Integer flag for thermal conductivity model
  • stype_conductivity::ParameterStr: Thermal conductivity model option name
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • itype_conductivity = model.heat_equation.parameters.thermalcond.itype_conductivity.value
  • stype_conductivity = model.heat_equation.parameters.thermalcond.stype_conductivity.value

Constructor

ThermalCond()

Returns

  • ThermalCond: New ThermalCond parameter group with initialized values
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.HeatOptionsGroup.HeatOptionsType
HeatOptions <: AbstractParameterGroup

Parameter group for heat solver on/off switches.

Fields

  • iuse_heat::ParameterInt: Solve heat equation: 0 off; 1 on
  • iuse_shear_heating::ParameterInt: Shear heating: 0 off; 1 on
  • iuse_adiabatic_heating::ParameterInt: Adiabatic heating: 0 off; 1 on
  • iuse_sticky_correction::ParameterInt: Sticky temperature correction (reset to top boundary temperature): 0 off; 1 on
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • iuse_heat = model.heat_equation.parameters.heat_options.iuse_heat.value
  • iuse_shear_heating = model.heat_equation.parameters.heat_options.iuse_shear_heating.value
  • iuse_adiabatic_heating = model.heat_equation.parameters.heat_options.iuse_adiabatic_heating.value
  • iuse_sticky_correction = model.heat_equation.parameters.heat_options.iuse_sticky_correction.value

Constructor

HeatOptions()

Returns

  • HeatOptions: New HeatOptions parameter group with initialized values
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.TempChangeLimitGroup.TempChangeLimitType
TempChangeLimit <: AbstractParameterGroup

Parameter group for temperature change limits.

Fields

  • max_temp_change::ParameterFloat: Maximal temperature change allowed for one timestep in Kelvin
  • obj_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
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.BuildGroup.BuildType
Build <: AbstractParameterGroup

Parameter group for sparse matrix build parameters.

Fields

  • ibuild::ParameterInt: 0 define full system, 1 only define non-zero elements
  • N::ParameterInt: Number of rows or columns in the large NxN matrix
  • nonzero_max_heat::ParameterInt: Maximum number of non-zero values allowed for the large matrix
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • ibuild = model.heat_equation.parameters.build.ibuild.value
  • N = model.heat_equation.parameters.build.N.value
  • nonzero_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-direction
  • ynum::Int: Number of grid points in y-direction

Returns

  • Build: New Build parameter group with initialized values
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.InitialConditionGroup.InitialConditionType
InitialCondition <: AbstractParameterGroup

Parameter group for initial temperature condition parameters.

Fields

  • itype_temp::ParameterInt: Option flag for initial temperature condition
  • stype_temp::ParameterStr: Initial temperature condition option name
  • temperature_uniform::ParameterFloat: Uniform initial temperature value in Kelvin
  • temperature_of_wave::ParameterFloat: Temperature of wave in Kelvin
  • age_lithosphere_left::ParameterFloat: Age of lithosphere to the left of fracture zone in Myr
  • age_lithosphere_right::ParameterFloat: Age of lithosphere to the right of fracture zone in Myr
  • thermal_lithosphere_depth_left::ParameterFloat: Thermal lithosphere depth to the left of fracture zone in meters
  • thermal_lithosphere_depth_right::ParameterFloat: Thermal lithosphere depth to the right of fracture zone in meters
  • thermal_diffusivity::ParameterFloat: Thermal diffusivity in m^2/s
  • adiabatic_gradient::ParameterFloat: Adiabatic gradient in K/km
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • itype_temp = model.heat_equation.parameters.initial_condition.itype_temp.value
  • stype_temp = model.heat_equation.parameters.initial_condition.stype_temp.value
  • temperature_uniform = model.heat_equation.parameters.initial_condition.temperature_uniform.value
  • temperature_of_wave = model.heat_equation.parameters.initial_condition.temperature_of_wave.value
  • age_lithosphere_left = model.heat_equation.parameters.initial_condition.age_lithosphere_left.value
  • age_lithosphere_right = model.heat_equation.parameters.initial_condition.age_lithosphere_right.value
  • thermal_lithosphere_depth_left = model.heat_equation.parameters.initial_condition.thermal_lithosphere_depth_left.value
  • thermal_lithosphere_depth_right = model.heat_equation.parameters.initial_condition.thermal_lithosphere_depth_right.value
  • thermal_diffusivity = model.heat_equation.parameters.initial_condition.thermal_diffusivity.value
  • adiabatic_gradient = model.heat_equation.parameters.initial_condition.adiabatic_gradient.value

Constructor

InitialCondition()

Returns

  • InitialCondition: New InitialCondition parameter group with initialized values
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.SteadyStateGroup.SteadyStateType
SteadyState <: AbstractParameterGroup

Parameter group for steady state thermal structure parameters.

Fields

  • thick_thermal_lithosphere::ParameterFloat: Thickness of the thermal lithosphere in meters
  • conductivity_upper_crust::ParameterFloat: Thermal conductivity of upper crust W/m/K
  • conductivity_lower_crust::ParameterFloat: Thermal conductivity of lower crust W/m/K
  • conductivity_mantle::ParameterFloat: Thermal conductivity of mantle W/m/K
  • heat_production_upper_crust::ParameterFloat: Radiogenic heat production in upper crust W/m^3
  • heat_production_lower_crust::ParameterFloat: Radiogenic heat production in lower crust W/m^3
  • heat_production_mantle::ParameterFloat: Radiogenic heat production in mantle W/m^3
  • amplitude_perturbation::ParameterFloat: Amplitude of central thermal perturbation in meters
  • width_perturbation::ParameterFloat: Width of central thermal perturbation in meters
  • temperature_surface::ParameterFloat: Initial temperature at the surface for lithospheric models with sticky air in Kelvin
  • temperature_moho::ParameterFloat: Initial temperature at the Moho for lithospheric models in Kelvin
  • temperature_base_lith::ParameterFloat: Initial temperature at the base of the lithosphere in Kelvin
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • thick_thermal_lithosphere = model.heat_equation.parameters.steady_state.thick_thermal_lithosphere.value
  • conductivity_upper_crust = model.heat_equation.parameters.steady_state.conductivity_upper_crust.value
  • conductivity_lower_crust = model.heat_equation.parameters.steady_state.conductivity_lower_crust.value
  • conductivity_mantle = model.heat_equation.parameters.steady_state.conductivity_mantle.value
  • heat_production_upper_crust = model.heat_equation.parameters.steady_state.heat_production_upper_crust.value
  • heat_production_lower_crust = model.heat_equation.parameters.steady_state.heat_production_lower_crust.value
  • heat_production_mantle = model.heat_equation.parameters.steady_state.heat_production_mantle.value
  • amplitude_perturbation = model.heat_equation.parameters.steady_state.amplitude_perturbation.value
  • width_perturbation = model.heat_equation.parameters.steady_state.width_perturbation.value
  • temperature_surface = model.heat_equation.parameters.steady_state.temperature_surface.value
  • temperature_moho = model.heat_equation.parameters.steady_state.temperature_moho.value
  • temperature_base_lith = model.heat_equation.parameters.steady_state.temperature_base_lith.value

Constructor

SteadyState()

Returns

  • SteadyState: New SteadyState parameter group with initialized values
source
EarthBox.ModelDataContainer.HeatEquationContainer.ParameterCollection.RhoCpGroup.RhoCpType
RhoCp <: AbstractParameterGroup

Parameter group for density times heat capacity model options.

Fields

  • itype_rhocp::ParameterInt: Integer flag for density*heat_capacity model
  • stype_rhocp::ParameterStr: Density*heat_capacity model option name
  • maximum_heat_capacity::ParameterFloat: Maximum heat capacity for rock properties used with Waples temperature-dependent model in J/kg/k
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • itype_rhocp = model.heat_equation.parameters.rhocp.itype_rhocp.value
  • stype_rhocp = model.heat_equation.parameters.rhocp.stype_rhocp.value
  • maximum_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
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.ArraysType
Arrays <: AbstractArrayCollection

Data structure containing array groups for heat equation solver.

Fields

Constructor

Arrays(ynum::Int, xnum::Int)::Arrays

Create a new Arrays collection with the given grid dimensions.

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RhsHeatGroup.RhsHeatType
RhsHeat <: AbstractArrayGroup

Array group containing right-hand side arrays for heat equation.

Fields

Nested Dot Access

  • RT1 = model.heat_equation.arrays.rhs.RT1.array
  • RHSheat = model.heat_equation.arrays.rhs.RHSheat.array

Constructor

RhsHeat(ynum::Int, xnum::Int)

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • RhsHeat: New RhsHeat array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RadiogenicProductionGroup.RadiogenicProductionType
RadiogenicProduction <: AbstractArrayGroup

Array 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.array
  • hr1 = model.heat_equation.arrays.radiogenic_production.hr1.array

Constructor

RadiogenicProduction(ynum::Int, xnum::Int)

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • RadiogenicProduction: New RadiogenicProduction array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.AdiabaticProductionGroup.AdiabaticProductionType
AdiabaticProduction <: AbstractArrayGroup

Array 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.array
  • ha1 = model.heat_equation.arrays.adiabatic_production.ha1.array

Constructor

AdiabaticProduction(ynum::Int, xnum::Int)

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • AdiabaticProduction: New AdiabaticProduction array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.ThermalConductivityGroup.ThermalConductivityType
ThermalConductivity <: AbstractArrayGroup

Array 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.array
  • kt1 = model.heat_equation.arrays.thermal_conductivity.kt1.array

Constructor

ThermalConductivity(ynum::Int, xnum::Int)

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • ThermalConductivity: New ThermalConductivity array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.TemperatureGroup.TemperatureType
Temperature <: AbstractArrayGroup

Array 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.array
  • tk1 = model.heat_equation.arrays.temperature.tk1.array
  • tk2 = model.heat_equation.arrays.temperature.tk2.array
  • dtk1 = model.heat_equation.arrays.temperature.dtk1.array
  • dtkn = model.heat_equation.arrays.temperature.dtkn.array

Constructor

Temperature(ynum::Int, xnum::Int)

Arguments

  • ynum::Int: Number of grid points in y-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • Temperature: New Temperature array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.RhoCpGroup.RhoCpType
RhoCp <: AbstractArrayGroup

Array 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.array
  • rhocp1 = 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-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • RhoCp: New RhoCp array group with initialized arrays
source
EarthBox.ModelDataContainer.HeatEquationContainer.ArrayCollection.HeatResidualGroup.HeatResidualType
HeatResidual <: AbstractArrayGroup

Array group containing heat equation residual array.

Fields

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-direction
  • xnum::Int: Number of grid points in x-direction

Returns

  • HeatResidual: New HeatResidual array group with initialized arrays
source