14 #if !defined(KRATOS_FLUID_AUXILIARY_UTILITIES_H)
15 #define KRATOS_FLUID_AUXILIARY_UTILITIES_H
68 const std::size_t pts_number = rElementDistancesVector.size();
69 for (std::size_t i_node = 0; i_node < pts_number; ++i_node){
70 if (rElementDistancesVector[i_node] > 0.0)
75 return (n_pos > 0 && n_neg > 0) ? true :
false;
87 std::size_t n_pos (0);
88 const std::size_t pts_number = rElementDistancesVector.size();
89 for (std::size_t i_node = 0; i_node < pts_number; ++i_node){
90 if (rElementDistancesVector[i_node] > 0.0)
93 return (n_pos == pts_number) ? true :
false;
105 std::size_t n_neg (0);
106 const std::size_t pts_number = rElementDistancesVector.size();
107 for (std::size_t i_node = 0; i_node < pts_number; ++i_node){
108 if (rElementDistancesVector[i_node] < 0.0)
111 return n_neg == pts_number;
120 static double CalculateFluidVolume(
const ModelPart& rModelPart);
132 static double CalculateFluidPositiveVolume(
const ModelPart& rModelPart);
144 static double CalculateFluidNegativeVolume(
const ModelPart& rModelPart);
153 static double CalculateFlowRate(
const ModelPart& rModelPart);
162 static double CalculateFlowRatePositiveSkin(
const ModelPart& rModelPart);
171 static double CalculateFlowRateNegativeSkin(
const ModelPart& rModelPart);
181 static double CalculateFlowRatePositiveSkin(
183 const Flags& rSkinFlag);
193 static double CalculateFlowRateNegativeSkin(
195 const Flags& rSkinFlag);
205 static ModifiedShapeFunctionsFactoryType GetStandardModifiedShapeFunctionsFactory(
const GeometryType& rGeometry);
217 static void MapVelocityFromSkinToVolumeRBF(
220 const double SearchRadius);
229 static double FindMaximumEdgeLength(
231 const bool CalculateNodalNeighbours =
true);
242 static double CalculateConditionFlowRate(
const GeometryType& rGeometry);
253 template<
bool IsPositiveSubdomain,
bool CheckConditionFlag>
254 static double CalculateFlowRateAuxiliary(
267 template<
bool CheckConditionFlag>
268 static bool CheckConditionFlagAuxiliary(
270 const Flags& rSkinFlag);
281 template<
bool IsPositiveSubdomain>
282 static inline bool CheckNonSplitConditionSubdomain(
const Vector &rElementDistancesVector);
295 template<
bool IsPositiveSubdomain>
296 static void CalculateSplitConditionGeometryData(
297 const ModifiedShapeFunctions::UniquePointer& rpModShapeFunc,
298 const std::size_t FaceId,
Base class for all Conditions.
Definition: condition.h:59
Definition: fluid_auxiliary_utilities.h:40
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
std::size_t IndexType
Definition: fluid_auxiliary_utilities.h:45
std::function< ModifiedShapeFunctions::UniquePointer(const GeometryType::Pointer, const Vector &)> ModifiedShapeFunctionsFactoryType
Definition: fluid_auxiliary_utilities.h:51
static bool IsPositive(const Vector &rElementDistancesVector)
Checks if an element is positive From the given vector containing the distance in each node,...
Definition: fluid_auxiliary_utilities.h:85
static bool IsSplit(const Vector &rElementDistancesVector)
Checks if an element is split From the given vector containing the distance in each node,...
Definition: fluid_auxiliary_utilities.h:64
static bool IsNegative(const Vector &rElementDistancesVector)
Checks if an element is negative From the given vector containing the distance in each node,...
Definition: fluid_auxiliary_utilities.h:103
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21