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. | |
| 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. | |
| virtual void | operator() (const concepts::Element< Real > &elm) throw (concepts::MissingFeature) |
| virtual void | operator() (const concepts::Cell &cell) throw (concepts::MissingFeature) |
| Application operator. | |
| virtual void | operator() (const Element< Real > &elm)=0 |
| Application operator. | |
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. | |
Private Member Functions | |
| concepts::AdaptiveAdjustP< 2 > | computeRef_ (const concepts::Quad &q, concepts::Level< 2 > level) const |
| Computes the refinement solely using topological information. | |
Private Attributes | |
| concepts::Adaptivity < concepts::Connector, concepts::AdaptiveAdjustP< 2 > > * | adj_ |
| Adaptive space pre builder. | |
| std::auto_ptr < concepts::Attribute > | attribCell_ |
| Attribute of the cells which are allowed to refine. | |
| concepts::Attribute | attribEdge_ |
| concepts::Attribute | attribVtx_ |
| Attribute of entity to which should be refined. | |
| const concepts::Level< 2 > | level_ |
| This or higher level. | |
| const int *const | p_ |
| Maximal p in a refinement step in each subdiv. | |
| concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 2 > > * | spc_ |
| Space to be refined. | |
| const uint | subdiv_ |
| Subdivision strategy. | |
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.
p of the constructor can be set to a pointer to 0. This is not detected and a run-time error occurs. hpFEM2d-simple.cc, and hpFEM2d.cc.
Definition at line 38 of file aprioriRef2D.hh.
Definition at line 40 of file aprioriRef2D.hh.
| hp2D::APrioriRefinement::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 |
||
| ) | [inline] |
Constructor for refining an adaptive space.
If a given attribute for the vertices or edges is 0, it is not considered.
| 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 55 of file aprioriRef2D.hh.
| hp2D::APrioriRefinement::APrioriRefinement | ( | concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 2 > > & | spc, |
| const int *const | p, | ||
| const uint | subdiv = X | Y, |
||
| const concepts::Level< 2 > | level = MAXSHORT |
||
| ) | [inline] |
Definition at line 65 of file aprioriRef2D.hh.
| hp2D::APrioriRefinement::APrioriRefinement | ( | concepts::Adaptivity< concepts::Connector, concepts::AdaptiveAdjustP< 2 > > & | adj, |
| concepts::Attribute | attribVtx, | ||
| concepts::Attribute | attribEdge, | ||
| const int *const | p, | ||
| const uint | subdiv = X | Y |
||
| ) | [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.
| 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 84 of file aprioriRef2D.hh.
| concepts::AdaptiveAdjustP<2> hp2D::APrioriRefinement::computeRef_ | ( | const concepts::Quad & | q, |
| concepts::Level< 2 > | level | ||
| ) | const [private] |
Computes the refinement solely using topological information.
| virtual std::ostream& hp2D::APrioriRefinement::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::CellPostprocess< Real >.
| virtual void hp2D::APrioriRefinement::operator() | ( | const concepts::Cell & | cell | ) | throw (concepts::MissingFeature) [virtual] |
Application operator.
This application operator has to be overloaded to post process a mesh.
| cell | Current cell |
Implements concepts::CellPostprocess< Real >.
| virtual void hp2D::APrioriRefinement::operator() | ( | const concepts::Element< Real > & | elm | ) | throw (concepts::MissingFeature) [virtual] |
| virtual void concepts::CellPostprocess< Real >::operator() | ( | const Element< Real > & | elm | ) | [pure virtual, inherited] |
Application operator.
This application operator has to be overloaded to post process a space.
| elm | Current element |
Implemented in concepts::CellFaceIntegral< F >, and concepts::CellEdgeIntegral< F >.
concepts::Adaptivity<concepts::Connector, concepts::AdaptiveAdjustP<2> >* hp2D::APrioriRefinement::adj_ [private] |
Adaptive space pre builder.
Definition at line 103 of file aprioriRef2D.hh.
std::auto_ptr<concepts::Attribute> hp2D::APrioriRefinement::attribCell_ [private] |
Attribute of the cells which are allowed to refine.
Definition at line 107 of file aprioriRef2D.hh.
Definition at line 105 of file aprioriRef2D.hh.
Attribute of entity to which should be refined.
Definition at line 105 of file aprioriRef2D.hh.
const concepts::Level<2> hp2D::APrioriRefinement::level_ [private] |
This or higher level.
Definition at line 113 of file aprioriRef2D.hh.
const short hp2D::APrioriRefinement::MAXSHORT = 32767 [static] |
Definition at line 41 of file aprioriRef2D.hh.
const int* const hp2D::APrioriRefinement::p_ [private] |
Maximal p in a refinement step in each subdiv.
Definition at line 109 of file aprioriRef2D.hh.
concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<2> >* hp2D::APrioriRefinement::spc_ [private] |
Space to be refined.
Definition at line 100 of file aprioriRef2D.hh.
const uint hp2D::APrioriRefinement::subdiv_ [private] |
Subdivision strategy.
Definition at line 111 of file aprioriRef2D.hh.