Plugins
|
#include <upwind_interface.h>
Public Types | |
typedef INavierStokesUpwind< dim > | this_type |
Abbreviation for own type. More... | |
Public Member Functions | |
number | downwind_conv_length (size_t scvf) const |
Convection Length. More... | |
number | downwind_shape_ip (size_t scvf, size_t scvf2) const |
upwind shapes for ip vel More... | |
number | downwind_shape_sh (size_t scvf, size_t sh) const |
upwind shape for corner vel More... | |
INavierStokesUpwind () | |
constructor More... | |
bool | non_zero_shape_ip () const |
returns if upwind shape w.r.t. ip vel is non-zero More... | |
size_t | num_scvf () const |
returns number of sub control volume faces More... | |
size_t | num_sh () const |
returns number of shapes More... | |
template<typename TFVGeom , typename TAssFunc > | |
void | register_update_func (TAssFunc func) |
register a update function for a Geometry More... | |
template<typename TFVGeom , typename TAssFunc > | |
void | register_update_ip_vel_func (TAssFunc func) |
register a update function for a Geometry More... | |
template<typename TFVGeom > | |
void | set_geometry_type () |
set the Geometry type to use for next updates More... | |
void | update (const FVGeometryBase *geo, const MathVector< dim > vStdVel[]) |
compute values for new geometry and corner velocities More... | |
void | update_downwind (const FVGeometryBase *geo, const MathVector< dim > vStdVel[]) |
compute values for new geometry and corner velocities More... | |
void | update_upwind (const FVGeometryBase *geo, const MathVector< dim > vStdVel[]) |
compute values for new geometry and corner velocities More... | |
number | upwind_conv_length (size_t scvf) const |
Convection Length. More... | |
number | upwind_shape_ip (size_t scvf, size_t scvf2) const |
upwind shapes for ip vel More... | |
number | upwind_shape_sh (size_t scvf, size_t sh) const |
upwind shape for corner vel More... | |
MathVector< dim > | upwind_vel (const size_t scvf, const LocalVector &CornerVel, const MathVector< dim > vStdVel[]) const |
returns the upwind velocity More... | |
Static Public Attributes | |
static const size_t | maxNumSCVF = traits::maxNumSCVF + 10 |
max number of SubControlVolumeFaces More... | |
static const size_t | maxNumSH = traits::maxNSH + 10 |
max number of shape functions More... | |
Protected Types | |
typedef void(* | ComputeFunc) (const FVGeometryBase *obj, const MathVector< dim > vIPVel[maxNumSCVF], number vUpShapeSh[maxNumSCVF][maxNumSH], number vUpShapeIp[maxNumSCVF][maxNumSCVF], number vConvLength[maxNumSCVF]) |
type of update function More... | |
typedef fv1_dim_traits< dim, dim > | traits |
used traits More... | |
Protected Member Functions | |
void | compute (const FVGeometryBase *geo, const MathVector< dim > vIPVel[maxNumSCVF], number vUpShapeSh[maxNumSCVF][maxNumSH], number vUpShapeIp[maxNumSCVF][maxNumSCVF], number vConvLength[maxNumSCVF]) |
compute values for new geometry and corner velocities More... | |
number & | down_upwind_conv_length (size_t scvf) |
non-const access to Convection Length More... | |
number & | downwind_shape_ip (size_t scvf, size_t scvf2) |
non-const access to upwind shapes for ip vel More... | |
number & | downwind_shape_sh (size_t scvf, size_t sh) |
non-const access to upwind shapes for corner vel More... | |
void | set_shape_ip_flag (bool flag) |
sets the shape ip flag More... | |
number & | upwind_conv_length (size_t scvf) |
non-const access to Convection Length More... | |
number & | upwind_shape_ip (size_t scvf, size_t scvf2) |
non-const access to upwind shapes for ip vel More... | |
number & | upwind_shape_sh (size_t scvf, size_t sh) |
non-const access to upwind shapes for corner vel More... | |
Protected Attributes | |
bool | m_bNonZeroShapeIp |
flag if ip shapes are non-zero More... | |
int | m_id |
id of current geometry type More... | |
size_t | m_numScvf |
number of current scvf More... | |
size_t | m_numSh |
number of current shape functions (usually in corners) More... | |
std::vector< ComputeFunc > | m_vComputeFunc |
Vector holding all update functions. More... | |
number | m_vDownConvLength [maxNumSCVF] |
number | m_vUpConvLength [maxNumSCVF] |
convection length More... | |
number | m_vvDownShapeIp [maxNumSCVF][maxNumSCVF] |
number | m_vvDownShapeSh [maxNumSCVF][maxNumSH] |
number | m_vvUpShapeIp [maxNumSCVF][maxNumSCVF] |
upwind shapes for ip vels More... | |
number | m_vvUpShapeSh [maxNumSCVF][maxNumSH] |
upwind shapes for corners shape functions More... | |
|
protected |
type of update function
typedef INavierStokesUpwind<dim> ug::NavierStokes::INavierStokesUpwind< dim >::this_type |
Abbreviation for own type.
|
protected |
used traits
|
inline |
constructor
References ug::NavierStokes::INavierStokesUpwind< dim >::m_vComputeFunc.
|
inlineprotected |
compute values for new geometry and corner velocities
References ug::NavierStokes::INavierStokesUpwind< dim >::m_id, and ug::NavierStokes::INavierStokesUpwind< dim >::m_vComputeFunc.
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update_downwind(), and ug::NavierStokes::INavierStokesUpwind< dim >::update_upwind().
|
inlineprotected |
non-const access to Convection Length
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vDownConvLength, and UG_NSUPWIND_ASSERT.
|
inline |
Convection Length.
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vDownConvLength, and UG_NSUPWIND_ASSERT.
|
inlineprotected |
non-const access to upwind shapes for ip vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeIp, and UG_NSUPWIND_ASSERT.
|
inline |
upwind shapes for ip vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeIp, and UG_NSUPWIND_ASSERT.
|
inlineprotected |
non-const access to upwind shapes for corner vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_numSh, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeSh, and UG_NSUPWIND_ASSERT.
|
inline |
upwind shape for corner vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_numSh, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeSh, and UG_NSUPWIND_ASSERT.
|
inline |
returns if upwind shape w.r.t. ip vel is non-zero
References ug::NavierStokes::INavierStokesUpwind< dim >::m_bNonZeroShapeIp.
Referenced by ug::NavierStokes::NavierStokesFVCR< TDomain >::add_jac_A_elem().
|
inline |
returns number of sub control volume faces
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf.
|
inline |
returns number of shapes
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numSh.
void ug::NavierStokes::INavierStokesUpwind< dim >::register_update_func | ( | TAssFunc | func | ) |
register a update function for a Geometry
void ug::NavierStokes::INavierStokesUpwind< dim >::register_update_ip_vel_func | ( | TAssFunc | func | ) |
register a update function for a Geometry
void ug::NavierStokes::INavierStokesUpwind< dim >::set_geometry_type |
set the Geometry type to use for next updates
References ug::GeomProvider< class >::get(), UG_NSUPWIND_ASSERT, and UG_THROW.
|
inlineprotected |
sets the shape ip flag
References ug::NavierStokes::INavierStokesUpwind< dim >::m_bNonZeroShapeIp.
Referenced by ug::NavierStokes::NavierStokesFullUpwind< dim >::NavierStokesFullUpwind(), ug::NavierStokes::NavierStokesLinearProfileSkewedUpwind< dim >::NavierStokesLinearProfileSkewedUpwind(), ug::NavierStokes::NavierStokesNoUpwind< dim >::NavierStokesNoUpwind(), ug::NavierStokes::NavierStokesPositiveUpwind< dim >::NavierStokesPositiveUpwind(), ug::NavierStokes::NavierStokesRegularUpwind< dim >::NavierStokesRegularUpwind(), and ug::NavierStokes::NavierStokesSkewedUpwind< dim >::NavierStokesSkewedUpwind().
|
inline |
compute values for new geometry and corner velocities
References ug::NavierStokes::INavierStokesUpwind< dim >::update_upwind().
Referenced by ug::NavierStokes::NavierStokesFVCR< TDomain >::add_def_A_elem(), and ug::NavierStokes::NavierStokesFVCR< TDomain >::add_jac_A_elem().
|
inline |
compute values for new geometry and corner velocities
References ug::NavierStokes::INavierStokesUpwind< dim >::compute(), ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vDownConvLength, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeIp, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvDownShapeSh, ug::NavierStokes::INavierStokesUpwind< dim >::maxNumSCVF, and ug::VecScale().
|
inline |
compute values for new geometry and corner velocities
References ug::NavierStokes::INavierStokesUpwind< dim >::compute(), ug::NavierStokes::INavierStokesUpwind< dim >::m_vUpConvLength, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeIp, and ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeSh.
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update().
|
inlineprotected |
non-const access to Convection Length
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vUpConvLength, and UG_NSUPWIND_ASSERT.
|
inline |
Convection Length.
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vUpConvLength, and UG_NSUPWIND_ASSERT.
|
inlineprotected |
non-const access to upwind shapes for ip vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeIp, and UG_NSUPWIND_ASSERT.
|
inline |
upwind shapes for ip vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeIp, and UG_NSUPWIND_ASSERT.
Referenced by ug::NavierStokes::NavierStokesFV1< TDomain >::add_jac_A_elem(), and ug::NavierStokes::NavierStokesFVCR< TDomain >::add_jac_A_elem().
|
inlineprotected |
non-const access to upwind shapes for corner vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_numScvf, ug::NavierStokes::INavierStokesUpwind< dim >::m_numSh, ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeSh, and UG_NSUPWIND_ASSERT.
|
inline |
upwind shape for corner vel
References ug::NavierStokes::INavierStokesUpwind< dim >::m_vvUpShapeSh.
Referenced by ug::NavierStokes::NavierStokesFV1< TDomain >::add_jac_A_elem(), and ug::NavierStokes::NavierStokesFVCR< TDomain >::add_jac_A_elem().
MathVector< dim > ug::NavierStokes::INavierStokesUpwind< dim >::upwind_vel | ( | const size_t | scvf, |
const LocalVector & | CornerVel, | ||
const MathVector< dim > | vStdVel[] | ||
) | const |
returns the upwind velocity
upwind velocity
References dim, ug::VecScaleAppend(), and ug::VecSet().
Referenced by ug::NavierStokes::CompressibleNavierStokesFV1< TDomain >::add_def_A_elem(), ug::NavierStokes::NavierStokesFV1< TDomain >::add_def_A_elem(), ug::NavierStokes::NavierStokesFVCR< TDomain >::add_def_A_elem(), ug::NavierStokes::NavierStokesFV1< TDomain >::add_jac_A_elem(), and ug::NavierStokes::NavierStokesFVCR< TDomain >::add_jac_A_elem().
|
protected |
flag if ip shapes are non-zero
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::non_zero_shape_ip(), and ug::NavierStokes::INavierStokesUpwind< dim >::set_shape_ip_flag().
|
protected |
id of current geometry type
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::compute().
|
protected |
number of current scvf
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::down_upwind_conv_length(), ug::NavierStokes::INavierStokesUpwind< dim >::downwind_conv_length(), ug::NavierStokes::INavierStokesUpwind< dim >::downwind_shape_ip(), ug::NavierStokes::INavierStokesUpwind< dim >::downwind_shape_sh(), ug::NavierStokes::INavierStokesUpwind< dim >::num_scvf(), ug::NavierStokes::INavierStokesUpwind< dim >::update_downwind(), ug::NavierStokes::INavierStokesUpwind< dim >::upwind_conv_length(), ug::NavierStokes::INavierStokesUpwind< dim >::upwind_shape_ip(), and ug::NavierStokes::INavierStokesUpwind< dim >::upwind_shape_sh().
|
protected |
number of current shape functions (usually in corners)
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::downwind_shape_sh(), ug::NavierStokes::INavierStokesUpwind< dim >::num_sh(), and ug::NavierStokes::INavierStokesUpwind< dim >::upwind_shape_sh().
|
protected |
Vector holding all update functions.
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::compute(), and ug::NavierStokes::INavierStokesUpwind< dim >::INavierStokesUpwind().
|
protected |
|
protected |
convection length
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update_upwind(), and ug::NavierStokes::INavierStokesUpwind< dim >::upwind_conv_length().
|
protected |
|
protected |
|
protected |
upwind shapes for ip vels
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update_upwind(), and ug::NavierStokes::INavierStokesUpwind< dim >::upwind_shape_ip().
|
protected |
upwind shapes for corners shape functions
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update_upwind(), and ug::NavierStokes::INavierStokesUpwind< dim >::upwind_shape_sh().
|
static |
max number of SubControlVolumeFaces
Referenced by ug::NavierStokes::INavierStokesUpwind< dim >::update_downwind().
|
static |
max number of shape functions