41 template<
unsigned int dim,
unsigned int spacedim>
48 jacobians.resize(size);
51 determinants.resize(size);
55 JxW_values.resize(size);
58 inverse_jacobians.resize(size);
67 shape_gradients.resize(size,
vector<arma::vec::fixed<spacedim> >(n_comp));
74 normal_vectors.resize(size);
78 template<
unsigned int dim,
unsigned int spacedim>
83 switch (fv.
get_fe()->type_) {
96 OLD_ASSERT(fe !=
nullptr,
"Mixed system must be represented by FESystem.");
109 template<
unsigned int dim,
unsigned int spacedim>
111 : mapping(NULL), quadrature(NULL), fe(NULL), mapping_data(NULL), fe_data(NULL)
117 template<
unsigned int dim,
unsigned int spacedim>
125 template<
unsigned int dim,
unsigned int spacedim>
159 template<
unsigned int dim,
unsigned int spacedim>
168 template<
unsigned int dim,
unsigned int spacedim>
173 return data.shape_values[point_no][function_no];
177 template<
unsigned int dim,
unsigned int spacedim>
182 return data.shape_gradients[point_no][function_no];
186 template<
unsigned int dim,
unsigned int spacedim>
188 const unsigned int point_no,
189 const unsigned int comp)
const 198 template<
unsigned int dim,
unsigned int spacedim>
200 const unsigned int point_no,
201 const unsigned int comp)
const 216 template<
unsigned int dim,
unsigned int spacedim>
223 this->
allocate(_mapping, _quadrature, _fe, _flags);
232 template<
unsigned int dim,
unsigned int spacedim>
236 this->
data.present_cell = &cell;
239 this->
mapping->fill_fe_values(cell,
257 template<
unsigned int dim,
unsigned int spacedim>
266 this->
allocate(_mapping, *q, _fe, _flags);
268 for (
unsigned int sid = 0; sid < RefElement<dim>::n_sides; sid++)
270 for (
unsigned int pid = 0; pid < RefElement<dim>::n_side_permutations; pid++)
282 template<
unsigned int dim,
unsigned int spacedim>
285 for (
unsigned int sid=0; sid<RefElement<dim>::n_sides; sid++)
287 for (
unsigned int pid=0; pid<RefElement<dim>::n_side_permutations; pid++)
300 template<
unsigned int dim,
unsigned int spacedim>
306 this->
data.present_cell = &cell;
308 unsigned int pid = cell->permutation_idx_[sid];
311 this->
mapping->fill_fe_side_values(cell,
UpdateFlags
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell...
Transformed quadrature weight for cell sides.
#define ASSERT_EQ_DBG(a, b)
Definition of comparative assert macro (EQual) only for debug mode.
arma::vec::fixed< spacedim > shape_grad_component(const unsigned int function_no, const unsigned int point_no, const unsigned int comp) const
Return the gradient of the function_no-th shape function at the point_no-th quadrature point...
Determinant of the Jacobian.
MappingInternalData * mapping_data
Precomputed mapping data.
UpdateFlags update_each(UpdateFlags flags)
Determine quantities to be recomputed on each cell.
FiniteElement< dim, spacedim > * get_fe() const
Returns the finite element in use.
FEValuesBase()
Default constructor.
Class FEValues calculates finite element data on the actual cells such as shape function values...
std::vector< unsigned int > get_vector_components() const
FEValuesData< dim, spacedim > data
Data computed by the mapping and finite element.
Class FESystem for compound finite elements.
FEInternalData * fe_data
Precomputed finite element data.
void allocate(unsigned int size, UpdateFlags flags, unsigned n_comp)
Resize the data arrays.
Base class for quadrature rules on simplices in arbitrary dimensions.
unsigned int n_components_
Number of components of the FE.
virtual ~FESideValues()
Destructor.
Transformed quadrature points.
Abstract class for the mapping between reference and actual cell.
Compound finite element on dim dimensional simplex.
FiniteElement< dim, spacedim > * fe
The used finite element.
Basic definitions of numerical quadrature rules.
const Quadrature< dim-1 > * sub_quadrature
Quadrature for the integration on the element sides.
Shape function gradients.
MappingInternalData * side_mapping_data[RefElement< dim >::n_sides][RefElement< dim >::n_side_permutations]
Quadrature< dim > side_quadrature[RefElement< dim >::n_sides][RefElement< dim >::n_side_permutations]
Quadrature< dim > * quadrature
The quadrature rule used to calculate integrals.
double shape_value(const unsigned int function_no, const unsigned int point_no)
Return the value of the function_no-th shape function at the point_no-th quadrature point...
Class Mapping calculates data related to the mapping of the reference cell to the actual cell...
FEInternalData * side_fe_data[RefElement< dim >::n_sides][RefElement< dim >::n_side_permutations]
ViewsCache views_cache_
Auxiliary storage of FEValuesViews accessors.
FEValues(Mapping< dim, spacedim > &_mapping, Quadrature< dim > &_quadrature, FiniteElement< dim, spacedim > &_fe, UpdateFlags _flags)
Constructor.
void reinit(ElementFullIter &cell, unsigned int sid)
Update cell-dependent data (gradients, Jacobians etc.)
Mapping< dim, spacedim > * mapping
The mapping from the reference cell to the actual cell.
const unsigned int size() const
Returns number of quadrature points.
double shape_value_component(const unsigned int function_no, const unsigned int point_no, const unsigned int comp) const
Return the value of the function_no-th shape function at the point_no-th quadrature point...
void reinit(ElementFullIter &cell)
Update cell-dependent data (gradients, Jacobians etc.)
arma::vec::fixed< spacedim > shape_grad(const unsigned int function_no, const unsigned int point_no)
Return the gradient of the function_no-th shape function at the point_no-th quadrature point...
Calculates finite element data on the actual cell.
#define OLD_ASSERT_EQUAL(a, b)
Abstract class for description of finite elements.
FESideValues(Mapping< dim, spacedim > &_mapping, Quadrature< dim-1 > &_sub_quadrature, FiniteElement< dim, spacedim > &_fe, UpdateFlags flags)
Constructor.
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
Base class for FEValues and FESideValues.
void allocate(Mapping< dim, spacedim > &_mapping, Quadrature< dim > &_quadrature, FiniteElement< dim, spacedim > &_fe, UpdateFlags flags)
Allocates space for computed data.
std::vector< unsigned int > get_scalar_components() const
void resize(FEValuesBase &fv, unsigned int size)
Transformed quadrature weights.
Calculates finite element data on a side.
#define ASSERT_LT_DBG(a, b)
Definition of comparative assert macro (Less Than) only for debug mode.