ryujin 2.1.1 revision 71cdc42292164f8095c0bd62c4ea75ebcfac58fa
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
ryujin::Geometry< dim > Class Template Referenceabstract

#include <source/geometries/geometry.h>

Inheritance diagram for ryujin::Geometry< dim >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Geometry< dim >:
Collaboration graph
[legend]

Public Types

enum class  HP_Collection { standard_quadrilaterals , standard_simplices , populated_by_geometry }
 

Public Member Functions

 Geometry (const std::string &name, const std::string &subsection)
 
virtual void create_coarse_triangulation (dealii::Triangulation< dim > &triangulation) const =0
 
virtual void update_dof_handler (dealii::DoFHandler< dim > &) const
 
virtual HP_Collection populate_hp_collections (const unsigned int, typename ryujin::Discretization< dim >::Collection &) const
 

Protected Attributes

std::function< dealii::Point< dim >(const typename dealii::Triangulation< dim >::cell_iterator &, const dealii::Point< dim > &)> transformation_
 

Detailed Description

template<int dim>
class ryujin::Geometry< dim >

A small abstract base class to group configuration options for a number of geometries together.

Definition at line 34 of file geometry.h.

Member Enumeration Documentation

◆ HP_Collection

template<int dim>
enum class ryujin::Geometry::HP_Collection
strong

An enum class describing the hp collection

Enumerator
standard_quadrilaterals 
standard_simplices 
populated_by_geometry 

Definition at line 73 of file geometry.h.

Constructor & Destructor Documentation

◆ Geometry()

template<int dim>
ryujin::Geometry< dim >::Geometry ( const std::string &  name,
const std::string &  subsection 
)
inline

Constructor taking geometry name name and a subsection subsection as an argument. The dealii::ParameterAcceptor is initialized with the subsubsection subsection + "/" + name.

Definition at line 42 of file geometry.h.

Member Function Documentation

◆ create_coarse_triangulation()

template<int dim>
virtual void ryujin::Geometry< dim >::create_coarse_triangulation ( dealii::Triangulation< dim > &  triangulation) const
pure virtual

◆ update_dof_handler()

template<int dim>
virtual void ryujin::Geometry< dim >::update_dof_handler ( dealii::DoFHandler< dim > &  ) const
inlinevirtual

This method is called before we distribute dofs and can be used to set the correct active FE index for each active cell for the given DoFHandler, or update material, or manifold ids, etc.

This method can be left empty for a standard geometry that only uses only one reference element. The method must be reimplemented for geometries that use hp capabilities, such as meshes with mixed finite elements, or meshes with FE_Nothing.

Definition at line 66 of file geometry.h.

◆ populate_hp_collections()

template<int dim>
virtual HP_Collection ryujin::Geometry< dim >::populate_hp_collections ( const unsigned int  ,
typename ryujin::Discretization< dim >::Collection &   
) const
inlinevirtual

Populate all hp::*Collection objects for finite elements, mappings, and quadratures. As this is a formidable zoo of different collection objects, we get a writable reference to the discretization object to set them directly.

Reimplemented in ryujin::Geometries::Reader< dim >, and ryujin::Geometries::RectangularDomain< dim >.

Definition at line 97 of file geometry.h.

References ryujin::Geometry< dim >::standard_quadrilaterals.

Member Data Documentation

◆ transformation_

template<int dim>
std::function<dealii::Point<dim>( const typename dealii::Triangulation<dim>::cell_iterator &, const dealii::Point<dim> &)> ryujin::Geometry< dim >::transformation_
mutableprotected

Return the (optional) forward transformation that maps points of the undeformed triangulation created by create_coarse_triangulation() (and its refinements) to the actual geometry.

If the function is nonempty the Discretization class refines the triangulation without manifolds and realizes the geometry with a MappingQCache whose support points are computed with this transformation. If the function object is empty then a standard MappinQ is used instead. Return the name of the geometry as (const reference) std::string The transformation function object which should be set in create_coarse_triangulation() of derived classes that need MappingQCache to be set up.

Definition at line 137 of file geometry.h.


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