ug4
|
#include <conv_shape.h>
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 ConvectionShapesLinearProfileSkewedUpwind< TDim > | this_type |
This class. More... | |
Public Types inherited from ug::IConvectionShapes< TDim > | |
typedef IConvectionShapes< dim > | this_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 | |
ConvectionShapesLinearProfileSkewedUpwind () | |
constructor More... | |
template<typename TFVGeom > | |
bool | update (const TFVGeom *geo, const MathVector< dim > *Velocity, const MathMatrix< dim, dim > *DiffDisp, bool computeDeriv) |
update of values for FV geometry 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... | |
Additional Inherited Members | |
Protected Member Functions inherited from ug::IConvectionShapes< TDim > | |
number & | conv_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< UpdateFunc > | m_vUpdateFunc |
Vector holding all update functions. More... | |
typedef IConvectionShapes<TDim> ug::ConvectionShapesLinearProfileSkewedUpwind< TDim >::base_type |
Base class.
typedef ConvectionShapesLinearProfileSkewedUpwind<TDim> ug::ConvectionShapesLinearProfileSkewedUpwind< TDim >::this_type |
This class.
|
inline |
constructor
References ug::IConvectionShapes< TDim >::set_non_zero_deriv_diffusion_flag().
|
inlineprivate |
registers the update function for an element type and a FV geometry
|
inlineprivate |
registers the update function for a reference dimension
Referenced by ug::ConvectionShapesLinearProfileSkewedUpwind< TDim >::RegisterRefDimFunc::operator()().
bool ug::ConvectionShapesLinearProfileSkewedUpwind< TDim >::update | ( | const TFVGeom * | geo, |
const MathVector< dim > * | Velocity, | ||
const MathMatrix< dim, dim > * | DiffDisp, | ||
bool | computeDeriv | ||
) |
update of values for FV geometry
References dim, ug::Provider< TClass >::get(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::LFEID::LAGRANGE, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), UG_ASSERT, UG_CATCH_THROW, ug::VecDot(), ug::VecScale(), ug::VecSet(), and ug::VecTwoNorm().
|
static |
Dimension.