ug4
|
#include <user_data.h>
Public Types | |
typedef ICplUserData< dim > | base_type |
type of base class More... | |
Public Types inherited from ug::UserData< TData, dim, void > | |
typedef TData | data_type |
typedef void | return_type |
Public Member Functions | |
bool | defined (size_t s, size_t ip) const |
returns flag, if data is evaluated (for conditional data) More... | |
size_t | num_ip (size_t s) const |
returns the number of integration points More... | |
size_t | num_series () const |
explicitly forward some functions More... | |
void | register_storage_callback (DataImport< TData, dim > *obj, void(DataImport< TData, dim >::*func)()) |
register external callback, invoked when data storage changed More... | |
void | unregister_storage_callback (DataImport< TData, dim > *obj) |
register all callbacks registered by class More... | |
TData & | value (size_t s, size_t ip) |
returns the value at ip More... | |
const TData & | value (size_t s, size_t ip) const |
returns the value at ip More... | |
TData * | values (size_t s) |
returns all values for a series More... | |
const TData * | values (size_t s) const |
returns all values for a series More... | |
~CplUserData () | |
destructor More... | |
Public Member Functions inherited from ug::ICplUserData< dim > | |
bool | at_current_time (size_t s) const |
returns true iff the time point specification is equal to the current one, or not specified More... | |
virtual void | check_setup () const |
returns if the dependent data is ready for evaluation More... | |
void | clear () |
clear all data More... | |
virtual void | compute (LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)=0 |
compute values (and derivatives iff compDeriv == true) More... | |
virtual void | compute (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)=0 |
compute values (and derivatives iff compDeriv == true, but only for the 'current' time point) More... | |
virtual bool | constant () const |
returns if data is constant More... | |
int | dim_local_ips () const |
returns current local ip dimension More... | |
ICplUserData () | |
default constructor More... | |
const MathVector< dim > & | ip (size_t s, size_t ip) const |
returns global ip More... | |
const MathVector< dim > * | ips (size_t s) const |
returns global ips More... | |
template<int ldim> | |
const MathVector< ldim > & | local_ip (size_t s, size_t ip) const |
returns local ip More... | |
template<int ldim> | |
const MathVector< ldim > * | local_ips (size_t s) const |
returns local ips More... | |
virtual SmartPtr< ICplUserData > | needed_data (size_t i) |
return needed data More... | |
size_t | num_ip (size_t s) const |
returns the number of integration points More... | |
virtual size_t | num_needed_data () const |
number of other Data this data depends on More... | |
size_t | num_series () const |
returns the number of ip series More... | |
template<int ldim> | |
size_t | register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, bool bMayChange=true) |
set local positions without the specification of the time point, returns series id More... | |
template<int ldim> | |
size_t | register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, const int timePointSpec, bool bMayChange=true) |
set local positions, returns series id More... | |
void | set_global_ips (size_t s, const MathVector< dim > *vPos, size_t numIP) |
set global positions More... | |
template<int ldim> | |
void | set_local_ips (const size_t seriesId, const MathVector< ldim > *vPos, const size_t numIP) |
sets new local ip positions for a local ip series More... | |
void | set_subset (int si) |
set the subset of evaluation More... | |
void | set_time_point (const size_t seriesId, const int timePointSpec) |
sets a new time point for a local ip series More... | |
void | set_time_point (size_t timePoint) |
sets the current time point More... | |
void | set_times (const std::vector< number > &vTime) |
set evaluation time More... | |
int | subset () const |
returns the subset of evaluation More... | |
number | time () const |
get the current evaluation time More... | |
number | time (size_t s) const |
get the specified evaluation time More... | |
size_t | time_point () |
returns the current time point More... | |
size_t | time_point (size_t s) const |
returns the time point specification (in particular, the current one, if the own one not specified) More... | |
int | time_point_specification (size_t s) const |
returns the time point specification (note: it may be -1, i.e. not specified) More... | |
virtual void | update_dof_sizes (const LocalIndices &ind) |
resize arrays More... | |
virtual bool | zero_derivative () const |
returns if data depends on solution More... | |
virtual | ~ICplUserData () |
virtual desctructor More... | |
Public Member Functions inherited from ug::UserDataInfo | |
const FunctionGroup & | function_group () const |
Function Group of functions. More... | |
const FunctionIndexMapping & | map () const |
get function mapping More... | |
size_t | num_fct () const |
number of functions this export depends on More... | |
const char * | obj_name () |
gets the name of the object (s. the field m_objName) More... | |
virtual void | set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt) |
sets the function pattern for a possibly needed grid function More... | |
void | set_obj_name (const char *name) |
sets the name of the object (s. the field m_objName) More... | |
virtual | ~UserDataInfo () |
virtual destructor More... | |
Public Member Functions inherited from ug::UserData< TData, dim, void > | |
virtual bool | continuous () const=0 |
returns if provided data is continuous over geometric object boundaries More... | |
int | get_dim () const |
returns dimension More... | |
virtual void | operator() (TData &value, const MathVector< dim > &globIP, number time, int si) const=0 |
returns value for a global position More... | |
virtual void | operator() (TData &value, const MathVector< dim > &globIP, number time, int si, Vertex *vrt) const |
returns a value at a vertex More... | |
virtual void | operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const=0 |
returns values for global positions More... | |
virtual bool | requires_grid_fct () const=0 |
returns if grid function is needed for evaluation More... | |
std::string | type () const |
returns type of data as string (e.g. "Number", "Vector", "Matrix") More... | |
void | operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 1 > &locIP, LocalVector *u) const |
void | operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 2 > &locIP, LocalVector *u) const |
void | operator() (TData &value, const MathVector< dim > &globIP, number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< 3 > &locIP, LocalVector *u) const |
virtual void | operator() (TData 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=0 |
virtual void | operator() (TData 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=0 |
virtual void | operator() (TData 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=0 |
Protected Member Functions | |
void | call_storage_callback () const |
calls are registered external storage callbacks More... | |
void | check_series (size_t s) const |
checks in debug mode the correct index More... | |
void | check_series_ip (size_t s, size_t ip) const |
checks in debug mode the correct index More... | |
virtual void | local_ip_series_added (const size_t seriesID) |
resizes the data field, when local ip changed signaled More... | |
virtual void | local_ip_series_to_be_cleared () |
free the data field memory and set series to zero More... | |
virtual void | local_ips_changed (const size_t seriesID, const size_t newNumIP) |
implement callback, called when local IPs changed More... | |
virtual void | value_storage_changed (const size_t seriesID) |
callback, invoked when storage of data has changed for a series More... | |
Protected Member Functions inherited from ug::ICplUserData< dim > | |
void | check_s (size_t s) const |
checks in debug mode the correct usage of indices More... | |
void | check_s_ip (size_t s, size_t ip) const |
checks in debug mode the correct usage of indices More... | |
std::vector< const MathVector< 1 > * > & | get_local_ips (Int2Type< 1 >) |
help function to get local ips More... | |
const std::vector< const MathVector< 1 > * > & | get_local_ips (Int2Type< 1 >) const |
std::vector< const MathVector< 2 > * > & | get_local_ips (Int2Type< 2 >) |
const std::vector< const MathVector< 2 > * > & | get_local_ips (Int2Type< 2 >) const |
std::vector< const MathVector< 3 > * > & | get_local_ips (Int2Type< 3 >) |
const std::vector< const MathVector< 3 > * > & | get_local_ips (Int2Type< 3 >) const |
virtual void | global_ips_changed (const size_t seriesID, const MathVector< dim > *vPos, const size_t numIP) |
callback invoked after global ips have been changed More... | |
Private Types | |
typedef boost::function< void()> | CallbackFct |
registered callbacks More... | |
Private Attributes | |
std::vector< std::pair< DataImport< TData, dim > *, CallbackFct > > | m_vCallback |
std::vector< std::vector< bool > > | m_vvBoolFlag |
bool flag at ip (size: (0,...num_series-1) x (0,...,num_ip-1)) More... | |
std::vector< std::vector< TData > > | m_vvValue |
data at ip (size: (0,...num_series-1) x (0,...,num_ip-1)) More... | |
Additional Inherited Members | |
Protected Attributes inherited from ug::ICplUserData< dim > | |
int | m_defaultTimePoint |
default time point (or -1 if not specified) More... | |
int | m_locPosDim |
dimension of local position (-1 indicates no dim set) More... | |
std::vector< const MathVector< 1 > * > | m_pvLocIP1d |
local ips of dimension 1d-3d More... | |
std::vector< const MathVector< 2 > * > | m_pvLocIP2d |
std::vector< const MathVector< 3 > * > | m_pvLocIP3d |
int | m_si |
subset for evaluation More... | |
size_t | m_timePoint |
current time point (used if no explicit specification for series) More... | |
std::vector< bool > | m_vMayChange |
flags if local ips may change More... | |
std::vector< size_t > | m_vNumIP |
number of evaluation points (-1 indicates no ips set) More... | |
std::vector< number > | m_vTime |
time for evaluation More... | |
std::vector< int > | m_vTimePoint |
time points for the series More... | |
std::vector< const MathVector< dim > * > | m_vvGlobPos |
global ips More... | |
Protected Attributes inherited from ug::UserDataInfo | |
FunctionGroup | m_fctGrp |
functions the data depends on More... | |
FunctionIndexMapping | m_map |
Mapping for import fct. More... | |
SmartPtr< char > | m_objName |
This field is used mainly for debugging: One can assign a name to the object to identify it when running. More... | |
Type based UserData.
This class is the base class for all integration point data for a templated type. It provides the access to the data and handles the global integration points.
TData | Data |
dim | world dimension |
TRet | Type of return flag (bool or void) |
typedef ICplUserData<dim> ug::CplUserData< TData, dim, TRet >::base_type |
type of base class
|
private |
registered callbacks
|
inline |
destructor
References ug::CplUserData< TData, dim, TRet >::local_ip_series_to_be_cleared().
|
protected |
calls are registered external storage callbacks
|
inlineprotected |
checks in debug mode the correct index
Referenced by ug::CplUserData< TData, dim, TRet >::values().
|
inlineprotected |
checks in debug mode the correct index
Referenced by ug::CplUserData< TData, dim, TRet >::defined(), and ug::CplUserData< TData, dim, TRet >::value().
|
inline |
returns flag, if data is evaluated (for conditional data)
References ug::CplUserData< TData, dim, TRet >::check_series_ip(), ug::ICplUserData< dim >::ip(), ug::CplUserData< TData, dim, TRet >::m_vvBoolFlag, and s.
|
protectedvirtual |
resizes the data field, when local ip changed signaled
Reimplemented from ug::ICplUserData< dim >.
Reimplemented in ug::DependentUserData< TData, dim >, ug::StdDataLinker< TImpl, TData, dim >, ug::StdDataLinker< BinghamViscosityLinker< dim >, number, dim >, ug::StdDataLinker< LuaUserFunction< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< UserVectorEntryAdapter< dim >, number, dim >, ug::StdDataLinker< ProjectionLinker< dim >, MathVector< dim >, dim >, ug::StdDataLinker< ScaleAddLinker< TData, dim, TDataScale, TData >, TData, dim >, ug::StdDataLinker< InverseLinker< dim >, number, dim >, ug::StdDataLinker< IntervalNumberLinker< dim >, number, dim >, ug::StdDataLinker< VRLUserLinker< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >, and ug::StdDataLinker< RichardsLinker< dim, TFunctor >, number, dim >.
|
protectedvirtual |
free the data field memory and set series to zero
Reimplemented from ug::ICplUserData< dim >.
Reimplemented in ug::DependentUserData< TData, dim >, ug::StdDataLinker< TImpl, TData, dim >, ug::StdDataLinker< BinghamViscosityLinker< dim >, number, dim >, ug::StdDataLinker< LuaUserFunction< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< UserVectorEntryAdapter< dim >, number, dim >, ug::StdDataLinker< ProjectionLinker< dim >, MathVector< dim >, dim >, ug::StdDataLinker< ScaleAddLinker< TData, dim, TDataScale, TData >, TData, dim >, ug::StdDataLinker< InverseLinker< dim >, number, dim >, ug::StdDataLinker< IntervalNumberLinker< dim >, number, dim >, ug::StdDataLinker< VRLUserLinker< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >, and ug::StdDataLinker< RichardsLinker< dim, TFunctor >, number, dim >.
Referenced by ug::CplUserData< TData, dim, TRet >::~CplUserData().
|
protectedvirtual |
implement callback, called when local IPs changed
Implements ug::ICplUserData< dim >.
Reimplemented in ug::DependentUserData< TData, dim >, ug::StdDataLinker< TImpl, TData, dim >, ug::StdDataLinker< BinghamViscosityLinker< dim >, number, dim >, ug::StdDataLinker< LuaUserFunction< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< UserVectorEntryAdapter< dim >, number, dim >, ug::StdDataLinker< ProjectionLinker< dim >, MathVector< dim >, dim >, ug::StdDataLinker< ScaleAddLinker< TData, dim, TDataScale, TData >, TData, dim >, ug::StdDataLinker< InverseLinker< dim >, number, dim >, ug::StdDataLinker< IntervalNumberLinker< dim >, number, dim >, ug::StdDataLinker< VRLUserLinker< TData, dim, TDataIn >, TData, dim >, ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >, and ug::StdDataLinker< RichardsLinker< dim, TFunctor >, number, dim >.
|
inline |
returns the number of integration points
Referenced by ug::EdgeOrientation< TDomain >::compute(), and ug::GlobAttachmentElementUserData< WDim, TData >::compute().
|
inline |
explicitly forward some functions
Referenced by ug::EdgeOrientation< TDomain >::compute(), and ug::GlobAttachmentElementUserData< WDim, TData >::compute().
void ug::CplUserData< TData, dim, TRet >::register_storage_callback | ( | DataImport< TData, dim > * | obj, |
void(DataImport< TData, dim >::*)() | func | ||
) |
register external callback, invoked when data storage changed
References func().
void ug::CplUserData< TData, dim, TRet >::unregister_storage_callback | ( | DataImport< TData, dim > * | obj | ) |
register all callbacks registered by class
|
inline |
returns the value at ip
References ug::CplUserData< TData, dim, TRet >::check_series_ip(), ug::ICplUserData< dim >::ip(), ug::CplUserData< TData, dim, TRet >::m_vvValue, and s.
|
inline |
returns the value at ip
References ug::CplUserData< TData, dim, TRet >::check_series_ip(), ug::ICplUserData< dim >::ip(), ug::CplUserData< TData, dim, TRet >::m_vvValue, and s.
Referenced by ug::EdgeOrientation< TDomain >::compute().
|
inlineprotectedvirtual |
callback, invoked when storage of data has changed for a series
Reimplemented in ug::StdConstData< TImpl, TData, dim >, ug::StdConstData< ConstUserNumber< dim >, number, dim >, ug::StdConstData< ConstUserMatrix< N, N, N >, MathMatrix< N, N >, N >, ug::StdConstData< ConstUserVector< dim, dim >, MathVector< dim >, dim >, and ug::StdConstData< ConstUserTensor< TRank, dim >, MathTensor< TRank, dim >, dim >.
|
inline |
returns all values for a series
References ug::CplUserData< TData, dim, TRet >::check_series(), ug::CplUserData< TData, dim, TRet >::m_vvValue, and s.
|
inline |
returns all values for a series
References ug::CplUserData< TData, dim, TRet >::check_series(), ug::CplUserData< TData, dim, TRet >::m_vvValue, and s.
Referenced by ug::GlobAttachmentElementUserData< WDim, TData >::compute(), and ug::StdDependentUserData< TImpl, TData, dim >::eval_deriv().
|
private |
|
private |
bool flag at ip (size: (0,...num_series-1) x (0,...,num_ip-1))
Referenced by ug::CplUserData< TData, dim, TRet >::defined().
|
private |
data at ip (size: (0,...num_series-1) x (0,...,num_ip-1))
Referenced by ug::CplUserData< TData, dim, TRet >::value(), and ug::CplUserData< TData, dim, TRet >::values().