16#include "libmesh/vector_value.h"
17#include "libmesh/remote_elem.h"
18#include "libmesh/elem_side_builder.h"
61 dof_id_type
id()
const {
return _id; }
223 "FaceInfo object 'const Elem & neighbor()' is called but neighbor element pointer "
224 "is null. This occurs for faces at the domain boundary");
231 mooseAssert(var_sys.second <
_face_types_by_var.size(),
"System number out of bounds!");
233 "Variable number out of bounds!");
240 mooseAssert(var_sys.second <
_face_types_by_var.size(),
"System number out of bounds!");
242 "Variable number out of bounds!");
250 "The neighbor is not defined on this faceInfo! A possible explanation is that the "
251 "face is a (physical/processor) boundary face.");
265 "The neighbor is not defined on this faceInfo! A possible explanation is that the "
266 "face is a (physical/processor) boundary face.");
Class used for caching additional information for elements such as the volume and centroid.
SubdomainID subdomain_id() const
We return the subdomain ID of the corresponding libmesh element.
const Elem * elem() const
const Point & centroid() const
This data structure is used to store geometric and variable related metadata about each cell face in ...
const processor_id_type _processor_id
SubdomainID neighborSubdomainID() const
Real neighborVolume() const
Return the neighbor volume.
void computeBoundaryCoefficients()
Computes the interpolation weights and similar quantities with the assumption that the face is on a b...
std::set< BoundaryID > _boundary_ids
the set of boundary ids that this face is associated with
Point skewnessCorrectionVector() const
Returns the skewness-correction vector (vector between the approximate and real face centroids).
const Point & normal() const
Returns the unit normal vector for the face oriented outward from the face's elem element.
unsigned int neighborSideID() const
Real elemVolume() const
Return the element volume.
const Point & eCN() const
processor_id_type processor_id() const
const unsigned int _elem_side_id
the elem local side id
const ElemInfo *const _elem_info
the elem and neighbor elems
const std::set< BoundaryID > & boundaryIDs() const
Const getter for every associated boundary ID.
const Elem & elem() const
const Elem * neighborPtr() const
void computeInternalCoefficients(const ElemInfo *const neighbor_info)
Takes the ElemInfo of the neighbor cell and computes interpolation weights together with other quanti...
const ElemInfo * elemInfo() const
Real _d_cn_mag
the distance norm between neighbor and element centroids
unsigned int elemSideID() const
friend MooseMesh
Allows access to private members from moose mesh only.
const ElemInfo * neighborInfo() const
std::vector< std::vector< VarFaceNeighbors > > & faceType()
Getter for the face type for every stored variable.
Real faceArea() const
Returns the face area of face id.
SubdomainID elemSubdomainID() const
std::set< BoundaryID > & boundaryIDs()
Returns the set of boundary ids for all boundaries that include this face.
dof_id_type id() const
Return the ID of the face.
VarFaceNeighbors
This enum is used to indicate which side(s) of a face a particular variable is defined on.
Real & faceCoord()
Sets/gets the coordinate transformation factor (for e.g.
Point _d_cn
the distance vector between neighbor and element centroids
const Elem * elemPtr() const
const Point & neighborCentroid() const
const ElemInfo * _neighbor_info
const Point & dCN() const
const Point & elemCentroid() const
Returns the element centroids of the elements on the elem and neighbor sides of the face.
Real _gc
Geometric weighting factor for face value interpolation.
Real gC() const
Return the geometric weighting factor.
std::vector< std::vector< VarFaceNeighbors > > _face_types_by_var
A vector that provides the information about what face type this is for each variable.
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
const Elem & neighbor() const
unsigned int _neighbor_side_id
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
const SubdomainID INVALID_BLOCK_ID
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...