Plugins
ug::Electromagnetism::NedelecSigmaEData< TGridFunc > Class Template Reference

#include <nedelec_gf_user_data.h>

+ Inheritance diagram for ug::Electromagnetism::NedelecSigmaEData< TGridFunc >:

Public Types

typedef TGridFunc::domain_type domain_type
 Type of domain. More...
 
typedef domain_type::position_type position_type
 Type of position coordinates (e.g. position_type) More...
 
- Public Types inherited from CplUserData< TData, dim, void >
typedef ICplUserData< dimbase_type
 
- Public Types inherited from UserData< TData, dim, void >
typedef TData data_type
 
typedef void return_type
 

Public Member Functions

virtual bool continuous () const
 The vector field retrieved from the Nedelec-type 1 (Whitney-1) dofs are not continuous. More...
 
template<int refDim>
void eval_and_deriv (MathVector< dim > 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< MathVector< dim > > > vvvDeriv[], const MathMatrix< refDim, dim > *vJT=NULL) const
 Performs the main computations: More...
 
 NedelecSigmaEData (SmartPtr< TGridFunc > spGridFct, const char *cmp, SmartPtr< EMaterial< domain_type > > emMatherial)
 constructor More...
 
virtual bool requires_grid_fct () const
 Returns true to get the grid element in the evaluation routine. More...
 
- Public Member Functions inherited from ug::StdDependentUserData< NedelecSigmaEData< TGridFunc >, MathVector< TGridFunc::dim >, TGridFunc::dim >
virtual void compute (LocalVector *u, GridObject *elem, const MathVector< TGridFunc::dim > vCornerCoords[], bool bDeriv=false)
 
virtual void compute (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< TGridFunc::dim > vCornerCoords[], bool bDeriv=false)
 
void eval_deriv (LocalVector *u, GridObject *elem, const MathVector< TGridFunc::dim > vCornerCoords[], bool bDeriv=false)
 
void eval_deriv (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< TGridFunc::dim > vCornerCoords[], bool bDeriv=false)
 
void evaluate (TData vValue[], const MathVector< TGridFunc::dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< TGridFunc::dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< refDim, TGridFunc::dim > *vJT=NULL) const
 
virtual void operator() (TData &value, const MathVector< TGridFunc::dim > &globIP, number time, int si) const
 
virtual void operator() (TData vValue[], const MathVector< TGridFunc::dim > vGlobIP[], number time, int si, const size_t nip) const
 
 StdDependentUserData ()
 
 StdDependentUserData (const char *symbFct)
 
 StdDependentUserData (const std::string &symbFct)
 
 StdDependentUserData (const std::vector< std::string > &symbFct)
 
- Public Member Functions inherited from ug::StdUserData< class, class, dim, class, class >
virtual TRet operator() (TData &value, const MathVector< dim > &globIP, number time, int si) const=0
 
virtual void operator() (TData vValue[], const MathVector< dim > vGlobIP[], number time, int si, const size_t nip) const=0
 
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
 
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
 
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
 
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
 
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
 
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
 
- Public Member Functions inherited from CplUserData< TData, dim, void >
bool defined (size_t s, size_t ip) const
 
size_t num_ip (size_t s) const
 
size_t num_series () const
 
void register_storage_callback (DataImport< TData, dim > *obj, void(DataImport< TData, dim >::*func)())
 
void unregister_storage_callback (DataImport< TData, dim > *obj)
 
TData & value (size_t s, size_t ip)
 
const TData & value (size_t s, size_t ip) const
 
TData * values (size_t s)
 
const TData * values (size_t s) const
 
 ~CplUserData ()
 
- Public Member Functions inherited from ug::ICplUserData< dim >
bool at_current_time (size_t s) const
 
virtual void check_setup () const
 
void clear ()
 
virtual void compute (LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)=0
 
virtual void compute (LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)=0
 
virtual bool constant () const
 
int dim_local_ips () const
 
 ICplUserData ()
 
const MathVector< dim > & ip (size_t s, size_t ip) const
 
const MathVector< dim > * ips (size_t s) const
 
const MathVector< ldim > & local_ip (size_t s, size_t ip) const
 
const MathVector< ldim > * local_ips (size_t s) const
 
virtual SmartPtr< ICplUserDataneeded_data (size_t i)
 
size_t num_ip (size_t s) const
 
virtual size_t num_needed_data () const
 
size_t num_series () const
 
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, bool bMayChange=true)
 
size_t register_local_ip_series (const MathVector< ldim > *vPos, const size_t numIP, const int timePointSpec, bool bMayChange=true)
 
void set_global_ips (size_t s, const MathVector< dim > *vPos, size_t numIP)
 
void set_local_ips (const size_t seriesId, const MathVector< ldim > *vPos, const size_t numIP)
 
void set_subset (int si)
 
void set_time_point (const size_t seriesId, const int timePointSpec)
 
void set_time_point (size_t timePoint)
 
void set_times (const std::vector< number > &vTime)
 
int subset () const
 
number time () const
 
number time (size_t s) const
 
size_t time_point ()
 
size_t time_point (size_t s) const
 
int time_point_specification (size_t s) const
 
virtual void update_dof_sizes (const LocalIndices &ind)
 
virtual bool zero_derivative () const
 
virtual ~ICplUserData ()
 
- Public Member Functions inherited from ug::UserDataInfo
const FunctionGroupfunction_group () const
 
const FunctionIndexMappingmap () const
 
size_t num_fct () const
 
const char * obj_name ()
 
virtual void set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt)
 
void set_obj_name (const char *name)
 
virtual ~UserDataInfo ()
 
- Public Member Functions inherited from UserData< TData, dim, void >
int get_dim () const
 
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< 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< 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
 
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 &value, const MathVector< dim > &globIP, number time, int si, Vertex *vrt) 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< 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< 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
 
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
 
std::string type () const
 

Static Public Attributes

static const int dim = domain_type::dim
 World dimension. More...
 

Private Attributes

size_t m_fct
 component of function More...
 
SmartPtr< EMaterial< domain_type > > m_spEMaterial
 subdomain-dependent data (propertiels of the materials) More...
 
SmartPtr< TGridFunc > m_spGF
 grid function More...
 

Additional Inherited Members

- Protected Member Functions inherited from ug::StdDependentUserData< NedelecSigmaEData< TGridFunc >, MathVector< TGridFunc::dim >, TGridFunc::dim >
TImpl & getImpl ()
 
const TImpl & getImpl () const
 
- Protected Member Functions inherited from ug::StdUserData< class, class, dim, class, class >
TImpl & getImpl ()
 
const TImpl & getImpl () const
 
- Protected Member Functions inherited from CplUserData< TData, dim, void >
void call_storage_callback () const
 
void check_series (size_t s) const
 
void check_series_ip (size_t s, size_t ip) const
 
virtual void local_ip_series_added (const size_t seriesID)
 
virtual void local_ip_series_to_be_cleared ()
 
virtual void local_ips_changed (const size_t seriesID, const size_t newNumIP)
 
virtual void value_storage_changed (const size_t seriesID)
 
- Protected Member Functions inherited from ug::ICplUserData< dim >
void check_s (size_t s) const
 
void check_s_ip (size_t s, size_t ip) const
 
std::vector< const MathVector< 1 > * > & get_local_ips (Int2Type< 1 >)
 
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)
 
- Protected Attributes inherited from ug::ICplUserData< dim >
int m_defaultTimePoint
 
int m_locPosDim
 
std::vector< const MathVector< 1 > * > m_pvLocIP1d
 
std::vector< const MathVector< 2 > * > m_pvLocIP2d
 
std::vector< const MathVector< 3 > * > m_pvLocIP3d
 
int m_si
 
size_t m_timePoint
 
std::vector< bool > m_vMayChange
 
std::vector< size_t > m_vNumIP
 
std::vector< numberm_vTime
 
std::vector< int > m_vTimePoint
 
std::vector< const MathVector< dim > * > m_vvGlobPos
 
- Protected Attributes inherited from ug::UserDataInfo
FunctionGroup m_fctGrp
 
FunctionIndexMapping m_map
 
SmartPtr< char > m_objName
 

Detailed Description

template<typename TGridFunc>
class ug::Electromagnetism::NedelecSigmaEData< TGridFunc >

UserData based class that computes vector values of grid functions multiplied by the conductivity \( \sigma \). The grid functions should keep a Nedelec-element (Whitney-1) based representation of a vector field. If the grid functions represent the electric field E, then this UserData computes the current (not taking into account the generator current).

Member Typedef Documentation

◆ domain_type

template<typename TGridFunc >
typedef TGridFunc::domain_type ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::domain_type

Type of domain.

◆ position_type

template<typename TGridFunc >
typedef domain_type::position_type ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::position_type

Type of position coordinates (e.g. position_type)

Constructor & Destructor Documentation

◆ NedelecSigmaEData()

template<typename TGridFunc >
ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::NedelecSigmaEData ( SmartPtr< TGridFunc >  spGridFct,
const char *  cmp,
SmartPtr< EMaterial< domain_type > >  emMatherial 
)
inline

constructor

Parameters
spGridFctgrid function with the DoFs
cmpthe component of the grid function keeping the scalar DoFs
emMatherialproperties of the materials

References ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::m_fct, ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::m_spGF, ug::LFEID::NEDELEC, UG_CATCH_THROW, and UG_THROW.

Member Function Documentation

◆ continuous()

template<typename TGridFunc >
virtual bool ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::continuous ( ) const
inlinevirtual

The vector field retrieved from the Nedelec-type 1 (Whitney-1) dofs are not continuous.

Implements UserData< TData, dim, void >.

◆ eval_and_deriv()

template<typename TGridFunc >
template<int refDim>
void ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::eval_and_deriv ( MathVector< dim 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< MathVector< dim > > >  vvvDeriv[],
const MathMatrix< refDim, dim > *  vJT = NULL 
) const
inline

◆ requires_grid_fct()

template<typename TGridFunc >
virtual bool ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::requires_grid_fct ( ) const
inlinevirtual

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

Implements UserData< TData, dim, void >.

Member Data Documentation

◆ dim

template<typename TGridFunc >
const int ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::dim = domain_type::dim
static

World dimension.

◆ m_fct

◆ m_spEMaterial

template<typename TGridFunc >
SmartPtr<EMaterial<domain_type> > ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::m_spEMaterial
private

subdomain-dependent data (propertiels of the materials)

Referenced by ug::Electromagnetism::NedelecSigmaEData< TGridFunc >::eval_and_deriv().

◆ m_spGF


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