FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Geometry::StandardTemplateSet< RawData_ > Class Template Reference

Schneiders template set for adaptive mesh refinement. More...

#include <template_sets.hpp>

Public Types

template<int dim_>
using RefinementTypeByDim = StandardRefinementType< typename Shape::FaceTraits< MaxShape, dim_ >::ShapeType >
 
template<typename Shape_ >
using RefinementTypeByShape = IsolatedPointRefinementType< Shape_ >
 
using VertexMarkerType = std::uint64_t
 

Static Public Member Functions

template<typename Shape_ , int dim_>
static std::pair< Index, int > correct_for_orientation (StandardRefinementType< Shape_ > type, int orientation, Index idx)
 
template<typename Shape_ >
static const RefinementTemplate< Shape_ > & get_template (StandardRefinementType< Shape_ > type)
 
template<typename Shape_ >
static bool has_template (StandardRefinementType< Shape_ > type)
 
template<typename Shape_ >
static constexpr bool is_shape_compatible ()
 Shape compatability test. More...
 
template<typename Mesh_ >
static Intern::RefinementField< std::uint64_t > make_refinement_field (const Mesh_ &mesh, Geometry::SubdivisionLevels &sdls)
 Adjusts SubdivisionLevels to match TemplateSet requirements. More...
 
template<int template_dim_, int child_dim_>
static constexpr int max_children ()
 Returns maximum number of children a template produces. More...
 
template<int template_dim_, int child_dim_>
static Index num_children (StandardRefinementType< typename Shape::FaceTraits< MaxShape, template_dim_ >::ShapeType > type)
 Returns number of children a specific template produces. More...
 
template<typename Shape_ >
static VertexMarkerType spread_refinement_field (const EntityReference &ref, const Intern::RefinementFieldTuple< VertexMarkerType, Shape::FaceTraits< Shape_, 0 >::count > &levels)
 
static void stats ()
 

Private Types

using MaxShape = typename RawData_::MaxShape
 

Static Private Attributes

static TemplateBuilder< RawData_ > _templates = {}
 

Detailed Description

template<typename RawData_>
class FEAT::Geometry::StandardTemplateSet< RawData_ >

Schneiders template set for adaptive mesh refinement.

This class can be used as a TemplateSet for the AdaptiveMesh class. It supports Quadrilateral and Hexahedral meshes. The templates are described in R. Schneiders, Refining quadrilateral and hexahedral element meshes, 1998,

This template set defines a full set of templates for refinement of quadrilateral meshes. For hexahedral meshes the templates are limited and allow only refinement of convex areas.

Definition at line 394 of file template_sets.hpp.

Member Typedef Documentation

◆ MaxShape

template<typename RawData_ >
using FEAT::Geometry::StandardTemplateSet< RawData_ >::MaxShape = typename RawData_::MaxShape
private

Definition at line 398 of file template_sets.hpp.

◆ RefinementTypeByDim

template<typename RawData_ >
template<int dim_>
using FEAT::Geometry::StandardTemplateSet< RawData_ >::RefinementTypeByDim = StandardRefinementType<typename Shape::FaceTraits<MaxShape, dim_>::ShapeType>

Definition at line 403 of file template_sets.hpp.

◆ RefinementTypeByShape

template<typename RawData_ >
template<typename Shape_ >
using FEAT::Geometry::StandardTemplateSet< RawData_ >::RefinementTypeByShape = IsolatedPointRefinementType<Shape_>

Definition at line 406 of file template_sets.hpp.

◆ VertexMarkerType

template<typename RawData_ >
using FEAT::Geometry::StandardTemplateSet< RawData_ >::VertexMarkerType = std::uint64_t

Definition at line 400 of file template_sets.hpp.

Member Function Documentation

◆ correct_for_orientation()

template<typename RawData_ >
template<typename Shape_ , int dim_>
static std::pair< Index, int > FEAT::Geometry::StandardTemplateSet< RawData_ >::correct_for_orientation ( StandardRefinementType< Shape_ >  type,
int  orientation,
Index  idx 
)
inlinestatic

Definition at line 473 of file template_sets.hpp.

◆ get_template()

template<typename RawData_ >
template<typename Shape_ >
static const RefinementTemplate< Shape_ > & FEAT::Geometry::StandardTemplateSet< RawData_ >::get_template ( StandardRefinementType< Shape_ >  type)
inlinestatic

Definition at line 461 of file template_sets.hpp.

◆ has_template()

template<typename RawData_ >
template<typename Shape_ >
static bool FEAT::Geometry::StandardTemplateSet< RawData_ >::has_template ( StandardRefinementType< Shape_ >  type)
inlinestatic

Definition at line 467 of file template_sets.hpp.

◆ is_shape_compatible()

template<typename RawData_ >
template<typename Shape_ >
static constexpr bool FEAT::Geometry::StandardTemplateSet< RawData_ >::is_shape_compatible ( )
inlinestaticconstexpr

Shape compatability test.

Template Parameters
Shape_Mesh shape this template set is to be applied to
Returns
True, if the template set is compatible with the mesh shape, false otherwise.

Definition at line 416 of file template_sets.hpp.

◆ make_refinement_field()

template<typename RawData_ >
template<typename Mesh_ >
static Intern::RefinementField< std::uint64_t > FEAT::Geometry::StandardTemplateSet< RawData_ >::make_refinement_field ( const Mesh_ &  mesh,
Geometry::SubdivisionLevels sdls 
)
inlinestatic

Adjusts SubdivisionLevels to match TemplateSet requirements.

Will only add subdivision levels to match requirements. No subdivision levels will be removed. No-op for quadrilateral meshes, as all 2D templates exists and all markings are valid.

Parameters
[in,out]sdlsSubdivisionLevels to adjust

Definition at line 447 of file template_sets.hpp.

◆ max_children()

template<typename RawData_ >
template<int template_dim_, int child_dim_>
static constexpr int FEAT::Geometry::StandardTemplateSet< RawData_ >::max_children ( )
inlinestaticconstexpr

Returns maximum number of children a template produces.

Template Parameters
template_dim_Dimension of template
child_dim_Dimension of children

Definition at line 433 of file template_sets.hpp.

◆ num_children()

template<typename RawData_ >
template<int template_dim_, int child_dim_>
static Index FEAT::Geometry::StandardTemplateSet< RawData_ >::num_children ( StandardRefinementType< typename Shape::FaceTraits< MaxShape, template_dim_ >::ShapeType >  type)
inlinestatic

Returns number of children a specific template produces.

This is intended as a utility function for iterating over children without creating full TemplateQuerys.

Template Parameters
template_dim_Template dimension
child_dim_Child dimension
Parameters
[in]typeType of template
Returns
Number of children of dimension child_dim_ of template with dimension template_dim_ and type type

Definition at line 492 of file template_sets.hpp.

◆ spread_refinement_field()

template<typename RawData_ >
template<typename Shape_ >
static VertexMarkerType FEAT::Geometry::StandardTemplateSet< RawData_ >::spread_refinement_field ( const EntityReference ref,
const Intern::RefinementFieldTuple< VertexMarkerType, Shape::FaceTraits< Shape_, 0 >::count > &  levels 
)
inlinestatic

Definition at line 453 of file template_sets.hpp.

◆ stats()

template<typename RawData_ >
static void FEAT::Geometry::StandardTemplateSet< RawData_ >::stats ( )
inlinestatic

Definition at line 421 of file template_sets.hpp.

Member Data Documentation

◆ _templates

template<typename RawData_ >
TemplateBuilder<RawData_> FEAT::Geometry::StandardTemplateSet< RawData_ >::_templates = {}
inlinestaticprivate

Definition at line 396 of file template_sets.hpp.


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