List of all functions
Here an overview of all functions:
GeoModBox.DataFields
— TypeDataFields()
GeoModBox.Geometry
— TypeGeometry()
Structure to initialize the geometry of the model domain.
GeoModBox.GridSpacing
— TypeGridSpacing()
GeoModBox.Physics
— TypePhysics()
GeoModBox.TimeParameter
— TypeTimeParameter()
GeoModBox.Dani_Solution_vec!
— MethodDani_Solution_vec!(type,D,M,x,y,rad,mus_i,NC,NV)
GeoModBox.Scaling.Constants
— TypeConstants
GeoModBox.Scaling.ScaleParameters!
— MethodScaleParameters!(S,M,Δ,T,P,D)
GeoModBox.Scaling.ScalingConstants!
— MethodScalingConstants!(M,P)
GeoModBox.HeatEquation.OneD.AssembleMatrix1Dc!
— MethodAssembleMatrix1Dc!( κ, Δx, Δt, nc, BC, K )
Setup the coefficient matrix for the linear system of equations.
GeoModBox.HeatEquation.OneD.BackwardEuler1Dc!
— MethodBackwardEuler1Dc!( implicit, κ, Δx, Δt, nc, BC , K)
Solves the onedimensional heat diffusion equation assuming no internal heating and constant thermal parameters using an implicit, backward euler finite difference scheme.
The temperature is defined on central nodes and the heat flux on the vertices. Boundary conditions are currently limited to Dirichlet and Neumann. Using central temperature nodes requires external ghost nodes, which are used to define the boundary conditions.
implicit : Tuple, containing the current temperature array T0 and
the new temperature array T
κ : Diffusivity [ m²/s ]
Δt : Time step [ s ]
nc : Number of central nodes
Δx : Grid spacing [ m ]
BC : Tuple for the boundary condition
K : Coefficient matrix for linear system of equations
GeoModBox.HeatEquation.OneD.CNA1Dc!
— MethodCNA1Dc!( cna, κ, Δx, Δt, nc, BC, K1, K2 )
Solves the onedimensional heat diffusion equation assuming no internal heating and constant thermal parameters using Crank-Nicolson finite difference scheme.
The temperature is defined on central nodes and the heat flux on the vertices. Boundary conditions are currently limited to Dirichlet and Neumann. Using central temperature nodes requires external ghost nodes, which are used to define the boundary conditions.
cna : Tuple, containing the current temperature array T0 and
the new temperature array T
κ : Diffusivity [ m²/s ]
Δt : Time step [ s ]
nc : Number of central nodes
Δx : Grid spacing [ m ]
BC : Tuple for the boundary condition
K1 : Coefficient matrix for the unknow variables
K2 : Coefficient matrix for the know variables
GeoModBox.HeatEquation.OneD.ComputeResiduals1Dc!
— MethodComputeResiduals1Dc!( cna, κ, Δx, Δt, nc, BC, K1, K2 )
Computes the residual of the onedimensional heat diffusion equation assuming no internal heating and constant thermal parameters.
The temperature is defined on central nodes and the heat flux on the vertices. Boundary conditions are currently limited to Dirichlet and Neumann. Using central temperature nodes requires external ghost nodes, which are used to define the boundary conditions.
dc : Tuple, containing the current temperature array T,
the temperature array with ghost nodes T_ex,
the partial derivatives ∂T2∂x2, and the
residual R
κ : Diffusivity [ m²/s ]
Δx : Grid spacing [ m ]
Δt : Time step [ s ]
BC : Tuple for the boundary condition
GeoModBox.HeatEquation.OneD.ForwardEuler1D!
— MethodForwardEuler1D!( explicit, κ, Δx, Δt, nc, BC)
Solves the onedimensional heat diffusion equation assuming internal heating and variable thermal parameters using an explicit, forward euler finite difference scheme.
The temperature is defined on central nodes and the heat flux on the vertices. Boundary conditions are currently limited to Dirichlet and Neumann. Using central temperature nodes requires external ghost nodes, which are used to define the boundary conditions.
T : Tuple, containing the regular temperature array T and
array containing the ghost nodes T_ex
Py : Tuple, containing the thermal parameters ρ, k, cp, and H [ W/kg ]
Δt : Time step [ s ]
Δy : Grid spacing [ m ]
nc : Number of central nodes
BC : Tuple for the boundary condition
GeoModBox.HeatEquation.OneD.ForwardEuler1Dc!
— MethodForwardEuler1Dc!( explicit, κ, Δx, Δt, nc, BC)
Solves the onedimensional heat diffusion equation assuming no internal heating and constant thermal parameters using an explicit, forward euler finite difference scheme.
The temperature is defined on central nodes and the heat flux on the vertices. Boundary conditions are currently limited to Dirichlet and Neumann. Using central temperature nodes requires external ghost nodes, which are used to define the boundary conditions.
explicit : Tuple, containing the regular temperature array T and
array containing the ghost nodes T_ex
κ : Diffusivity [ m²/s ]
Δt : Time step [ s ]
nc : Number of central nodes
Δx : Grid spacing [ m ]
BC : Tuple for the boundary condition
GeoModBox.HeatEquation.TwoD.ADI2Dc!
— MethodADI2Dc!(T, κ, Δx, Δy, Δt, ρ, cp, NC, BC)
GeoModBox.HeatEquation.TwoD.AnalyticalSolution2D!
— MethodAnalyticalSolution!(Te, x, y, t)
Calls 2D analytical solution for a 2D diffusion problem:
Te : 2D matrix
x : x coordinate array
y : y coordinate array
t : time
Examples
julia> a = zeros(2,2); x = [0, 1]; y = [0, 1];
julia> AnalyticalSolution!(a, x, y, 0.0)
2×2 Matrix{Float64}:
100.0 6.04202e-67
6.04202e-67 3.6506e-135
GeoModBox.HeatEquation.TwoD.AssembleMatrix2D
— MethodAssembleMatrix2D(rho, cp, k, BC, Num, nc, Δ, Δt)
GeoModBox.HeatEquation.TwoD.BackwardEuler2Dc!
— MethodBackwardEuler2Dc!(D, κ, Δx, Δy, Δt, ρ, cp, NC, BC, rhs, K, Num)
GeoModBox.HeatEquation.TwoD.CNA2Dc!
— MethodCNA2Dc!(D, κ, Δx, Δy, Δt, ρ, cp, NC, BC, rhs, K1, K2, Num)
GeoModBox.HeatEquation.TwoD.ComputeResiduals2D!
— MethodComputeResiduals2D!(R, T, T_ex, T0, ∂T, q, ρ, Cp, k, BC, Δ, Δt)
GeoModBox.HeatEquation.TwoD.ForwardEuler2Dc!
— MethodForwardEuler2Dc!(D, κ, Δx, Δy, Δt, ρ, cp, NC, BC)
GeoModBox.HeatEquation.TwoD.Poisson2D!
— MethodPoisson2D!( T, Q, kx, ky, Δx, Δy, NC, BC, K, rhs, Num )
GeoModBox.HeatEquation.TwoD.Poisson2Dc!
— MethodPoisson2Dc!(D,NC,P,BC,Δ,K,rhs,Num)
GeoModBox.AdvectionEquation.OneD.RK4O1D!
— MethodRK4O1D!( x, Δt, vx, xmin, xmax )
GeoModBox.AdvectionEquation.OneD.lax1D!
— Methodlax1D!( A, vx, Δt, Δx )
GeoModBox.AdvectionEquation.OneD.semilag1D!
— Methodsemilag1D!( A, xc, vx, Δt, Δx )
GeoModBox.AdvectionEquation.OneD.slf1D!
— Methodslf1D!( A, Aold2, vx, Δt, Δx )
GeoModBox.AdvectionEquation.OneD.upwind1D!
— Methodupwind1D!( A, vx, Δt, Δx )
GeoModBox.AdvectionEquation.TwoD.semilagc2D!
— Methodsemilagc2D!()
GeoModBox.AdvectionEquation.TwoD.slfc2D!
— Methodslfc2D!
GeoModBox.AdvectionEquation.TwoD.upwindc2D!
— Methodupwindc2D!()
Using the velocity on the centroids!
GeoModBox.InitialCondition.IniPhase!
— MethodIniPhase!(type,D,M,x,y,NC;phase=0)
GeoModBox.InitialCondition.IniTemperature!
— MethodIniTemperature!(type,M,NC,D,x,y;Tb=1000,Ta=1200,Ampl=200,σ=0.05)
Function to setup an initial temperature condition for a two dimensional problem. The temperature is defined on the centroids of a regular finite difference grid.
type :
M :
NC :
Δ :
D :
x :
y :
Tb : Hintergrund Temperatur
Ta : Amplitude der Anomalie
σ : Breite der Gaussian Anomalie
Possible initial temperature conditions are:
1) Circle/elliptical anomaly
2) Gaussian anomaly
3) Block anomaly
GeoModBox.InitialCondition.IniVelocity!
— MethodIniVelocity!(type,D,NC,Δ,M,x,y)
GeoModBox.Tracers.OneD.Itp1D_Centers2Markers!
— MethodItp1D_Centers2Markers!( Tm, xm, Tc, xc, Δx, xmin )
GeoModBox.Tracers.OneD.Itp1D_Markers2Centers!
— MethodItp1D_Markers2Centers!( Tc, xc, Tm, xm, dx, xmin )
GeoModBox.Tracers.TwoD.Markers
— TypeMarkers()
GeoModBox.Tracers.TwoD.TMarkers
— TypeTMarkers()
GeoModBox.Tracers.TwoD.AdvectTracer2D
— MethodFromCtoM(Prop, Ma, x, y, Δ, NC)
GeoModBox.Tracers.TwoD.CountMPC
— MethodCountMPC(Ma,nmark,MPC,M,x,y,Δ,NC,NV,it)
GeoModBox.Tracers.TwoD.FromCtoM
— MethodFromCtoM(Prop, Ma, x, y, Δ, NC)
GeoModBox.Tracers.TwoD.IniTracer2D
— MethodIniTracer2D(nmx,nmy,Δ,M,NC,noise)
GeoModBox.Tracers.TwoD.Markers2Cells
— MethodMarkers2Cells(Ma,nmark,PG,weight,x,y,Δ,param)
GeoModBox.Tracers.TwoD.Markers2Vertices
— MethodMarkers2Vertices(Ma,nmark,PG,weight,x,y,Δ,param)
GeoModBox.Tracers.TwoD.VxFromVxNodes
— MethodVxFromVxNodes(Vx, k, Ma, x, y, Δ, NC, new)
GeoModBox.Tracers.TwoD.VxVyFromPrNodes
— MethodVxVyFromPrNodes(Vxp ,Vyp, k, Ma, x, y, Δ, NC )
GeoModBox.Tracers.TwoD.VyFromVyNodes
— MethodVyFromVyNodes(Vy, k, Ma, x, y, Δ, NC, new)
GeoModBox.MomentumEquation.OneD.AssembleStokesMatrix1D
— MethodAssembleStokesMatrix1D(nc, η, Δy, BC, K)
GeoModBox.MomentumEquation.OneD.ComputeStokesResiduals1D!
— MethodComputeStokesResiduals1D!( D, ∂P∂x, Δy, BC)
GeoModBox.MomentumEquation.OneD.Stokes_1D_direct
— MethodStokes_1D_direct(vₓ,η,Δy,nc,BC,K,rhs)
GeoModBox.MomentumEquation.TwoD.Assembly
— MethodAssembly(NC, NV, Δ, ηc, ηv, BC, Num)
GeoModBox.MomentumEquation.TwoD.Assemblyc
— MethodAssemblyc(NC, NV, Δ, η, BC, Num)
GeoModBox.MomentumEquation.TwoD.Residuals2D!
— MethodResiduals2D!(D,BC,ε,τ,divV,Δ,ηc,ηv,g,Fm,FPt)
GeoModBox.MomentumEquation.TwoD.Residuals2Dc!
— MethodResiduals2Dc!(D,BC,ε,τ,divV,Δ,η,g,Fm,FPt)
GeoModBox.MomentumEquation.TwoD.updaterhs
— Methodupdaterhs(NC, NV, Δ, ηc, ηv, ρ, g, BC, Num)
GeoModBox.MomentumEquation.TwoD.updaterhsc
— Methodupdaterhsc(NC, NV, Δ, η, ρ, g, BC, Num)