Skip to content

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.ConstTemp Type
julia
ConstTemp(T=1000)

Sets a constant temperature inside the box

Parameters:

  • T : the value
source
GeoParams.LinTemp Type
julia
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.HalfspaceCoolTemp Type
julia
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 [Myr]

  • Adiabat: Mantle Adiabat [K/km]

source
GeoParams.CompTempStruct Function
julia
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.LithPres Function
julia
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.StrengthEnvelopeComp Function
julia
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
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.StrengthEnvelopePlot Function
julia
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
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