Developer API

This page documents the extension points used by the finite-volume boundary-condition kernel. They are versioned developer interfaces, not the recommended user-facing API. Application code should use Dirichlet, Neumann, and BoundaryConditions.

FiniteVolumeMethod1D.AbstractBoundaryConditionType
AbstractBoundaryCondition{F, P}

Developer interface for endpoint boundary conditions used by FVMProblem. The package supplies the generic two-argument call bc(u, t), which evaluates the stored three-argument function bc.f(u, t, bc.p).

Extension Interface

A custom boundary condition should subtype AbstractBoundaryCondition{F, P}, store fields named f and p, and make f(u, t, p) return the boundary value or flux. Define is_dirichlet(::YourBoundaryCondition) to return true for a prescribed-value condition. Leave it at the default false for a flux condition, or define is_neumann(::YourBoundaryCondition) when the classification should be explicit.

These hooks are developer API. End users should normally use Dirichlet, Neumann, and BoundaryConditions.

source
FiniteVolumeMethod1D.is_dirichletFunction
is_dirichlet(bc::AbstractBoundaryCondition)

Return whether bc imposes a prescribed value at the boundary.

Developer subtypes should specialize this predicate to return true for their Dirichlet-like conditions. The default is false.

source
FiniteVolumeMethod1D.is_neumannFunction
is_neumann(bc::AbstractBoundaryCondition)

Return whether bc imposes a prescribed boundary flux.

The default is false; developer subtypes may specialize this predicate when an explicit classification is useful. The finite-volume kernel treats a boundary as flux-based whenever is_dirichlet(bc) is false.

source