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 is basic mapper of values between domains using mortar formulation. More...
#include <simple_mortar_mapper_process.h>
Classes | |
struct | TLS |
Auxiliar struct for mapping. More... | |
Public Member Functions | |
Life Cycle | |
SimpleMortarMapperProcess (ModelPart &rOriginModelPart, ModelPart &rDestinationModelPart, Parameters ThisParameters=Parameters(R"({})"), LinearSolverType::Pointer pThisLinearSolver=nullptr) | |
Default constructor. More... | |
SimpleMortarMapperProcess (ModelPart &rOriginModelPart, ModelPart &rDestinationModelPart, TVarType &rThisVariable, Parameters ThisParameters=Parameters(R"({})"), LinearSolverType::Pointer pThisLinearSolver=nullptr) | |
Default constructor. More... | |
SimpleMortarMapperProcess (ModelPart &rOriginModelPart, ModelPart &rDestinationModelPart, TVarType &rOriginVariable, TVarType &rDestinationVariable, Parameters ThisParameters=Parameters(R"({})"), LinearSolverType::Pointer pThisLinearSolver=nullptr) | |
A constructor where two different variables can be considered for each subdomain. More... | |
~SimpleMortarMapperProcess () override=default | |
Destructor. More... | |
Operators | |
void | operator() () |
Operations | |
void | Execute () override |
Execute method is used to execute the Process algorithms. More... | |
void | ExecuteInitializeSolutionStep () override |
void | Map (TVarType &rOriginVariable, TVarType &rDestinationVariable, const Flags Flag=Flags()) |
This method is a direct map between the origin and destination modelpart with custom variables. 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::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 | 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 | |
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 | |
using | PointType = Point |
using | GeometryType = Geometry< Node > |
Type definition for node geometry. More... | |
using | GeometryPointType = Geometry< PointType > |
Type definition for point geometry. More... | |
using | IntegrationMethod = GeometryData::IntegrationMethod |
using | LineType = Line2D2< PointType > |
Type definition for LineType. More... | |
using | TriangleType = Triangle3D3< PointType > |
Type definition for TriangleType. More... | |
using | DecompositionType = typename std::conditional< TDim==2, LineType, TriangleType >::type |
Type definition for DecompositionType based on TDim value. More... | |
using | SparseSpaceType = UblasSpace< double, CompressedMatrix, Vector > |
Type definition for sparse space type. More... | |
using | LocalSpaceType = UblasSpace< double, Matrix, Vector > |
Type definition for local space type. More... | |
using | MatrixType = typename SparseSpaceType::MatrixType |
Type definition for matrix. More... | |
using | VectorType = typename SparseSpaceType::VectorType |
Type definition for vector. More... | |
using | LinearSolverType = LinearSolver< SparseSpaceType, LocalSpaceType > |
Type definition for linear solver. More... | |
using | IndexType = std::size_t |
Index type definition. More... | |
using | IntMap = std::unordered_map< IndexType, IndexType > |
A map for integers. More... | |
using | BoundedMatrixType = BoundedMatrix< double, TNumNodes, TNumNodes > |
BoundedMatrix. More... | |
using | PointMapperType = PointObject< GeometricalObject > |
Type definitions for the tree. More... | |
using | PointTypePointer = typename PointMapperType::Pointer |
using | PointVector = std::vector< PointTypePointer > |
using | BucketType = Bucket< 3ul, PointMapperType, PointVector > |
using | KDTreeType = Tree< KDTreePartition< BucketType > > |
using | MortarKinematicVariablesType = MortarKinematicVariables< TNumNodes, TNumNodesMaster > |
Mortar definition. More... | |
using | MortarOperatorType = MortarOperator< TNumNodes, TNumNodesMaster > |
using | DualLagrangeMultiplierOperatorsType = DualLagrangeMultiplierOperators< TNumNodes, TNumNodesMaster > |
using | ExactMortarIntegrationUtilityType = ExactMortarIntegrationUtility< TDim, TNumNodes, false, TNumNodesMaster > |
KRATOS_DEFINE_LOCAL_FLAG (AVERAGE_NORMAL) | |
KRATOS_DEFINE_LOCAL_FLAG (DISCONTINOUS_INTERFACE) | |
If using average normal. More... | |
KRATOS_DEFINE_LOCAL_FLAG (ORIGIN_IS_HISTORICAL) | |
If interface is discontinous. More... | |
KRATOS_DEFINE_LOCAL_FLAG (DESTINATION_IS_HISTORICAL) | |
If the origin variables is historical. More... | |
KRATOS_DEFINE_LOCAL_FLAG (ORIGIN_SKIN_IS_CONDITION_BASED) | |
If the destination variables is historical. More... | |
KRATOS_DEFINE_LOCAL_FLAG (DESTINATION_SKIN_IS_CONDITION_BASED) | |
If the entities to take into account on the origin model part are the conditions, otherwise we will take elements into consideration. More... | |
KRATOS_DEFINE_LOCAL_FLAG (CONSIDER_TESELLATION) | |
If the entities to take into account on the destination model part are the conditions, otherwise we will take elements into consideration. More... | |
KRATOS_CLASS_POINTER_DEFINITION (SimpleMortarMapperProcess) | |
If we consider the tesellation in the mortar integration. 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) |
This is basic mapper of values between domains using mortar formulation.
Using the dual mortar formulation the resolution of the system of equations is not needed. Several types of constructors are avaible depending of the needs. If the pairs sets are not provided a search will be performed using a KDTree
TDim | The dimension of work |
TNumNodes | The number of nodes of the slave |
TNumNodesMaster | The number of nodes of the master |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::BoundedMatrixType = BoundedMatrix<double, TNumNodes, TNumNodes> |
BoundedMatrix.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::BucketType = Bucket<3ul, PointMapperType, PointVector> |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::DecompositionType = typename std::conditional<TDim == 2, LineType, TriangleType>::type |
Type definition for DecompositionType based on TDim value.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::DualLagrangeMultiplierOperatorsType = DualLagrangeMultiplierOperators<TNumNodes, TNumNodesMaster> |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::ExactMortarIntegrationUtilityType = ExactMortarIntegrationUtility<TDim, TNumNodes, false, TNumNodesMaster> |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::GeometryPointType = Geometry<PointType> |
Type definition for point geometry.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::GeometryType = Geometry<Node> |
Type definition for node geometry.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::IndexType = std::size_t |
Index type definition.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::IntegrationMethod = GeometryData::IntegrationMethod |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::IntMap = std::unordered_map<IndexType, IndexType> |
A map for integers.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KDTreeType = Tree<KDTreePartition<BucketType> > |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::LinearSolverType = LinearSolver<SparseSpaceType, LocalSpaceType> |
Type definition for linear solver.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::LineType = Line2D2<PointType> |
Type definition for LineType.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::LocalSpaceType = UblasSpace<double, Matrix, Vector> |
Type definition for local space type.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::MatrixType = typename SparseSpaceType::MatrixType |
Type definition for matrix.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::MortarKinematicVariablesType = MortarKinematicVariables<TNumNodes, TNumNodesMaster> |
Mortar definition.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::MortarOperatorType = MortarOperator<TNumNodes, TNumNodesMaster> |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::PointMapperType = PointObject<GeometricalObject> |
Type definitions for the tree.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::PointType = Point |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::PointTypePointer = typename PointMapperType::Pointer |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::PointVector = std::vector<PointTypePointer> |
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::SparseSpaceType = UblasSpace<double, CompressedMatrix, Vector> |
Type definition for sparse space type.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::TriangleType = Triangle3D3<PointType> |
Type definition for TriangleType.
using Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::VectorType = typename SparseSpaceType::VectorType |
Type definition for vector.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::SimpleMortarMapperProcess | ( | ModelPart & | rOriginModelPart, |
ModelPart & | rDestinationModelPart, | ||
Parameters | ThisParameters = Parameters(R"({})" ) , |
||
LinearSolverType::Pointer | pThisLinearSolver = nullptr |
||
) |
Default constructor.
rOriginModelPart | The origin model part to compute |
rDestinationModelPart | The destination model part to compute |
ThisParameters | The configuration parameters |
pThisLinearSolver | The pointer to the linear to be used (in case of implicit resolution) |
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::SimpleMortarMapperProcess | ( | ModelPart & | rOriginModelPart, |
ModelPart & | rDestinationModelPart, | ||
TVarType & | rThisVariable, | ||
Parameters | ThisParameters = Parameters(R"({})" ) , |
||
LinearSolverType::Pointer | pThisLinearSolver = nullptr |
||
) |
Default constructor.
rOriginModelPart | The origin model part to compute |
rDestinationModelPart | The destination model part to compute |
rThisVariable | The variable to transfer and be transfered |
ThisParameters | The configuration parameters |
pThisLinearSolver | The pointer to the linear to be used (in case of implicit resolution) |
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::SimpleMortarMapperProcess | ( | ModelPart & | rOriginModelPart, |
ModelPart & | rDestinationModelPart, | ||
TVarType & | rOriginVariable, | ||
TVarType & | rDestinationVariable, | ||
Parameters | ThisParameters = Parameters(R"({})" ) , |
||
LinearSolverType::Pointer | pThisLinearSolver = nullptr |
||
) |
A constructor where two different variables can be considered for each subdomain.
rOriginModelPart | The origin model part to compute |
rDestinationModelPart | The destination model part to compute |
rOriginVariable | The variable to transfer |
rDestinationVariable | The variable to be transfered |
ThisParameters | The configuration parameters |
pThisLinearSolver | The pointer to the linear to be used (in case of implicit resolution) |
|
overridedefault |
Destructor.
|
overridevirtual |
Execute method is used to execute the Process algorithms.
Reimplemented from Kratos::Process.
|
overridevirtual |
This function will be executed at every time step BEFORE performing the solve phase
Reimplemented from Kratos::Process.
|
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.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_CLASS_POINTER_DEFINITION | ( | SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster > | ) |
If we consider the tesellation in the mortar integration.
Pointer definition of SimpleMortarMapperProcess
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | AVERAGE_NORMAL | ) |
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | CONSIDER_TESELLATION | ) |
If the entities to take into account on the destination model part are the conditions, otherwise we will take elements into consideration.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | DESTINATION_IS_HISTORICAL | ) |
If the origin variables is historical.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | DESTINATION_SKIN_IS_CONDITION_BASED | ) |
If the entities to take into account on the origin model part are the conditions, otherwise we will take elements into consideration.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | DISCONTINOUS_INTERFACE | ) |
If using average normal.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | ORIGIN_IS_HISTORICAL | ) |
If interface is discontinous.
Kratos::SimpleMortarMapperProcess< TDim, TNumNodes, TVarType, TNumNodesMaster >::KRATOS_DEFINE_LOCAL_FLAG | ( | ORIGIN_SKIN_IS_CONDITION_BASED | ) |
If the destination variables is historical.
|
inline |
This method is a direct map between the origin and destination modelpart with custom variables.
rOriginVariable | The origin model part |
rDestinationVariable | The destination model part |
Flag | The flags to special settings. Right now does nothing |
|
inline |
|
inlineoverridevirtual |
Print object's data.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Process.