Carries out a-priori given refinements. More...

#include <aprioriRef.hh>

Inheritance diagram for hp3D::APrioriRefinement:
concepts::CellPostprocess< Real > concepts::OutputOperator

Public Member Functions

 APrioriRefinement (concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 3 > > &spc, concepts::Attribute attribVtx, concepts::Attribute attribEdge, concepts::Attribute attribFace, const int *const p)
 Constructor. More...
 
 APrioriRefinement (concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 3 > > &spc, concepts::Set< concepts::Attribute > &attribVtx, concepts::Set< concepts::Attribute > &attribEdge, concepts::Set< concepts::Attribute > &attribFace, const int *const p)
 Constructor. 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...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Private Member Functions

concepts::AdaptiveAdjustP< 3 > computeRef_ (const concepts::Hexahedron &h) const
 Computes the refinement solely using topological information. More...
 

Private Attributes

concepts::Set< concepts::AttributeattribEdge_
 
concepts::Set< concepts::AttributeattribFace_
 
concepts::Set< concepts::AttributeattribVtx_
 Attribute of entity to which should be refined. More...
 
const int *const p_
 Maximal p in a refinement step in each direction. More...
 
concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 3 > > & spc_
 Space to be refined. More...
 

Detailed Description

Carries out a-priori given refinements.

The mesh is geometrically refined towards the given vertices, edges or faces. 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 hp3D::Hexahedron are implemented.

Author
Philipp Frauenfelder, 2003
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
hpFEM3d-EV.cc.

Definition at line 39 of file aprioriRef.hh.

Constructor & Destructor Documentation

◆ APrioriRefinement() [1/2]

hp3D::APrioriRefinement::APrioriRefinement ( concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 3 > > &  spc,
concepts::Attribute  attribVtx,
concepts::Attribute  attribEdge,
concepts::Attribute  attribFace,
const int *const  p 
)
inline

Constructor.

If a given attribute for the vertices or edges is 0, it is not considered.

Parameters
spcSpace to be refined
attribVtxRefine towards vertices with this attribute
attribEdgeRefine towards edges with this attribute
attribFaceRefine towards faces with this attribute
pIf there is no refinement, p will be increased by this amount (anisotropically)

Definition at line 50 of file aprioriRef.hh.

◆ APrioriRefinement() [2/2]

hp3D::APrioriRefinement::APrioriRefinement ( concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 3 > > &  spc,
concepts::Set< concepts::Attribute > &  attribVtx,
concepts::Set< concepts::Attribute > &  attribEdge,
concepts::Set< concepts::Attribute > &  attribFace,
const int *const  p 
)
inline

Constructor.

If a given attribute for the vertices or edges is empty or is concepts::makeSet<concepts::Attribute>({0}), it is not considered

Parameters
spcSpace to be refined
attribVtxRefine towards vertices with this attribute
attribEdgeRefine towards edges with this attribute
attribFaceRefine towards faces with this attribute
pIf there is no refinement, p will be increased by this amount (anisotropically)

Definition at line 65 of file aprioriRef.hh.

Member Function Documentation

◆ computeRef_()

concepts::AdaptiveAdjustP<3> hp3D::APrioriRefinement::computeRef_ ( const concepts::Hexahedron h) const
private

Computes the refinement solely using topological information.

◆ info()

virtual std::ostream& hp3D::APrioriRefinement::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::CellPostprocess< Real >.

◆ operator()() [1/3]

virtual void hp3D::APrioriRefinement::operator() ( const concepts::Cell cell)
throw (concepts::MissingFeature
)
inlinevirtual

Application operator.

This application operator has to be overloaded to post process a mesh.

Parameters
cellCurrent cell

Implements concepts::CellPostprocess< Real >.

Definition at line 76 of file aprioriRef.hh.

◆ operator()() [2/3]

virtual void hp3D::APrioriRefinement::operator() ( const concepts::Element< Real > &  elm)
throw (concepts::MissingFeature
)
virtual

◆ operator()() [3/3]

virtual void concepts::CellPostprocess< Real >::operator() ( const Element< F > &  elm)
pure virtualinherited

Application operator.

This application operator has to be overloaded to post process a space.

Parameters
elmCurrent element

Implemented in concepts::CellEdgeIntegral< F >, and concepts::CellFaceIntegral< F >.

Member Data Documentation

◆ attribEdge_

concepts::Set<concepts::Attribute> hp3D::APrioriRefinement::attribEdge_
private

Definition at line 84 of file aprioriRef.hh.

◆ attribFace_

concepts::Set<concepts::Attribute> hp3D::APrioriRefinement::attribFace_
private

Definition at line 84 of file aprioriRef.hh.

◆ attribVtx_

concepts::Set<concepts::Attribute> hp3D::APrioriRefinement::attribVtx_
private

Attribute of entity to which should be refined.

Definition at line 84 of file aprioriRef.hh.

◆ p_

const int* const hp3D::APrioriRefinement::p_
private

Maximal p in a refinement step in each direction.

Definition at line 86 of file aprioriRef.hh.

◆ spc_

concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<3> >& hp3D::APrioriRefinement::spc_
private

Space to be refined.

Definition at line 82 of file aprioriRef.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich