concepts::HexSubdivision Class Referenceabstract

Interface for topological subdivision strategies for hexahedrons. More...

#include <hexsubdiv.hh>

Inheritance diagram for concepts::HexSubdivision:
concepts::Subdivision concepts::OutputOperator concepts::HexSubdiv2x concepts::HexSubdiv2y concepts::HexSubdiv2z concepts::HexSubdiv4x concepts::HexSubdiv4y concepts::HexSubdiv4z concepts::HexSubdiv8

Public Member Functions

virtual void createChildren (Hexahedron &q) const =0
 If no children of q exist, they are created. More...
 
virtual void removeChildren (Hexahedron &q) const =0
 If there are children, they are removed. More...
 

Protected Member Functions

bool faceSubdiv4 (Quad &q) const throw (StrategyChange)
 Takes a face and tries to subdivide it into 4 (by setting the strategy to QuadSubdiv4). More...
 
QuadfindFace (const Vertex *const v, Quad *const q[4], const unsigned int tau, const unsigned int rho, const unsigned int vtxIdx) const
 Looks for the quad in q which contains the vertex v. More...
 
virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 
void subdivFace0 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 Subdivides a face of a hexehedron h into 4 children. More...
 
void subdivFace1 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 
void subdivFace2 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 
void subdivFace3 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 
void subdivFace4 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 
void subdivFace5 (Hexahedron &h, Quad *&A, Quad *&B, Quad *&C, Quad *&D, bool normal) const
 
void subFace0011 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B) const
 Gets the two children of q and sorts them. More...
 
void subFace0110 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B) const
 
void subFace0123 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B, Quad *&C, Quad *&D) const
 Gets the four children of q and sorts them. More...
 
void subFace1001 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B) const
 
void subFace1100 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B) const
 
void subFace1230 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B, Quad *&C, Quad *&D) const
 
void subFace2301 (Quad &q, Z2 rho, Z4 tau, Quad *&A, Quad *&B, Quad *&C, Quad *&D) const
 

Detailed Description

Interface for topological subdivision strategies for hexahedrons.

Every specialization of HexSubdivision should be a singleton whose instance can be get with a call to instance(). It implements the method how the children of a hexahedron are created. To have access to all members of the class Hexahedron, the specializations of HexSubdivision should be friend to Hexahedron.

See also
Hexahedron
Test:

test::DeadLock1

test::DeadLock2

test::DeadLock3

Author
Philipp Frauenfelder, 2002

Definition at line 40 of file hexsubdiv.hh.

Member Function Documentation

◆ createChildren()

virtual void concepts::HexSubdivision::createChildren ( Hexahedron q) const
pure virtual

◆ faceSubdiv4()

bool concepts::HexSubdivision::faceSubdiv4 ( Quad q) const
throw (StrategyChange
)
protected

Takes a face and tries to subdivide it into 4 (by setting the strategy to QuadSubdiv4).

Firstly, a normal subdivision in one shot into 4 children is tried. If this fails (by catching a StrategyChange exception), then a previous subdivision into 2 children was executed on this face. The orthogonal subdivision into 2 children is then reserved (by setting the strategy accordingly) on the two children of the face. This can be called a subdivision into 4 children in two shots.

Parameters
qFace to be subdivided into 4
Returns
true if the subdivision in one shot succeeded, false otherwise
Exceptions
StrategyChangeif the subdivision in two shots fails too

◆ findFace()

Quad* concepts::HexSubdivision::findFace ( const Vertex *const  v,
Quad *const  q[4],
const unsigned int  tau,
const unsigned int  rho,
const unsigned int  vtxIdx 
) const
protected

Looks for the quad in q which contains the vertex v.

This is done by a loop over the four entries of q and checking the indicated vertex (given by the index location vtxIdx).

Parameters
vVertex to look for
qList of quads to search through
tauOrientation flags of the quads
rhoRotation flags of the quads
vtxIdxIndex location of the vertex in the quads counted from vertex 0 in the quad in rho = 0 direction
Returns
the matching quad

◆ info()

virtual std::ostream& concepts::OutputOperator::info ( std::ostream &  os) const
protectedvirtualinherited

Returns information in an output stream.

Reimplemented in concepts::ShapeFunction1D< Real >, estimator::Refinement< Real >, hp2D::Extrema< T >, concepts::Sphere, concepts::SphericalSurface, concepts::Sphere3d, concepts::SphericalSurface3d, concepts::MappingHexahedronEdge3d, concepts::CircleMappingEdge3d, concepts::MappingStraightEdge3d, concepts::MappingEdge3d, concepts::PartMappingHexahedron3d, concepts::BlendingHexahedron3d, concepts::ShapeFunction1D< F >, concepts::MappingHexahedron3d, concepts::Cell, estimator::Refinement< F >, concepts::LocalEstimator< F >, concepts::Estimator< F >, concepts::FormulaIncPlaneWaveSource, concepts::ComposeFormulaVecEntry< F, DIM, G >, concepts::ComposeFormulaMatVec< F, DIM, G >, concepts::FormulaNormalOuterSP2D< F >, concepts::HamburgerPMLFormulas, concepts::FormulaPMLHamburger, concepts::CartesianPMLFormulas, concepts::FormulaPMLCartNew, concepts::RadialPMLFormulas, concepts::FormulaPMLRadia, concepts::FormulaPMLBoxRestriction< F, G >, concepts::FormulaPMLCart, concepts::RadialPML_2D, concepts::FormulaPMLEdgeRadia, Cube3, Cube2, Cube, concepts::ParseObjectFromString< F >, concepts::StiffArray< 1, F >, concepts::StiffArray< dim, F >, concepts::StiffArray< dim, uint >, concepts::ResultsTable, concepts::OutputMatlab< Sequence< F > >, concepts::OutputMatlab< StiffArray< dim, F > >, concepts::OutputMatlab< Array< F > >, concepts::MultiArray< 1, T >, concepts::MultiEntrance< 1, T >, concepts::MultiEntrance< dim, T >, concepts::MultiIndex< dim >, concepts::ProcessParameter, concepts::InputFile, concepts::InputParameter, concepts::InputParser, concepts::InOutParameters, concepts::MissingParameter, concepts::HashMap< F >, concepts::HashMap< const concepts::Cell * >, concepts::HashMap< concepts::AdaptiveControlP >, concepts::HashMap< concepts::Point >, concepts::HashMap< concepts::Sequence< UnderlyingElement > >, concepts::HashMap< concepts::Array< F > >, concepts::HashMap< const ushort * >, concepts::HashMap< ElementFormulaContainer< F, typename Realtype< F >::type > >, concepts::HashMap< hp3D::NeumannTraceElement3d< Real > * >, concepts::HashMap< geometry::EdgePatch >, concepts::HashMap< concepts::ElementMatrix< concepts::Real > >, concepts::HashMap< concepts::MeshGraph2_Edge * >, concepts::HashMap< concepts::Sequence< uint > >, concepts::HashMap< hp2D::Quad< Real > * >, concepts::HashMap< const concepts::Connector * >, concepts::HashMap< concepts::LapackChol * >, concepts::HashMap< const concepts::Edge * >, concepts::HashMap< concepts::StiffArray< 2, ushort > >, concepts::HashMap< Set< Connector1 * > >, concepts::HashMap< const hp2D::Quad< Real > * >, concepts::HashMap< concepts::Edge * >, concepts::HashMap< concepts::MacroElementNode * >, concepts::HashMap< concepts::HashMap< const concepts::ElementWithCell< typename Realtype< F >::type > * > >, concepts::HashMap< concepts::CellMap< dim, typename Realtype< F >::type > >, concepts::HashMap< hp2D::NeumannTraceElement< Real > * >, concepts::HashMap< ushort >, concepts::HashMap< concepts::Sequence< concepts::ElementAndFacette > >, concepts::HashMap< concepts::DenseMatrix< Real > >, concepts::HashMap< concepts::AdaptiveControl >, concepts::HashMap< concepts::AdaptiveAdjustP< dim > >, concepts::HashMap< concepts::PiecewiseFormula::FormulaFactor >, concepts::HashMap< concepts::ElementMatrix< F > >, concepts::HashMap< concepts::Vertex * >, concepts::HashMap< concepts::Quad * >, concepts::HashMap< geometry::ElementPatch >, concepts::HashMap< concepts::Array< ushort > >, concepts::HashMap< uint >, concepts::HashMap< concepts::Array< Real > >, concepts::HashMap< concepts::Vector< Real > >, concepts::HashMap< std::set< uint > >, concepts::HashMap< hp1D::GenericElement< Real > * >, concepts::HashMap< concepts::Set< uint > >, concepts::HashMap< Real >, concepts::HashMap< concepts::QuadRuleFactoryTensorDuffy2d::DuffyData >, concepts::HashMap< concepts::Vector< concepts::Real > >, concepts::HashMap< concepts::Quad2d * >, concepts::HashMap< concepts::AdaptiveAdjustP< 2 > >, concepts::DynArrayBase, timestepping::LimitingTvdRK2, timestepping::TvdRK2, timestepping::TimeStepping, timestepping::Theta, timestepping::RungeKutta4, timestepping::RungeKutta2, timestepping::Nystroem, timestepping::Newmark, timestepping::LimitingEuler, timestepping::Euler, timestepping::Alpha, concepts::Set< IndexRange >::index_iterator, concepts::SubspaceHelper< F, G >, concepts::SubspaceHelper< Real, hp2D::SpacePreBuilder >, concepts::SubspaceHelper< F, hp2D::SpacePreBuilder >, concepts::SpaceHelper< F, G >, concepts::SpaceHelper< Real, hp2D::SpacePreBuilder >, concepts::SpaceHelper< concepts::Real, SpacePreBuilder >, concepts::SpaceHelper< F, hp2D::SpacePreBuilder >, concepts::SpaceHelper< F, SpacePreBuilder >, concepts::SpacePreBuilder, concepts::SpaceDebug< F >, concepts::GlobalPostprocess< F >, concepts::GlobalPostprocess< Real >, concepts::CellPostprocess< F >, concepts::CellPostprocess< typename concepts::Realtype< F >::type >, concepts::CellPostprocess< Real >, concepts::CellEdgeIntegral< F >, concepts::CellFaceIntegral< F >, concepts::CellIntegral< F >, concepts::PRefinement< F, dim >, concepts::HRefinement< F, dim >, concepts::FrmE_ScalarProductNormalEdge2d< F >, concepts::ElementFormulaRotate2D< F >, concepts::ElementFormulaBoundary, concepts::ElementFormulaCompose< F, G, H >, concepts::ElementFormulaLiCo< F, G, H, J >, concepts::ElementAndFacette< F >, concepts::Dirichlet< F >, concepts::Dirichlet< Real >, concepts::_SubMatrix_iterator< F, _Ref, _Ptr >, concepts::NewtonException, concepts::MumpsException, concepts::_Matrix_iterator< _Tp, _Ref, _Ptr >, concepts::_Matrix_iterator_base< _Tp, _Ref, _Ptr >, concepts::_Matrix_iterator_base< F::type, _Ref, _Ptr >, concepts::_HashedSMatrix_iterator< _Tp, _Ref, _Ptr >, concepts::BilinearF_W< F, H, J, G >, concepts::BilinearF_Sum< F, H, J, G >, concepts::PointerToEmptyBilinearForm, concepts::BilinearFormContainer< F, G >, concepts::BilinearFormContainer< F, typename Realtype< F >::type >, concepts::BilinearFormLiCo< F, G >, concepts::BilinearForm< F, G >, concepts::BilinearForm< concepts::Real >, concepts::BilinearForm< FX >, concepts::BilinearForm< F >, concepts::BilinearForm< F, typename Realtype< F >::type >, concepts::BilinearForm< Real, Real >, concepts::BilinearForm< Real >, concepts::Model< F >, concepts::Model< Cmplx >, hp2D::InputMaxwell2D_H, hp2D::Maxwell2D_H_DD, hp2D::Maxwell2D_H, hp2D::Maxwell2D_H_Base, hp2D::InputMaxwell2D_E, hp2D::Maxwell2D_E, hp2D::InputEddy2D_H, hp2D::Eddy2D_H, hp2D::Eddy2D_H_Interior, concepts::InputEddy2DGeometries, concepts::EddyGeometry2DRotateImport, concepts::EddyGeometry2DRectImport, concepts::EddyGeometry2DRotational, concepts::EddyGeometry2D, hp2D::InputEddy2D_E, hp2D::Eddy2D_E, concepts::InputAdaptiveModels, concepts::MatfileIO, concepts::MatfileIOError, concepts::Rys, concepts::QuadRuleFactoryTensorDuffy2d, concepts::QuadRuleFactoryTensorDuffy2d::DuffyData, concepts::QuadRuleFactoryTensor2d, concepts::QuadratureRule2dQuadDuffy, concepts::QuadratureRule2dQuadTensor, concepts::QuadRuleFactory, concepts::QuadratureRule1dTrapeze, concepts::QuadratureRule1dGaussJacobi, concepts::QuadratureRule1dGaussLobatto, concepts::Quadrature< type >, concepts::Quadrature< 0 >, concepts::Quadrature< 4 >, concepts::Quadrature< 5 >, concepts::Legendre, concepts::LaguerreBasis< mode >, concepts::Laguerre, concepts::Karniadakis< type, mode >, concepts::Karniadakis< 1, 1 >, hp3D::ZeroTangentialValue< F >, hp3D::ElementFormulaVectorOnTrace< dim, F, G >, Cube3, Cube2, Cube, hp3D::RotRot, hp3D::Hook, hp3D::HexahedronFaceFirst, hp3D::HexahedronFaceBase, hp3D::DivDiv< Weight >, hp3D::Advection< F >, hp3D::Identity< F >, hp3D::Laplace< F >, hp3D::BilinearFormTwoPartDeriv< F >, hp3D::LinearElasticity< F >, hp3D::APrioriRefinement, hp2Dedge::DirichletCoefficients, hp2Dedge::EdgeIdentity, hp2Dedge::Rotuv, hp2Dedge::RotRot< F >, hp2Dedge::IdentityMatrix< F >, hp2Dedge::Identity< F >, hp2Dedge::GraduvMatrix< F >, hp2Dedge::Graduv< F >, concepts::DirichletElementFormula< F, G >, hp2D::hpFull::Cause, hp2D::hpFull, hp2D::RotRot, hp2D::APrioriRefinementRuleFactory, hp2D::RecomputeShapefct, hp2D::KarniadakisDeriv2, hp2D::NeumannTraceElement< F >::NTShapeFunction, hp2D::NTElement_BA< F >::ShapeFunction, hp2D::GridInfo< F >, hp2D::GridInfo< Real >, hp2D::ElementFormulaSignNormalVector, hp2D::ElementFormulaEdgeJump< F >, hp2D::ElementFormulaEdgeMean< F >, hp2D::ElementFormulaInterpGradN< F, 2 >, hp2D::ElementFormulaInterpGrad< F, 2 >, hp2D::H1Extension< F >, hp2D::PolyEdgeMinNeighMaxChild, hp2D::PolyEdgeMin, hp2D::PolyEdgeMax, hp2D::PolyEdgeRule, hp2D::QuadEdgeJump, hp2D::QuadEdgeMean, hp2D::QuadEdgeFirst, hp2D::QuadEdgeBase, hp2D::DivDiv< Weight >, hp2D::BilinearFormTwoPartDeriv< F >, hp2D::BilinearFormOnePartDeriv< F >, hp2D::LaplaceMatrix< F >, hp2D::Laplace< F >, hp2D::Identity< F >, hp2D::Advection< F >, hp2D::APrioriRegularRefinement, hp2D::APrioriGeometricRefinement, hp2D::APrioriRefinementRule, hp2D::APrioriRefinement, hp1D::AdvectionElementMatrix, hp1D::MassElementMatrix, hp1D::StiffElementMatrix, hp1D::ElementFormulaInterpGrad< F >, hp1D::Mean2Jump1< F >, hp1D::Jump1Jump1< F >, hp1D::BiLaplace< F >, hp1D::IdentityParallel< F >, hp1D::Identity< F >, hp1D::Laplace< F >, graphics::VertexList, graphics::TecplotMesh, graphics::TecplotGraphics, graphics::MatrixBaseElementFormulaCell< F, G >, graphics::MatrixCounterCell, graphics::MatlabMesh, graphics::MatlabGraphics, graphics::BaseMeshCell, graphics::BaseFormulaCell< F, G >, graphics::BaseElementFormulaCell< F, G >, graphics::BaseDataCell< F, G >, graphics::BaseOutputCell< F >, graphics::BaseOutputCell< typename concepts::Realtype< F >::type >, graphics::BaseOutputCell< Real >, graphics::OutputBase, concepts::Hexahedron, concepts::Tetrahedron, concepts::InfiniteQuad, concepts::Quad, concepts::Triangle, concepts::InfiniteEdge, concepts::Edge, concepts::Vertex, concepts::StrategyChange, concepts::Square2, concepts::Square, concepts::AttributeBool, concepts::Semantics< T >, concepts::Semantics< CellCondition >, concepts::Semantics< FacetteTraceType< NormalVectorRule > >, concepts::Semantics< EdgeTraceType >, concepts::Semantics< Boundary >, concepts::Semantics< bool >, concepts::Semantics< FacetteTraceType< concepts::FaceNormalVectorRule > >, concepts::InfQuadSubdiv2V, concepts::QuadSubdiv2V, concepts::QuadSubdiv2H, concepts::QuadSubdiv4, concepts::FaceNormalVectorRule, concepts::EdgeNormalVectorRuleMidPoint, concepts::EdgeNormalVectorRuleAttrib, concepts::EdgeNormalVectorRule, concepts::MutableMesh2, concepts::MutableMesh1, concepts::RelativeCells, concepts::CellToCellMapping< sdim, tdim >, concepts::PointInCell< 1 >, concepts::PointInCell< dim >, concepts::Import3DMeshGmsh, concepts::Import3dMesh, concepts::GmshInputException, concepts::Import2DMeshGmsh, concepts::Import2dMeshGeneral, concepts::Ez4uException, concepts::Import2dMeshEz4u, concepts::Import2dMesh, concepts::Import2dMeshBase, concepts::Line, concepts::ConvertMeshQuads, concepts::Import3DTetMesh, concepts::Mesh, concepts::SquareOneInfiniteRect, concepts::SquareTwoInfiniteRects, concepts::HexSubdiv4z, concepts::HexSubdiv4y, concepts::HexSubdiv4x, concepts::HexSubdiv2z, concepts::HexSubdiv2y, concepts::HexSubdiv2x, concepts::HexSubdiv8, concepts::FrmE_NormalVector3d, concepts::FrmE_TangentialVector, concepts::FrmE_NormalVector, concepts::FFEF_Error, concepts::CellMap< dimC, H >, concepts::CCell_F_dist< dimC >, concepts::CCell_F< dimC >, concepts::CellBox< dimC >, concepts::CellStripeElement< dimC >, concepts::CurvatureElementFormula, concepts::PiecewiseFormulaCombine< F, G, H, I >, concepts::PiecewiseFormulaFun< F, G >, concepts::PiecewiseFormulaFun< Cmplx, Real >, concepts::PiecewiseFormulaFun< Real, Real >, concepts::OpRecipr< F >, concepts::OpAdd< F >, concepts::OpMult< F >, concepts::Operation< F >, concepts::PiecewiseElementFormula< F, G >, concepts::PiecewiseFormula< F >, concepts::PiecewiseFormula< concepts::Point >, concepts::PiecewiseFormula< Cmplx2d >, concepts::PiecewiseFormula< Cmplx >, concepts::PiecewiseFormula< Real >, concepts::PiecewiseFormula< F >::FormulaFactor, concepts::PiecewiseConstDynArrayFormula< F >, concepts::PiecewiseConstFormula< F >, concepts::PiecewiseConstFormula< concepts::Point >, concepts::PiecewiseConstFormula< Real >, concepts::PiecewiseFormula0< F >, concepts::FacetteTraceTypes< NormalVectorRule >, concepts::FacetteTraceTypes< concepts::FaceNormalVectorRule >, concepts::FacetteTraceType< NormalVectorRule >, concepts::MapHexahedron3d, concepts::Map3d, concepts::InverseVertexQuadSector2d, concepts::PartMappingQuad2d, concepts::BlendingQuad2d, concepts::VertexQuad2d, concepts::MapQuad2d, concepts::MappingQuad2d, concepts::MapTriangle2d, concepts::VertexTriangle2d, concepts::MappingQuadEdge2d, concepts::MappingParallelEdge2d, concepts::ParabelMappingEdge2d, concepts::EllipseMappingEdge2d, concepts::CircleMappingEdge2d, concepts::MappingStraightEdge2d, concepts::InverseMappingEdge2d, concepts::PartMappingEdge2d, concepts::MappingEdge2d, concepts::MapEdge1d, concepts::Map2d, concepts::Map1d, concepts::EdgeTraceTypes, concepts::EdgeTraceType, concepts::StraightPeriodicBoundary, concepts::CircleBoundary, concepts::EdgeMesh, concepts::CellDiameter, concepts::Cuboid, Cube3, Cube2, Cube, concepts::Connector, concepts::Circle, concepts::CellConditions, concepts::CellCondition, concepts::Parallelepiped3d, concepts::Hexahedron3d, concepts::Hex3dSubdiv4z, concepts::Hex3dSubdiv4y, concepts::Hex3dSubdiv4x, concepts::Hex3dSubdiv2z, concepts::Hex3dSubdiv2y, concepts::Hex3dSubdiv2x, concepts::Hex3dSubdiv8, concepts::Tetrahedron3d, concepts::NegativeJacobian, concepts::Quad3d, concepts::Triangle3d, concepts::InfiniteRect2d, concepts::InfiniteQuad2d, concepts::Quad2d, concepts::Quad2dSubdiv2V, concepts::Quad2dSubdiv2H, concepts::Quad2dSubdiv4, concepts::Triangle2d, concepts::Edge2d, concepts::Edge1d, concepts::EdgeNd, concepts::BoundaryConditions, concepts::SubVector< F >, concepts::ElementFormulaVector< 1, F, G, H >, concepts::ElementFormulaVector< dim, F, G, H >, concepts::ElementFormulaVector< dim, Real, Real, Real >, concepts::ComplexFunction, concepts::ImagPart, concepts::RealPart, concepts::CmplxPart, concepts::Function< F >, concepts::Function< Cmplx >, concepts::Function< Real >, concepts::VectorElementFormulaBase< F, dim, G >, concepts::VectorElementFormulaBase< F, dim, typename Realtype< F >::type >, concepts::VectorElementFormulaBase< F, 2, G >, concepts::VectorElementFormulaBase< F, 3, G >, test::Container< F >, Cube3, Cube2, Cube, concepts::PiecewiseFormulaBase< F >, concepts::PiecewiseFormulaBase< concepts::Point >, concepts::PiecewiseFormulaBase< Cmplx2d >, concepts::PiecewiseFormulaBase< Point< H, dim > >, concepts::PiecewiseFormulaBase< Cmplx >, concepts::PiecewiseFormulaBase< H >, concepts::PiecewiseFormulaBase< Real >, concepts::PiecewiseFormulaBase< Real2d >, concepts::FormulaSyntaxError, concepts::FrmE_Sum< F, H, J, G >, concepts::FrmE_Product< F, H, J, G >, concepts::FrmE_Trace< dim, F, G >, concepts::FrmE_PointsToMapping< 2, F, G >, concepts::FrmE_PointToMapping< dim, F, G >, concepts::FrmE_Inverse< F, G >, concepts::FrmE_Conjugate< F, G >, concepts::FrmE_Component_Matrix< F, G, H >, concepts::FrmE_Component< F, G, H >, concepts::PointerToEmptyFormula, concepts::PointerToEmptyElementFormula, concepts::ElementNotInDomainOfFormula, concepts::ElementFormulaContainer< F, G >, concepts::ElementFormulaContainer< concepts::Real >, concepts::ElementFormulaContainer< concepts::Point >, concepts::ElementFormulaContainer< concepts::Mapping< Real, 2 > >, concepts::ElementFormulaContainer< typename Datatype< F >::type >, concepts::ElementFormulaContainer< concepts::Point< concepts::Real, 2 > >, concepts::ElementFormulaContainer< Cmplx >, concepts::ElementFormulaContainer< concepts::Point< F, 2 >, G >, concepts::ElementFormulaContainer< F >, concepts::ElementFormulaContainer< F, typename Realtype< F >::type >, concepts::ElementFormulaContainer< concepts::Point< F, 2 > >, concepts::ElementFormulaContainer< Real, Real >, concepts::ElementFormulaContainer< concepts::Point< F, 3 > >, concepts::ElementFormulaContainer< concepts::Mapping< typename concepts::Realtype< F >::type, 2 > >, concepts::ElementFormulaContainer< concepts::Point< Real, 2 > >, concepts::ElementFormulaContainer< concepts::Mapping< typename concepts::Realtype< Real >::type, 2 > >, concepts::ElementFormulaContainer< Real >, concepts::ElementFormulaContainer< concepts::Point< F, dim *dim >, typename Realtype< F >::type >, concepts::ElementFormulaContainer< concepts::Mapping< F, dim >, typename Realtype< F >::type >, concepts::ElementFormulaContainer< Real2d >, concepts::ElementFormulaContainer< concepts::Point< Real, 3 > >, concepts::Boundary, estimator::KeysInfo< F >, estimator::PolynomialDegrees< dim >, estimator::AprioriVertex< F, dim >, estimator::Prediction< F, dim >, geometry::VtxToPatchMaps, geometry::VtxToEdgeSupportMap, geometry::VtxToElmSupportMap, geometry::EdgePatch, geometry::ElementPatch, geometry::edge_dof, geometry::quad_loc, hp2D::EquilibratedMomentsAO< F >, hp2D::ApproxMoments< F >, hp2D::ApproxMoments< concepts::Real >, concepts::MeshGraph2, concepts::MacroElementNode, estimator::MVMarking, estimator::BMarking, estimator::AMarking, estimator::error_index, concepts::InnerResidual< F >, concepts::InnerResidual< concepts::Real >, hp2D::ImplicitEquilibratedA0< F >, concepts::ImplicitEquilibratedA0Error, hp2D::LocalFluxes, hp2D::Fluxes, concepts::FluxesError, hp2D::ExplicitResidual2D< F >, hp2D::ExplicitResidual2D< F >::EdgeWeight, hp2D::ExplicitResidual2D< F >::Distance, hp1D::ExplicitResidual1D< F >, concepts::ExplicitResidual< F >, estimator::BuergRefinement< F >, estimator::BuergRefinement< F >::weightedIndictor, estimator::LocalProjections_P< dim, F, H >, estimator::LocalProjections_S< F, H >, estimator::LocalMesh2, eigensolver::SmallES< F >, eigensolver::JdbSymFabric, eigensolver::JdbSym, eigensolver::InexactInv< F >, eigensolver::InexactInvFabric, eigensolver::GEVPSolver< F >, eigensolver::EigenSolver< F >, eigensolver::EigenSolver< concepts::Cmplx >, eigensolver::EigenSolver< Cmplx >, eigensolver::EigenSolver< G >, eigensolver::EigenSolver< ScalarT >, eigensolver::EigenSolver< Real >, eigensolver::DirPowIt< F, G >, eigensolver::Constrained, eigensolver::ArPackSymm, eigensolver::ArPackppGen< F, G, H >, eigensolver::ArPackppGen< typename eigensolver::OperatorType< F, concepts::Real >::type, F, concepts::Real >, eigensolver::ArPackppSymGen, eigensolver::ArPackppStd< T >, eigensolver::ArPackppStd< typename eigensolver::OperatorType< Cmplx, Real >::type >, eigensolver::ArPackppStd< F >, eigensolver::ArPackFabric, eigensolver::ArPack< F, G, H >, eigensolver::ArPack< Real >, constraints::ConstraintsList< F >, cluster::Y01< Node >, cluster::X01< Node >, cluster::F04< NodeX, NodeY >, cluster::F03< NodeX, NodeY >, cluster::F02< NodeX, NodeY >, cluster::F01< NodeX, NodeY >, test::TestSuiteError, concepts::NoMPIInit_Error, concepts::OutputTecplot< Point< F, dim > >, concepts::OutputTecplot< Array< F > >, concepts::OutputTecplot< std::complex< F > >, concepts::OutputTecplot< F >, concepts::OutputMatlab< std::queue< F > >, concepts::OutputMatlab< std::vector< F > >, concepts::OutputMatlab< std::map< F, G > >, concepts::OutputMatlab< std::set< F > >, concepts::OutputMatlab< bool >, concepts::OutputMatlab< std::string >, concepts::OutputMatlab< F * >, concepts::OutputMatlab< Mapping< F, dim > >, concepts::OutputMatlab< Point< F, dim > >, concepts::OutputMatlab< F >, concepts::multiplies< F, G, H >, concepts::multiplies< G, G, F >, concepts::NoConvergence, concepts::FortranException, concepts::FileOpenError, concepts::Assertion, concepts::MissingFeature, concepts::WrongInputException, concepts::ExceptionBase, concepts::FormulaPMLRadia, concepts::FormulaPMLBoxRestriction< F, G >, concepts::FormulaPMLCart, concepts::FormulaIncPlaneWaveSource, concepts::ComposeFormulaVecEntry< F, DIM, G >, concepts::ComposeFormulaMatVec< F, DIM, G >, concepts::FormulaNormalOuterSP2D< F >, aglowav::M< d >, and aglowav::M< 2 >.

◆ removeChildren()

virtual void concepts::HexSubdivision::removeChildren ( Hexahedron q) const
pure virtual

If there are children, they are removed.

The additional faces, edges and vertices are removed as well.

Implemented in concepts::HexSubdiv4z, concepts::HexSubdiv4y, concepts::HexSubdiv4x, concepts::HexSubdiv2z, concepts::HexSubdiv2y, concepts::HexSubdiv2x, and concepts::HexSubdiv8.

◆ subdivFace0()

void concepts::HexSubdivision::subdivFace0 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

Subdivides a face of a hexehedron h into 4 children.

normal is taken into account: true means that the face is to be subdivided in one shot, false means two shots.

Parameters
hHexahedron of which the face has to be subdivided
AResult
BResult
CResult
DResult
normalone or two shots

◆ subdivFace1()

void concepts::HexSubdivision::subdivFace1 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

◆ subdivFace2()

void concepts::HexSubdivision::subdivFace2 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

◆ subdivFace3()

void concepts::HexSubdivision::subdivFace3 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

◆ subdivFace4()

void concepts::HexSubdivision::subdivFace4 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

◆ subdivFace5()

void concepts::HexSubdivision::subdivFace5 ( Hexahedron h,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D,
bool  normal 
) const
protected

◆ subFace0011()

void concepts::HexSubdivision::subFace0011 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B 
) const
protected

Gets the two children of q and sorts them.

The sorting rule is given in the name and parametrized by the orientation flags rho and tau.

The code 0011 means the following:

rho \ tau 0 1 2 3
0 0011
1 1100

The indices 0 and 1 denote the index in the call to Quad::child which has to be used to get the correct face back.

Returns
A and B

◆ subFace0110()

void concepts::HexSubdivision::subFace0110 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B 
) const
protected

◆ subFace0123()

void concepts::HexSubdivision::subFace0123 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D 
) const
protected

Gets the four children of q and sorts them.

The sorting rule is given in the name and and parametrized by the orientation flags rho and tau.

The code 0123 means the following:

rho \ tau 0 1 2 3
0 0123
1 1230

The indices 0, 1, 2 and 3 denote the index in the call to Quad::child which has to be used to get the correct face back.

Returns
A, B, C and D

◆ subFace1001()

void concepts::HexSubdivision::subFace1001 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B 
) const
protected

◆ subFace1100()

void concepts::HexSubdivision::subFace1100 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B 
) const
protected

◆ subFace1230()

void concepts::HexSubdivision::subFace1230 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D 
) const
protected

◆ subFace2301()

void concepts::HexSubdivision::subFace2301 ( Quad q,
Z2  rho,
Z4  tau,
Quad *&  A,
Quad *&  B,
Quad *&  C,
Quad *&  D 
) const
protected

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