hp2D::APrioriRefinement Class Referenceabstract
Carries out a-priori given refinements. More...
#include <aprioriRef2D.hh>
Public Types | |
enum | subdivTypes { NONE = 0, X = 1, Y = 2 } |
Public Member Functions | |
APrioriRefinement (concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 2 > > &spc, concepts::Attribute attribVtx, concepts::Attribute attribEdge, const int *const p, const uint subdiv=X|Y, const concepts::Attribute attribCell=0) | |
Constructor for refining an adaptive space. More... | |
APrioriRefinement (concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 2 > > &spc, const int *const p, const uint subdiv=X|Y, const concepts::Level< 2 > level=MAXSHORT) | |
APrioriRefinement (concepts::Adaptivity< concepts::Connector, concepts::AdaptiveAdjustP< 2 > > &adj, concepts::Attribute attribVtx, concepts::Attribute attribEdge, const int *const p, const uint subdiv=X|Y) | |
Constructor for refining a space pre builder. More... | |
virtual void | operator() (const concepts::Cell &cell) throw (concepts::MissingFeature) |
Application operator. More... | |
virtual void | operator() (const concepts::Element< Real > &elm) throw (concepts::MissingFeature) |
virtual void | operator() (const Element< Real > &elm)=0 |
Application operator. More... | |
Static Public Attributes | |
static const short | MAXSHORT = 32767 |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Private Member Functions | |
concepts::AdaptiveAdjustP< 2 > | computeRef_ (const concepts::Quad &q, concepts::Level< 2 > level) const |
Computes the refinement solely using topological information. More... | |
Private Attributes | |
concepts::Adaptivity< concepts::Connector, concepts::AdaptiveAdjustP< 2 > > * | adj_ |
Adaptive space pre builder. More... | |
std::unique_ptr< concepts::Attribute > | attribCell_ |
Attribute of the cells which are allowed to refine. More... | |
concepts::Attribute | attribEdge_ |
concepts::Attribute | attribVtx_ |
Attribute of entity to which should be refined. More... | |
const concepts::Level< 2 > | level_ |
This or higher level. More... | |
const int *const | p_ |
Maximal p in a refinement step in each subdiv. More... | |
concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 2 > > * | spc_ |
Space to be refined. More... | |
const uint | subdiv_ |
Subdivision strategy. More... | |
Detailed Description
Carries out a-priori given refinements.
The mesh is geometrically refined towards the given vertices or edges. These can be determined by their attribute. If a refinement in one direction occurs, p is not increased in this direction. Otherwise it is increased by the given amount. This makes it possible to generate geometrically refined meshes to corners and edges with linear polynomial degree distribution.
Currently, methods for hp2D::Quad are implemented.
- Bug:
- The parameter
p
of the constructor can be set to a pointer to 0. This is not detected and a run-time error occurs.
- Examples
- hpFEM2d-simple.cc, and hpFEM2d.cc.
Definition at line 40 of file aprioriRef2D.hh.
Member Enumeration Documentation
◆ subdivTypes
Enumerator | |
---|---|
NONE | |
X | |
Y |
Definition at line 42 of file aprioriRef2D.hh.
Constructor & Destructor Documentation
◆ APrioriRefinement() [1/3]
|
inline |
Constructor for refining an adaptive space.
If a given attribute for the vertices or edges is 0, it is not considered.
- Parameters
-
spc Space to be refined attribVtx Refine towards vertices with this attribute attribEdge Refine towards edges with this attribute p If there is no refinement, p will be increased by this amount (anisotropically) subdiv possibility to restrict subdivision strategy attribCell possibility to restrict subdivision to particular cells
Definition at line 56 of file aprioriRef2D.hh.
◆ APrioriRefinement() [2/3]
|
inline |
Definition at line 66 of file aprioriRef2D.hh.
◆ APrioriRefinement() [3/3]
|
inline |
Constructor for refining a space pre builder.
The global post process has to be given the mesh, so that the ()-operator for cells is called.
If a given attribute for the vertices or edges is 0, it is not considered.
- Parameters
-
adj Space Pre Builder to be refined attribVtx Refine towards vertices with this attribute attribEdge Refine towards edges with this attribute p If there is no refinement, p will be increased by this amount (anisotropically) subdiv possibility to restrict subdivision strategy
Definition at line 86 of file aprioriRef2D.hh.
Member Function Documentation
◆ computeRef_()
|
private |
Computes the refinement solely using topological information.
◆ info()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::CellPostprocess< Real >.
◆ operator()() [1/3]
|
virtual |
Application operator.
This application operator has to be overloaded to post process a mesh.
- Parameters
-
cell Current cell
Implements concepts::CellPostprocess< Real >.
◆ operator()() [2/3]
|
virtual |
◆ operator()() [3/3]
|
pure virtualinherited |
Application operator.
This application operator has to be overloaded to post process a space.
- Parameters
-
elm Current element
Implemented in concepts::CellEdgeIntegral< F >, and concepts::CellFaceIntegral< F >.
Member Data Documentation
◆ adj_
|
private |
Adaptive space pre builder.
Definition at line 105 of file aprioriRef2D.hh.
◆ attribCell_
|
private |
Attribute of the cells which are allowed to refine.
Definition at line 109 of file aprioriRef2D.hh.
◆ attribEdge_
|
private |
Definition at line 107 of file aprioriRef2D.hh.
◆ attribVtx_
|
private |
Attribute of entity to which should be refined.
Definition at line 107 of file aprioriRef2D.hh.
◆ level_
|
private |
This or higher level.
Definition at line 115 of file aprioriRef2D.hh.
◆ MAXSHORT
|
static |
Definition at line 43 of file aprioriRef2D.hh.
◆ p_
|
private |
Maximal p in a refinement step in each subdiv.
Definition at line 111 of file aprioriRef2D.hh.
◆ spc_
|
private |
Space to be refined.
Definition at line 102 of file aprioriRef2D.hh.
◆ subdiv_
|
private |
Subdivision strategy.
Definition at line 113 of file aprioriRef2D.hh.
The documentation for this class was generated from the following file:
- hp2D/aprioriRef2D.hh