Melting

EarthBox.ModelDataContainer.MeltingContainer.MeltingType
Melting <: CollectionContainer

Data structure containing parameter and array objects for melting and melt extraction.

Fields

  • parameters::Parameters: Parameter groups for melting options and configuration
  • arrays::Arrays: Array groups for melt extraction tracking

Constructor

Melting()::Melting

Create a new Melting collection with default values.

source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.ParametersType
Parameters <: AbstractParameterCollection

Parameter collection for melting and melt extraction processes.

Fields

  • options::Options: Melting model on/off switches
  • melting_material_ids::MeltingMaterialIDs: Material IDs for melting processes
  • rheology::Rheology: Rheological properties of molten rock
  • extrusion::Extrusion: Parameters for melt extrusion
  • extraction::Extraction: Parameters for melt extraction

Constructor

Parameters()

Create a new Parameters collection with default melting model values.

source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.OptionsGroup.OptionsType
Options <: AbstractParameterGroup

Parameter group for melting model on/off switches.

Fields

  • iuse_melting::ParameterInt: Integer flag that activates melt model with melt fraction calculation: 0 off; 1 on
  • iuse_melt_viscosity::ParameterInt: Integer flag that activates melt viscosity model where the viscosity of partially molten rocks is set to melt viscosity if melt fraction exceeds 10%: 0 off; 1 on
  • iuse_melt_thermal_props::ParameterInt: Integer flag that activates melt to impact thermal properties including density, heat capacity in the term rhocp and thermal expansivity in the adiabatic heating term alphaT: 0 off; 1 on
  • iuse_extraction::ParameterInt: Integer flag that activates melt extraction model (0 = off, 1 = on). Extraction is required for intrusive and extrusive processes.
  • iuse_gabbroic_fractionation::ParameterInt: Integer flag that activates gabbroic fractionation model: 0 off; 1 on. This model is used to approximate the effects of rapid fractionation in sills that produce layered gabbroic magma. This is accomplished by transforming gabbroic magma to a fractionated gabbroic magma composition once magma enters the crustal domain at the Moho.
  • iuse_shallow_mantle_injection::ParameterInt: Integer flag that activates shallow mantle injection model: 0 off; 1 on. This model is used to inject mantle-derived magma at the shallowest part of the mantle domain. If this option is False then mantle-derived magma is injected at the shallowest location of the partially molten mantle domain. This option approximates rapid ascent of melt from the mantle to the crustal domain via dykes and channelized melt networks.
  • iuse_random_injection_subdomain::ParameterInt: Integer flag that activates the random injection model (0 = off, 1 = on) whereby the characteristic injection width (characteristicinjectionwidth) is divided into subdomains (numberofinjection_subdomains) that are selected using a uniform distribution. The shallowest mantle marker within a selected subdomain is converted into magma. If this option is False then the shallowest mantle marker within the injection width is converted into magma.
  • iuse_normal_injection_subdomain::ParameterInt: Integer flag that activates the normal injection model (0 = off, 1 = on) whereby the characteristic injection width (characteristicinjectionwidth) is divided into subdomains (numberofinjection_subdomains) that are selected using a normal distribution. The shallowest mantle marker within a selected subdomain is converted into magma. If this option is False then a uniform distribution is used to select the subdomain.
  • iuse_depletion_density::ParameterInt: Integer flag that activate depletion density model (0 = off, 1 = on) whereby the density of rocks that have undergone melt extraction is modified to account for the partitioning of heavy elements into the melt.
  • iuse_exponential_viscosity_reduction::ParameterInt: Integer flag that activates exponential viscosity reduction for partially molten rocks whereby the effective viscosity of partially molten rocks is reduced exponentially with extractable melt fraction for mantle rocks that are impacted bymelt extraction and melt fraction for crustal rocks that are currently not impacted by melt extraction (0 = off, 1 = on). If this parameter is set to 0, the effective viscosity of partially molten rocks is set to melt viscosity if melt fraction exceeds 10%.
  • obj_list::Vector{ParameterInt}: List of parameter objects

Nested Dot Access

  • iuse_melting = model.melting.parameters.options.iuse_melting.value
  • iuse_melt_viscosity = model.melting.parameters.options.iuse_melt_viscosity.value
  • iuse_melt_thermal_props = model.melting.parameters.options.iuse_melt_thermal_props.value
  • iuse_extraction = model.melting.parameters.options.iuse_extraction.value
  • iuse_gabbroic_fractionation = model.melting.parameters.options.iuse_gabbroic_fractionation.value
  • iuse_shallow_mantle_injection = model.melting.parameters.options.iuse_shallow_mantle_injection.value
  • iuse_random_injection_subdomain = model.melting.parameters.options.iuse_random_injection_subdomain.value
  • iuse_normal_injection_subdomain = model.melting.parameters.options.iuse_normal_injection_subdomain.value
  • iuse_depletion_density = model.melting.parameters.options.iuse_depletion_density.value
  • iuse_exponential_viscosity_reduction = model.melting.parameters.options.iuse_exponential_viscosity_reduction.value

Constructor

Options()

Returns

  • Options: New Options parameter group with initialized values
source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.MeltingMaterialIDsGroup.MeltingMaterialIDsType
MeltingMaterialIDs <: AbstractParameterGroup

Parameter group for material IDs used in melting processes.

Fields

  • ipmf1::ParameterInt: Material ID of the mantle
  • ipmf2::ParameterInt: Material ID of the mantle
  • ipmf3::ParameterInt: Material ID of the mantle
  • ipmf4::ParameterInt: Material ID of the mantle
  • ipmf_molten::ParameterInt: Material ID of molten mantle
  • ipmf_solid::ParameterInt: Material ID of solidified mantle
  • ipmf_molten_vol::ParameterInt: Material ID of molten extruded mantle
  • ipmf_solid_vol::ParameterInt: Material ID of solidified extruded molten mantle
  • obj_list::Vector{ParameterInt}: List of parameter objects

Nested Dot Access

  • ipmf1 = model.melting.parameters.melting_material_ids.ipmf1.value
  • ipmf2 = model.melting.parameters.melting_material_ids.ipmf2.value
  • ipmf3 = model.melting.parameters.melting_material_ids.ipmf3.value
  • ipmf4 = model.melting.parameters.melting_material_ids.ipmf4.value
  • ipmf_molten = model.melting.parameters.melting_material_ids.ipmf_molten.value
  • ipmf_solid = model.melting.parameters.melting_material_ids.ipmf_solid.value
  • ipmf_molten_vol = model.melting.parameters.melting_material_ids.ipmf_molten_vol.value
  • ipmf_solid_vol = model.melting.parameters.melting_material_ids.ipmf_solid_vol.value

Constructor

MeltingMaterialIDs()

Returns

  • MeltingMaterialIDs: New MeltingMaterialIDs parameter group with initialized values
source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.RheologyGroup.RheologyType
Rheology <: AbstractParameterGroup

Parameter group for rheological properties of molten rock.

Fields

  • viscosity_melt::ParameterFloat: Viscosity of molten rock in Pa.s
  • obj_list::Vector{ParameterFloat}: List of parameter objects

Nested Dot Access

  • viscosity_melt = model.melting.parameters.rheology.viscosity_melt.value

Constructor

Rheology()

Returns

  • Rheology: New Rheology parameter group with initialized values
source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.ExtrusionGroup.ExtrusionType
Extrusion <: AbstractParameterGroup

Parameter group for melt extrusion model parameters.

Fields

  • iuse_extrusion::ParameterInt: Integer flag that activates melt extrusion model: 0 off; 1 on
  • extrusion_volume_factor::ParameterFloat: Minimum value for the extrusion volume factor. The volume of lava produced at the surface of the model is calculated as the product of the extrusion volume factor and the total volume of magma produced during a time step. The extrusion volume factor changes as a function of the characteristic magmatic crust height. The characteristic magmatic crust height is the height of new crust that would be formed if all the melt in the mantle was extracted and emplaced at the top of the model in a column with a width equal to the full extension velocity times the time step. This minimum value is used when the magmatic crust height is below the minimum characteristic magmatic crust height. A linear model is used to define the extrusion volume factor when the calculated magmatic crust height is between the minimum and maximum characteristic magmatic crust height.
  • extrusion_volume_factor_max::ParameterFloat: Maximum value for the extrusion volume factor. This maximum value is reached when the characteristic magmatic crust height is equal to the maximum characteristic magmatic crust height.
  • characteristic_magmatic_crust_height::ParameterFloat: Characteristic height of magmatic crust in meters calculated based on the total volume of magma produced during a given time step and the full extensional velocity. The characteristic magmatic crust height is the height of new crust that would be formed if all the melt in the mantle was extracted and emplaced at the top of the model in a column with a width equal to the full extension velocity times the time step.
  • characteristic_magmatic_crust_height_min::ParameterFloat: Minimum reference value for the characteristic magmatic crust height in meters. When the calculated characteristic magmatic crust height is below this value the extrusion volume factor is set to the minimum value (i.e. extrusion_volume_factor).
  • characteristic_magmatic_crust_height_max::ParameterFloat: Maximum reference value for the characteristic magmatic crust height in meters. When the calculated characteristic magmatic crust height is above this value the extrusion volume factor is set to the maximum value (i.e. extrusion_volume_factor_max).
  • characteristic_flow_length_subaerial::ParameterFloat: Characteristic flow length for subaerial eruptions in meters. Flow distance of basaltic flows on land may be hundreds of kilometers (e.g. Ginkgo flow of the Frenchman Springs Member of the Columbia River Basalts has a flow length of 500 km).
  • characteristic_flow_length_submarine::ParameterFloat: Characteristic flow length for submarine eruptions in meters.
  • residual_lava_thickness_subaerial::ParameterFloat: Residual lava thickness for subaerial eruptions in meters
  • residual_lava_thickness_submarine::ParameterFloat: Residual lava thickness for submarine eruptions in meters
  • iuse_random_eruption_location::ParameterInt: Integer flag that activates random eruption location: 0 off; 1 on
  • iuse_normal_eruption_location::ParameterInt: Integer flag that activates normal distribution for eruption location: 0 off; 1 on
  • decimation_factor::ParameterInt: Topography grid decimation factor for 1D lava flow model grid
  • initial_magma_flush_steps::ParameterInt: Number of time steps for initial magma flush
  • magma_flush_factor::ParameterFloat: Factor that determines the amount of magma to flush for flush during magma flush time steps
  • width_eruption_domain_fixed::ParameterFloat: Fixed width of the eruption domain in meters. If this is set to zero, the width of the eruption domain is determined by the width of the gabbroic molten zone including normal and layered gabbro.
  • width_eruption_domain_fixed_max::ParameterFloat: Maximum width of the eruption domain. If this is set to zero, the width of the eruption domain is determined by the width of the gabbroic molten zone including normal and layered gabbro.
  • porosity_initial_lava_flow::ParameterFloat: Initial porosity of lava flow in fraction used to decompact extruded gabbroic magma to account for vesicles. This parameter is not used to compact lava flows during burial. Instead, compaction properties associated with the material type are used. This allows for the decompaction of lava flows during eruption to account for porosity from vesicles and the preservation of thickness during burial due to chemical compaction and rigidity of the basalt matrix.
  • decay_depth_lava_flow::ParameterFloat: Depth at which the porosity of lava flow decays to zero in meters. This parameter is used to compact lava flows during burial. Instead, compaction properties associated with the material type are used. This allows for the decompaction of lava flows during eruption to account for porosity from vesicles and the preservation of thickness during burial due to chemical compaction and rigidity of the basalt matrix.
  • time_of_next_eruption_myr::ParameterFloat: Time of next eruption in Myr
  • eruption_interval_yr::ParameterFloat: Eruption interval in years
  • iuse_eruption_interval::ParameterInt: Integer flag that activates eruption interval: 0 off; 1 on
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • iuse_extrusion = model.melting.parameters.extrusion.iuse_extrusion.value
  • extrusion_volume_factor = model.melting.parameters.extrusion.extrusion_volume_factor.value
  • extrusion_volume_factor_max = model.melting.parameters.extrusion.extrusion_volume_factor_max.value
  • characteristic_magmatic_crust_height = model.melting.parameters.extrusion.characteristic_magmatic_crust_height.value
  • characteristic_magmatic_crust_height_min = model.melting.parameters.extrusion.characteristic_magmatic_crust_height_min.value
  • characteristic_magmatic_crust_height_max = model.melting.parameters.extrusion.characteristic_magmatic_crust_height_max.value
  • characteristic_flow_length_subaerial = model.melting.parameters.extrusion.characteristic_flow_length_subaerial.value
  • characteristic_flow_length_submarine = model.melting.parameters.extrusion.characteristic_flow_length_submarine.value
  • residual_lava_thickness_subaerial = model.melting.parameters.extrusion.residual_lava_thickness_subaerial.value
  • residual_lava_thickness_submarine = model.melting.parameters.extrusion.residual_lava_thickness_submarine.value
  • iuse_random_eruption_location = model.melting.parameters.extrusion.iuse_random_eruption_location.value
  • iuse_normal_eruption_location = model.melting.parameters.extrusion.iuse_normal_eruption_location.value
  • decimation_factor = model.melting.parameters.extrusion.decimation_factor.value
  • initial_magma_flush_steps = model.melting.parameters.extrusion.initial_magma_flush_steps.value
  • magma_flush_factor = model.melting.parameters.extrusion.magma_flush_factor.value
  • width_eruption_domain_fixed = model.melting.parameters.extrusion.width_eruption_domain_fixed.value
  • width_eruption_domain_fixed_max = model.melting.parameters.extrusion.width_eruption_domain_fixed_max.value
  • porosity_initial_lava_flow = model.melting.parameters.extrusion.porosity_initial_lava_flow.value
  • decay_depth_lava_flow = model.melting.parameters.extrusion.decay_depth_lava_flow.value
  • time_of_next_eruption_myr = model.melting.parameters.extrusion.time_of_next_eruption_myr.value
  • eruption_interval_yr = model.melting.parameters.extrusion.eruption_interval_yr.value
  • iuse_eruption_interval = model.melting.parameters.extrusion.iuse_eruption_interval.value

Constructor

Extrusion()

Create a new Extrusion parameter group with default values.

Returns

  • Extrusion: New Extrusion parameter group with initialized values
source
EarthBox.ModelDataContainer.MeltingContainer.ParameterCollection.ExtractionGroup.ExtractionType
Extraction <: AbstractParameterGroup

Parameter group for melt extraction model parameters.

Fields

  • melt_residual::ParameterFloat: Sum of residual fractional melt particles
  • ext_vol::ParameterFloat: Volume of extruded material in m^3
  • xmid_mol::ParameterFloat: x-location of the molten mantle zone in meters
  • ytop_mol::ParameterFloat: y-location of the top of the molten mantle zone in meters
  • width_mol::ParameterFloat: Width of the molten mantle zone in meters
  • ndrainage_basin::ParameterInt: Number of drainage basins in the model
  • smoothing_radius_drainage::ParameterFloat: Smoothing radius (meters) used to smooth the top of the partially molten mantle domain before calculating local maxima used to define migration domains for melt extraction.
  • characteristic_injection_width::ParameterFloat: Characteristic width (meters) of magma injection into the shallow mantle above the local maximum of the mantle partial melt domain. This parameters is used only if useshallowmantle_injection is True. Note that the actual injection width may be increased if the height of injected magma exceeds the magma height limit.
  • magma_height_limit::ParameterFloat: Maximum height (meters) of magma that can be injected into the mantle domain. This is used to limit the height of magma bodies that are injected at the top of the mantle domain by increasing the injection width.
  • fractionation_threshold_limit::ParameterFloat: Threshold limit (meters) for gabbroic fractionation. This is the distance from Moho where the composition of gabbroic magma is changed to fractionated or layered gabbroic magma to simulate the effects of rapid fractionation in sills and the downward flow of the gabbro glacier. This change in composition involves an increase in the solidus leading to regions of partially molten fractioned gabbro as opposed to large regions of pure gabbroic magma inconsistent with geophysical observations.
  • emplacement_temperature::ParameterFloat: Temperature at which magma is emplaced in Kelvin. This parameter is currently not used in the code. Instead a default value of 1473.0 K is used.See function transform_marker_to_magma for details.
  • number_of_injection_subdomains::ParameterInt: The number used to divide the characteristic injection width into separate domains that are selected using a normal distribution if iuse_random_injection_subdomain = 1.
  • maximum_shallow_injection_depth::ParameterFloat: Maximum submud depth (meters) for normal shallow mantle injection. If the local maximum of the partially molten zone is deeper than this value then the injection width is increased by a factor of 5. THIS IS CURRENTLY TURNED OFF IN CODE. See function extractpartialmeltandmakemagmabody for details.
  • extraction_fraction::ParameterFloat: Fraction of extracted melt that is extracted from the partially molten zone. The remaining melt is left in the partially molten zone and refertalizes the mantle.
  • smoothing_radius_fractionation::ParameterFloat: Smoothing radius (meters) used to smooth the oceanic Moho for the gabbroic fractionation model whereby fractionation occurs based on distance to Moho. Smoothing the Moho avoids spikes associated with residual gabbroic particles in the mantle associated with magmatic crust thinning.
  • mantle_search_width::ParameterFloat: Width (meters) of the mantle domain used to search for the shallowest mantle marker in a subset of the model domain to improve computational efficiency. This parameter is used only if useshallowmantle_injection is True and may need to be adjusted depending on the characteristic injection width. Adjustments should be made to ensure that the search domain is equal to or larger than the injection domain.
  • ndrainage_basin_old::ParameterInt: Old number of drainage basins
  • obj_list::Vector{Union{ParameterFloat, ParameterInt}}: List of parameter objects

Nested Dot Access

  • melt_residual = model.melting.parameters.extraction.melt_residual.value
  • ext_vol = model.melting.parameters.extraction.ext_vol.value
  • xmid_mol = model.melting.parameters.extraction.xmid_mol.value
  • ytop_mol = model.melting.parameters.extraction.ytop_mol.value
  • width_mol = model.melting.parameters.extraction.width_mol.value
  • ndrainage_basin = model.melting.parameters.extraction.ndrainage_basin.value
  • smoothing_radius_drainage = model.melting.parameters.extraction.smoothing_radius_drainage.value
  • characteristic_injection_width = model.melting.parameters.extraction.characteristic_injection_width.value
  • magma_height_limit = model.melting.parameters.extraction.magma_height_limit.value
  • fractionation_threshold_limit = model.melting.parameters.extraction.fractionation_threshold_limit.value
  • emplacement_temperature = model.melting.parameters.extraction.emplacement_temperature.value
  • number_of_injection_subdomains = model.melting.parameters.extraction.number_of_injection_subdomains.value
  • maximum_shallow_injection_depth = model.melting.parameters.extraction.maximum_shallow_injection_depth.value
  • extraction_fraction = model.melting.parameters.extraction.extraction_fraction.value
  • smoothing_radius_fractionation = model.melting.parameters.extraction.smoothing_radius_fractionation.value
  • mantle_search_width = model.melting.parameters.extraction.mantle_search_width.value
  • ndrainage_basin_old = model.melting.parameters.extraction.ndrainage_basin_old.value

Constructor

Extraction()

Returns

  • Extraction: New Extraction parameter group with initialized values
source
EarthBox.ModelDataContainer.MeltingContainer.ArrayCollection.ExtractionGroup.ExtractionType
Extraction <: AbstractArrayGroup

Array group containing drainage basin tracking arrays for melt extraction.

Fields

  • xstart_drainage::GridArray1DState: (nmax_basin) : Current x-locations in meters of the start of the drainage area. The drainage area is the region where the melt migrates to the shallowest position.
  • xend_drainage::GridArray1DState: (nmax_basin) : Current x-locations in meters of the end of the drainage area. The drainage area is the region where the melt migrates to the shallowest position.
  • melt_residuals::GridArray1DState: (nmax_basin) : Residual melt volume in m^3 remaining in the extrusion volume after the melt has been extracted in drainage basin.
  • extrusion_volumes::GridArray1DState: (nmax_basin) : Volume of extracted melt in m^3 that will be extruded to surface.
  • xmid_molten_zones::GridArray1DState: (nmax_basin) : X-locations in meters of the midpoints of the molten region.
  • ytop_molten_zones::GridArray1DState: (nmax_basin) : Y-locations in meters of the top of the molten region.
  • width_molten_zones::GridArray1DState: (nmax_basin) : Width of the molten region in drainage basin in meters.
  • avg_shallow_partial_melt_xcoors::GridArray1DState: (nmax_basin) : Average x-coordinates of the shallowest partial melt marker in drainage basins in meters.
  • avg_shallow_partial_melt_ycoors::GridArray1DState: (nmax_basin) : Average y-coordinates of the shallowest partial melt marker in drainage basins in meters.
  • xstart_drainage_o::GridArray1DState: (nmax_basin) : Old x-locations of the start of the drainage area. The drainage area is the region where the melt migrates to the shallowest position in meters.
  • xend_drainage_o::GridArray1DState: (nmax_basin) : Old x-locations of the end of the drainage area. The drainage area is the region where the melt migrates to the shallowest position in meters.

Nested Dot Access

  • xstart_drainage = model.melting.arrays.extraction.xstart_drainage.array
  • xend_drainage = model.melting.arrays.extraction.xend_drainage.array
  • melt_residuals = model.melting.arrays.extraction.melt_residuals.array
  • extrusion_volumes = model.melting.arrays.extraction.extrusion_volumes.array
  • xmid_molten_zones = model.melting.arrays.extraction.xmid_molten_zones.array
  • ytop_molten_zones = model.melting.arrays.extraction.ytop_molten_zones.array
  • width_molten_zones = model.melting.arrays.extraction.width_molten_zones.array
  • avg_shallow_partial_melt_xcoors = model.melting.arrays.extraction.avg_shallow_partial_melt_xcoors.array
  • avg_shallow_partial_melt_ycoors = model.melting.arrays.extraction.avg_shallow_partial_melt_ycoors.array
  • xstart_drainage_o = model.melting.arrays.extraction.xstart_drainage_o.array
  • xend_drainage_o = model.melting.arrays.extraction.xend_drainage_o.array

Constructor

Extraction()

Create a new Extraction array group with default drainage basin arrays.

Returns

  • Extraction: New Extraction array group with initialized arrays
source