Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ug::ConvectionShapesFullUpwind< TDim > Class Template Reference

#include <conv_shape.h>

+ Inheritance diagram for ug::ConvectionShapesFullUpwind< 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.
 
typedef ConvectionShapesFullUpwind< TDim > this_type
 This class.
 
- Public Types inherited from ug::IConvectionShapes< TDim >
typedef IConvectionShapes< dim > this_type
 Abbreviation for own type.
 
typedef bool(this_type::* UpdateFunc) (const FVGeometryBase *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *Diffusion, bool computeDeriv)
 type of update function
 

Public Member Functions

 ConvectionShapesFullUpwind ()
 constructor
 
template<typename TFVGeom >
bool update (const TFVGeom *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *DiffDisp, bool computeDeriv)
 update of values for FV1Geometry
 
- 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
 
const MathVector< dim > & D_vel (size_t scvf, size_t sh) const
 upwind shape for corner vel
 
 IConvectionShapes ()
 constructor
 
bool non_zero_deriv_diffusion () const
 returns if upwind shape w.r.t. ip vel is non-zero
 
size_t num_scvf () const
 returns number of sub control volume faces
 
size_t num_sh () const
 returns number of shapes
 
number operator() (size_t scvf, size_t sh) const
 shape value
 
void register_update_func (TAssFunc func)
 register a update function for a Geometry
 
bool set_geometry_type (const TFVGeom &geo)
 set the Geometry type to use for next updates
 
bool update (const FVGeometryBase *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *DiffDisp, bool computeDeriv)
 
virtual ~IConvectionShapes ()
 destructor
 

Static Public Attributes

static const int dim = TDim
 Dimension.
 

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
 
template<int refDim>
void register_func_for_refDim ()
 registers the update function for a reference dimension
 

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)
 
MathMatrix< dim, dim > & conv_shape_diffusion (size_t scvf, size_t sh)
 non-const access to upwind shapes for ip vel
 
MathVector< dim > & D_vel (size_t scvf, size_t sh)
 non-const access to upwind shapes for corner vel
 
void set_non_zero_deriv_diffusion_flag (bool flag)
 sets the shape ip flag
 
void set_sizes (size_t numScvf, size_t numSh)
 resize the data arrays
 
- Protected Attributes inherited from ug::IConvectionShapes< TDim >
bool m_bNonZeroDerivDiffusion
 flag if ip shapes are non-zero
 
int m_id
 id of current geometry type
 
size_t m_numScvf
 number of current scvf
 
size_t m_numSh
 number of current shape functions (usually in corners)
 
std::vector< std::vector< number > > m_vConvShape
 upwind shapes for corners shape functions
 
std::vector< std::vector< MathMatrix< dim, dim > > > m_vConvShapeDiffusion
 upwind shapes for corners shape functions
 
std::vector< std::vector< MathVector< dim > > > m_vConvShapeVel
 upwind shapes for corners shape functions
 
std::vector< UpdateFunc > m_vUpdateFunc
 Vector holding all update functions.
 

Member Typedef Documentation

◆ base_type

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

Base class.

◆ this_type

template<int TDim>
typedef ConvectionShapesFullUpwind<TDim> ug::ConvectionShapesFullUpwind< TDim >::this_type

This class.

Constructor & Destructor Documentation

◆ ConvectionShapesFullUpwind()

template<int TDim>
ug::ConvectionShapesFullUpwind< TDim >::ConvectionShapesFullUpwind ( )
inline

Member Function Documentation

◆ register_func_for_elem_fvgeom()

template<int TDim>
template<typename TElem , typename TFVGeom >
void ug::ConvectionShapesFullUpwind< 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::ConvectionShapesFullUpwind< TDim >::register_func_for_refDim ( )
inlineprivate

registers the update function for a reference dimension

◆ update()

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

update of values for FV1Geometry

References UG_ASSERT, ug::VecDot(), ug::VecScale(), and ug::VecSet().

Member Data Documentation

◆ dim

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

Dimension.


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