33#ifndef __H__UG__LIB_DISC__SPATIAL_DISC__SCALE_ADD_LINKER__
34#define __H__UG__LIB_DISC__SPATIAL_DISC__SCALE_ADD_LINKER__
58template <
typename TData,
int dim,
typename TDataScale,
typename TRet = TData>
60 :
public StdDataLinker<ScaleAddLinker<TData, dim, TDataScale, TRet>, TRet, dim>
100 template <
int refDim>
111 std::vector<std::vector<TRet> > vvvDeriv[],
124 const TData&
input_deriv(
size_t i,
size_t s,
size_t ip,
size_t fct,
size_t dof)
const
124 const TData&
input_deriv(
size_t i,
size_t s,
size_t ip,
size_t fct,
size_t dof)
const {
…}
140 const TDataScale&
scale_deriv(
size_t i,
size_t s,
size_t ip,
size_t fct,
size_t dof)
const
140 const TDataScale&
scale_deriv(
size_t i,
size_t s,
size_t ip,
size_t fct,
size_t dof)
const {
…}
148 size_t input_num_fct(
size_t i)
const {
return base_type::input_num_fct(2*i);}
151 size_t input_common_fct(
size_t i,
size_t fct)
const {
return base_type::input_common_fct(2*i, fct);}
154 size_t scale_num_fct(
size_t i)
const {
return base_type::input_num_fct(2*i+1);}
157 size_t scale_common_fct(
size_t i,
size_t fct)
const {
return base_type::input_common_fct(2*i+1, fct);}
Definition smart_pointer.h:108
Type based UserData.
Definition user_data.h:501
const TData & value(size_t s, size_t ip) const
returns the value at ip
Definition user_data.h:512
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition grid_base_objects.h:157
number time() const
get the current evaluation time
Definition user_data.h:285
const MathVector< dim > & ip(size_t s, size_t ip) const
returns global ip
Definition user_data.h:401
Definition local_algebra.h:198
A class for fixed size, dense matrices.
Definition math_matrix.h:63
a mathematical Vector with N entries.
Definition math_vector.h:97
Definition scale_add_linker.h:61
const TDataScale & scale_value(size_t i, size_t s, size_t ip) const
scale at ip of input
Definition scale_add_linker.h:132
std::vector< SmartPtr< CplUserData< TData, dim > > > m_vpUserData
data input
Definition scale_add_linker.h:167
size_t scale_num_fct(size_t i) const
returns number of functions the scaling depends on
Definition scale_add_linker.h:154
size_t input_common_fct(size_t i, size_t fct) const
returns the number in the common FctGrp for a fct of an input
Definition scale_add_linker.h:151
const TData & input_deriv(size_t i, size_t s, size_t ip, size_t fct, size_t dof) const
derivative of data at input at ip
Definition scale_add_linker.h:124
void eval_and_deriv(TRet 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, bool bDeriv, int s, std::vector< std::vector< TRet > > vvvDeriv[], const MathMatrix< refDim, dim > *vJT=NULL) const
Definition scale_add_linker_impl.h:172
std::vector< SmartPtr< CplUserData< TDataScale, dim > > > m_vpScaleData
data input
Definition scale_add_linker.h:161
const TData & input_value(size_t i, size_t s, size_t ip) const
data at ip of input
Definition scale_add_linker.h:116
StdDataLinker< ScaleAddLinker< TData, dim, TDataScale, TRet >, TRet, dim > base_type
Definition scale_add_linker.h:64
std::vector< SmartPtr< DependentUserData< TDataScale, dim > > > m_vpScaleDependData
data input casted to dependend data
Definition scale_add_linker.h:164
void add(SmartPtr< CplUserData< TDataScale, dim > > scale, SmartPtr< CplUserData< TData, dim > > data)
Definition scale_add_linker_impl.h:62
size_t input_num_fct(size_t i) const
returns number of functions the input depends on
Definition scale_add_linker.h:148
std::vector< SmartPtr< DependentUserData< TData, dim > > > m_vpDependData
data input casted to dependend data
Definition scale_add_linker.h:170
void evaluate(TRet &value, const MathVector< dim > &globIP, number time, int si) const
Definition scale_add_linker_impl.h:114
const TDataScale & scale_deriv(size_t i, size_t s, size_t ip, size_t fct, size_t dof) const
derivative of data at input at ip
Definition scale_add_linker.h:140
size_t scale_common_fct(size_t i, size_t fct) const
returns the number in the common FctGrp for a fct of a scaling
Definition scale_add_linker.h:157
ScaleAddLinker()
constructor
Definition scale_add_linker.h:68
combines several UserDatas to a new UserData of a specified type
Definition linker.h:54
size_t series_id(size_t i, size_t s) const
returns the series id set for the i'th input
Definition linker.h:161
#define UG_ASSERT(expr, msg)
Definition assert.h:70
double number
Definition types.h:124