![]() |
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.
|
This class is a remesher which uses the PMMG library. More...
#include <pmmg_process.h>
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 | |
| Flags & | operator= (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 Flags & | operator|= (const Flags &Other) |
| const Flags & | operator&= (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::MMG3D > | BaseType |
| typedef Node | NodeType |
| Node definition. More... | |
| typedef Geometry< NodeType > | GeometryType |
| 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, IndexType > | ColorsMapType |
| Colors map. More... | |
| typedef std::pair< IndexType, IndexType > | IndexPairType |
| 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< NodeType > | GeometryType |
| 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, IndexType > | ColorsMapType |
| Colors map. More... | |
| typedef std::pair< IndexType, IndexType > | IndexPairType |
| 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 > | |
| ModelPart & | mrThisModelPart |
| 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... | |
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
| typedef MmgProcess<MMGLibrary::MMG3D> Kratos::ParMmgProcess< TPMMGLibrary >::BaseType |
| typedef std::unordered_map<IndexType,IndexType> Kratos::ParMmgProcess< TPMMGLibrary >::ColorsMapType |
Colors map.
| typedef Geometry<NodeType> Kratos::ParMmgProcess< TPMMGLibrary >::GeometryType |
| typedef std::pair<IndexType,IndexType> Kratos::ParMmgProcess< TPMMGLibrary >::IndexPairType |
Index pair.
| typedef Node Kratos::ParMmgProcess< TPMMGLibrary >::NodeType |
Node definition.
| 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.
| Kratos::ParMmgProcess< TPMMGLibrary >::ParMmgProcess | ( | ModelPart & | rThisModelPart, |
| Parameters | ThisParameters = Parameters(R"({})") |
||
| ) |
This is the default constructor, which is used to read the input files.
| rThisModelPart | The model part |
| ThisParameters | The parameters |
|
overridedefault |
Destructor.
|
overrideprotectedvirtual |
This function removes the conditions with duplicated geometries.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overrideprotectedvirtual |
This function creates an before/after remesh output file.
| rOldModelPart | The old model part before remesh |
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overridevirtual |
Execute method is used to execute the Process algorithms.
Reimplemented from Kratos::Process.
|
overridevirtual |
This function will be executed at every time step AFTER writing the output.
Reimplemented from Kratos::Process.
|
overridevirtual |
This function will be executed at every time step BEFORE writing the output.
Reimplemented from Kratos::Process.
|
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.
|
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.
|
overridevirtual |
This function will be executed at every time step AFTER performing the solve phase.
Reimplemented from Kratos::Process.
|
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.
|
overridevirtual |
This function will be executed at every time step BEFORE performing the solve phase.
Reimplemented from Kratos::Process.
|
overrideprotectedvirtual |
We execute the MMg library and build the new model part from the old model part.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overrideprotectedvirtual |
It frees the memory used during all the process.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Process.
|
overrideprotectedvirtual |
After we have transfer the information from the previous modelpart we initilize the elements and conditions.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overrideprotectedvirtual |
This function generates the mesh MMG5 structure from a Kratos Model Part.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
overrideprotectedvirtual |
This function generates the metric MMG5 structure from a Kratos Model Part.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
| Kratos::ParMmgProcess< TPMMGLibrary >::KRATOS_CLASS_POINTER_DEFINITION | ( | ParMmgProcess< TPMMGLibrary > | ) |
Pointer definition of ParMmgProcess.
| void Kratos::ParMmgProcess< TPMMGLibrary >::operator() |
|
overridevirtual |
This sets the output mesh in a .mdpa format.
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Process.
|
overrideprotectedvirtual |
It saves the solution and mesh to files (for debugging pourpose g.e)
| PostOutput | If the file to save is after or before remeshing |
Reimplemented from Kratos::MmgProcess< MMGLibrary::MMG3D >.
|
protected |
|
staticconstexpr |
Conditions array size.