Assemble

The assemble function aims to provide an ODEProblem encapsulating all the necessary information for modeling earthquake cycles. It will automatically generate caches based on given mesh sizes aiming to minimize allocation during solving. The full functionality of ODEProblem as well as solving interface can be viewed at documents of DifferentialEquations.jl.

Also, please checkout RecursiveArrayTools.jl for usage of ArrayPartition which is adopted by default for multiple variables in this package.

Public Interface

Quaycle.assembleMethod
assemble(gf::AbstractArray, p::RateStateQuasiDynamicProperty,
    u0::AbstractArray, tspan::NTuple{2};
    flf::FrictionLawForm=RForm(), se::StateEvolutionLaw=DieterichStateLaw(), kwargs...)

Assemble the ODEProblem for elastic fault.

Extra Arguments

  • gf::AbstractArray: green's function associated with fs.mesh and p.λ & p.μ
  • p::RateStateQuasiDynamicProperty: all system properties
  • u0::ArrayPartition: initial condition. By rule of order in this package:
    1. velocity
    2. state
  • tspan::NTuple: time span for simulation
  • flf::FrictionLawForm: form of friction law, either CForm or RForm
  • se::StateEvolutionLaw: state evolutional law, see StateEvolutionLaw
source
Quaycle.assembleMethod
assemble(gf::ViscoelasticCompositeGreensFunction, p::ViscoelasticMaxwellProperty,
    u0::ArrayPartition, tspan::NTuple{2};
    flf::FrictionLawForm=RForm(), se::StateEvolutionLaw=DieterichStateLaw(),)

Assemble the ODEProblem for elastic fault plus viscoelastic relaxation.

Arguments

  • gf::ViscoelasticCompositeGreensFunction: green's function associated with the composite space fas
  • p::ViscoelasticCompositeGreensFunction: all system properties
  • u0::ArrayPartition: initial condition. By rule of order in this package:
    1. velocity
    2. state
    3. strain
    4. stress
  • tspan::NTuple: time span for simulation
  • flf::FrictionLawForm: form of friction law, either CForm or RForm
  • se::StateEvolutionLaw: state evolutional law, see StateEvolutionLaw
source
Quaycle.assembleMethod
assemble(p::SingleDofRSFProperty, u0::AbstractArray, tspan::NTuple;
    flf::FrictionLawForm=CForm(), se::StateEvolutionLaw=DieterichStateLaw())

Assemble the ODEProblem for single degree of freedom system.

Arguments

  • p::SingleDofRSFProperty: all system properties
  • u0::AbstractArray: initial condition
  • tspan::NTuple: time span for simulation
  • flf::FrictionLawForm: form of friction law, either CForm or RForm
  • se::StateEvolutionLaw: state evolutional law, see StateEvolutionLaw
source

References

Rice, J. (1993). Spatio-temporal complexity of slip on a fault. Journal of Geophysical Research: Solid Earth, 98(B6), 9885–9907. https://doi.org/10.1029/93JB00191

Liu, Y., McGuire, J. J., & Behn, M. D. (2012). Frictional behavior of oceanic transform faults and its influence on earthquake characteristics. Journal of Geophysical Research: Solid Earth, 117(B4). https://doi.org/10.1029/2011JB009025

Barbot, S. (2018). Asthenosphere Flow Modulated by Megathrust Earthquake Cycles. Geophysical Research Letters, 45(12), 6018–6031. https://doi.org/10.1029/2018GL078197