1D Strength envelope

We provide a routine for computing a 1D strength envelope and the tools for setting up a temperature structure and lithostatic pressure profile.

GeoParams.LinTempType
LinTemp(Ttop=0, Tbot=1000)

Sets a linear temperature structure from top to bottom

Parameters:

  • Ttop: the value @ the top
  • Tbot: the value @ the bottom
source
GeoParams.HalfspaceCoolTempType
HalfspaceCoolTemp(Tsurface=0, Tmantle=1350, Age=60, Adiabat=0)

Sets a halfspace temperature structure in plate

Parameters:

  • Tsurface: surface temperature [C]
  • Tmantle: mantle temperature [C]
  • Age: Thermal Age of plate [Myrs]
  • Adiabat: Mantle Adiabat [K/km]
source
GeoParams.CompTempStructFunction
CompTempStruct(Z, s::AbstractTempStruct)

Returns a temperature vector that matches the coordinate vector and temperature structure that were passed in

Parameters:

  • Z: vector with depth coordinates
  • s: Temperature structure (CostTemp, LinTemp, HalfspaceCoolTemp)
source
GeoParams.LithPresFunction
LithPres(MatParam, Phases, ρ, T, dz, g)

Iteratively solves a 1D lithostatic pressure profile (compatible with temperature- and pressure-dependent densities)

Parameters:

  • MatParam: a tuple of materials (including the following properties: Phase, Density)
  • Phases: vector with the distribution of phases
  • ρ: density vector for initial guess(can be zeros)
  • T: temperature vector
  • dz: grid spacing
  • g: gravitational acceleration
source
GeoParams.StrengthEnvelopeCompFunction
StrengthEnvelopeComp(MatParam::NTuple{N, AbstractMaterialParamsStruct}, Thickness::Vector{U}, TempType::AbstractTempStruct=LinTemp(0C, 800C), ε=1e-15/s, nz::Int64=101) where {N, U}

Calculates a 1D strength envelope. Pressure used for Drucker Prager plasticity is lithostatic. To visualize the results in a GUI, use StrengthEnvelopePlot.

Parameters:

  • MatParam: a tuple of materials (including the following properties: Phase, Density, CreepLaws, Plasticity)
  • Thickness: a vector listing the thicknesses of the respective layers (should carry units)
  • TempType: the type of temperature profile (ConstTemp(), LinTemp(), HalfspaceCoolTemp())
  • ε: background strainrate
  • nz: optional argument controlling the number of points along the profile (default = 101)

Example:

julia> using GLMakie
julia> MatParam = (SetMaterialParams(Name="UC", Phase=1, Density=ConstantDensity(ρ=2700kg/m^3), CreepLaws = SetDislocationCreep("Wet Quartzite | Ueda et al. (2008)"), Plasticity = DruckerPrager(ϕ=30.0, C=10MPa)),
                   SetMaterialParams(Name="MC", Phase=2, Density=Density=ConstantDensity(ρ=2900kg/m^3), CreepLaws = SetDislocationCreep("Plagioclase An75 | Ji and Zhao (1993)"), Plasticity = DruckerPrager(ϕ=20.0, C=10MPa)),
                   SetMaterialParams(Name="LC", Phase=3, Density=PT_Density(ρ0=2900kg/m^3, α=3e-5/K, β=1e-10/Pa), CreepLaws = SetDislocationCreep("Maryland strong diabase | Mackwell et al. (1998)"), Plasticity = DruckerPrager(ϕ=30.0, C=10MPa)));
julia> Thickness = [15,10,15]*km;

julia> StrengthEnvelopeComp(MatParam, Thickness, LinTemp(), ε=1e-15/s)
source
GeoParams.StrengthEnvelopePlotFunction
StrengthEnvelopePlot(MatParam, Thickness; TempType, nz)

Requires GLMakie

Creates a GUI that plots a 1D strength envelope. In the GUI, temperature profile and strain rate can be adjusted. The Drucker-Prager plasticity uses lithostatic pressure.

Parameters:

  • MatParam: a tuple of materials (including the following properties: Phase, Density, CreepLaws, Plasticity)
  • Thickness: a vector listing the thicknesses of the respective layers (should carry units)
  • TempType: the type of temperature profile (LinTemp=default, HalfspaceCoolTemp, ConstTemp)
  • nz: optional argument controlling the number of points along the profile (default = 101)

Example:

julia> using GLMakie
julia> MatParam = (SetMaterialParams(Name="UC", Phase=1, Density=ConstantDensity(ρ=2700kg/m^3), CreepLaws = SetDislocationCreep("Wet Quartzite | Ueda et al. (2008)"), Plasticity = DruckerPrager(ϕ=30.0, C=10MPa)),
                   SetMaterialParams(Name="MC", Phase=2, Density=Density=ConstantDensity(ρ=2900kg/m^3), CreepLaws = SetDislocationCreep("Plagioclase An75 | Ji and Zhao (1993)"), Plasticity = DruckerPrager(ϕ=20.0, C=10MPa)),
                   SetMaterialParams(Name="LC", Phase=3, Density=PT_Density(ρ0=2900kg/m^3, α=3e-5/K, β=1e-10/Pa), CreepLaws = SetDislocationCreep("Maryland strong diabase | Mackwell et al. (1998)"), Plasticity = DruckerPrager(ϕ=30.0, C=10MPa)));
julia> Thickness = [15,10,15]*km;

julia> StrengthEnvelopePlot(MatParam, Thickness, LinTemp())
source

XMasTree