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.AbstractBoundaryCondition — Type
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.
FiniteVolumeMethod1D.is_dirichlet — Function
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.
FiniteVolumeMethod1D.is_neumann — Function
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.