13 #ifndef KRATOS_WIND_MODEL_SUBDIVISION_UTILITIES_IMPL
14 #define KRATOS_WIND_MODEL_SUBDIVISION_UTILITIES_IMPL
39 auto& rPair = mIndexSets[pSubModelPart];
40 std::lock_guard<LockType> lock(*rPair.second);
41 rPair.first.push_back(value);
48 template <
class TFunction>
53 for (
auto& rPair : mIndexSets) {
54 (rPair.first->*
function)(rPair.second.first, 0);
63 return mBottomPlane.IsOnPositiveSide(rPoint, mIsOpen);
68 return mTopPlane.IsOnPositiveSide(rPoint, mIsOpen);
73 return (!IsBelow(rPoint)) && (!IsAbove(rPoint));
83 else if (0 < product) {
97 return mTopPlane.mNormal;
static double Dot(const Vector &rFirstVector, const Vector &rSecondVector)
Performs the dot product of two vectors of arbitrary size.
Definition: math_utils.h:669
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
bool IsBelow(const array_1d< double, 3 > &rPoint) const
Definition: model_subdivision_utilities_impl.h:61
bool IsInside(const array_1d< double, 3 > &rPoint) const
Definition: model_subdivision_utilities_impl.h:71
bool IsAbove(const array_1d< double, 3 > &rPoint) const
Definition: model_subdivision_utilities_impl.h:66
const array_1d< double, 3 > & Normal() const
Definition: model_subdivision_utilities_impl.h:95
void Apply(TFunction function)
Only to be used with ModelPart::AddNodes, ModelPart::AddElements, and ModelPart::AddConditions.
Definition: model_subdivision_utilities_impl.h:49
ModelPart::IndexType IndexType
Definition: model_subdivision_utilities.h:99
void Push(ModelPart *pSubModelPart, IndexType value)
Definition: model_subdivision_utilities_impl.h:31
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
bool IsOnPositiveSide(const array_1d< double, 3 > &rPoint, bool open) const
Definition: model_subdivision_utilities_impl.h:77