ug4
ug::ConvectionShapesWeightedUpwind< TDim > Class Template Reference

#include <conv_shape.h>

+ Inheritance diagram for ug::ConvectionShapesWeightedUpwind< TDim >:

Classes

struct  RegisterElemFunc
 functor for registering the shapes for the element-templated FV geometries More...
 
struct  RegisterRefDimFunc
 functor for registering the shapes for the reference-dimension-templated FV geometries More...
 

Public Types

typedef IConvectionShapes< TDim > base_type
 Base class. More...
 
typedef ConvectionShapesWeightedUpwind< TDim > this_type
 This class. More...
 
- Public Types inherited from ug::IConvectionShapes< TDim >
typedef IConvectionShapes< dimthis_type
 Abbreviation for own type. More...
 
typedef bool(this_type::* UpdateFunc) (const FVGeometryBase *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *Diffusion, bool computeDeriv)
 type of update function More...
 

Public Member Functions

 ConvectionShapesWeightedUpwind ()
 constructor More...
 
 ConvectionShapesWeightedUpwind (number weight)
 constructor More...
 
void set_weight (number weight)
 set weighting between full upwind (1.0) and no upwind (0.0) More...
 
template<typename TFVGeom >
bool update (const TFVGeom *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *DiffDisp, bool computeDeriv)
 update of values for FV1Geometry More...
 
- Public Member Functions inherited from ug::IConvectionShapes< TDim >
const MathMatrix< dim, dim > & D_diffusion (size_t scvf, size_t sh) const
 upwind shapes for ip vel More...
 
const MathVector< dim > & D_vel (size_t scvf, size_t sh) const
 upwind shape for corner vel More...
 
 IConvectionShapes ()
 constructor More...
 
bool non_zero_deriv_diffusion () 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...
 
number operator() (size_t scvf, size_t sh) const
 shape value More...
 
void register_update_func (TAssFunc func)
 register a update function for a Geometry More...
 
bool set_geometry_type (const TFVGeom &geo)
 set the Geometry type to use for next updates More...
 
bool update (const FVGeometryBase *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *DiffDisp, bool computeDeriv)
 
virtual ~IConvectionShapes ()
 destructor More...
 

Static Public Attributes

static const int dim = TDim
 Dimension. More...
 

Private Member Functions

template<typename TElem , typename TFVGeom >
void register_func_for_elem_fvgeom ()
 registers the update function for an element type and a FV geometry More...
 
template<int refDim>
void register_func_for_refDim ()
 registers the update function for a reference dimension More...
 

Private Attributes

number m_weight
 

Additional Inherited Members

- Protected Member Functions inherited from ug::IConvectionShapes< TDim >
numberconv_shape (size_t scvf, size_t sh)
 non-const access to ip velocity (i.e. interpolated velocity at ip) More...
 
MathMatrix< dim, dim > & conv_shape_diffusion (size_t scvf, size_t sh)
 non-const access to upwind shapes for ip vel More...
 
MathVector< dim > & D_vel (size_t scvf, size_t sh)
 non-const access to upwind shapes for corner vel More...
 
void set_non_zero_deriv_diffusion_flag (bool flag)
 sets the shape ip flag More...
 
void set_sizes (size_t numScvf, size_t numSh)
 resize the data arrays More...
 
- Protected Attributes inherited from ug::IConvectionShapes< TDim >
bool m_bNonZeroDerivDiffusion
 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< std::vector< number > > m_vConvShape
 upwind shapes for corners shape functions More...
 
std::vector< std::vector< MathMatrix< dim, dim > > > m_vConvShapeDiffusion
 upwind shapes for corners shape functions More...
 
std::vector< std::vector< MathVector< dim > > > m_vConvShapeVel
 upwind shapes for corners shape functions More...
 
std::vector< UpdateFuncm_vUpdateFunc
 Vector holding all update functions. More...
 

Member Typedef Documentation

◆ base_type

template<int TDim>
typedef IConvectionShapes<TDim> ug::ConvectionShapesWeightedUpwind< TDim >::base_type

Base class.

◆ this_type

This class.

Constructor & Destructor Documentation

◆ ConvectionShapesWeightedUpwind() [1/2]

◆ ConvectionShapesWeightedUpwind() [2/2]

Member Function Documentation

◆ register_func_for_elem_fvgeom()

template<int TDim>
template<typename TElem , typename TFVGeom >
void ug::ConvectionShapesWeightedUpwind< TDim >::register_func_for_elem_fvgeom ( )
inlineprivate

registers the update function for an element type and a FV geometry

◆ register_func_for_refDim()

template<int TDim>
template<int refDim>
void ug::ConvectionShapesWeightedUpwind< TDim >::register_func_for_refDim ( )
inlineprivate

registers the update function for a reference dimension

Referenced by ug::ConvectionShapesWeightedUpwind< TDim >::RegisterRefDimFunc::operator()().

◆ set_weight()

template<int TDim>
void ug::ConvectionShapesWeightedUpwind< TDim >::set_weight ( number  weight)
inline

set weighting between full upwind (1.0) and no upwind (0.0)

References ug::ConvectionShapesWeightedUpwind< TDim >::m_weight.

Referenced by ug::ConvectionShapesWeightedUpwind< TDim >::ConvectionShapesWeightedUpwind().

◆ update()

template<int TDim>
template<typename TFVGeom >
bool ug::ConvectionShapesWeightedUpwind< TDim >::update ( const TFVGeom *  geo,
const MathVector< dim > *  Velocity,
const MathMatrix< dim, dim > *  DiffDisp,
bool  computeDeriv 
)

Member Data Documentation

◆ dim

template<int TDim>
const int ug::ConvectionShapesWeightedUpwind< TDim >::dim = TDim
static

Dimension.

◆ m_weight

template<int TDim>
number ug::ConvectionShapesWeightedUpwind< TDim >::m_weight
private

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