33 template<
int rank,
int elemdim,
int spacedim,
class Value>
39 ASSERT(
false).error(
"Unsupported format of FieldFE!\n");
40 typename Value::return_type ret;
49 template<
int elemdim,
int spacedim,
class Value>
60 template<
int elemdim,
int spacedim,
class Value>
71 template<
int elemdim,
int spacedim,
class Value>
82 template <
int elemdim,
int spacedim,
class Value>
89 template <
int elemdim,
int spacedim,
class Value>
93 WarningOut() <<
"Multiple initialization of FEValueHandler!";
100 if (map ==
nullptr) {
109 template <
int elemdim,
int spacedim,
class Value>
inline 113 point_list.push_back(p);
122 template <
int elemdim,
int spacedim,
class Value>
127 ASSERT_EQ( point_list.size(), value_list.size() ).error();
133 for (
unsigned int k=0; k<point_list.size(); k++) {
140 Value envelope(value_list[k]);
142 for (
unsigned int i=0; i<
dh_->fe<elemdim>(elm)->n_dofs(); i++) {
150 template <
int spacedim,
class Value>
154 WarningOut() <<
"Multiple initialization of FEValueHandler!";
163 template <
int spacedim,
class Value>
167 ASSERT_EQ( point_list.size(), value_list.size() ).error();
172 for (
unsigned int k=0; k<point_list.size(); k++) {
173 Value envelope(value_list[k]);
175 for (
unsigned int i=0; i<
dh_->fe<0>(elm)->n_dofs(); i++) {
182 template <
int elemdim,
int spacedim,
class Value>
188 #define INSTANCE_VALUE_HANDLER_ALL(dim, spacedim) \ 189 template class FEValueHandler<dim, spacedim, FieldValue<0>::Enum >; \ 190 template class FEValueHandler<dim, spacedim, FieldValue<0>::Integer >; \ 191 template class FEValueHandler<dim, spacedim, FieldValue<0>::Scalar >; \ 192 template class FEValueHandler<dim, spacedim, FieldValue<spacedim>::VectorFixed >; \ 193 template class FEValueHandler<dim, spacedim, FieldValue<spacedim>::TensorFixed >; \ 194 template class FEShapeHandler<0, dim, spacedim, FieldValue<0>::Enum >; \ 195 template class FEShapeHandler<0, dim, spacedim, FieldValue<0>::Integer >; \ 196 template class FEShapeHandler<0, dim, spacedim, FieldValue<0>::Scalar >; \ 197 template class FEShapeHandler<1, dim, spacedim, FieldValue<spacedim>::VectorFixed >; \ 198 template class FEShapeHandler<2, dim, spacedim, FieldValue<spacedim>::TensorFixed >; 200 #define INSTANCE_VALUE_HANDLER(dim) \ 201 INSTANCE_VALUE_HANDLER_ALL(dim,3) Class MappingP1 implements the affine transformation of the unit cell onto the actual cell...
BaryPoint project_real_to_unit(const RealPoint &point, const ElementMap &map) const
void initialize(FEValueInitData init_data, MappingP1< elemdim, 3 > *map=nullptr)
Initialize data members.
Space< spacedim >::Point Point
unsigned int mesh_idx() const
Return global idx of element in full element vector.
static Value::return_type fe_value(FEValues< elemdim, 3 > &fe_val, unsigned int i_dof, unsigned int i_qp)
Class FEValues calculates finite element data on the actual cells such as shape function values...
const FEValuesViews::Tensor< dim, spacedim > & tensor_view(unsigned int i) const
Accessor to tensor values of multicomponent FE.
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library...
Value::return_type const & value(const Point &p, const ElementAccessor< spacedim > &elm)
Returns one value in one given point.
Base class for quadrature rules on simplices in arbitrary dimensions.
MappingP1< elemdim, 3 > * map_
Mapping object.
void value_list(const std::vector< Point > &point_list, const ElementAccessor< spacedim > &elm, std::vector< typename Value::return_type > &value_list)
Returns std::vector of scalar values in several points at once.
Value::return_type r_value_
VectorSeqDouble * data_vec
Store data of Field.
Basic definitions of numerical quadrature rules.
std::vector< LongIdx > dof_indices
Array of indexes to data_vec_, used for get/set values.
std::shared_ptr< DOFHandlerMultiDim > dh_
DOF handler object.
unsigned int ndofs
number of dofs
const FEValuesViews::Vector< dim, spacedim > & vector_view(unsigned int i) const
Accessor to vector values of multicomponent FE.
VectorSeqDouble * data_vec_
Store data of Field.
std::shared_ptr< DOFHandlerMultiDim > dh
DOF handler object.
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...
static Value::return_type fe_value(FEValues< elemdim, 3 > &fe_val, unsigned int i_dof, unsigned int i_qp)
MappingP1< elemdim, 3 > * get_mapping()
Return mapping object.
Value value_
Last value, prevents passing large values (vectors) by value.
#define INSTANCE_VALUE_HANDLER(dim)
void set_point(const unsigned int i, const arma::vec::fixed< dim > &p)
Sets individual quadrature point coordinates.
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR)
~FEValueHandler()
Destructor.
#define WarningOut()
Macro defining 'warning' record of log.
Calculates finite element data on the actual cell.
static Value::return_type fe_value(FEValues< elemdim, 3 > &fe_val, unsigned int i_dof, unsigned int i_qp)
FEValueHandler()
Constructor.
ElementMap element_map(ElementAccessor< 3 > elm) const
unsigned int n_comp
number of components
Initialization structure of FEValueHandler class.
static Value::return_type fe_value(FEValues< elemdim, 3 > &fe_val, unsigned int i_dof, unsigned int i_qp)
#define ASSERT_EQ(a, b)
Definition of comparative assert macro (EQual)
void reinit(ElementAccessor< 3 > &cell)
Update cell-dependent data (gradients, Jacobians etc.)