15 #include "../config/config.hpp"
85 virtual void Save(std::ostream &
out)
const = 0;
132 void Save(std::ostream &
out)
const override;
146 void ConstructOffsets();
184 void Save(std::ostream &
out)
const override;
ElementTransformation * GetTransformation(int idx) override
Returns the element transformation of element idx.
int Size() const
Return the logical size of the array.
Geometry::Type GetGeometry(int idx) const override
Returns the geometry type of face idx.
Class for an integration rule - an Array of IntegrationPoint.
const IntegrationRule & GetElementIntRule(int idx) const
Get the IntegrationRule associated with mesh element idx.
virtual int GetPermutedIndex(int idx, int iq) const =0
Returns the permuted index of the iq quadrature point in entity idx.
QuadratureSpaceBase(Mesh &mesh_, int order_=0)
Protected constructor. Used by derived classes.
FaceType GetFaceType() const
Returns the face type (boundary or interior).
int GetNE() const
Returns number of elements.
int size
Total number of quadrature points.
int GetPermutedIndex(int idx, int iq) const override
Returns the permuted index of the iq quadrature point in entity idx.
Geometry::Type GetElementBaseGeometry(int i) const
virtual ElementTransformation * GetTransformation(int idx)=0
Get the (element or face) transformation of entity idx.
int GetNE() const
Returns number of elements in the mesh.
int GetOrder() const
Return the order of the quadrature rule(s) used by all elements.
void GetFaceTransformation(int i, IsoparametricTransformation *FTr)
Returns the transformation defining the given face element in a user-defined variable.
virtual Geometry::Type GetGeometry(int idx) const =0
Return the geometry type of entity (element or face) idx.
Geometry::Type GetGeometry(int idx) const override
Returns the geometry type of element idx.
virtual ~QuadratureSpaceBase()
Geometry::Type GetFaceGeometry(int i) const
void Save(std::ostream &out) const override
Write the QuadratureSpace to the stream out.
const IntegrationRule & GetFaceIntRule(int idx) const
Get the IntegrationRule associated with mesh element idx.
virtual void Save(std::ostream &out) const =0
Write the QuadratureSpace to the stream out.
Array< int > offsets
Entity quadrature point offset array, of size num_entities + 1.
Abstract base class for QuadratureSpace and FaceQuadratureSpace.
const IntegrationRule & GetIntRule(int idx) const
Return the IntegrationRule associated with entity idx.
FaceQuadratureSpace(Mesh &mesh_, int order_, FaceType face_type_)
Create a FaceQuadratureSpace based on the global rules from IntRules.
Class representing the storage layout of a FaceQuadratureFunction.
Geometry::Type GetElementGeometry(int i) const
ElementTransformation * GetTransformation(int idx) override
Returns the face transformation of face idx.
void GetElementTransformation(int i, IsoparametricTransformation *ElTr)
Mesh & mesh
The underlying mesh.
const IntegrationRule * int_rule[Geometry::NumGeom]
The quadrature rules used for each geometry type.
int GetPermutedIndex(int idx, int iq) const override
Returns the permuted index of the iq quadrature point in entity idx.
int GetNE() const
Return the number of entities.
void Save(std::ostream &out) const override
Write the FaceQuadratureSpace to the stream out.
int GetNumFaces() const
Returns number of faces in the mesh.
QuadratureSpace(Mesh *mesh_, int order_)
Create a QuadratureSpace based on the global rules from IntRules.
Mesh * GetMesh() const
Returns the mesh.
void ConstructIntRules(int dim)
Fill the int_rule array for each geometry type using order.
Class representing the storage layout of a QuadratureFunction.
OutStream out(std::cout)
Global stream used by the library for standard output. Initially it uses the same std::streambuf as s...
int GetSize() const
Return the total number of quadrature points.
Represents values or vectors of values at quadrature points on a mesh.
int order
The order of integration rule.