Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
hp2D::APrioriRefinement Class Reference

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

#include <aprioriRef2D.hh>

Inheritance diagram for hp2D::APrioriRefinement:
Inheritance graph
[legend]
Collaboration diagram for hp2D::APrioriRefinement:
Collaboration graph
[legend]

List of all members.

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.

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.

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:

hpFEM2d-simple.cc, and hpFEM2d.cc.

Definition at line 38 of file aprioriRef2D.hh.


Member Enumeration Documentation

Enumerator:
NONE 
X 
Y 

Definition at line 40 of file aprioriRef2D.hh.


Constructor & Destructor Documentation

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.

Parameters:
spcSpace to be refined
attribVtxRefine towards vertices with this attribute
attribEdgeRefine towards edges with this attribute
pIf there is no refinement, p will be increased by this amount (anisotropically)
subdivpossibility to restrict subdivision strategy
attribCellpossibility 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.

Parameters:
adjSpace Pre Builder to be refined
attribVtxRefine towards vertices with this attribute
attribEdgeRefine towards edges with this attribute
pIf there is no refinement, p will be increased by this amount (anisotropically)
subdivpossibility to restrict subdivision strategy

Definition at line 84 of file aprioriRef2D.hh.


Member Function Documentation

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.

Parameters:
cellCurrent 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.

Parameters:
elmCurrent element

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


Member Data Documentation

Adaptive space pre builder.

Definition at line 103 of file aprioriRef2D.hh.

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.

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.

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.


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)