99 template <
int spacedim>
131 return arma::dot( arma::cross(*(
node(1) ) - *(
node(0) ),
153 return arma::norm(*(
node(1) ) - *(
node(0) ) , 2);
157 arma::vec::fixed<spacedim>
centre()
const;
172 const SideIter side(
const unsigned int loc_index)
const;
185 return mesh_ != NULL;
188 inline unsigned int dim()
const {
215 unsigned int idx()
const {
309 {
return mesh_ !=
nullptr; }
312 unsigned int idx()
const {
319 ASSERT(
is_valid()).error(
"Do not call inc() for invalid accessor!");
404 unsigned int dim()
const;
441 {
return this->
mesh_; }
453 {
return mesh_!=
nullptr; }
457 ASSERT(
is_valid()).error(
"Do not call inc() for invalid accessor!");
467 return !( *
this == other);
506 return !( *
this == other);
#define ASSERT_EQ(a, b)
Definition of comparative assert macro (EQual) only for debug mode.
const Element * element()
BoundaryData * boundary_data_
ElementAccessor< 3 > element_accessor()
Bounding box in 3d ambient space.
unsigned int get_proc(unsigned int idx) const
get processor of the given index
const MeshBase * mesh_
Pointer to the mesh owning the node.
Edge()
Default invalid edge accessor constructor.
unsigned int n_sides() const
Returns number of sides aligned with the edge.
void inc()
Incremental function of the Edge iterator.
unsigned int edge_idx_
Index into Mesh::edges vector.
SideIter side(const unsigned int i) const
Gets side iterator of the i -th side.
bool operator==(const Edge &other) const
Comparison operator of the iterator.
unsigned int idx() const
Returns edge global index.
const EdgeData * edge_data() const
Getter for edge data from mesh.
auto & orig_nodes_order() const
bool is_elemental() const
bool operator==(const ElementAccessor< spacedim > &other) const
unsigned int input_id() const
Return the element ID in the input mesh. Should be only used for special output.
static const unsigned int undefined_dim_
const Element * operator->() const
NodeAccessor< 3 > node(unsigned int ni) const
const MeshBase * mesh_
Pointer to the mesh owning the element.
bool operator!=(const ElementAccessor< spacedim > &other) const
void inc()
Incremental function of the Element iterator.
unsigned int element_idx_
Index into Mesh::element_vec_ array.
double measure() const
Computes the measure of the element.
SideIter side(const unsigned int loc_index)
BoundingBox bounding_box() const
double quality_measure_smooth() const
double jacobian_S1() const
unsigned int idx() const
We need this method after replacing Region by RegionIdx, and movinf RegionDB instance into particular...
arma::vec::fixed< spacedim > centre() const
Computes the barycenter.
double jacobian_S3() const
RegionIdx region_idx() const
unsigned int proc() const
double jacobian_S2() const
const Element * element() const
ElementAccessor()
Default invalid accessor.
RegionIdx region_idx() const
bool inverted
Inverted permutation of element nodes, negative Jacobian.
uint permutation_
Index of permutation of input nodes.
Base class for Mesh and BCMesh.
std::array< std::array< uint, 4 >, 64 > element_nodes_original_
const RegionDB & region_db() const
NodeAccessor< 3 > node(unsigned int idx) const
Create and return NodeAccessor to node of given idx.
int find_elem_id(unsigned int pos) const
Return element id (in GMSH file) of element of given position in element vector.
LongIdx * get_row_4_el() const
const Element & element(unsigned idx) const
Distribution * get_el_ds() const
bool is_valid() const
Returns false if the region has undefined/invalid value.
const Side * operator->() const
-> dereference operator
SideIter(const Side &side)
bool operator!=(const SideIter &other)
bool operator==(const SideIter &other)
SideIter & operator++()
prefix increment iterate only on local element
const Side & operator*() const
double measure() const
Calculate metrics of the side.
unsigned int elem_idx() const
Returns index of element in Mesh::element_vec_.
bool operator!=(const Side &other) const
unsigned int side_idx() const
Returns local index of the side on the element.
const MeshBase * mesh() const
Returns pointer to the mesh.
const MeshBase * mesh_
Pointer to Mesh to which belonged.
bool is_valid() const
Returns true if the side has assigned element.
unsigned int n_nodes() const
Returns number of nodes of the side.
arma::vec3 normal() const
Vector of (generalized) normal.
arma::vec3 normal_triangle() const
arma::vec3 normal_line() const
ElementAccessor< 3 > element() const
Returns iterator to the element of the side.
double diameter() const
Calculate the side diameter.
unsigned int cond_idx() const
Returns global index of the prescribed boundary condition.
bool is_external() const
Returns true for all sides either on boundary or connected to vb neigboring.
Side()
Default invalid side accessor constructor.
unsigned int side_idx_
Local # of side in element (to remove it, we heve to remove calc_side_rhs)
bool is_boundary() const
Returns true for side on the boundary.
void inc()
Iterate over local sides of the element.
unsigned int edge_idx() const
Returns global index of the edge connected to the side.
arma::vec3 centre() const
Centre of side.
bool operator==(const Side &other) const
unsigned int dim() const
Returns dimension of the side, that is dimension of the element minus one.
unsigned int elem_idx_
Index of element in Mesh::element_vec_.
Edge edge() const
Returns pointer to the edge connected to the side.
NodeAccessor< 3 > node(unsigned int i) const
Returns node for given local index i on the side.
arma::vec3 normal_point() const
This is necessary by current DofHandler, should change this.
Support classes for parallel programing.
Implementation of the inline functions of the mesh accessors.
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc.