ExaDG
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
ExaDG::DeformedMappingBase< dim, Number > Class Template Referenceabstract

#include <mapping_deformation_base.h>

Inheritance diagram for ExaDG::DeformedMappingBase< dim, Number >:
ExaDG::MappingDoFVector< dim, Number > ExaDG::DeformedMappingFunction< dim, Number > ExaDG::Poisson::DeformedMapping< dim, Number > ExaDG::Structure::DeformedMapping< dim, Number >

Public Types

typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType
 
- Public Types inherited from ExaDG::MappingDoFVector< dim, Number >
typedef dealii::LinearAlgebra::distributed::Vector< Number > VectorType
 

Public Member Functions

 DeformedMappingBase (std::shared_ptr< dealii::Mapping< dim > const > mapping_undeformed, unsigned int const mapping_degree_deformed, dealii::Triangulation< dim > const &triangulation)
 
virtual ~DeformedMappingBase ()
 
virtual void update (double const time, bool const print_solver_info, types::time_step time_step_number)=0
 
virtual void print_iterations () const
 
- Public Member Functions inherited from ExaDG::MappingDoFVector< dim, Number >
 MappingDoFVector (unsigned int const mapping_degree)
 
virtual ~MappingDoFVector ()
 
std::shared_ptr< dealii::Mapping< dim > const > get_mapping () const
 
std::shared_ptr< dealii::MappingQCache< dim > > get_mapping_q_cache () const
 
void fill_grid_coordinates_vector (VectorType &grid_coordinates, dealii::DoFHandler< dim > const &dof_handler) const
 
void fill_grid_coordinates_vector (dealii::Mapping< dim > const &mapping, VectorType &grid_coordinates, dealii::DoFHandler< dim > const &dof_handler) const
 
void initialize_mapping_from_dof_vector (std::shared_ptr< dealii::Mapping< dim > const > mapping, VectorType const &displacement_vector, dealii::DoFHandler< dim > const &dof_handler)
 

Protected Attributes

std::shared_ptr< dealii::Mapping< dim > const > mapping_undeformed
 
- Protected Attributes inherited from ExaDG::MappingDoFVector< dim, Number >
std::shared_ptr< dealii::MappingQCache< dim > > mapping_q_cache
 

Additional Inherited Members

- Public Attributes inherited from ExaDG::MappingDoFVector< dim, Number >
std::vector< unsigned int > hierarchic_to_lexicographic_numbering
 
std::vector< unsigned int > lexicographic_to_hierarchic_numbering
 

Detailed Description

template<int dim, typename Number>
class ExaDG::DeformedMappingBase< dim, Number >

Base class to describe grid deformations, where the grid coordinates described by a reference mapping are superimposed by a displacement DoF vector.

A typical use case of this class are Arbitrary Lagrangian-Eulerian type problems with moving domains / grids, where the displacement vector describes the time-dependent deformation of the grid. However, this class may also be used for stationary problems, e.g. to apply high-order curved boundaries on top of low-order approximation of a certain geometry.

TODO: extend this class to simplicial elements.

Constructor & Destructor Documentation

◆ DeformedMappingBase()

template<int dim, typename Number >
ExaDG::DeformedMappingBase< dim, Number >::DeformedMappingBase ( std::shared_ptr< dealii::Mapping< dim > const > mapping_undeformed,
unsigned int const mapping_degree_deformed,
dealii::Triangulation< dim > const & triangulation )
inline

Constructor.

The constructor assumes a vanishing displacement field, i.e. after construction the reference configuration described by mapping_undeformed describes the absolute coordinates of the grid.

◆ ~DeformedMappingBase()

template<int dim, typename Number >
virtual ExaDG::DeformedMappingBase< dim, Number >::~DeformedMappingBase ( )
inlinevirtual

Desctructor.

Member Function Documentation

◆ print_iterations()

template<int dim, typename Number >
virtual void ExaDG::DeformedMappingBase< dim, Number >::print_iterations ( ) const
inlinevirtual

Print the number of iterations for PDE-type grid deformation problems.

TODO: this function is only relevant for PDE-type grid deformation problems, and should therefore not appear in this base class.

Reimplemented in ExaDG::Poisson::DeformedMapping< dim, Number >, and ExaDG::Structure::DeformedMapping< dim, Number >.

◆ update()

template<int dim, typename Number >
virtual void ExaDG::DeformedMappingBase< dim, Number >::update ( double const time,
bool const print_solver_info,
types::time_step time_step_number )
pure virtual

Updates the mapping, i.e., moves the grid.

TODO: The parameters print_solver_info and time_step_number are only relevant for PDE-type grid deformation problems. Hence this function with these particular arguments should not appear in this base class.

Implemented in ExaDG::DeformedMappingFunction< dim, Number >, ExaDG::Poisson::DeformedMapping< dim, Number >, and ExaDG::Structure::DeformedMapping< dim, Number >.

Member Data Documentation

◆ mapping_undeformed

template<int dim, typename Number >
std::shared_ptr<dealii::Mapping<dim> const> ExaDG::DeformedMappingBase< dim, Number >::mapping_undeformed
protected

mapping describing undeformed reference state


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