Boundary Conditions
Boundary conditions for TMI.
TMI.getboundarycondition — Function
Get boundary condition by extracting from N-dimensional tracer and returning (N-1)-dimensional array
function getboundarycondition(field::Field,dim,dimval)::BoundaryCondition Get boundary condition by extracting from Field (i.e., 3D tracer)
Arguments
field::Field: 3D tracer field with metadata and griddim: dimension number (1,2,3) that the boundary plane has constant valuedimval: index number in dimensiondimthat defines boundary plane
Output
b::BoundaryCondition: boundary condition on a plane with metadata and grid
TMI.zerosurfaceboundary — Function
zerosurfaceboundary(γ::Grid,name=:none,longname="unknown",units="unknown") = zeros(3,surfaceindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.zeronorthboundary — Function
zeronorthboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(2,northindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.zeroeastboundary — Function
zeroeastboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(1,eastindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.zerosouthboundary — Function
zerosouthboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(2,southindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.zerowestboundary — Function
zerowestboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(1,westindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.onesurfaceboundary — Function
onesurfaceboundary(γ,name=:none,longname="unknown",units="unknown") = ones(3,surfaceindex(γ),γ,name,longname,units)::BoundaryCondition
TMI.getsurfaceboundary — Function
getsurfaceboundary(c::Field) = getboundarycondition(c,3,surfaceindex(c.γ))::BoundaryCondition
TMI.getnorthboundary — Function
getnorthboundary(c::Field) = getboundarycondition(c,2,northindex(c.γ))::BoundaryCondition
TMI.geteastboundary — Function
geteastboundary(c::Field) = getboundarycondition(c,1,eastindex(c.γ))::BoundaryCondition
TMI.getsouthboundary — Function
getsouthboundary(c::Field) = getboundarycondition(c,2,southindex(c.γ))::BoundaryCondition
TMI.getwestboundary — Function
getwestboundary(c::Field) = getboundarycondition(c,1,westindex(c.γ))::BoundaryCondition
TMI.setboundarycondition! — Function
function setboundarycondition!(d::Field,b::BoundaryCondition)
apply boundary condition to the equation constraintsArguments
d::Field, equation constraints (i.e., right hand side)b::BoundaryCondition
function setboundarycondition!(d::Field{T},b::NamedTuple{<:Any, NTuple{N,BoundaryCondition{T}}}) where {N, T <: Real}
set all boundary conditions in a Named TupleTMI.gsetboundarycondition — Function
function gsetboundarycondition(gd::Field{T},b::BoundaryCondition{T}) where T<: Real
ADJOINT: apply boundary condition to the equation constraintsArguments
d::Field, equation constraints (i.e., right hand side)b::BoundaryCondition
function gsetboundarycondition(gd::Field{T},b::BoundaryCondition{T}) where T<: Real
ADJOINT: apply boundary condition to the equation constraintsArguments
d::Field, equation constraints (i.e., right hand side)b::BoundaryCondition
TMI.adjustboundarycondition! — Function
function adjustboundarycondition!(b::Union{BoundaryCondition,NamedTuple},u::Union{BoundaryCondition,NamedTuple})
adjust all boundary conditions b that are described in u
warning: if u doesn't contain any boundary condition adjustments,
nothing will change.TMI.gadjustboundarycondition — Function
function gadjustboundarycondition(gb::BoundaryCondition{T},u::BoundaryCondition{T}) where T <: RealTMI.gadjustboundarycondition! — Function
function gadjustboundarycondition!(b::BoundaryCondition{T},u::BoundaryCondition{T}) where T <: Real
adjust the (one) boundary condition
Just copy the variable.
Keep this function so that calling functions can look alike.
Could probably combine with lower function, use Union type