Boundary Conditions

Boundary conditions for TMI.

TMI.getboundarycondition — Function

Get boundary condition by extracting from N-dimensional tracer and returning (N-1)-dimensional array

source

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 grid
  • dim: dimension number (1,2,3) that the boundary plane has constant value
  • dimval: index number in dimension dim that defines boundary plane

Output

  • b::BoundaryCondition: boundary condition on a plane with metadata and grid
source
TMI.zerosurfaceboundary — Function

zerosurfaceboundary(γ::Grid,name=:none,longname="unknown",units="unknown") = zeros(3,surfaceindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.zeronorthboundary — Function

zeronorthboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(2,northindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.zeroeastboundary — Function

zeroeastboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(1,eastindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.zerosouthboundary — Function

zerosouthboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(2,southindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.zerowestboundary — Function

zerowestboundary(γ,name=:none,longname="unknown",units="unknown") = zeros(1,westindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.onesurfaceboundary — Function

onesurfaceboundary(γ,name=:none,longname="unknown",units="unknown") = ones(3,surfaceindex(γ),γ,name,longname,units)::BoundaryCondition

source
TMI.geteastboundary — Function

geteastboundary(c::Field) = getboundarycondition(c,1,eastindex(c.γ))::BoundaryCondition

source
TMI.getwestboundary — Function

getwestboundary(c::Field) = getboundarycondition(c,1,westindex(c.γ))::BoundaryCondition

source
TMI.setboundarycondition! — Function
function setboundarycondition!(d::Field,b::BoundaryCondition)
apply boundary condition to the equation constraints

Arguments

  • d::Field, equation constraints (i.e., right hand side)
  • b::BoundaryCondition
source
function setboundarycondition!(d::Field{T},b::NamedTuple{<:Any, NTuple{N,BoundaryCondition{T}}}) where {N, T <: Real}

set all boundary conditions in a Named Tuple
source
TMI.gsetboundarycondition — Function
function gsetboundarycondition(gd::Field{T},b::BoundaryCondition{T}) where T<: Real

ADJOINT: apply boundary condition to the equation constraints

Arguments

  • d::Field, equation constraints (i.e., right hand side)
  • b::BoundaryCondition
source
function gsetboundarycondition(gd::Field{T},b::BoundaryCondition{T}) where T<: Real

ADJOINT: apply boundary condition to the equation constraints

Arguments

  • d::Field, equation constraints (i.e., right hand side)
  • b::BoundaryCondition
source
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.
source
TMI.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
source