PTEMS  0.1.0-dev+git.81fd0e4
PolyTopic Element Method Solver
ptems::MeshSmoother Struct Reference

Defines the options for mesh smoothing to perform during mesh refinement. More...

#include <ptems/mesh.hpp>

Collaboration diagram for ptems::MeshSmoother:

Public Member Functions

constexpr MeshSmoother (bool refineUnrefined=true, std::size_t maxHanging=InfiniteHangingNodes)
 Sets the settings for mesh smoothing. More...
 
constexpr MeshSmoother (std::size_t maxHanging)
 Sets the settings for mesh smoothing, with unrefined islands set to be refined. More...
 

Static Public Member Functions

static constexpr MeshSmoother Conforming (bool refineUnrefined=true)
 Get a mesh smoother to create a conforming mesh with green refinement as necessary. More...
 

Public Attributes

bool RefineUnrefinedIslands
 Specifies if "unrefined islands" should also be refined. More...
 
std::size_t MaxHangingNodes
 Specifies the maximum number of hanging nodes per edge/face. More...
 

Static Public Attributes

static constexpr std::size_t InfiniteHangingNodes = std::numeric_limits<std::size_t>::max()
 Specifies the value for MaxHangingNodes to not perform mesh smoothing for hanging nodes (allow infinite number) More...
 

Detailed Description

Defines the options for mesh smoothing to perform during mesh refinement.

Todo:
Agglomerated meshes may require special treatment

Constructor & Destructor Documentation

◆ MeshSmoother() [1/2]

constexpr ptems::MeshSmoother::MeshSmoother ( bool  refineUnrefined = true,
std::size_t  maxHanging = InfiniteHangingNodes 
)
inlineconstexpr

Sets the settings for mesh smoothing.

Parameters
refineUnrefinedSpecifies if "unrefined islands" (elements where at least half the edges have been refined; i.e., have two or more neighbours) should also be refined. Default = true
maxHangingSpecifies the maximum number of hanging nodes per edge, or MaxHangingNodes (default) for no limit. If equal to zero, performs "green" refinement to construct a conforming mesh
Warning
Green refinement (conforming meshes) is only supported for simplex and convex quadrilateral elements

◆ MeshSmoother() [2/2]

constexpr ptems::MeshSmoother::MeshSmoother ( std::size_t  maxHanging)
inlineconstexpr

Sets the settings for mesh smoothing, with unrefined islands set to be refined.

Parameters
maxHangingSpecifies the maximum number of hanging nodes per edge, or MaxHangingNodes (default) for no limit. If equal to zero, performs "green" refinement to construct a conforming mesh
Warning
Green refinement (conforming meshes) is only supported for simplex and convex quadrilateral elements

Member Function Documentation

◆ Conforming()

static constexpr MeshSmoother ptems::MeshSmoother::Conforming ( bool  refineUnrefined = true)
inlinestaticconstexpr

Get a mesh smoother to create a conforming mesh with green refinement as necessary.

Parameters
refineUnrefinedSpecifies if "unrefined islands" (elements where at least half the edges have been refined; i.e., have two or more neighbours) should also be refined. Default = true
Returns
A mesh smoother for a conforming mesh
Warning
Green refinement (conforming meshes) is only supported for simplex and convex quadrilateral elements

Member Data Documentation

◆ InfiniteHangingNodes

constexpr std::size_t ptems::MeshSmoother::InfiniteHangingNodes = std::numeric_limits<std::size_t>::max()
staticconstexpr

Specifies the value for MaxHangingNodes to not perform mesh smoothing for hanging nodes (allow infinite number)

◆ MaxHangingNodes

std::size_t ptems::MeshSmoother::MaxHangingNodes

Specifies the maximum number of hanging nodes per edge/face.

If set to zero, indicates that "green" refinement should be performed on elements with hanging nodes to "complete" the mesh (creates conforming mesh for original conforming mesh)

If set to InfiniteHangingNodes indicates that an infinite number of hanging nodes are supported per edge.

Warning
Green refinement (conforming meshes) is only supported for simplex and convex quadrilateral elements

◆ RefineUnrefinedIslands

bool ptems::MeshSmoother::RefineUnrefinedIslands

Specifies if "unrefined islands" should also be refined.

An unrefined island is an element where at least half the edges/faces have been refined. An element's edge/face is considered refined if it has at least two different neighbouring elements.


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