hexed 0.4.0
 
Loading...
Searching...
No Matches
hexed::Flow_bc Class Referenceabstract

Abstract class representing an arbitrary flow boundary condition. More...

#include <Boundary_condition.hpp>

Inheritance diagram for hexed::Flow_bc:
hexed::Copy hexed::Expression_bc hexed::Freestream hexed::No_slip hexed::Nonpenetration hexed::Outflow hexed::Pressure_outflow hexed::Riemann_invariants

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.
 

Detailed Description

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.

Member Function Documentation

◆ apply_advection()

void hexed::Flow_bc::apply_advection ( Boundary_connection & con)
virtual

applies boundary condition to linear advection equation used to compute nonsmoothness indicator

Reimplemented in hexed::Copy, hexed::No_slip, and hexed::Nonpenetration.

◆ apply_flux()

virtual void hexed::Flow_bc::apply_flux ( Boundary_connection & )
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.

◆ apply_state()

virtual void hexed::Flow_bc::apply_state ( Boundary_connection & )
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.

◆ smooth()

virtual bool hexed::Flow_bc::smooth ( ) const
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.


The documentation for this class was generated from the following files: