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.
|
Getting a graph of connectivities (of domains) and performs a coloring procedure. More...
#include <graph_coloring_process.h>
Public Member Functions | |
Life Cycle | |
GraphColoringProcess (int NumberOfPartitions, const GraphType &rDomainsGraph, GraphType &rDomainsColoredGraph, int &rMaxColor) | |
Constructor. More... | |
virtual | ~GraphColoringProcess () |
Destructor. More... | |
Operators | |
void | operator() () |
Operations | |
void | Execute () override |
Execute method is used to execute the Process algorithms. 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::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... | |
virtual const Parameters | GetDefaultParameters () const |
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... | |
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... | |
Type Definitions | |
typedef std::size_t | SizeType |
typedef std::size_t | IndexType |
typedef DenseMatrix< int > | GraphType |
KRATOS_CLASS_POINTER_DEFINITION (GraphColoringProcess) | |
Pointer definition of GraphColoringProcess. More... | |
Additional Inherited Members | |
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) |
Getting a graph of connectivities (of domains) and performs a coloring procedure.
This class takes a graph of connectivites in form of a dense matrix and calculates a coloring schem where no neighbours with the same color are allowed. This process uses a very simple algorithm that for each domain make a loop over its neighbours and finds the first unused color for this pair of domain. The cost of this procedure is quadratic and make it in efficient for large number of domains.
Defining a dense matrix of integer as graph type
typedef std::size_t Kratos::GraphColoringProcess::IndexType |
typedef std::size_t Kratos::GraphColoringProcess::SizeType |
|
inline |
Constructor.
This constructor takes all necessary data to perform the coloring.
NumberOfPartitions | Number of partitions (or domains) |
rDomainsGraph | The graph of domains with their neighbours presented as a matrix where any connection between two domains is presented by putting 1 in corresponding row and columns |
rDomainsColoredGraph | The result of the process. Each column represents a color and the neighbour domain id for each color is stored in this matrix. The rest of the values are set to -1 which shows no neighbour for the color. |
rMaxColor | After executing the process, the maximum number of colors will be stored in this variable |
|
inlinevirtual |
Destructor.
|
inlineoverridevirtual |
Execute method is used to execute the Process algorithms.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Flags.
Kratos::GraphColoringProcess::KRATOS_CLASS_POINTER_DEFINITION | ( | GraphColoringProcess | ) |
Pointer definition of GraphColoringProcess.
|
inline |
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Flags.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Flags.