ObstacleLoad< dim, number, ObstacleType > Struct Template Reference

Developer Documentation: MeltPoolDG::ObstacleLoad< dim, number, ObstacleType > Struct Template Reference
Developer Documentation
MeltPoolDG::ObstacleLoad< dim, number, ObstacleType > Struct Template Reference

Interface class for loads acting on obstacles using type erasure. More...

#include <obstacle_forces.hpp>

Classes

struct  ObstacleLoadConcept
 
struct  ObstacleLoadModel
 

Public Member Functions

template<typename ObstacleLoadType >
 ObstacleLoad (ObstacleLoadType &&obstacle_load)
 
void add_load_to_obstacles (ObstacleField< dim, number, ObstacleType > &obstacle_field) const
 

Private Attributes

std::unique_ptr< ObstacleLoadConceptobstacle_load_pimpl
 

Detailed Description

template<int dim, typename number, typename ObstacleType>
struct MeltPoolDG::ObstacleLoad< dim, number, ObstacleType >

Interface class for loads acting on obstacles using type erasure.

This interface enables uniform handling of different load models by abstracting them through type erasure. Any load acting on the obstacles in an obstacle field must conform to this interface. Hereby a load can be both forces and torques.

The only requirement for a class implementing a load model is to provide a member function named add_load_to_obstacles() that:

  • Takes a MeltPoolDG::ObstacleField as its argument. This object provides access to all necessary data describing the obstacles. Also the loads are added to the corresponding obstacles in this field.

Constructor & Destructor Documentation

◆ ObstacleLoad()

template<int dim, typename number , typename ObstacleType >
template<typename ObstacleLoadType >
MeltPoolDG::ObstacleLoad< dim, number, ObstacleType >::ObstacleLoad ( ObstacleLoadType &&  obstacle_load)
inlineexplicit

Member Function Documentation

◆ add_load_to_obstacles()

template<int dim, typename number , typename ObstacleType >
void MeltPoolDG::ObstacleLoad< dim, number, ObstacleType >::add_load_to_obstacles ( ObstacleField< dim, number, ObstacleType > &  obstacle_field) const
inline

Member Data Documentation

◆ obstacle_load_pimpl

template<int dim, typename number , typename ObstacleType >
std::unique_ptr<ObstacleLoadConcept> MeltPoolDG::ObstacleLoad< dim, number, ObstacleType >::obstacle_load_pimpl
private

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