Plugins
|
Tool kit for the Whitney-1 (Nedelec) based FE discretization of the rot-rot operators. More...
#include <nedelec_local_ass.h>
Public Types | |
typedef TDomain::grid_type | grid_type |
type of the grid More... | |
typedef TDomain::position_type | position_type |
type of the geometric positions (WDim-vectors) More... | |
typedef reference_element_traits< TElem >::reference_element_type | ref_elem_type |
type of reference element More... | |
typedef LagrangeP1< ref_elem_type > | W0_shapes_type |
shapes and derivatives of the Whitney-0 (Lagrange P1) shape functions More... | |
Static Public Member Functions | |
static void | curl (const TDomain *domain, TElem *elem, const position_type *corners, const number dofs[], MathVector< WDim > &curl_vec) |
computes the curl of the grid functions (in 2d represented as \((z, 0)\) instead of \((0, 0, z)\)) More... | |
static void | get_shapes (const TDomain *domain, TElem *elem, const position_type *corners, const MathVector< dim > local, MathVector< WDim > shapes[]) |
computes the Nedelec shapes at a given point More... | |
static void | interpolate (const TDomain *domain, TElem *elem, const position_type *corners, const number dofs[], const MathVector< dim > local[], const size_t n_pnt, MathVector< WDim > values[]) |
computes of the values of the grid functions More... | |
static void | local_div_matrix (const TDomain *domain, TElem *elem, const position_type *corners, number B[][numEdges]) |
assembles the discrete weak div operator More... | |
static void | local_mass (const TDomain *domain, TElem *elem, const position_type *corners, number M[maxNumEdges][maxNumEdges]) |
assembles the local mass matrix of the Nedelec elements More... | |
static void | local_stiffness_and_mass (const TDomain *domain, TElem *elem, const position_type *corners, number S[maxNumEdges][maxNumEdges], number M[maxNumEdges][maxNumEdges]) |
assembles the local stiffness and the mass matrices of the rot-rot operator More... | |
Static Public Attributes | |
static const int | dim = ref_elem_type::dim |
dimension of reference element More... | |
static const size_t | maxNumEdges = (size_t) element_list_traits<typename domain_traits<WDim>::DimElemList>::maxEdges |
max. number of the edges of the full-dimensional elements in the domain More... | |
static const size_t | numCorners = ref_elem_type::numCorners |
total number of the corners More... | |
static const size_t | numEdges = ref_elem_type::numEdges |
total number of the edges More... | |
static const int | WDim = TDomain::dim |
world dimention More... | |
Tool kit for the Whitney-1 (Nedelec) based FE discretization of the rot-rot operators.
Class for the local discretization of the rot-rot operator using the Nedelec-type-1 (Whitney-1) elements. This class may not contain any member except for static functions, so no instances of this class need to be created.
This basic class template does not contain any numerical algorithms as they are specific for different types of the elements. Cf. the specializations for simplices (
typedef TDomain::grid_type ug::Electromagnetism::NedelecT1_LDisc< TDomain, TElem >::grid_type |
type of the grid
typedef TDomain::position_type ug::Electromagnetism::NedelecT1_LDisc< TDomain, TElem >::position_type |
type of the geometric positions (WDim-vectors)
typedef reference_element_traits<TElem>::reference_element_type ug::Electromagnetism::NedelecT1_LDisc< TDomain, TElem >::ref_elem_type |
type of reference element
typedef LagrangeP1<ref_elem_type> ug::Electromagnetism::NedelecT1_LDisc< TDomain, TElem >::W0_shapes_type |
shapes and derivatives of the Whitney-0 (Lagrange P1) shape functions
|
inlinestatic |
computes the curl of the grid functions (in 2d represented as \((z, 0)\) instead of \((0, 0, z)\))
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[in] | dofs | arrays of values of the Nedelec degrees of freedom |
[out] | curl_vec | where to store the computed curl |
References UG_THROW.
Referenced by ug::Electromagnetism::NedelecInterpolation< TDomain, 2, 2 >::curl(), ug::Electromagnetism::NedelecInterpolation< TDomain, 3, 3 >::curl(), and ug::Electromagnetism::NedelecInterpolation< TDomain, 3, 3 >::curl_flux().
|
inlinestatic |
computes the Nedelec shapes at a given point
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[in] | local | local coordinates of the point where to compute |
[out] | shapes | array for the shapes |
References UG_THROW.
Referenced by ug::Electromagnetism::NedelecProlongationMatrixHelper< TDomain, TAlgebra, TElem >::assemble_prolongation_matrix().
|
inlinestatic |
computes of the values of the grid functions
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[in] | dofs | arrays of values of the Nedelec degrees of freedom |
[in] | local | local coordinates of the points where to compute |
[in] | n_pnt | number of the points where to compute |
[out] | values | where to store the computed n_pnt values |
References UG_THROW.
Referenced by ug::Electromagnetism::NedelecInterpolation< TDomain, 2, 2 >::value(), and ug::Electromagnetism::NedelecInterpolation< TDomain, 3, 3 >::value().
|
inlinestatic |
assembles the discrete weak div operator
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[out] | B | local weak divergence operator matrix |
References UG_THROW.
Referenced by ug::Electromagnetism::NedelecProject< TDomain, TAlgebra >::weak_div_elem_type().
|
inlinestatic |
assembles the local mass matrix of the Nedelec elements
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[out] | M | local mass matrix |
References UG_THROW.
Referenced by ug::Electromagnetism::CalcVolPowerElemHelperClass< TGridFunc, TElem >::calc_elem_power().
|
inlinestatic |
assembles the local stiffness and the mass matrices of the rot-rot operator
[in] | domain | the domain |
[in] | elem | element |
[in] | corners | array of the global corner coordinates |
[out] | S | local stiffness matrix |
[out] | M | local mass matrix |
References UG_THROW.
Referenced by ug::Electromagnetism::EddyCurrent_E_Nedelec< TDomain, TAlgebra >::prepare_element().
|
static |
dimension of reference element
|
static |
max. number of the edges of the full-dimensional elements in the domain
|
static |
total number of the corners
|
static |
total number of the edges
|
static |
world dimention