Abstract class representing an arbitrary flow boundary condition. More...
#include <Boundary_condition.hpp>
Public Member Functions | |
| virtual void | apply_state (Boundary_connection &)=0 |
| applies boundary condition to state variables (Dirichlet BCs) | |
| virtual void | apply_flux (Boundary_connection &)=0 |
| applies boundary condition to viscous fluxes (if applicable) | |
| virtual void | apply_advection (Boundary_connection &) |
| applies boundary condition to linear advection equation used to compute nonsmoothness indicator | |
| virtual void | apply_diffusion (Boundary_connection &) |
| virtual void | flux_diffusion (Boundary_connection &) |
| virtual void | init_cache (Boundary_connection &) |
| virtual int | n_prescribed (int n_dim) const |
| virtual void | set_prescribed (Interpreter &, Boundary_connection &) |
| virtual bool | smooth () const =0 |
Returns false if this BC tends to cause the flow not to be smooth. | |
Abstract class representing an arbitrary flow boundary condition.
That is, something that computes a ghost state given an state on the boundary (inside state), a face size, and a Jacobian.
|
virtual |
applies boundary condition to linear advection equation used to compute nonsmoothness indicator
Reimplemented in hexed::Copy, hexed::No_slip, and hexed::Nonpenetration.
|
pure virtual |
applies boundary condition to viscous fluxes (if applicable)
Implemented in hexed::Copy, hexed::Expression_bc, hexed::Freestream, hexed::No_slip, hexed::Nonpenetration, hexed::Outflow, hexed::Pressure_outflow, and hexed::Riemann_invariants.
|
pure virtual |
applies boundary condition to state variables (Dirichlet BCs)
writes to the first n_var()*size() entries of ghost_state() (called on the provided Boundary_face.)
Implemented in hexed::Copy, hexed::Expression_bc, hexed::Freestream, hexed::No_slip, hexed::Nonpenetration, hexed::Outflow, hexed::Pressure_outflow, and hexed::Riemann_invariants.
|
pure virtual |
Returns false if this BC tends to cause the flow not to be smooth.
Farfield BCs should be expected to cause non-smoothness, especially if they are over-constrained, whereas wall boundary conditions should not. When performing AMR, cells on non-smooth boundaries will receive special treatment to avoid excessive refinement. So, when in doubt, have new boundary conditions return true so that they can be refined.
Implemented in hexed::Copy, hexed::Expression_bc, hexed::Freestream, hexed::No_slip, hexed::Nonpenetration, hexed::Outflow, hexed::Pressure_outflow, and hexed::Riemann_invariants.