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 provides a non conforming refinement to perform multi scale analysis @detail This process manages three model parts, the coarse model part, refined model part and the visualization model part. This process can be constructed again with the refined model part as the coarse model part in order to get several subscales levels. The refinement is executed by the UniformRefinementUtility where the nodal flag TO_REFINE is set to True. Then, the coarse elements are removed from the visualization model part and the refined elements are added to the visualization model part. The coarsening is executed by the UniformRefinementUtility where the nodal flag TO_REFINE is set to False. Then, the refined elements are deleted and the corresponding coarse elements are added again to the visualization model part. Flags used by the process: TO_REFINE : Those entities will be refined MeshingFlags::REFINED : Once they are refined MeshingFlags::TO_COARSEN : When they aren't TO_REFINE and they doesn't have dependencies TO_ERASE : auxiliary flag NEW_ENTITY : auxiliary flag INTERFACE : the boundary of the refined model part INSIDE : the refined nodes which are not boundary Variables used by the process: SUBSCALE_INDEX : is increased from the coarse model part to the refined one FATHER_NODES : the pointers to the coarse nodes FATHER_NODES_WEIGHTS : the weights of the father nodes SLAVE_NODE : a pointer to the refined node (matching nodes between coarse and refined model parts) FATHER_ELEMENT : the pointer to the coarse element FATHER_CONDITION : the pointer to the coarse condition. More...
#include <multiscale_refining_process.h>
Public Types | |
Type Definitions | |
typedef Node | NodeType |
typedef std::size_t | IndexType |
typedef std::vector< IndexType > | IndexVectorType |
typedef std::vector< std::string > | StringVectorType |
typedef ModelPart::NodesContainerType | NodesArrayType |
typedef std::unordered_map< IndexType, IndexType > | IndexIndexMapType |
typedef std::unordered_map< IndexType, std::vector< std::string > > | IndexStringMapType |
typedef std::unordered_map< IndexType, std::vector< IndexType > > | IndexVectorMapType |
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 |
Public Member Functions | |
Pointer Definitions | |
Pointer definition of MultiscaleRefiningProcess | |
KRATOS_CLASS_POINTER_DEFINITION (MultiscaleRefiningProcess) | |
Life Cycle | |
MultiscaleRefiningProcess (ModelPart &rThisCoarseModelPart, ModelPart &rThisRefinedModelPart, ModelPart &rThisVisualizationModelPart, Parameters ThisParameters=Parameters(R"({})")) | |
~MultiscaleRefiningProcess () override=default | |
Destructor. More... | |
Operators | |
void | operator() () |
Inquiry | |
ModelPart & | GetCoarseModelPart () |
ModelPart & | GetRefinedModelPart () |
ModelPart & | GetVisualizationModelPart () |
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::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 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... | |
Operations | |
void | Execute () override |
Execute method is used to execute the Process algorithms. More... | |
const Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
int | Check () override |
Perform a check with the parameters. More... | |
void | ExecuteRefinement () |
void | ExecuteCoarsening () |
template<class TVarType > | |
void | TransferLastStepToCoarseModelPart (const TVarType &rVariable) |
Copies all the last nodal step data from the refined model part to the coarse one. More... | |
template<class TVarType > | |
void | TransferSubstepToRefinedInterface (const TVarType &rVariable, const double &rSubstepFraction) |
Copies the nodal step data with a linear interpolation between the last nodal steps of the given variable. More... | |
template<class TVarType > | |
void | FixRefinedInterface (const TVarType &rVariable, bool IsFixed) |
Applies fixity forthe given variable at the nodes which define the interface. More... | |
static void | InitializeVisualizationModelPart (ModelPart &rReferenceModelPart, ModelPart &rNewModelPart) |
InitializeVisualizationModelPart adds all the nodes, elements and conditions to the visualization model part. More... | |
static void | InitializeRefinedModelPart (ModelPart &rReferenceModelPart, ModelPart &rNewModelPart) |
InitializeRefinedModelPart defines the refined model part @detail The method copy the model part hierarchy from the coarse to the refined model part. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
This class provides a non conforming refinement to perform multi scale analysis @detail This process manages three model parts, the coarse model part, refined model part and the visualization model part. This process can be constructed again with the refined model part as the coarse model part in order to get several subscales levels. The refinement is executed by the UniformRefinementUtility where the nodal flag TO_REFINE is set to True. Then, the coarse elements are removed from the visualization model part and the refined elements are added to the visualization model part. The coarsening is executed by the UniformRefinementUtility where the nodal flag TO_REFINE is set to False. Then, the refined elements are deleted and the corresponding coarse elements are added again to the visualization model part. Flags used by the process: TO_REFINE : Those entities will be refined MeshingFlags::REFINED : Once they are refined MeshingFlags::TO_COARSEN : When they aren't TO_REFINE and they doesn't have dependencies TO_ERASE : auxiliary flag NEW_ENTITY : auxiliary flag INTERFACE : the boundary of the refined model part INSIDE : the refined nodes which are not boundary Variables used by the process: SUBSCALE_INDEX : is increased from the coarse model part to the refined one FATHER_NODES : the pointers to the coarse nodes FATHER_NODES_WEIGHTS : the weights of the father nodes SLAVE_NODE : a pointer to the refined node (matching nodes between coarse and refined model parts) FATHER_ELEMENT : the pointer to the coarse element FATHER_CONDITION : the pointer to the coarse condition.
typedef std::unordered_map<IndexType, IndexType> Kratos::MultiscaleRefiningProcess::IndexIndexMapType |
typedef std::unordered_map<IndexType, std::vector<std::string> > Kratos::MultiscaleRefiningProcess::IndexStringMapType |
typedef std::size_t Kratos::MultiscaleRefiningProcess::IndexType |
Type of IDs
typedef std::unordered_map<IndexType, std::vector<IndexType> > Kratos::MultiscaleRefiningProcess::IndexVectorMapType |
typedef std::vector<IndexType> Kratos::MultiscaleRefiningProcess::IndexVectorType |
Vector of IndexType
Node containers definition
Node type
typedef std::vector<std::string> Kratos::MultiscaleRefiningProcess::StringVectorType |
Vector of strings type
Kratos::MultiscaleRefiningProcess::MultiscaleRefiningProcess | ( | ModelPart & | rThisCoarseModelPart, |
ModelPart & | rThisRefinedModelPart, | ||
ModelPart & | rThisVisualizationModelPart, | ||
Parameters | ThisParameters = Parameters(R"({})") |
||
) |
|
overridedefault |
Destructor.
|
overridevirtual |
Perform a check with the parameters.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Execute method is used to execute the Process algorithms.
Reimplemented from Kratos::Process.
void Kratos::MultiscaleRefiningProcess::ExecuteCoarsening | ( | ) |
ExecuteCoarsening deletes the entities of the refined model part which in the coarse model part are not TO_REFINE
void Kratos::MultiscaleRefiningProcess::ExecuteRefinement | ( | ) |
ExecuteRefinement transfers the entities TO_REFINE from the coarse to the refined model part and executes the refinement
|
inline |
Applies fixity forthe given variable at the nodes which define the interface.
TVarType | The variable type |
rVariable | The variable to apply fixity |
IsFixed |
|
inline |
|
overridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::Process.
|
inline |
|
inline |
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Process.
|
static |
InitializeRefinedModelPart defines the refined model part @detail The method copy the model part hierarchy from the coarse to the refined model part.
rReferenceModelPart | |
rNewModelPart |
|
static |
InitializeVisualizationModelPart adds all the nodes, elements and conditions to the visualization model part.
rReferenceModelPart | |
rNewModelPart |
Kratos::MultiscaleRefiningProcess::KRATOS_CLASS_POINTER_DEFINITION | ( | MultiscaleRefiningProcess | ) |
|
inline |
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Process.
|
inline |
Copies all the last nodal step data from the refined model part to the coarse one.
|
inline |
Copies the nodal step data with a linear interpolation between the last nodal steps of the given variable.
TVarType | The variable type |
rVariable | The variable to transfer |
rSubstepFraction | 0 means the previous time step, 1 means the last time step, an intermediate value means the interpolation factor |