ExactFieldSolutions.Diffusion1D_GaussianMethod
sol = Diffusion1D_Gaussian(x; params)

Evaluates the manufactured solution of an initial 2D Gaussian anomaly:

x      : is the coordinate and time vector, x[1] is space and x[2] is time 
params : optional parameter array, default: (T0 = 100., K = 1e-6, σ = 0.1 )

and returns:

sol    : tuple containing the solution fields u, ∇u and the source term s = -Δu

Examples

julia> Diffusion1D_Gaussian([0 0])
(u = 100.0, ∇u = [0.0 0.0 -0.06283185307179585], s = 0.0)
julia> params = (T0 = 1., K = 1.0, σ = 0.1 ) 
(T0 = 1.0, K = 1.0, σ = 0.1)
julia> Diffusion1D_Gaussian([0 0])
(u = 1.0, ∇u = [0.0 -99.99999999999999], s = 0.0)
ExactFieldSolutions.Diffusion2D_GaussianMethod
sol = Diffusion2D_Gaussian(x; params)

Evaluates the manufactured solution of an initial 2D Gaussian anomaly:

x      : is the coordinate and time vector, x[1:2] is space and x[3] is time
params : optional parameter array

and returns:

sol    : tuple containing the solution fields u, ∇u and the source term s = -Δu

Examples

julia> Diffusion2D_Gaussian([0 0 0])
(u = 100.0, ∇u = [0.0 0.0 -0.06283185307179585], s = 0.0)
ExactFieldSolutions.Elasticity2D_HoleMethod
sol = Elasticity2D_Hole(x; params)

Evaluates the solution for an elastic medium with a circular hole under far field stress (derived from Kirsch solution, Jaeger & Cook etc...):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields u, ∇u and the source term s = -Δu

Examples

julia> Elasticity2D_Hole([0,0])
(p = -0.01, τ = [0.0 -0.0; -0.0 -0.0])
ExactFieldSolutions.Poisson2D_Sevilla2018Method
sol = Poisson2D_Sevilla2018(x; params)

Evaluates the manufactured solution of Sevilla et al. (2018):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields u, ∇u and the source term s = -Δu

Examples

julia> Poisson2D_Sevilla2018( [0, 0] )
(u = 1.3498588075760032, ∇u = [0.6884279918637617, -0.8369124606971221], s = 11.298993148814933)
ExactFieldSolutions.Poisson3D_Sevilla2018Method
sol = Poisson3D_Sevilla2018(x; params)

Evaluates the manufactured solution of Sevilla et al. (2018):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields u, ∇u and the source term s = -Δu

Examples

julia> Poisson3D_Sevilla2018( [0; 0; 0])
(u = 1.3498588075760032, ∇u = [0.6884279918637617, -0.8369124606971221, 0.2429745853636806], s = 12.425585309617865)
ExactFieldSolutions.Stokes2D_Donea2003Method
sol = Stokes2D_Donea2003(x; params)

Evaluates a manufactured solution from Donea & Huerta (2003):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields p (pressure), V (velocity vector), L (velocity gratdient tensor), ε̇ (deviatoric strain rate tensor) and τ (deviatoric stress tensor)

Examples

julia> Stokes2D_Donea2003([1/4;1/4])
(p = 0.1875, V = [0.006591796875, -0.006591796875], L = [0.03515625 -0.0087890625; 0.0087890625 -0.03515625], ε̇ = [0.03515625 0.0; 0.0 -0.03515625], τ = [0.0703125 0.0; 0.0 -0.0703125])
ExactFieldSolutions.Stokes2D_Moulas2021Method
sol = Stokes2D_Moulas2021(x; params)

Evaluates the analytical solution of Moulas et al. (2021):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields p (pressure), V (velocity vector), L (velocity gratdient tensor), ε̇ (deviatoric strain rate tensor) and τ (deviatoric stress tensor)

Examples

julia> Stokes2D_Moulas2021( [1, 1] )
(p = 12.53061977287755, V = [-0.010899335607440476, 0.02773892842336736], L = [0.0028483768768197255 -0.0028483768768197255; 0.0028483768768197246 -0.0028483768768197246], ε̇ = [0.0028483768768197255 -4.336808689942018e-19; -4.336808689942018e-19 -0.0028483768768197246], τ = [5.696753753639451 -8.673617379884035e-16; -8.673617379884035e-16 -5.696753753639449], η = 1000.0)
ExactFieldSolutions.Stokes2D_Schmid2003Method
sol = Stokes2D_Schmid2003(x; params)

Evaluates the analytical solution of Schmid & Podladchikov (2003):

x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields p (pressure), V (velocity vector), L (velocity gratdient tensor), ε̇ (deviatoric strain rate tensor) and τ (deviatoric stress tensor)

Examples

julia> Stokes2D_Schmid2003( [0, 0] )
(p = 0.0, V = [0.0, 0.0], L = [-0.019801980198019802 0.0; 0.0 0.019801980198019802], ε̇ = [-0.019801980198019802 0.0; 0.0 0.019801980198019802], τ = [-3.9603960396039604 0.0; 0.0 3.9603960396039604])
ExactFieldSolutions.Stokes2D_SolCx_Zhong1996Method
sol = Stokes2D_SolCx_Zhong1996(x; params)  

Evaluates the manufactured solution of [Zhong et al., (1996)](https://booksite.elsevier.com/brochures/geophysics/PDFs/00118.pdf). 
Analytical solution adapted from Underworld (https://github.com/underworldcode, LGPL-3 license).
The solution requires the following expressions the density and viscosity fields: 
ρ = sin(π * x[2]) * cos(π * x[1]) 
η = if 0 ≤ x ≤ 0.5
    A
elseif 0.5 < x ≤ 1
    B
end

Input parameters are:
x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields p (pressure) and V (velocity vector)

Examples

julia> Stokes2D_SolCx_Zhong1996( [0; 0] )
(V = [0.0, 0.0], p = -0.18450665902742763)
ExactFieldSolutions.Stokes2D_SolKz_Zhong1996Method
sol = Stokes2D_SolKz_Zhong1996(x; params)  

Evaluates the manufactured solution of [Zhong et al., (1996)](https://booksite.elsevier.com/brochures/geophysics/PDFs/00118.pdf). 
Analytical solution adapted from Underworld (https://github.com/underworldcode, LGPL-3 license).
The solution requires the following expressions the density and viscosity fields: 
ρ = -σ*sin(km*x[2])*cos(kn*x[1]) 
η = exp(2*B*x[2])

Input parameters are:
x      : is the coordinate vector 
params : optional parameter array

and returns:

sol    : tuple containing the solution fields p (pressure), V (velocity vector), ρ (density) and η (viscosity)

Examples

julia> Stokes2D_SolKz_Zhong1996([0; 0])
(p = -0.017494712727797308, V = [0.0, 0.0], ρ = 0.0, η = 1.0)