13 #if !defined(KRATOS_SUB_MODEL_PART_SKIN_DETECTION_PROCESS_H_INCLUDED)
14 #define KRATOS_SUB_MODEL_PART_SKIN_DETECTION_PROCESS_H_INCLUDED
36 template<SizeType TDim>
50 virtual ~FaceSelector() =
default;
51 virtual void Prepare(
ModelPart& rMainModelPart)
const = 0;
60 class SelectIfAllNodesOnSubModelPart:
public FaceSelector
65 SelectIfAllNodesOnSubModelPart(
const std::string& rName): mName(rName) {}
67 void Prepare(
ModelPart& rMainModelPart)
const override;
78 class SelectIfOneNodeNotOnSubModelPart:
public FaceSelector
80 std::vector<std::string> mNames;
83 SelectIfOneNodeNotOnSubModelPart(
const std::vector<std::string>& rNames): mNames(rNames) {}
85 void Prepare(
ModelPart& rMainModelPart)
const override;
130 void Execute()
override;
136 std::string
Info()
const override
138 return "SkinDetectionProcess";
144 rOStream <<
"SkinDetectionProcess";
159 void CreateConditions(
162 HashMapVectorIntType& rInverseFaceMap,
163 HashMapVectorIntIdsType& rPropertiesFaceMap,
164 std::unordered_set<IndexType>& rNodesInTheSkin,
165 const std::string& rConditionName)
const override;
170 const Parameters GetDefaultParameters()
const override;
179 typename FaceSelector::Pointer mpFaceSelector;
199 template<SizeType TDim>
204 template<SizeType TDim>
209 rOStream << std::endl;
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
An algorithm that looks for neighbour elements in a mesh and creates a submodelpart containing the sk...
Definition: skin_detection_process.h:69
std::unordered_map< VectorIndexType, IndexType, VectorIndexHasherType, VectorIndexComparorType > HashMapVectorIntIdsType
Define the map considered for properties ids.
Definition: skin_detection_process.h:103
std::vector< IndexType > VectorIndexType
Definition of the vector indexes considered.
Definition: skin_detection_process.h:82
std::unordered_map< VectorIndexType, VectorIndexType, VectorIndexHasherType, VectorIndexComparorType > HashMapVectorIntType
Define the map considered for face ids.
Definition: skin_detection_process.h:97
Create a SubModelPart covering a part of the outside skin of the computation domain where a condition...
Definition: sub_model_part_skin_detection_process.h:38
KRATOS_CLASS_POINTER_DEFINITION(SubModelPartSkinDetectionProcess)
Pointer definition of SubModelPartSkinDetectionProcess.
~SubModelPartSkinDetectionProcess() override=default
Destructor.
SubModelPartSkinDetectionProcess(SubModelPartSkinDetectionProcess const &rOther)=delete
Deleted copy constructor.
bool(const Geometry< Node >::PointsArrayType &) ConditionCheckType
Definition: sub_model_part_skin_detection_process.h:101
SubModelPartSkinDetectionProcess()=delete
Deleted default constructor.
std::string Info() const override
Turn back information as a string.
Definition: sub_model_part_skin_detection_process.h:136
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: sub_model_part_skin_detection_process.h:142
SubModelPartSkinDetectionProcess & operator=(SubModelPartSkinDetectionProcess const &rOther)=delete
Deleted sssignment operator.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: sub_model_part_skin_detection_process.h:148
#define KRATOS_DEFINE_LOCAL_FLAG(name)
Definition: define.h:673
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
REACTION_CHECK_STIFFNESS_FACTOR INNER_LOOP_ITERATION DISTANCE_THRESHOLD ACTIVE_CHECK_FACTOR AUXILIAR_COORDINATES NORMAL_GAP WEIGHTED_GAP WEIGHTED_SCALAR_RESIDUAL bool
Definition: contact_structural_mechanics_application_variables.h:93
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
#define KRATOS_CLASS_POINTER_DEFINITION(a)
Definition: smart_pointers.h:69