Flow123d
JS_before_hm-1710-g489f4168f
|
Compound finite element on dim
dimensional simplex.
More...
#include <fe_system.hh>
Public Member Functions | |
FESystem (std::shared_ptr< FiniteElement< dim > > fe, FEType t) | |
Constructor for FEVectorContravariant and FEVectorPiola. More... | |
FESystem (const std::shared_ptr< FiniteElement< dim > > &fe, FEType t, unsigned int n) | |
Constructor for FEVector, FETensor and FEMixedSystem. If t == FEVector then n must be the space dimension into which the reference cell will be mapped and that fe is scalar. If t == FETensor then n must be square of the space dimension into which the reference cell will be mapped and that fe is scalar. If t == FEMixedSystem, then n is the number of components. More... | |
FESystem (std::vector< std::shared_ptr< FiniteElement< dim > > > fe) | |
Constructor. FESystem for mixed elements. More... | |
std::vector< unsigned int > | get_scalar_components () const |
std::vector< unsigned int > | get_vector_components () const |
std::vector< unsigned int > | get_tensor_components () const |
UpdateFlags | update_each (UpdateFlags flags) override |
Decides which additional quantities have to be computed for each cell. More... | |
virtual std::vector< arma::vec::fixed< dim+1 > > | dof_points () const |
const std::vector< std::shared_ptr< FiniteElement< dim > > > & | fe () const |
std::vector< unsigned int > | fe_dofs (unsigned int fe_index) |
Return dof indices belonging to given sub-FE. More... | |
std::shared_ptr< FESystemFunctionSpace > | function_space () const |
Return function space casting to FESystemFunctionSpace type. More... | |
Public Member Functions inherited from FiniteElement< dim > | |
FiniteElement () | |
Constructor. More... | |
unsigned int | n_dofs () const |
Returns the number of degrees of freedom needed by the finite element. More... | |
double | shape_value (const unsigned int i, const arma::vec::fixed< dim > &p, const unsigned int comp=0) const |
Calculates the value of the comp-th component of the i-th shape function at the point p on the reference element. More... | |
arma::vec::fixed< dim > | shape_grad (const unsigned int i, const arma::vec::fixed< dim > &p, const unsigned int comp=0) const |
Calculates the comp-th component of the gradient of the i-th shape function at the point p on the reference element. More... | |
unsigned int | n_components () const |
Returns numer of components of the basis function. More... | |
const Dof & | dof (unsigned int i) const |
Returns i -th degree of freedom. More... | |
unsigned int | n_space_components (unsigned int spacedim) |
Number of components of FE in a mapped space with dimension spacedim . More... | |
virtual | ~FiniteElement () |
Destructor. More... | |
Private Member Functions | |
void | initialize () |
Initialization of the internal structures from the vector of base FE. More... | |
void | compute_node_matrix () override |
Initializes the node_matrix for computing the coefficients of the shape functions in the raw basis of functions_space_ . This is done by evaluating the dofs_ for the basis function and by inverting the resulting matrix. More... | |
Private Attributes | |
std::vector< std::shared_ptr< FiniteElement< dim > > > | fe_ |
Pointers to base FE objects. More... | |
std::vector< unsigned int > | scalar_components_ |
std::vector< unsigned int > | vector_components_ |
std::vector< unsigned int > | tensor_components_ |
Additional Inherited Members | |
Protected Member Functions inherited from FiniteElement< dim > | |
void | init (bool primitive=true, FEType type=FEScalar) |
Clears all internal structures. More... | |
void | setup_components () |
Initialize vectors with information about components of basis functions. More... | |
bool | is_primitive () const |
Indicates whether the basis functions have one or more nonzero components (scalar FE spaces are always primitive). More... | |
unsigned int | system_to_component_index (unsigned sys_idx) const |
Returns the component index for vector valued finite elements. More... | |
const std::vector< bool > & | get_nonzero_components (unsigned int sys_idx) const |
Returns the mask of nonzero components for given basis function. More... | |
Protected Attributes inherited from FiniteElement< dim > | |
FEType | type_ |
Type of FiniteElement. More... | |
bool | is_primitive_ |
Primitive FE is using componentwise shape functions, i.e. only one component is nonzero for each shape function. More... | |
std::vector< unsigned int > | component_indices_ |
Indices of nonzero components of shape functions (for primitive FE). More... | |
std::vector< std::vector< bool > > | nonzero_components_ |
Footprints of nonzero components of shape functions. More... | |
arma::mat | node_matrix |
Matrix that determines the coefficients of the raw basis functions from the values at the support points. More... | |
std::shared_ptr< FunctionSpace > | function_space_ |
Function space defining the FE. More... | |
std::vector< Dof > | dofs_ |
Set of degrees of freedom (functionals) defining the FE. More... | |
Compound finite element on dim
dimensional simplex.
This type of FE is used for vector-valued functions and for systems of equations.
Definition at line 101 of file fe_system.hh.
FESystem< dim >::FESystem | ( | std::shared_ptr< FiniteElement< dim > > | fe, |
FEType | t | ||
) |
Constructor for FEVectorContravariant and FEVectorPiola.
fe | Base finite element class (must be scalar). |
t | Type (must be FEVectorContravariant or FEVectorPiola). |
Definition at line 102 of file fe_system.cc.
FESystem< dim >::FESystem | ( | const std::shared_ptr< FiniteElement< dim > > & | fe, |
FEType | t, | ||
unsigned int | n | ||
) |
Constructor for FEVector, FETensor and FEMixedSystem. If t
== FEVector then n
must be the space dimension into which the reference cell will be mapped and that fe
is scalar. If t
== FETensor then n
must be square of the space dimension into which the reference cell will be mapped and that fe
is scalar. If t
== FEMixedSystem, then n
is the number of components.
fe | Base finite element class (must be scalar if t is FEVector or FETensor). |
t | Type of FESystem (must be either FEVector, FETensor or FEMixedSystem). |
n | Multiplicity (number of components). |
Definition at line 115 of file fe_system.cc.
FESystem< dim >::FESystem | ( | std::vector< std::shared_ptr< FiniteElement< dim > > > | fe | ) |
Constructor. FESystem for mixed elements.
fe | Base finite element classes. |
Definition at line 129 of file fe_system.cc.
|
overrideprivatevirtual |
Initializes the node_matrix
for computing the coefficients of the shape functions in the raw basis of functions_space_
. This is done by evaluating the dofs_
for the basis function and by inverting the resulting matrix.
Reimplemented from FiniteElement< dim >.
Definition at line 246 of file fe_system.cc.
Get barycentric coordinates of the points on the reference element associated with the dofs. Used in BDDC for unknown reason.
Reimplemented from FiniteElement< dim >.
Definition at line 233 of file fe_system.cc.
|
inline |
std::vector< unsigned int > FESystem< dim >::fe_dofs | ( | unsigned int | fe_index | ) |
Return dof indices belonging to given sub-FE.
Definition at line 267 of file fe_system.cc.
|
inline |
Return function space casting to FESystemFunctionSpace type.
Definition at line 154 of file fe_system.hh.
|
inline |
|
inline |
|
inline |
|
private |
Initialization of the internal structures from the vector of base FE.
Definition at line 140 of file fe_system.cc.
|
inlineoverridevirtual |
Decides which additional quantities have to be computed for each cell.
flags | Computed update flags. |
Reimplemented from FiniteElement< dim >.
Definition at line 222 of file fe_system.cc.
|
private |
Pointers to base FE objects.
Definition at line 167 of file fe_system.hh.
|
private |
Definition at line 169 of file fe_system.hh.
|
private |
Definition at line 171 of file fe_system.hh.
|
private |
Definition at line 170 of file fe_system.hh.