ug4
Loading...
Searching...
No Matches
ug::ScaledFluxData< TDomain > Class Template Reference

Scaled flux for a given vector user data. More...

#include <dim_dim_user_data.h>

+ Inheritance diagram for ug::ScaledFluxData< TDomain >:

Public Member Functions

virtual bool continuous () const
 Indicator functions are discontinuous.
 
template<int refDim>
void evaluate (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< refDim, dim > *vJT=NULL) const
 Evaluator.
 
void operator() (number &vValue, const MathVector< dim > &globIP, number time, int si) const
 This function should not be used.
 
void operator() (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const
 This function should not be used.
 
virtual bool requires_grid_fct () const
 Returns true to get the grid element in the evaluation routine.
 
 ScaledFluxData (SmartPtr< domain_type > spDomain, SmartPtr< UserData< number, dim, void > > spScalData, SmartPtr< UserData< vec_type, dim, void > > spVecData)
 constructor
 
 ScaledFluxData (SmartPtr< domain_type > spDomain, SmartPtr< UserData< number, dim, void > > spScalData, SmartPtr< UserData< vec_type, dim, void > > spVecData, const char *ss_names)
 constructor
 
- Public Member Functions inherited from ug::StdUserData< ScaledFluxData< TDomain >, number, TDomain::dim, void, UserData< number, TDomain::dim, void > >
virtual void operator() (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 1, dim > *vJT=NULL) const
 
virtual void operator() (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 2, dim > *vJT=NULL) const
 
virtual void operator() (number vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< 3, dim > *vJT=NULL) const
 
- Public Member Functions inherited from ug::UserData< number, TDomain::dim, void >
int get_dim () const
 returns dimension
 
virtual void operator() (number &value, const MathVector< dim > &globIP, number time, int si, Vertex *vrt) const
 returns a value at a vertex
 
std::string type () const
 returns type of data as string (e.g. "Number", "Vector", "Matrix")
 
void operator() (number &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > &locIP, LocalVector *u) const
 
void operator() (number &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > &locIP, LocalVector *u) const
 
void operator() (number &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > &locIP, LocalVector *u) const
 
- Public Member Functions inherited from ug::UserDataInfo
const FunctionGroupfunction_group () const
 Function Group of functions.
 
const FunctionIndexMappingmap () const
 get function mapping
 
size_t num_fct () const
 number of functions this export depends on
 
const char * obj_name ()
 gets the name of the object (s. the field m_objName)
 
virtual void set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt)
 sets the function pattern for a possibly needed grid function
 
void set_obj_name (const char *name)
 sets the name of the object (s. the field m_objName)
 
virtual ~UserDataInfo ()
 virtual destructor
 

Private Types

typedef TDomain domain_type
 the domain type
 
typedef TDomain::grid_type grid_type
 the grid type
 
typedef MathVector< dimvec_type
 the original data type
 

Private Attributes

SmartPtr< domain_typem_spDomain
 the domain
 
SmartPtr< UserData< number, dim, void > > m_spScalData
 the scaling data
 
SmartPtr< UserData< vec_type, dim, void > > m_spVecData
 the original vector field data
 
SubsetGroup m_ssGrp
 the subset group for the inner part
 

Static Private Attributes

static const int dim = TDomain::dim
 the world dimension
 

Additional Inherited Members

- Public Types inherited from ug::UserData< number, TDomain::dim, void >
typedef number data_type
 
typedef void return_type
 
- Protected Member Functions inherited from ug::StdUserData< ScaledFluxData< TDomain >, number, TDomain::dim, void, UserData< number, TDomain::dim, void > >
ScaledFluxData< TDomain > & getImpl ()
 access to implementation
 
const ScaledFluxData< TDomain > & getImpl () const
 const access to implementation
 
- Protected Attributes inherited from ug::UserDataInfo
FunctionGroup m_fctGrp
 functions the data depends on
 
FunctionIndexMapping m_map
 Mapping for import fct.
 
SmartPtr< char > m_objName
 This field is used mainly for debugging: One can assign a name to the object to identify it when running.
 

Detailed Description

template<typename TDomain>
class ug::ScaledFluxData< TDomain >

Scaled flux for a given vector user data.

This class implements the UserData for evaluation of the flux of a vector field computed by the other user data object. The flux is evaluation only for WDim-1-dimensional subsets - sides of WDim-dimensional elements. It is scaled by a furthe (scalar) UserData.

ToDo: Note that the LocalVector provided for the evaluate function is not properly used. Thus, the passed UserData objects should not use it.

Member Typedef Documentation

◆ domain_type

template<typename TDomain >
typedef TDomain ug::ScaledFluxData< TDomain >::domain_type
private

the domain type

◆ grid_type

template<typename TDomain >
typedef TDomain::grid_type ug::ScaledFluxData< TDomain >::grid_type
private

the grid type

◆ vec_type

template<typename TDomain >
typedef MathVector<dim> ug::ScaledFluxData< TDomain >::vec_type
private

the original data type

Constructor & Destructor Documentation

◆ ScaledFluxData() [1/2]

template<typename TDomain >
ug::ScaledFluxData< TDomain >::ScaledFluxData ( SmartPtr< domain_type spDomain,
SmartPtr< UserData< number, dim, void > >  spScalData,
SmartPtr< UserData< vec_type, dim, void > >  spVecData,
const char *  ss_names 
)
inline

constructor

Parameters
spDomainthe domain
spScalDatathe scaling data
spVecDatathe original vector field data
ss_namesthe subsets

References ug::SubsetGroup::add(), ug::SubsetGroup::clear(), ug::ScaledFluxData< TDomain >::m_ssGrp, ug::RemoveWhitespaceFromString(), ug::TokenizeString(), and UG_CATCH_THROW.

◆ ScaledFluxData() [2/2]

template<typename TDomain >
ug::ScaledFluxData< TDomain >::ScaledFluxData ( SmartPtr< domain_type spDomain,
SmartPtr< UserData< number, dim, void > >  spScalData,
SmartPtr< UserData< vec_type, dim, void > >  spVecData 
)
inline

constructor

Parameters
spDomainthe domain
spScalDatathe scaling data
spVecDatathe original vector field data

Member Function Documentation

◆ continuous()

template<typename TDomain >
virtual bool ug::ScaledFluxData< TDomain >::continuous ( ) const
inlinevirtual

Indicator functions are discontinuous.

Implements ug::UserData< number, TDomain::dim, void >.

◆ evaluate()

◆ operator()() [1/2]

template<typename TDomain >
void ug::ScaledFluxData< TDomain >::operator() ( number vValue,
const MathVector< dim > &  globIP,
number  time,
int  si 
) const
inlinevirtual

◆ operator()() [2/2]

template<typename TDomain >
void ug::ScaledFluxData< TDomain >::operator() ( number  vValue[],
const MathVector< dim vGlobIP[],
number  time,
int  si,
const size_t  nip 
) const
inlinevirtual

◆ requires_grid_fct()

template<typename TDomain >
virtual bool ug::ScaledFluxData< TDomain >::requires_grid_fct ( ) const
inlinevirtual

Returns true to get the grid element in the evaluation routine.

Implements ug::UserData< number, TDomain::dim, void >.

References ug::ScaledFluxData< TDomain >::m_spScalData, and ug::ScaledFluxData< TDomain >::m_spVecData.

Member Data Documentation

◆ dim

template<typename TDomain >
const int ug::ScaledFluxData< TDomain >::dim = TDomain::dim
staticprivate

the world dimension

Referenced by ug::ScaledFluxData< TDomain >::evaluate().

◆ m_spDomain

template<typename TDomain >
SmartPtr<domain_type> ug::ScaledFluxData< TDomain >::m_spDomain
private

the domain

Referenced by ug::ScaledFluxData< TDomain >::evaluate().

◆ m_spScalData

template<typename TDomain >
SmartPtr<UserData<number, dim, void> > ug::ScaledFluxData< TDomain >::m_spScalData
private

the scaling data

Referenced by ug::ScaledFluxData< TDomain >::requires_grid_fct().

◆ m_spVecData

template<typename TDomain >
SmartPtr<UserData<vec_type, dim, void> > ug::ScaledFluxData< TDomain >::m_spVecData
private

the original vector field data

Referenced by ug::ScaledFluxData< TDomain >::requires_grid_fct().

◆ m_ssGrp

template<typename TDomain >
SubsetGroup ug::ScaledFluxData< TDomain >::m_ssGrp
private

the subset group for the inner part

Referenced by ug::ScaledFluxData< TDomain >::evaluate(), and ug::ScaledFluxData< TDomain >::ScaledFluxData().


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