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::ParMmgProcess< TPMMGLibrary > Class Template Reference

This class is a remesher which uses the PMMG library. More...

#include <pmmg_process.h>

Inheritance diagram for Kratos::ParMmgProcess< TPMMGLibrary >:
Collaboration diagram for Kratos::ParMmgProcess< TPMMGLibrary >:

Public Member Functions

Life Cycle
 ParMmgProcess (ModelPart &rThisModelPart, Parameters ThisParameters=Parameters(R"({})"))
 This is the default constructor, which is used to read the input files. More...
 
 ~ParMmgProcess () override=default
 Destructor. More...
 
Operators
void operator() ()
 
Operations
void Execute () override
 Execute method is used to execute the Process algorithms. More...
 
void ExecuteInitialize () override
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
void ExecuteBeforeSolutionLoop () override
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
void ExecuteInitializeSolutionStep () override
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
void ExecuteFinalizeSolutionStep () override
 This function will be executed at every time step AFTER performing the solve phase. More...
 
void ExecuteBeforeOutputStep () override
 This function will be executed at every time step BEFORE writing the output. More...
 
void ExecuteAfterOutputStep () override
 This function will be executed at every time step AFTER writing the output. More...
 
void ExecuteFinalize () override
 This function is designed for being called at the end of the computations right after reading the model and the groups. More...
 
void OutputMdpa () override
 This sets the output mesh in a .mdpa format. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. 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::MmgProcess< MMGLibrary::MMG3D >
 MmgProcess (ModelPart &rThisModelPart, Parameters ThisParameters=Parameters(R"({})"))
 This is the default constructor, which is used to read the input files. More...
 
 ~MmgProcess () override=default
 Destructor. More...
 
void operator() ()
 
void Execute () override
 Execute method is used to execute the Process algorithms. More...
 
void ExecuteInitialize () override
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
void ExecuteBeforeSolutionLoop () override
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
void ExecuteInitializeSolutionStep () override
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
void ExecuteFinalizeSolutionStep () override
 This function will be executed at every time step AFTER performing the solve phase. More...
 
void ExecuteBeforeOutputStep () override
 This function will be executed at every time step BEFORE writing the output. More...
 
void ExecuteAfterOutputStep () override
 This function will be executed at every time step AFTER writing the output. More...
 
void ExecuteFinalize () override
 This function is designed for being called at the end of the computations right after reading the model and the groups. More...
 
void CleanSuperfluousNodes ()
 Ths function removes superfluous (defined by "not belonging to an element") nodes from the model part. More...
 
void CleanSuperfluousConditions ()
 Ths function removes superfluous (defined by "not belonging to an element") conditions from the model part. More...
 
std::string GetMmgVersion ()
 This method retrieves the current Mmg version. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
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...
 
 KRATOS_CLASS_POINTER_DEFINITION (MmgProcess)
 Pointer definition of MmgProcess. 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 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 Operators
void InitializeMeshData () override
 This function generates the mesh MMG5 structure from a Kratos Model Part. More...
 
void InitializeSolDataMetric () override
 This function generates the metric MMG5 structure from a Kratos Model Part. More...
 
void ExecuteRemeshing () override
 We execute the MMg library and build the new model part from the old model part. More...
 
void InitializeElementsAndConditions () override
 After we have transfer the information from the previous modelpart we initilize the elements and conditions. More...
 
void SaveSolutionToFile (const bool PostOutput) override
 It saves the solution and mesh to files (for debugging pourpose g.e) More...
 
void FreeMemory () override
 It frees the memory used during all the process. More...
 
void ClearConditionsDuplicatedGeometries () override
 This function removes the conditions with duplicated geometries. More...
 
void CreateDebugPrePostRemeshOutput (ModelPart &rOldModelPart) override
 This function creates an before/after remesh output file. More...
 
template<typename TPointerType >
void SyncMapAcrossRanks (std::unordered_map< IndexType, TPointerType > &rInputMap)
 
- Protected Member Functions inherited from Kratos::MmgProcess< MMGLibrary::MMG3D >
 MmgProcess (ModelPart *pThisModelPart)
 This is the default constructor, which is used to read the input files. To be called by derived classes. More...
 
virtual void InitializeSolDataDistance ()
 This function generates the MMG5 structure for the distance field from a Kratos Model Part. More...
 
virtual void InitializeDisplacementData ()
 This function generates the displacement MMG5 structure from a Kratos Model Part. More...
 
void SetToZeroEntityData (TContainerType &rNewContainer, const TContainerType &rOldContainer)
 It sets to zero the entity data, using the variables from the orginal model part. More...
 
void ApplyLocalParameters ()
 Applies local hmin, hmax and hausd values to entitities as specified in the parameters, to locally control the size and curvature of the remeshing. More...
 

Type Definitions

typedef MmgProcess< MMGLibrary::MMG3DBaseType
 
typedef Node NodeType
 Node definition. More...
 
typedef Geometry< NodeTypeGeometryType
 
typedef std::conditional< Dimension==2, array_1d< double, 3 >, array_1d< double, 6 > >::type TensorArrayType
 The type of array considered for the tensor. More...
 
typedef std::unordered_map< IndexType, IndexTypeColorsMapType
 Colors map. More...
 
typedef std::pair< IndexType, IndexTypeIndexPairType
 Index pair. More...
 
static constexpr SizeType Dimension = 3
 Conditions array size. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ParMmgProcess)
 Pointer definition of ParMmgProcess. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::MmgProcess< MMGLibrary::MMG3D >
typedef Node NodeType
 Node definition. More...
 
typedef Geometry< NodeTypeGeometryType
 
typedef std::conditional< Dimension==2, array_1d< double, 3 >, array_1d< double, 6 > >::type TensorArrayType
 The type of array considered for the tensor. More...
 
typedef std::unordered_map< IndexType, IndexTypeColorsMapType
 Colors map. More...
 
typedef std::pair< IndexType, IndexTypeIndexPairType
 Index pair. 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)
 
- Static Public Attributes inherited from Kratos::MmgProcess< MMGLibrary::MMG3D >
static constexpr SizeType Dimension
 Conditions array size. More...
 
- Static Protected Member Functions inherited from Kratos::MmgProcess< MMGLibrary::MMG3D >
static FrameworkEulerLagrange ConvertFramework (const std::string &rString)
 This converts the framework string to an enum. More...
 
static DiscretizationOption ConvertDiscretization (const std::string &rString)
 This converts the discretization string to an enum. More...
 
- Protected Attributes inherited from Kratos::MmgProcess< MMGLibrary::MMG3D >
ModelPartmrThisModelPart
 
Parameters mThisParameters
 The model part to compute. More...
 
NodeType::DofsContainerType mDofs
 The parameters (can be used for general pourposes) More...
 
std::string mFilename
 Storage for the dof of the node. More...
 
IndexType mEchoLevel
 I/O file name. More...
 
FrameworkEulerLagrange mFramework
 The echo level. More...
 
DiscretizationOption mDiscretization
 The framework. More...
 
bool mRemoveRegions
 The discretization option. More...
 
std::unordered_map< IndexType, std::vector< std::string > > mColors
 Cuttig-out specified regions during surface remeshing. More...
 
std::unordered_map< IndexType, Element::Pointer > mpRefElement
 Where the sub model parts IDs are stored. More...
 
std::unordered_map< IndexType, Condition::Pointer > mpRefCondition
 Reference element. More...
 

Detailed Description

template<PMMGLibrary TPMMGLibrary>
class Kratos::ParMmgProcess< TPMMGLibrary >

This class is a remesher which uses the PMMG library.

This class is a remesher which uses the PMMG library. The class uses a class for the 2D and 3D cases. The remesher keeps the previous submodelparts and interpolates the nodal values between the old and new mesh

Author
Marc Nunez
Carlos Roig
Vicente Mataix Ferrandiz

Member Typedef Documentation

◆ BaseType

template<PMMGLibrary TPMMGLibrary>
typedef MmgProcess<MMGLibrary::MMG3D> Kratos::ParMmgProcess< TPMMGLibrary >::BaseType

◆ ColorsMapType

template<PMMGLibrary TPMMGLibrary>
typedef std::unordered_map<IndexType,IndexType> Kratos::ParMmgProcess< TPMMGLibrary >::ColorsMapType

Colors map.

◆ GeometryType

template<PMMGLibrary TPMMGLibrary>
typedef Geometry<NodeType> Kratos::ParMmgProcess< TPMMGLibrary >::GeometryType

◆ IndexPairType

template<PMMGLibrary TPMMGLibrary>
typedef std::pair<IndexType,IndexType> Kratos::ParMmgProcess< TPMMGLibrary >::IndexPairType

Index pair.

◆ NodeType

template<PMMGLibrary TPMMGLibrary>
typedef Node Kratos::ParMmgProcess< TPMMGLibrary >::NodeType

Node definition.

◆ TensorArrayType

template<PMMGLibrary TPMMGLibrary>
typedef std::conditional<Dimension == 2, array_1d<double, 3>, array_1d<double, 6> >::type Kratos::ParMmgProcess< TPMMGLibrary >::TensorArrayType

The type of array considered for the tensor.

Constructor & Destructor Documentation

◆ ParMmgProcess()

template<PMMGLibrary TPMMGLibrary>
Kratos::ParMmgProcess< TPMMGLibrary >::ParMmgProcess ( ModelPart rThisModelPart,
Parameters  ThisParameters = Parameters(R"({})") 
)

This is the default constructor, which is used to read the input files.

Parameters
rThisModelPartThe model part
ThisParametersThe parameters

◆ ~ParMmgProcess()

template<PMMGLibrary TPMMGLibrary>
Kratos::ParMmgProcess< TPMMGLibrary >::~ParMmgProcess ( )
overridedefault

Destructor.

Member Function Documentation

◆ ClearConditionsDuplicatedGeometries()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ClearConditionsDuplicatedGeometries
overrideprotectedvirtual

This function removes the conditions with duplicated geometries.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ CreateDebugPrePostRemeshOutput()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::CreateDebugPrePostRemeshOutput ( ModelPart rOldModelPart)
overrideprotectedvirtual

This function creates an before/after remesh output file.

Parameters
rOldModelPartThe old model part before remesh

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ Execute()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::Execute
overridevirtual

Execute method is used to execute the Process algorithms.

Reimplemented from Kratos::Process.

◆ ExecuteAfterOutputStep()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteAfterOutputStep
overridevirtual

This function will be executed at every time step AFTER writing the output.

Reimplemented from Kratos::Process.

◆ ExecuteBeforeOutputStep()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteBeforeOutputStep
overridevirtual

This function will be executed at every time step BEFORE writing the output.

Reimplemented from Kratos::Process.

◆ ExecuteBeforeSolutionLoop()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteBeforeSolutionLoop
overridevirtual

This function is designed for being execute once before the solution loop but after all of the solvers where built.

Reimplemented from Kratos::Process.

◆ ExecuteFinalize()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteFinalize
overridevirtual

This function is designed for being called at the end of the computations right after reading the model and the groups.

Reimplemented from Kratos::Process.

◆ ExecuteFinalizeSolutionStep()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteFinalizeSolutionStep
overridevirtual

This function will be executed at every time step AFTER performing the solve phase.

Reimplemented from Kratos::Process.

◆ ExecuteInitialize()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteInitialize
overridevirtual

This function is designed for being execute once before the solution loop but after all of the solvers where built.

Reimplemented from Kratos::Process.

◆ ExecuteInitializeSolutionStep()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteInitializeSolutionStep
overridevirtual

This function will be executed at every time step BEFORE performing the solve phase.

Reimplemented from Kratos::Process.

◆ ExecuteRemeshing()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::ExecuteRemeshing
overrideprotectedvirtual

We execute the MMg library and build the new model part from the old model part.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ FreeMemory()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::FreeMemory
overrideprotectedvirtual

It frees the memory used during all the process.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ GetDefaultParameters()

template<PMMGLibrary TPMMGLibrary>
const Parameters Kratos::ParMmgProcess< TPMMGLibrary >::GetDefaultParameters
overridevirtual

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

Reimplemented from Kratos::Process.

◆ Info()

template<PMMGLibrary TPMMGLibrary>
std::string Kratos::ParMmgProcess< TPMMGLibrary >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::Process.

◆ InitializeElementsAndConditions()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::InitializeElementsAndConditions
overrideprotectedvirtual

After we have transfer the information from the previous modelpart we initilize the elements and conditions.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ InitializeMeshData()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::InitializeMeshData
overrideprotectedvirtual

This function generates the mesh MMG5 structure from a Kratos Model Part.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ InitializeSolDataMetric()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::InitializeSolDataMetric
overrideprotectedvirtual

This function generates the metric MMG5 structure from a Kratos Model Part.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<PMMGLibrary TPMMGLibrary>
Kratos::ParMmgProcess< TPMMGLibrary >::KRATOS_CLASS_POINTER_DEFINITION ( ParMmgProcess< TPMMGLibrary >  )

Pointer definition of ParMmgProcess.

◆ operator()()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::operator()

◆ OutputMdpa()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::OutputMdpa
overridevirtual

This sets the output mesh in a .mdpa format.

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ PrintData()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::Process.

◆ PrintInfo()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::Process.

◆ SaveSolutionToFile()

template<PMMGLibrary TPMMGLibrary>
void Kratos::ParMmgProcess< TPMMGLibrary >::SaveSolutionToFile ( const bool  PostOutput)
overrideprotectedvirtual

It saves the solution and mesh to files (for debugging pourpose g.e)

Parameters
PostOutputIf the file to save is after or before remeshing

Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.

◆ SyncMapAcrossRanks()

template<PMMGLibrary TPMMGLibrary>
template<typename TPointerType >
void Kratos::ParMmgProcess< TPMMGLibrary >::SyncMapAcrossRanks ( std::unordered_map< IndexType, TPointerType > &  rInputMap)
protected

Member Data Documentation

◆ Dimension

template<PMMGLibrary TPMMGLibrary>
constexpr SizeType Kratos::ParMmgProcess< TPMMGLibrary >::Dimension = 3
staticconstexpr

Conditions array size.


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