38 #ifndef __H__UG__PLUGINS__ELECTROMAGNETISM__EDDY_CURRENT_E_NEDELEC__
39 #define __H__UG__PLUGINS__ELECTROMAGNETISM__EDDY_CURRENT_E_NEDELEC__
53 #include "../em_material.h"
54 #include "../nedelec_local_ass.h"
57 namespace Electromagnetism{
95 template <
typename TDomain,
typename TAlgebra>
125 const char * functions,
136 const char * ss_names = NULL
154 const std::vector<LFEID> & vLfeID,
160 template <
typename TElem>
163 template <
typename TElem>
166 template <
typename TElem>
169 template <
typename TElem>
172 template <
typename TElem>
175 template <
typename TElem>
178 template <
typename TElem>
181 template <
typename TElem>
196 template <
typename TElem>
203 template<
size_t numEdges>
208 number S [2][numEdges] [2][numEdges]
231 size_t vFct_Re,
size_t vFct_Im,
242 std::vector<tGeneratorCurrent>
m_vJG;
Class for subdomain-dependent data for the E-based formulated problems.
Definition: em_material.h:63
FE-discretization of the time-harmonic E-based formulation of the eddy current model.
Definition: eddy_current_e_nedelec.h:98
static const size_t maxNumEdges
max. number of the edges of the full-dimensional elements in the domain
Definition: eddy_current_e_nedelec.h:119
tGeneratorCurrent * m_pSsJG
the source active in the current (assembled) subset
Definition: eddy_current_e_nedelec.h:245
void prepare_element(const LocalVector &u, GridObject *elem, ReferenceObjectID roid, const position_type vCornerCoords[])
prepares a given element for assembling: computes the discretization of the rot-rot operator
Definition: eddy_current_e_nedelec_impl.h:113
void ass_rhs_elem(LocalVector &d, GridObject *elem, const position_type vCornerCoords[])
computes the right-hand side due to the generator currents
Definition: eddy_current_e_nedelec_impl.h:258
void ass_dA_elem(LocalVector &d, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the local defect and transfers it to the global discretization
Definition: eddy_current_e_nedelec_impl.h:300
number m_conductivity
the electric conductivity in the subdomain
Definition: eddy_current_e_nedelec.h:259
EddyCurrent_E_Nedelec< TDomain, TAlgebra > this_type
own type
Definition: eddy_current_e_nedelec.h:104
EddyCurrent_E_Nedelec(const char *functions, ConstSmartPtr< EMaterial< domain_type > > spSubsetData, number frequency)
class constructor
Definition: eddy_current_e_nedelec_impl.h:451
void register_all_loc_discr_funcs()
registers the local assembler functions for all the elements and dimensions
Definition: eddy_current_e_nedelec_impl.h:337
void ass_JM_elem(LocalMatrix &J, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the mass matrix of a time-dependent problem
Definition: eddy_current_e_nedelec_impl.h:313
void ass_dM_elem(LocalVector &d, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
computes the mass part of the defect of a time-dependent problem
Definition: eddy_current_e_nedelec_impl.h:326
number m_permeability
the magnetic permeability in the subdomain
Definition: eddy_current_e_nedelec.h:256
void set_generator_current(SmartPtr< TGridFunction > spgfJG, const char *cmp)
adds a generator current item to the discretization
Definition: eddy_current_e_nedelec.h:140
std::vector< tGeneratorCurrent > m_vJG
array of all the sources (generator currents)
Definition: eddy_current_e_nedelec.h:242
void prepare_element_loop(ReferenceObjectID roid, int si)
prepares the loop over the elements: checks whether the parameters are set, ...
Definition: eddy_current_e_nedelec_impl.h:81
void set_generator_current(SmartPtr< TGridFunction > spgfJG, const char *cmp, const char *ss_names=NULL)
adds a generator current item to the discretization
Definition: eddy_current_e_nedelec_impl.h:377
void register_loc_discr_func()
registers the local assembler functions for a given element
Definition: eddy_current_e_nedelec_impl.h:349
base_type::position_type position_type
position type
Definition: eddy_current_e_nedelec.h:113
number m_rot_rot_S[maxNumEdges][maxNumEdges]
local stiffness matrix of the rot-rot operator
Definition: eddy_current_e_nedelec.h:251
void finish_element_loop()
finalizes the loop over the elements: clear the source
Definition: eddy_current_e_nedelec_impl.h:104
number m_omega
frequency for the discretization
Definition: eddy_current_e_nedelec.h:214
virtual void prepare_setting(const std::vector< LFEID > &vLfeID, bool bNonRegular)
check type of the grid and the trial space
Definition: eddy_current_e_nedelec_impl.h:53
base_type::domain_type domain_type
domain type
Definition: eddy_current_e_nedelec.h:110
number m_rot_rot_M[maxNumEdges][maxNumEdges]
local mass matrix of the rot-rot operator
Definition: eddy_current_e_nedelec.h:253
void ass_JA_elem(LocalMatrix &J, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[])
transfers the precomputed local stiffness matrix to the global discretization
Definition: eddy_current_e_nedelec_impl.h:211
ConstSmartPtr< EMaterial< domain_type > > m_spSubsetData
parameters of the materials in the domain
Definition: eddy_current_e_nedelec.h:217
GridFunction< TDomain, TAlgebra > TGridFunction
type of grid functions (used for the sources)
Definition: eddy_current_e_nedelec.h:107
static const int dim
world dimension
Definition: eddy_current_e_nedelec.h:116
void ass_elem_stiffness(number perm, number cond, number S[2][numEdges][2][numEdges])
composes the stiffness matrix of the stationary problem
Definition: eddy_current_e_nedelec_impl.h:173
IElemDisc< TDomain > base_type
base class type
Definition: eddy_current_e_nedelec.h:101
Auxiliary class defining some important constants.
Definition: eddy_current_traits.h:44
static const size_t _Im_
index of the imaginary part in the grid functions
Definition: eddy_current_traits.h:50
static const size_t _Re_
index of the real part in the grid functions
Definition: eddy_current_traits.h:48
TDomain::position_type position_type
Definition: eddy_current_e_nedelec.h:189
this_type * m_pThis
Definition: eddy_current_e_nedelec.h:191
void operator()(TElem &)
Definition: eddy_current_e_nedelec.h:192
RegisterLocalDiscr(this_type *pThis)
Definition: eddy_current_e_nedelec.h:190
class for a generator current (source) in a subdomain
Definition: eddy_current_e_nedelec.h:221
SmartPtr< TGridFunction > m_spGf
the grid function of the current
Definition: eddy_current_e_nedelec.h:222
SubsetGroup m_ssGrp
subsets where the source is defined (if ! m_everywhere)
Definition: eddy_current_e_nedelec.h:225
tGeneratorCurrent(SmartPtr< TGridFunction > &spGf, size_t vFct_Re, size_t vFct_Im, SubsetGroup &ssGrp, bool ew=false)
constructor
Definition: eddy_current_e_nedelec.h:229
size_t m_vFct[2]
components of the grid function
Definition: eddy_current_e_nedelec.h:223
bool m_everywhere
true iff the source is defined everywhere
Definition: eddy_current_e_nedelec.h:224