KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::EmbeddedSkinUtility< TDim > Class Template Reference

Utility to compute the skin representation from a distance function. More...

#include <embedded_skin_utility.h>

Collaboration diagram for Kratos::EmbeddedSkinUtility< TDim >:

Public Types

Enum's
enum  LevelSetTypeEnum { Continuous = 1 , Discontinuous = 2 }
 

Public Member Functions

Life Cycle
 EmbeddedSkinUtility (ModelPart &rModelPart, ModelPart &rSkinModelPart, const std::string LevelSetType="continuous", const std::vector< std::string > &InterpolatedSkinVariables={})
 Default constructor. More...
 
virtual ~EmbeddedSkinUtility ()=default
 Destructor. More...
 
Operations
void GenerateSkin ()
 Call to generate the embedded skin model part This method collects all the operations required to generate the embedded skin model part. The new geometries will be stored inside the skin model part provided in the constructor. More...
 
void InterpolateMeshVariableToSkin (const Variable< double > &rMeshVariable, const Variable< double > &rSkinVariable)
 InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method. More...
 
void InterpolateMeshVariableToSkin (const Variable< array_1d< double, 3 >> &rMeshVariable, const Variable< array_1d< double, 3 >> &rSkinVariable)
 InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method. More...
 
void InterpolateDiscontinuousMeshVariableToSkin (const Variable< double > &rMeshVariable, const Variable< double > &rSkinVariable, const std::string &rInterfaceSide)
 Discontinuous InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation. More...
 
void InterpolateDiscontinuousMeshVariableToSkin (const Variable< array_1d< double, 3 >> &rMeshVariable, const Variable< array_1d< double, 3 >> &rSkinVariable, const std::string &rInterfaceSide)
 Discontinuous InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation. More...
 

Type Definitions

typedef std::unordered_map< Node::Pointer, std::tuple< const Element::Pointer, const unsigned int >, SharedPointerHasher< Node::Pointer >, SharedPointerComparator< Node::Pointer > > EdgeNodesMapType
 
 KRATOS_CLASS_POINTER_DEFINITION (EmbeddedSkinUtility)
 Pointer definition of EmbeddedSkinUtility. More...
 

Detailed Description

template<std::size_t TDim>
class Kratos::EmbeddedSkinUtility< TDim >

Utility to compute the skin representation from a distance function.

Provided either a continuous or discontinuous distance function, this utility reconstructs the skin representation coming from such distance function. This is done by computing the element intersections and saving them in an empty provided model part. Note that such skin representation is discontinuous even for a provided continuous distance field.

Member Typedef Documentation

◆ EdgeNodesMapType

template<std::size_t TDim>
typedef std::unordered_map< Node::Pointer, std::tuple< const Element::Pointer, const unsigned int >, SharedPointerHasher<Node::Pointer>, SharedPointerComparator<Node::Pointer> > Kratos::EmbeddedSkinUtility< TDim >::EdgeNodesMapType

Member Enumeration Documentation

◆ LevelSetTypeEnum

template<std::size_t TDim>
enum Kratos::EmbeddedSkinUtility::LevelSetTypeEnum
Enumerator
Continuous 
Discontinuous 

Constructor & Destructor Documentation

◆ EmbeddedSkinUtility()

template<std::size_t TDim>
Kratos::EmbeddedSkinUtility< TDim >::EmbeddedSkinUtility ( ModelPart rModelPart,
ModelPart rSkinModelPart,
const std::string  LevelSetType = "continuous",
const std::vector< std::string > &  InterpolatedSkinVariables = {} 
)
inline

Default constructor.

◆ ~EmbeddedSkinUtility()

template<std::size_t TDim>
virtual Kratos::EmbeddedSkinUtility< TDim >::~EmbeddedSkinUtility ( )
virtualdefault

Destructor.

Member Function Documentation

◆ GenerateSkin()

template<std::size_t TDim>
void Kratos::EmbeddedSkinUtility< TDim >::GenerateSkin

Call to generate the embedded skin model part This method collects all the operations required to generate the embedded skin model part. The new geometries will be stored inside the skin model part provided in the constructor.

◆ InterpolateDiscontinuousMeshVariableToSkin() [1/2]

template<std::size_t TDim>
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateDiscontinuousMeshVariableToSkin ( const Variable< array_1d< double, 3 >> &  rMeshVariable,
const Variable< array_1d< double, 3 >> &  rSkinVariable,
const std::string &  rInterfaceSide 
)

Discontinuous InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation.

Parameters
rMeshVariablebackground mesh origin variable
rSkinVariableskin mesh destination variable
rInterfaceSideinterface side ("positive" or "negative")

◆ InterpolateDiscontinuousMeshVariableToSkin() [2/2]

template<std::size_t TDim>
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateDiscontinuousMeshVariableToSkin ( const Variable< double > &  rMeshVariable,
const Variable< double > &  rSkinVariable,
const std::string &  rInterfaceSide 
)

Discontinuous InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method for discontinuous level set type formulation.

Parameters
rMeshVariablebackground mesh origin variable
rSkinVariableskin mesh destination variable
rInterfaceSideinterface side ("positive" or "negative")

◆ InterpolateMeshVariableToSkin() [1/2]

template<std::size_t TDim>
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateMeshVariableToSkin ( const Variable< array_1d< double, 3 >> &  rMeshVariable,
const Variable< array_1d< double, 3 >> &  rSkinVariable 
)

InterpolateMeshVariableToSkin array specialization Array type specialization of the InterpolateMeshVariableToSkin method.

Parameters
rMeshVariablebackground mesh origin variable
rSkinVariableskin mesh destination variable

◆ InterpolateMeshVariableToSkin() [2/2]

template<std::size_t TDim>
void Kratos::EmbeddedSkinUtility< TDim >::InterpolateMeshVariableToSkin ( const Variable< double > &  rMeshVariable,
const Variable< double > &  rSkinVariable 
)

InterpolateMeshVariableToSkin double specialization Double type specialization of the InterpolateMeshVariableToSkin method.

Parameters
rMeshVariablebackground mesh origin variable
rSkinVariableskin mesh destination variable

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<std::size_t TDim>
Kratos::EmbeddedSkinUtility< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( EmbeddedSkinUtility< TDim >  )

Pointer definition of EmbeddedSkinUtility.


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