66 unsigned int comp_index = 0
71 unsigned int comp_index = 0
74 unsigned int dim()
const override {
return dim_; }
100 template <
unsigned int dim>
155 return std::dynamic_pointer_cast<FESystemFunctionSpace>(this->
function_space_);
175 template<
class... Args>
179 std::make_shared<
FESystem<0>>(fe[0_d], std::forward<Args>(args)...),
180 std::make_shared<
FESystem<1>>(fe[1_d], std::forward<Args>(args)...),
181 std::make_shared<
FESystem<2>>(fe[2_d], std::forward<Args>(args)...),
182 std::make_shared<
FESystem<3>>(fe[3_d], std::forward<Args>(args)...)
FESystemFunctionSpace(const std::vector< std::shared_ptr< FunctionSpace > > &fs_vector)
Constructor.
const std::vector< DofComponentData > & dof_indices()
const arma::vec basis_grad(unsigned int basis_index, const arma::vec &point, unsigned int comp_index=0) const override
Gradient of the i th basis function at point point.
std::vector< std::shared_ptr< FunctionSpace > > fs_
Function spaces that are put together.
unsigned int dim_
Number of basis functions.
virtual ~FESystemFunctionSpace()
unsigned int dim() const override
Dimension of function space (number of basis functions).
double basis_value(unsigned int basis_index, const arma::vec &point, unsigned int comp_index=0) const override
Value of the i th basis function at point point.
std::vector< DofComponentData > dof_indices_
Indices of basis functions relative to the sub-spaces.
Compound finite element on dim dimensional simplex.
void compute_node_matrix() override
Initializes the node_matrix for computing the coefficients of the shape functions in the raw basis of...
std::vector< unsigned int > get_vector_components() const
const std::vector< std::shared_ptr< FiniteElement< dim > > > & fe() const
std::vector< unsigned int > tensor_components_
std::vector< unsigned int > scalar_components_
std::shared_ptr< FESystemFunctionSpace > function_space() const
Return function space casting to FESystemFunctionSpace type.
std::vector< std::shared_ptr< FiniteElement< dim > > > fe_
Pointers to base FE objects.
std::vector< unsigned int > get_scalar_components() const
std::vector< unsigned int > fe_dofs(unsigned int fe_index)
Return dof indices belonging to given sub-FE.
std::vector< unsigned int > vector_components_
virtual std::vector< arma::vec::fixed< dim+1 > > dof_points() 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.
FESystem(std::shared_ptr< FiniteElement< dim > > fe, FEType t)
Constructor for FEVectorContravariant and FEVectorPiola.
void initialize()
Initialization of the internal structures from the vector of base FE.
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
std::shared_ptr< FunctionSpace > function_space_
Function space defining the FE.
MixedPtr< FESystem > mixed_fe_system(MixedPtr< FiniteElement > fe, Args &&... args)
Class FEValues calculates finite element data on the actual cells such as shape function values,...
Abstract class for description of finite elements.
unsigned int fe_index
Index of base FE class in the vector fe_.
DofComponentData(unsigned int fei, unsigned int bi, unsigned co)
unsigned int basis_index
Index of basis function in the base FE.
unsigned int component_offset
Component index in the FESystem.
UpdateFlags
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell.