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