17 #if !defined(KRATOS_APPLY_CHIMERA_H_INCLUDED)
18 #define KRATOS_APPLY_CHIMERA_H_INCLUDED
21 #include <unordered_map>
114 void SetReformulateEveryStep(
bool Reformulate);
116 virtual void ExecuteInitializeSolutionStep()
override;
120 virtual std::string
Info()
const override;
123 virtual void PrintInfo(std::ostream& rOStream)
const override;
126 virtual void PrintData(std::ostream& rOStream)
const override;
151 const std::string mModifiedName =
"ChimeraModified";
152 const std::string mBoundaryName =
"ChimeraBoundary";
153 const std::string mHoleName =
"ChimeraHole";
166 virtual void DoChimeraLoop();
175 virtual void FormulateChimera(
const Parameters BackgroundParam,
187 void CreateConstraintIds(std::vector<int>& rIdVector,
188 const IndexType NumberOfConstraintsRequired);
197 virtual void ApplyContinuityWithMpcs(
ModelPart& rBoundaryModelPart,
214 template <
typename TVariableType>
217 unsigned int ConstraintId,
219 TVariableType& rMasterVariable,
221 TVariableType& rSlaveVariable,
223 const double Constant = 0.0);
240 template <
typename TVariableType>
243 Vector& rShapeFuncWeights,
244 TVariableType& rVariable,
245 unsigned int StartIndex,
246 std::vector<int>& rConstraintIdVector,
256 void ReserveMemoryForConstraintContainers(
ModelPart& rModelPart,
279 void AddConstraintsToModelpart(
ModelPart& rModelPart,
294 void FormulateConstraints(
ModelPart& rBoundaryModelPart,
359 Element::Pointer& prHostElement,
374 void MakeConstraints(
NodeType& rNodeToFind,
375 Element::Pointer& rHostElement,
379 std::vector<int>& rConstraintIdVector,
void ExecuteFinalizeSolutionStep() override
this function will be executed at every time step AFTER performing the solve phase
Definition: periodic_interface_process.hpp:55
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class contains methods applies the continuity between the patch and background using linear mast...
Definition: apply_chimera_process.h:69
KRATOS_CLASS_POINTER_DEFINITION(ApplyChimera)
ModelPart::MasterSlaveConstraintContainerType MasterSlaveConstraintContainerType
Definition: apply_chimera_process.h:81
int mNumberOfLevels
Definition: apply_chimera_process.h:142
std::vector< IndexType > ConstraintIdsVectorType
Definition: apply_chimera_process.h:79
Kratos::Variable< double > VariableType
Definition: apply_chimera_process.h:78
ModelPart::NodeType NodeType
Definition: apply_chimera_process.h:77
bool mIsFormulated
Definition: apply_chimera_process.h:148
std::unordered_map< IndexType, ConstraintIdsVectorType > mNodeIdToConstraintIdsMap
Definition: apply_chimera_process.h:144
BinBasedFastPointLocator< TDim > PointLocatorType
Definition: apply_chimera_process.h:83
ModelPart::NodesContainerType NodesContainerType
Definition: apply_chimera_process.h:85
PointLocatorType::Pointer PointLocatorPointerType
Definition: apply_chimera_process.h:84
ModelPart::IndexType IndexType
Definition: apply_chimera_process.h:76
Parameters mParameters
Definition: apply_chimera_process.h:143
ModelPart & mrMainModelPart
Definition: apply_chimera_process.h:141
std::vector< MasterSlaveConstraintContainerType > MasterSlaveContainerVectorType
Definition: apply_chimera_process.h:82
int mEchoLevel
Definition: apply_chimera_process.h:145
ModelPart::MasterSlaveConstraintType MasterSlaveConstraintType
Definition: apply_chimera_process.h:80
virtual ~ApplyChimera()=default
Destructor.
std::map< std::string, PointLocatorPointerType > mPointLocatorsMap
Definition: apply_chimera_process.h:147
bool mReformulateEveryStep
Definition: apply_chimera_process.h:146
This class is designed to allow the fast location of MANY points on the top of a 3D mesh.
Definition: binbased_fast_point_locator.h:68
Domain
Definition: hole_cutting_utility.h:70
Geometry base class.
Definition: geometry.h:71
This class allows to add a master-slave constraint which is of the form SlaveDofVector = T * MasterDo...
Definition: linear_master_slave_constraint.h:58
A class that implements the interface for different master-slave constraints to be applied on a syste...
Definition: master_slave_constraint.h:76
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
std::size_t IndexType
Pointer definition of ModelPart.
Definition: model_part.h:105
MeshType::MasterSlaveConstraintContainerType MasterSlaveConstraintContainerType
Definition: model_part.h:219
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
The base class for all processes in Kratos.
Definition: process.h:49
static int EchoLevel
Definition: co_sim_EMPIRE_API.h:42
void SetEchoLevel(const int EchoLevel)
Definition: add_custom_io_to_python.cpp:344
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21