FE-discretization of the time-harmonic E-based formulation of the eddy current model.
More...
|
| EddyCurrent_E_Nedelec (const char *functions, ConstSmartPtr< EMaterial< domain_type > > spSubsetData, number frequency) |
| class constructor More...
|
|
void | set_generator_current (SmartPtr< TGridFunction > spgfJG, const char *cmp) |
| adds a generator current item \( \mathbf{J}_{G,h} \) to the discretization More...
|
|
void | set_generator_current (SmartPtr< TGridFunction > spgfJG, const char *cmp, const char *ss_names=NULL) |
| adds a generator current item \( \mathbf{J}_{G,h} \) to the discretization More...
|
|
void | add_elem_modifier (SmartPtr< IElemDiscModifier< TDomain > > elemModifier) |
|
std::vector< SmartPtr< IElemDiscModifier< TDomain > > > & | get_elem_modifier () |
|
| IElemDisc (const char *functions, const char *subsets) |
|
| IElemDisc (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) |
|
virtual void | add_def_A_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | add_def_A_expl_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | add_def_M_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | add_jac_A_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | add_jac_M_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
IElemDisc< TDomain > & | asLeaf () |
|
void | check_roid (ReferenceObjectID roid, int discType) |
|
void | do_add_def_A_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_add_def_A_expl_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_add_def_M_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_add_jac_A_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_add_jac_M_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_fsh_elem_loop () |
|
void | do_fsh_timestep (const number time, VectorProxyBase *u, size_t algebra_id) |
|
void | do_fsh_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_prep_elem (LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[]) |
|
void | do_prep_elem_loop (const ReferenceObjectID roid, const int si) |
|
void | do_prep_timestep (number future_time, const number time, VectorProxyBase *u, size_t algebra_id) |
|
void | do_prep_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | fsh_elem_loop () |
|
virtual void | fsh_timestep (number time, VectorProxyBase *u) |
|
virtual void | fsh_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
| IElemAssembleFuncs () |
|
virtual void | post_assemble_loop () |
|
virtual void | prep_assemble_loop () |
|
virtual void | prep_elem (const LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[]) |
|
virtual void | prep_elem_loop (const ReferenceObjectID roid, const int si) |
|
virtual void | prep_timestep (number future_time, number time, VectorProxyBase *u) |
|
virtual void | prep_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | set_roid (ReferenceObjectID id, int discType) |
|
virtual | ~IElemAssembleFuncs () |
|
| IElemError (const char *functions, const char *subsets) |
|
| IElemError (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) |
|
SmartPtr< ApproximationSpace< TDomain > > | approx_space () |
|
ConstSmartPtr< ApproximationSpace< TDomain > > | approx_space () const |
|
void | check_setup (bool bNonRegularGrid) |
|
void | clear_imports () |
|
SmartPtr< TDomain > | domain () |
|
ConstSmartPtr< TDomain > | domain () const |
|
const FunctionGroup & | function_group () const |
|
ConstSmartPtr< FunctionPattern > | function_pattern () const |
|
IDataImport< dim > & | get_import (size_t i) |
|
| IElemDiscBase (const char *functions="", const char *subsets="") |
|
| IElemDiscBase (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) |
|
bool | is_time_dependent () const |
|
bool | local_time_series_needed () |
|
const LocalVectorTimeSeries * | local_time_solutions () const |
|
const FunctionIndexMapping & | map () const |
|
number | mass_scale () const |
|
number | mass_scale () const |
|
number | mass_scale (const size_t timePoint) const |
|
number | mass_scale (const size_t timePoint) const |
|
const std::vector< number > & | mass_scales () const |
|
const std::vector< number > & | mass_scales () const |
|
size_t | num_fct () const |
|
size_t | num_imports () const |
|
size_t | num_subsets () const |
|
void | register_import (IDataImport< dim > &Imp) |
|
virtual bool | requests_local_time_series () |
|
void | set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace) |
|
void | set_functions (const std::string &functions) |
|
void | set_functions (const std::vector< std::string > &functions) |
|
void | set_stationary () |
|
void | set_stationary (bool bStationaryForced=true) |
|
void | set_subsets (const std::string &subsets) |
|
void | set_subsets (const std::vector< std::string > &subsets) |
|
void | set_time_dependent (LocalVectorTimeSeries &locTimeSeries, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
|
void | set_time_independent () |
|
void | set_time_point (const size_t timePoint) |
|
number | stiff_scale () const |
|
number | stiff_scale () const |
|
number | stiff_scale (const size_t timePoint) const |
|
number | stiff_scale (const size_t timePoint) const |
|
const std::vector< number > & | stiff_scales () const |
|
const std::vector< number > & | stiff_scales () const |
|
TDomain::subset_handler_type & | subset_handler () |
|
const TDomain::subset_handler_type & | subset_handler () const |
|
const std::vector< std::string > & | symb_fcts () const |
|
const std::vector< std::string > & | symb_subsets () const |
|
number | time () const |
|
size_t | time_point () const |
|
virtual int | type () const |
|
virtual bool | use_hanging () const |
|
virtual | ~IElemDiscBase () |
|
IElemDisc< TDomain > & | asLeaf () |
|
void | check_roid (ReferenceObjectID roid, int discType) |
|
virtual void | compute_err_est_A_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
virtual void | compute_err_est_M_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
virtual void | compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
void | do_compute_err_est_A_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
void | do_compute_err_est_M_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
void | do_compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
|
void | do_fsh_err_est_elem_loop () |
|
void | do_prep_err_est_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
void | do_prep_err_est_elem_loop (const ReferenceObjectID roid, const int si) |
|
virtual SmartPtr< IErrEstData< TDomain > > | err_est_data () |
|
bool | err_est_enabled () const |
|
virtual void | fsh_err_est_elem_loop () |
|
| IElemEstimatorFuncs () |
|
virtual void | prep_err_est_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
|
virtual void | prep_err_est_elem_loop (const ReferenceObjectID roid, const int si) |
|
void | set_error_estimator (SmartPtr< IErrEstData< TDomain > > ee) |
|
void | set_roid (ReferenceObjectID id, int discType) |
|
virtual | ~IElemEstimatorFuncs () |
|
|
template<typename TElem > |
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 More...
|
|
template<typename TElem > |
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 More...
|
|
template<size_t numEdges> |
void | ass_elem_stiffness (number perm, number cond, number S[2][numEdges][2][numEdges]) |
| composes the stiffness matrix of the stationary problem More...
|
|
template<typename TElem > |
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 More...
|
|
template<typename TElem > |
void | ass_JM_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const position_type vCornerCoords[]) |
| computes the mass matrix of a time-dependent problem More...
|
|
template<typename TElem > |
void | ass_rhs_elem (LocalVector &d, GridObject *elem, const position_type vCornerCoords[]) |
| computes the right-hand side due to the generator currents More...
|
|
template<typename TElem > |
void | finish_element_loop () |
| finalizes the loop over the elements: clear the source More...
|
|
template<typename TElem > |
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 More...
|
|
template<typename TElem > |
void | prepare_element_loop (ReferenceObjectID roid, int si) |
| prepares the loop over the elements: checks whether the parameters are set, ... More...
|
|
virtual void | prepare_setting (const std::vector< LFEID > &vLfeID, bool bNonRegular) |
| check type of the grid and the trial space More...
|
|
void | register_all_loc_discr_funcs () |
| registers the local assembler functions for all the elements and dimensions More...
|
|
template<typename TElem > |
void | register_loc_discr_func () |
| registers the local assembler functions for a given element More...
|
|
|
typedef IElemAssembleFuncs< IElemDisc< TDomain >, TDomain > | assemble_base_type |
|
typedef IElemError< TDomain > | base_type |
|
typedef TDomain | domain_type |
|
typedef IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | estimator_base_type |
|
typedef TDomain | domain_type |
|
typedef IElemDisc< TDomain > | leaf_type |
|
typedef TDomain | domain_type |
|
typedef IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | estimator_base_type |
|
typedef TDomain | domain_type |
|
typedef TDomain::position_type | position_type |
|
typedef TDomain | domain_type |
|
typedef IElemDisc< TDomain > | leaf_type |
|
static const int | dim |
|
static const int | dim |
|
static const int | dim |
|
static const int | dim |
|
static const int | dim |
|
static const size_t | _Im_ = 1 |
| index of the imaginary part in the grid functions More...
|
|
static const size_t | _Re_ = 0 |
| index of the real part in the grid functions More...
|
|
void | clear_add_fct () |
|
void | clear_add_fct (ReferenceObjectID id) |
|
void | set_default_add_fct () |
|
void | clear_add_fct () |
|
void | clear_add_fct (ReferenceObjectID id) |
|
void | remove_add_def_A_elem_fct (ReferenceObjectID id) |
|
void | remove_add_def_A_expl_elem_fct (ReferenceObjectID id) |
|
void | remove_add_def_M_elem_fct (ReferenceObjectID id) |
|
void | remove_add_jac_A_elem_fct (ReferenceObjectID id) |
|
void | remove_add_jac_M_elem_fct (ReferenceObjectID id) |
|
void | remove_add_rhs_elem_fct (ReferenceObjectID id) |
|
void | remove_fsh_elem_loop_fct (ReferenceObjectID id) |
|
void | remove_fsh_timestep_elem_fct (ReferenceObjectID id) |
|
void | remove_fsh_timestep_fct (size_t algebra_id) |
|
void | remove_prep_elem_fct (ReferenceObjectID id) |
|
void | remove_prep_elem_loop_fct (ReferenceObjectID id) |
|
void | remove_prep_timestep_elem_fct (ReferenceObjectID id) |
|
void | remove_prep_timestep_fct (size_t algebra_id) |
|
void | set_add_def_A_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_add_def_A_expl_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_add_def_M_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_add_jac_A_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_add_jac_M_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_add_rhs_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_default_add_fct () |
|
void | set_fsh_elem_loop_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_fsh_timestep_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_fsh_timestep_fct (size_t algebra_id, TAssFunc func) |
|
void | set_prep_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_prep_elem_loop_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_prep_timestep_elem_fct (ReferenceObjectID id, TAssFunc func) |
|
void | set_prep_timestep_fct (size_t algebra_id, TAssFunc func) |
|
void | clear_add_fct () |
|
void | clear_add_fct (ReferenceObjectID id) |
|
virtual void | approximation_space_changed () |
|
void | set_function_pattern (ConstSmartPtr< FunctionPattern > fctPatt) |
|
void | update_function_index_mapping () |
|
void | clear_add_fct () |
|
void | clear_add_fct (ReferenceObjectID id) |
|
void | remove_compute_err_est_A_elem (ReferenceObjectID id) |
|
void | remove_compute_err_est_M_elem (ReferenceObjectID id) |
|
void | remove_compute_err_est_rhs_elem (ReferenceObjectID id) |
|
void | remove_fsh_err_est_elem_loop (ReferenceObjectID id) |
|
void | remove_prep_err_est_elem (ReferenceObjectID id) |
|
void | remove_prep_err_est_elem_loop (ReferenceObjectID id) |
|
void | set_compute_err_est_A_elem (ReferenceObjectID id, TAssFunc func) |
|
void | set_compute_err_est_M_elem (ReferenceObjectID id, TAssFunc func) |
|
void | set_compute_err_est_rhs_elem (ReferenceObjectID id, TAssFunc func) |
|
void | set_default_add_fct () |
|
void | set_fsh_err_est_elem_loop (ReferenceObjectID id, TAssFunc func) |
|
void | set_prep_err_est_elem (ReferenceObjectID id, TAssFunc func) |
|
void | set_prep_err_est_elem_loop (ReferenceObjectID id, TAssFunc func) |
|
std::vector< SmartPtr< IElemDiscModifier< TDomain > > > | m_spElemModifier |
|
ReferenceObjectID | m_roid |
|
bool | m_bStationaryForced |
|
FunctionGroup | m_fctGrp |
|
FunctionIndexMapping | m_fctIndexMap |
|
LocalVectorTimeSeries * | m_pLocalVectorTimeSeries |
|
SmartPtr< ApproximationSpace< TDomain > > | m_spApproxSpace |
|
ConstSmartPtr< FunctionPattern > | m_spFctPattern |
|
size_t | m_timePoint |
|
std::vector< std::string > | m_vFct |
|
std::vector< IDataImport< dim > * > | m_vIImport |
|
std::vector< number > | m_vScaleMass |
|
std::vector< number > | m_vScaleStiff |
|
std::vector< std::string > | m_vSubset |
|
ReferenceObjectID | m_roid |
|
SmartPtr< IErrEstData< TDomain > > | m_spErrEstData |
|
template<typename TDomain, typename TAlgebra>
class ug::Electromagnetism::EddyCurrent_E_Nedelec< TDomain, TAlgebra >
FE-discretization of the time-harmonic E-based formulation of the eddy current model.
This class implements the local FE-discretization of the time-harmonic E-based formulation of the eddy current model using the linear Nedelec-Type-1 (Whitney-1) elements. The model is formulated as follows:
\begin{eqnarray*} \mathbf{rot} \mu^{-1} \mathbf{rot} \mathbf{E} + i \omega \sigma \mathbf{E} = - i \omega \mathbf{J}_G, \end{eqnarray*}
where
-
\( \mathbf{E} \) (unknown, complex-valued scalar) electric field
-
\( \mu \) (given) magnetic permeability (a real number)
-
\( \sigma \) (given) conductivity (a real number)
-
\( \omega \) (given) frequency (a real number)
-
\( \mathbf{J}_G \) (given) generator current (non-zero only in the subdomain with \( \sigma = 0 \))
-
\( i = \sqrt{-1} \)
References:
-
O. Sterz. Modellierung und Numerik zeitharmonischer Wirbelstromprobleme in 3D. PhD thesis, Heidelberg University, 2003.
-
A. Bossavit. Computational Electromagnetism. Academic Press (Boston), 1998
- Template Parameters
-
TDomain | Domain type |
TAlgebra | Algebra type |