hexed 0.4.0
 
Loading...
Searching...
No Matches
hexed::Freestream Class Reference

Sets the ghost state to the provided freestream state. More...

#include <Boundary_condition.hpp>

Inheritance diagram for hexed::Freestream:
hexed::Flow_bc

Public Member Functions

 Freestream (Mat<> freestream_state)
 freestream_state.size() must equal the n_var() of the Boundary_connection you apply_state it to
 
void apply_state (Boundary_connection &) override
 applies boundary condition to state variables (Dirichlet BCs)
 
void apply_flux (Boundary_connection &) override
 applies boundary condition to viscous fluxes (if applicable)
 
bool smooth () const override
 Returns false if this BC tends to cause the flow not to be smooth.
 
- Public Member Functions inherited from hexed::Flow_bc
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 &)
 

Detailed Description

Sets the ghost state to the provided freestream state.

Technically this can result in an ill-posed problem if used in anything other than a supersonic inlet, but in numerical practice it often gets you the right answer anyway, at least for inviscid problems.

Member Function Documentation

◆ apply_flux()

void hexed::Freestream::apply_flux ( Boundary_connection & )
overridevirtual

applies boundary condition to viscous fluxes (if applicable)

Implements hexed::Flow_bc.

◆ apply_state()

void hexed::Freestream::apply_state ( Boundary_connection & )
overridevirtual

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.)

Implements hexed::Flow_bc.

◆ smooth()

bool hexed::Freestream::smooth ( ) const
inlineoverridevirtual

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.

Implements hexed::Flow_bc.


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