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
|
| |
| void | set_generator_current (SmartPtr< TGridFunction > spgfJG, const char *cmp) |
| | adds a generator current item \( \mathbf{J}_{G,h} \) to the discretization
|
| |
| 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
|
| |
| 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[]) |
| |
| TLeaf & | 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 () |
| |
| TLeaf & | 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
|
| |
| 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
|
| |
| 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
|
| |
| 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
|
| |
| 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
|
| |
| 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
|
| |
| template<typename TElem > |
| void | finish_element_loop () |
| | finalizes the loop over the elements: clear the source
|
| |
| 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
|
| |
| template<typename TElem > |
| void | prepare_element_loop (ReferenceObjectID roid, int si) |
| | prepares the loop over the elements: checks whether the parameters are set, ...
|
| |
| virtual void | prepare_setting (const std::vector< LFEID > &vLfeID, bool bNonRegular) |
| | check type of the grid and the trial space
|
| |
| void | register_all_loc_discr_funcs () |
| | registers the local assembler functions for all the elements and dimensions
|
| |
| template<typename TElem > |
| void | register_loc_discr_func () |
| | registers the local assembler functions for a given element
|
| |
|
| 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 TLeaf | 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 TLeaf | 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
|
| |
| static const size_t | _Re_ = 0 |
| | index of the real part in the grid functions
|
| |
| 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 |