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.
Classes | List of all members
Kratos::SubModelPartSkinDetectionProcess< TDim > Class Template Reference

Create a SubModelPart covering a part of the outside skin of the computation domain where a condition is met. More...

#include <sub_model_part_skin_detection_process.h>

Inheritance diagram for Kratos::SubModelPartSkinDetectionProcess< TDim >:
Collaboration diagram for Kratos::SubModelPartSkinDetectionProcess< TDim >:

Public Member Functions

Life Cycle
 SubModelPartSkinDetectionProcess (ModelPart &rModelPart, Parameters Settings)
 Constructor. More...
 
 SubModelPartSkinDetectionProcess ()=delete
 Deleted default constructor. More...
 
 SubModelPartSkinDetectionProcess (SubModelPartSkinDetectionProcess const &rOther)=delete
 Deleted copy constructor. More...
 
 ~SubModelPartSkinDetectionProcess () override=default
 Destructor. More...
 
Operators
SubModelPartSkinDetectionProcessoperator= (SubModelPartSkinDetectionProcess const &rOther)=delete
 Deleted sssignment operator. More...
 
Operations
void Execute () override
 This method executes the algorithm that looks for neighbour nodes and elements in a mesh of prismatic elements. More...
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::SkinDetectionProcess< TDim >
 SkinDetectionProcess (ModelPart &rModelPart, Parameters ThisParameters=Parameters(R"({})"))
 Default constructor. More...
 
virtual ~SkinDetectionProcess ()
 Destructor. More...
 
void operator() ()
 
 KRATOS_CLASS_POINTER_DEFINITION (SkinDetectionProcess)
 Pointer definition of SkinDetectionProcess. More...
 
- Public Member Functions inherited from Kratos::Process
 KRATOS_CLASS_POINTER_DEFINITION (Process)
 Pointer definition of Process. More...
 
 Process ()
 Default constructor. More...
 
 Process (const Flags options)
 
 ~Process () override
 Destructor. More...
 
void operator() ()
 This operator is provided to call the process as a function and simply calls the Execute method. More...
 
virtual Process::Pointer Create (Model &rModel, Parameters ThisParameters)
 This method creates an pointer of the process. More...
 
virtual void ExecuteInitialize ()
 This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
 
virtual void ExecuteBeforeSolutionLoop ()
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
virtual void ExecuteInitializeSolutionStep ()
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
virtual void ExecuteFinalizeSolutionStep ()
 This function will be executed at every time step AFTER performing the solve phase. More...
 
virtual void ExecuteBeforeOutputStep ()
 This function will be executed at every time step BEFORE writing the output. More...
 
virtual void ExecuteAfterOutputStep ()
 This function will be executed at every time step AFTER writing the output. More...
 
virtual void ExecuteFinalize ()
 This function is designed for being called at the end of the computations. More...
 
virtual int Check ()
 This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
 
virtual void Clear ()
 This method clears the assignation of the conditions. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Protected Member Functions

Protected Operations
void CreateConditions (ModelPart &rMainModelPart, ModelPart &rSkinModelPart, HashMapVectorIntType &rInverseFaceMap, HashMapVectorIntIdsType &rPropertiesFaceMap, std::unordered_set< IndexType > &rNodesInTheSkin, const std::string &rConditionName) const override
 Create new Conditions based on the results of the face detection algorithm. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
- Protected Member Functions inherited from Kratos::SkinDetectionProcess< TDim >
void GenerateFaceMaps (HashMapVectorIntType &rInverseFaceMap, HashMapVectorIntIdsType &rPropertiesFaceMap) const
 Create auxiliary data structures identifying the element faces on the outer boundary. More...
 
ModelPartSetUpAuxiliaryModelPart ()
 Create and prepare the SubModelPart containing the new face conditions. More...
 
void FillAuxiliaryModelPart (ModelPart &rAuxiliaryModelPart, HashMapVectorIntType &rInverseFaceMap, HashMapVectorIntIdsType &rPropertiesFaceMap)
 Assign new conditions to the target SubModelPart. More...
 
void SetUpAdditionalSubModelParts (const ModelPart &rAuxiliaryModelPart)
 Assing new conditions to additional ModelParts (if requested by user). More...
 
ModelPartGetModelPart () const
 
Parameters GetSettings () const
 
 SkinDetectionProcess (ModelPart &rModelPart, Parameters Settings, Parameters DefaultSettings)
 Protected constructor with modified default settings to be defined by derived class. More...
 

Type Definitions

using ConditionCheckType = bool(const Geometry< Node >::PointsArrayType &)
 
 KRATOS_CLASS_POINTER_DEFINITION (SubModelPartSkinDetectionProcess)
 Pointer definition of SubModelPartSkinDetectionProcess. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::SkinDetectionProcess< TDim >
using NodePointerVector = GlobalPointersVector< Node >
 
using ElementPointerVector = GlobalPointersVector< Element >
 
using VectorIndexType = std::vector< IndexType >
 Definition of the vector indexes considered. More...
 
using VectorIndexHasherType = VectorIndexHasher< VectorIndexType >
 Definition of the hasher considered. More...
 
using VectorIndexComparorType = VectorIndexComparor< VectorIndexType >
 Definition of the key comparor considered. More...
 
using HashSetVectorIntType = std::unordered_set< VectorIndexType, VectorIndexHasherType, VectorIndexComparorType >
 Define the set considered for element pointers. More...
 
using HashSetVectorIntTypeIteratorType = HashSetVectorIntType::iterator
 Define the HashSetVectorIntTypeIteratorType iterator type. More...
 
using HashMapVectorIntType = std::unordered_map< VectorIndexType, VectorIndexType, VectorIndexHasherType, VectorIndexComparorType >
 Define the map considered for face ids. More...
 
using HashMapVectorIntTypeIteratorType = HashMapVectorIntType::iterator
 Define the HashMapVectorIntTypeIteratorType iterator type. More...
 
using HashMapVectorIntIdsType = std::unordered_map< VectorIndexType, IndexType, VectorIndexHasherType, VectorIndexComparorType >
 Define the map considered for properties ids. More...
 
using HashMapVectorIntIdsTypeIteratorType = HashMapVectorIntIdsType::iterator
 Define the HashMapVectorIntIdsType iterator type. More...
 
- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

template<SizeType TDim>
class Kratos::SubModelPartSkinDetectionProcess< TDim >

Create a SubModelPart covering a part of the outside skin of the computation domain where a condition is met.

For example, create the outer skin for the part of the domain belonging to a given SubModelPart.

Member Typedef Documentation

◆ ConditionCheckType

Constructor & Destructor Documentation

◆ SubModelPartSkinDetectionProcess() [1/3]

template<SizeType TDim>
Kratos::SubModelPartSkinDetectionProcess< TDim >::SubModelPartSkinDetectionProcess ( ModelPart rModelPart,
Parameters  Settings 
)

Constructor.

◆ SubModelPartSkinDetectionProcess() [2/3]

Deleted default constructor.

◆ SubModelPartSkinDetectionProcess() [3/3]

template<SizeType TDim>
Kratos::SubModelPartSkinDetectionProcess< TDim >::SubModelPartSkinDetectionProcess ( SubModelPartSkinDetectionProcess< TDim > const &  rOther)
delete

Deleted copy constructor.

◆ ~SubModelPartSkinDetectionProcess()

template<SizeType TDim>
Kratos::SubModelPartSkinDetectionProcess< TDim >::~SubModelPartSkinDetectionProcess ( )
overridedefault

Destructor.

Member Function Documentation

◆ CreateConditions()

template<SizeType TDim>
void Kratos::SubModelPartSkinDetectionProcess< TDim >::CreateConditions ( ModelPart rMainModelPart,
ModelPart rSkinModelPart,
HashMapVectorIntType rInverseFaceMap,
HashMapVectorIntIdsType rPropertiesFaceMap,
std::unordered_set< IndexType > &  rNodesInTheSkin,
const std::string &  rConditionName 
) const
overrideprotectedvirtual

Create new Conditions based on the results of the face detection algorithm.

Parameters
[in/out]rMainModelPart Complete ModelPart for the domain.
[in/out]rSkinModelPart Target ModelPart that will contain the new conditions.
[in]rInverseFaceMapauxiliary data structure describing the outer faces of the domain.
[in]rPropertiesFaceMapauxiliary data structure identifying the property of the element the face belongs to.
[out]rNodesInTheSkinlist of all nodes belonging to the model skin.
[in]rConditionNamebase name for the conditions to be created (number of nodes and dimension will be added dynamically).

Reimplemented from Kratos::SkinDetectionProcess< TDim >.

◆ Execute()

template<SizeType TDim>
void Kratos::SubModelPartSkinDetectionProcess< TDim >::Execute
overridevirtual

This method executes the algorithm that looks for neighbour nodes and elements in a mesh of prismatic elements.

Reimplemented from Kratos::SkinDetectionProcess< TDim >.

◆ GetDefaultParameters()

template<SizeType TDim>
const Parameters Kratos::SubModelPartSkinDetectionProcess< TDim >::GetDefaultParameters
overrideprotectedvirtual

This method provides the defaults parameters to avoid conflicts between the different constructors.

Reimplemented from Kratos::SkinDetectionProcess< TDim >.

◆ Info()

template<SizeType TDim>
std::string Kratos::SubModelPartSkinDetectionProcess< TDim >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::SkinDetectionProcess< TDim >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<SizeType TDim>
Kratos::SubModelPartSkinDetectionProcess< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( SubModelPartSkinDetectionProcess< TDim >  )

Pointer definition of SubModelPartSkinDetectionProcess.

◆ operator=()

template<SizeType TDim>
SubModelPartSkinDetectionProcess& Kratos::SubModelPartSkinDetectionProcess< TDim >::operator= ( SubModelPartSkinDetectionProcess< TDim > const &  rOther)
delete

Deleted sssignment operator.

◆ PrintData()

template<SizeType TDim>
void Kratos::SubModelPartSkinDetectionProcess< TDim >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::SkinDetectionProcess< TDim >.

◆ PrintInfo()

template<SizeType TDim>
void Kratos::SubModelPartSkinDetectionProcess< TDim >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::SkinDetectionProcess< TDim >.


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