LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lf::geometry::RefinementPattern Class Referenceabstract

Abstract interface class for encoding topological local refinement More...

#include <lf/geometry/refinement_pattern.h>

Inheritance diagram for lf::geometry::RefinementPattern:
lf::refinement::Hybrid2DRefinementPattern

Public Member Functions

 RefinementPattern (lf::base::RefEl ref_el)
 Constructor setting reference element = topological type of entity.
 
 RefinementPattern (lf::base::RefEl ref_el, lf::base::size_type lattice_const)
 Constructor fixing reference element and refinement resolution.
 
lf::base::RefEl RefEl () const
 Returns topological type of entity for which the current object is set up.
 
lf::base::size_type LatticeConst () const
 Provides information about lattice constant used.
 
virtual lf::base::size_type NumChildren (lf::base::dim_t codim) const =0
 provide number of child entities of a given co-dimension to be created by refinement
 
virtual std::vector< Eigen::Matrix< int, Eigen::Dynamic, Eigen::Dynamic > > ChildPolygons (lf::base::dim_t codim) const =0
 provide lattice reference coordinates of vertices of child polygons
 
virtual ~RefinementPattern ()=default
 

Protected Member Functions

 RefinementPattern (const RefinementPattern &)=default
 
 RefinementPattern (RefinementPattern &&)=default
 
RefinementPatternoperator= (const RefinementPattern &)=default
 
RefinementPatternoperator= (RefinementPattern &&)=default
 

Protected Attributes

lf::base::RefEl ref_el_
 
lf::base::size_type lattice_const_
 

Detailed Description

Abstract interface class for encoding topological local refinement

This class defines a local topological refinement pattern by convex polygons on an integer lattice covering the reference element. The main method is lf::geometry::RefinementPattern::ChildPolygons().

The rationale for using an integer lattice is the possibility of exact arithmetic. It also emphasizes the hybrid character of refinement in between topological and geometric operations.

Example: fundamental lattice with constant 6 (default setting) for a triangle: every lattice point has integer coordinates \((i,j)\), \(0\leq i,j \leq 6\), \(i+j\leq 6\).

Definition at line 33 of file refinement_pattern.h.

Constructor & Destructor Documentation

◆ RefinementPattern() [1/4]

lf::geometry::RefinementPattern::RefinementPattern ( const RefinementPattern & )
protecteddefault

◆ RefinementPattern() [2/4]

lf::geometry::RefinementPattern::RefinementPattern ( RefinementPattern && )
protecteddefault

◆ RefinementPattern() [3/4]

lf::geometry::RefinementPattern::RefinementPattern ( lf::base::RefEl ref_el)
inlineexplicit

Constructor setting reference element = topological type of entity.

Parameters
ref_eltopological reference element

The lattice constant is set to 6.

Definition at line 47 of file refinement_pattern.h.

◆ RefinementPattern() [4/4]

lf::geometry::RefinementPattern::RefinementPattern ( lf::base::RefEl ref_el,
lf::base::size_type lattice_const )
inline

Constructor fixing reference element and refinement resolution.

Parameters
ref_eltopological reference element
lattice_constlattice constant, see class documentation for description The lattice constant must be a multiple of 6.

Definition at line 56 of file refinement_pattern.h.

◆ ~RefinementPattern()

virtual lf::geometry::RefinementPattern::~RefinementPattern ( )
virtualdefault

Member Function Documentation

◆ ChildPolygons()

virtual std::vector< Eigen::Matrix< int, Eigen::Dynamic, Eigen::Dynamic > > lf::geometry::RefinementPattern::ChildPolygons ( lf::base::dim_t codim) const
pure virtual

provide lattice reference coordinates of vertices of child polygons

Parameters
codimrelative codimension of the children whose lattice polygons are requested.

for a cell entity

The shaoe of the children of relative co-dimension 0 of a cell is defined through a convex lattice polygon in the reference element. The children of co-dimension 1 are interior edges. Their shape is described by lattice segments. Children of relative co-dimension 2 are interior points. Their position is given by a single lattice point.

For a segment entity

The shape of children with relative co-dimension 0 is given by lattice intervals. Children with relative co-dimension 1 are interior points and their location is given by single lattice points.

Returns
vector of integer matrices containing the lattice coordinates of the verticess of the child polygons in their columns. The size of the matrices is dxP, where d is the intrinsic dimension of the entity, and P stands for the number of vertices of a particular child entity. The length of the returned vector must agree with the value returned by NumChildren() The integer entries of the matrices must be non-negative and the column sums must be <= the lattice constant.

Implemented in lf::refinement::Hybrid2DRefinementPattern.

Referenced by lf::geometry::test_utils::checkChildGeometry(), lf::geometry::SegmentO1::ChildGeometry(), lf::geometry::SegmentO2::ChildGeometry(), lf::geometry::QuadO1::ChildGeometry(), lf::geometry::Parallelogram::ChildGeometry(), lf::geometry::QuadO2::ChildGeometry(), lf::geometry::TriaO1::ChildGeometry(), and lf::geometry::TriaO2::ChildGeometry().

◆ LatticeConst()

lf::base::size_type lf::geometry::RefinementPattern::LatticeConst ( ) const
inline

◆ NumChildren()

virtual lf::base::size_type lf::geometry::RefinementPattern::NumChildren ( lf::base::dim_t codim) const
pure virtual

◆ operator=() [1/2]

RefinementPattern & lf::geometry::RefinementPattern::operator= ( const RefinementPattern & )
protecteddefault

◆ operator=() [2/2]

RefinementPattern & lf::geometry::RefinementPattern::operator= ( RefinementPattern && )
protecteddefault

◆ RefEl()

lf::base::RefEl lf::geometry::RefinementPattern::RefEl ( ) const
inline

Member Data Documentation

◆ lattice_const_

lf::base::size_type lf::geometry::RefinementPattern::lattice_const_
protected

defines spacing of integer lattice

Definition at line 120 of file refinement_pattern.h.

Referenced by lf::refinement::Hybrid2DRefinementPattern::ChildPolygons(), and LatticeConst().

◆ ref_el_

lf::base::RefEl lf::geometry::RefinementPattern::ref_el_
protected

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