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.
Namespaces | Typedefs | Functions
GeometryFunctions.h File Reference
#include <cmath>
#include "utilities/openmp_utils.h"
#include "utilities/quaternion.h"
#include "includes/model_part.h"
#include "DEM_application_variables.h"
Include dependency graph for GeometryFunctions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Kratos
 REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
 
 Kratos::GeometryFunctions
 

Typedefs

typedef Geometry< Node > Kratos::GeometryFunctions::GeometryType
 

Functions

static void Kratos::GeometryFunctions::RotateAVectorAGivenAngleAroundAUnitaryVector (const array_1d< double, 3 > &old_vec, const array_1d< double, 3 > &axis, const double ang, array_1d< double, 3 > &new_vec)
 
static void Kratos::GeometryFunctions::TranslateGridOfNodes (const double time, const double velocity_start_time, const double velocity_stop_time, array_1d< double, 3 > &center_position, const array_1d< double, 3 > &initial_center, array_1d< double, 3 > &previous_displ, array_1d< double, 3 > &linear_velocity_changed, const double linear_period, const double dt, const array_1d< double, 3 > &linear_velocity)
 
static int Kratos::GeometryFunctions::sign (const double a)
 
static double Kratos::GeometryFunctions::min (double a, double b)
 
static double Kratos::GeometryFunctions::max (double a, double b)
 
static void Kratos::GeometryFunctions::normalize (double Vector[3])
 
static void Kratos::GeometryFunctions::normalize (array_1d< double, 3 > &Vector, double &distance)
 
static void Kratos::GeometryFunctions::normalize (double Vector[3], double &distance)
 
static void Kratos::GeometryFunctions::normalize (array_1d< double, 3 > &Vector)
 
static void Kratos::GeometryFunctions::module (const array_1d< double, 3 > &Vector, double &distance)
 
static double Kratos::GeometryFunctions::module (const double Vector[3])
 
static void Kratos::GeometryFunctions::module (const double Vector[3], double &distance)
 
static double Kratos::GeometryFunctions::module (const array_1d< double, 3 > &Vector)
 
static void Kratos::GeometryFunctions::VectorGlobal2Local (const double LocalCoordSystem[3][3], const double GlobalVector[3], double LocalVector[3])
 
static void Kratos::GeometryFunctions::VectorGlobal2Local (const double LocalCoordSystem[3][3], const array_1d< double, 3 > &GlobalVector, array_1d< double, 3 > &LocalVector)
 
static void Kratos::GeometryFunctions::VectorGlobal2Local (const double LocalCoordSystem[3][3], const array_1d< double, 3 > &GlobalVector, double LocalVector[3])
 
static void Kratos::GeometryFunctions::VectorLocal2Global (const double LocalCoordSystem[3][3], const double LocalVector[3], double GlobalVector[3])
 
static void Kratos::GeometryFunctions::VectorLocal2Global (const double LocalCoordSystem[3][3], const array_1d< double, 3 > &LocalVector, array_1d< double, 3 > &GlobalVector)
 
static void Kratos::GeometryFunctions::VectorLocal2Global (const double LocalCoordSystem[3][3], const array_1d< double, 3 > &LocalVector, double GlobalVector[3])
 
static void Kratos::GeometryFunctions::VectorLocal2Global (const double LocalCoordSystem[3][3], const double LocalVector[3], array_1d< double, 3 > &GlobalVector)
 
static void Kratos::GeometryFunctions::ProductMatrices3X3 (const double Matrix1[3][3], const double Matrix2[3][3], double Matrix3[3][3])
 
static void Kratos::GeometryFunctions::ProductMatrix3X3Vector3X1 (const double Matrix[3][3], const array_1d< double, 3 > &Vector1, array_1d< double, 3 > &Vector2)
 
static void Kratos::GeometryFunctions::TensorGlobal2Local (const double LocalCoordSystem[3][3], const double GlobalTensor[3][3], double LocalTensor[3][3])
 
static void Kratos::GeometryFunctions::TensorLocal2Global (const double LocalCoordSystem[3][3], const double LocalTensor[3][3], double GlobalTensor[3][3])
 
static void Kratos::GeometryFunctions::RotaMatrixTensorLocal2Global (const double R[3][3], const double LocalTensor[3][3], double GlobalTensor[3][3])
 
static void Kratos::GeometryFunctions::ConstructLocalTensor (const double moment_of_inertia, double LocalTensor[3][3])
 
static void Kratos::GeometryFunctions::ConstructInvLocalTensor (const double moment_of_inertia, double LocalTensorInv[3][3])
 
static void Kratos::GeometryFunctions::ConstructLocalTensor (const array_1d< double, 3 > &moments_of_inertia, double LocalTensor[3][3])
 
static void Kratos::GeometryFunctions::ConstructInvLocalTensor (const array_1d< double, 3 > &moments_of_inertia, double LocalTensorInv[3][3])
 
static double Kratos::GeometryFunctions::DotProduct (double Vector1[3], double Vector2[3])
 
static double Kratos::GeometryFunctions::DotProduct (const array_1d< double, 3 > &Vector1, const array_1d< double, 3 > &Vector2)
 
static void Kratos::GeometryFunctions::CrossProduct (const double u[3], const double v[3], double ReturnVector[3])
 
static void Kratos::GeometryFunctions::CrossProduct (const array_1d< double, 3 > &u, const array_1d< double, 3 > &v, array_1d< double, 3 > &ReturnVector)
 
static void Kratos::GeometryFunctions::CrossProduct (const double u[3], const array_1d< double, 3 > &v, double ReturnVector[3])
 
static void Kratos::GeometryFunctions::CrossProduct (const array_1d< double, 3 > &u, const double v[3], double ReturnVector[3])
 
static void Kratos::GeometryFunctions::CrossProduct (const array_1d< double, 3 > &u, const double v[3], array_1d< double, 3 > &ReturnVector)
 
static void Kratos::GeometryFunctions::CrossProduct (const array_1d< double, 3 > &u, const array_1d< double, 3 > &v, double ReturnVector[3])
 
static void Kratos::GeometryFunctions::RotateRightHandedBasisAroundAxis (const array_1d< double, 3 > &e1, const array_1d< double, 3 > &e2, const array_1d< double, 3 > &axis, const double ang, array_1d< double, 3 > &new_axes1, array_1d< double, 3 > &new_axes2, array_1d< double, 3 > &new_axes3)
 
static void Kratos::GeometryFunctions::RotateGridOfNodes (const double time, const double angular_velocity_start_time, const double angular_velocity_stop_time, array_1d< double, 3 > &angular_velocity_changed, const double angular_period, const double mod_angular_velocity, const array_1d< double, 3 > &angular_velocity, array_1d< double, 3 > &new_axes1, array_1d< double, 3 > &new_axes2, array_1d< double, 3 > &new_axes3)
 
static void Kratos::GeometryFunctions::UpdateKinematicVariablesOfAGridOfNodes (double mod_angular_velocity, const array_1d< double, 3 > &linear_velocity, const array_1d< double, 3 > &initial_center, array_1d< double, 3 > &new_axes1, array_1d< double, 3 > &new_axes2, array_1d< double, 3 > &new_axes3, array_1d< double, 3 > &angular_velocity_changed, array_1d< double, 3 > &linear_velocity_changed, array_1d< double, 3 > &center_position, const bool fixed_mesh, const double dt, ModelPart::NodesContainerType &pNodes)
 
static void Kratos::GeometryFunctions::ComputeContactLocalCoordSystem (array_1d< double, 3 > NormalDirection, const double &distance, double LocalCoordSystem[3][3])
 
static double Kratos::GeometryFunctions::DistanceOfTwoPoint (const double coord1[3], const double coord2[3])
 
static double Kratos::GeometryFunctions::DistanceOfTwoPoint (const array_1d< double, 3 > &coord1, const double coord2[3])
 
static double Kratos::GeometryFunctions::DistanceOfTwoPointSquared (const array_1d< double, 3 > &coord1, const array_1d< double, 3 > &coord2)
 
static double Kratos::GeometryFunctions::DistanceOfTwoPointSquared (double coord1[3], double coord2[3])
 
static double Kratos::GeometryFunctions::DistancePointToPlane (const array_1d< double, 3 > &CoordInPlane, double PlaneUnitNormalVector[3], double TestCoord[3])
 
static void Kratos::GeometryFunctions::CoordProjectionOnPlane (double CoordOut[3], double CoordIn[3], double LocalCoordSystem[3][3], double IntersectionCoord[3])
 
static void Kratos::GeometryFunctions::CoordProjectionOnPlaneNew (double CoordOut[3], const array_1d< double, 3 > &CoordIn, double LocalCoordSystem[3][3], double IntersectionCoord[3])
 
static void Kratos::GeometryFunctions::Compute3DimElementFaceLocalSystem (const array_1d< double, 3 > &FaceCoord1, const array_1d< double, 3 > &FaceCoord2, const array_1d< double, 3 > &FaceCoord3, double ParticleCoord[3], double LocalCoordSystem[3][3], double &normal_flag)
 
static void Kratos::GeometryFunctions::Compute3DimElementFaceLocalSystem (double FaceCoord1[3], double FaceCoord2[3], double FaceCoord3[3], double ParticleCoord[3], double LocalCoordSystem[3][3], double &normal_flag)
 
static void Kratos::GeometryFunctions::RotatePointAboutArbitraryLine (array_1d< double, 3 > &TargetPoint, const array_1d< double, 3 > &CentrePoint, const array_1d< double, 3 > &LineVector, const double RotationAngle)
 
static void Kratos::GeometryFunctions::QuaternionVectorLocal2Global (const Quaternion< double > &Q, const array_1d< double, 3 > &LocalVector, array_1d< double, 3 > &GlobalVector)
 
static void Kratos::GeometryFunctions::QuaternionVectorGlobal2Local (const Quaternion< double > &Q, const array_1d< double, 3 > &GlobalVector, array_1d< double, 3 > &LocalVector)
 
static void Kratos::GeometryFunctions::QuaternionTensorLocal2Global (const Quaternion< double > &Q, const double LocalTensor[3][3], double GlobalTensor[3][3])
 
static void Kratos::GeometryFunctions::UpdateOrientation (array_1d< double, 3 > &EulerAngles, Quaternion< double > &Orientation, const array_1d< double, 3 > &DeltaRotation)
 
static void Kratos::GeometryFunctions::UpdateOrientation (Quaternion< double > &Orientation, const array_1d< double, 3 > &DeltaRotation)
 
static void Kratos::GeometryFunctions::UpdateOrientation (const Quaternion< double > &Orientation, Quaternion< double > &NewOrientation, const array_1d< double, 3 > &DeltaRotation)
 
static void Kratos::GeometryFunctions::EulerAnglesFromRotationAngle (array_1d< double, 3 > &EulerAngles, const array_1d< double, 3 > &RotatedAngle)
 
static void Kratos::GeometryFunctions::OrientationFromRotationAngle (Quaternion< double > &DeltaOrientation, const array_1d< double, 3 > &DeltaRotation)
 
static void Kratos::GeometryFunctions::RotateCoordToDirection (const double OLdCoordSystem[3][3], double Vector[3], double NewCoordSystem[3][3])
 
static bool Kratos::GeometryFunctions::InsideOutside (const array_1d< double, 3 > &Coord1, const array_1d< double, 3 > &Coord2, const array_1d< double, 3 > &JudgeCoord, const array_1d< double, 3 > &normal_element, double &area)
 
static bool Kratos::GeometryFunctions::InsideOutside (const array_1d< double, 3 > &Coord1, const array_1d< double, 3 > &Coord2, const array_1d< double, 3 > &JudgeCoord, const array_1d< double, 3 > &normal_element)
 
static void Kratos::GeometryFunctions::WeightsCalculation (std::vector< double > Area, std::vector< double > &Weight)
 
static bool Kratos::GeometryFunctions::FastFacetCheck (const std::vector< array_1d< double, 3 > > &Coord, const array_1d< double, 3 > &Particle_Coord, double rad, double &DistPToB, unsigned int &current_edge_index)
 
static bool Kratos::GeometryFunctions::FacetCheck (const GeometryType &Coord, const array_1d< double, 3 > &Particle_Coord, double rad, double LocalCoordSystem[3][3], double &DistPToB, std::vector< double > &Weight, unsigned int &current_edge_index, bool &inside)
 
static bool Kratos::GeometryFunctions::FastEdgeVertexCheck (const array_1d< double, 3 > &Coord1, const array_1d< double, 3 > &Coord2, const array_1d< double, 3 > &Particle_Coord, double Radius)
 
static bool Kratos::GeometryFunctions::EdgeCheck (const array_1d< double, 3 > &Coord1, const array_1d< double, 3 > &Coord2, const array_1d< double, 3 > &Particle_Coord, double Radius, double LocalCoordSystem[3][3], double &DistParticleToEdge, double &eta)
 
static bool Kratos::GeometryFunctions::VertexCheck (const array_1d< double, 3 > &Coord, const array_1d< double, 3 > &Particle_Coord, double Radius, double LocalCoordSystem[3][3], double &DistParticleToVertex)
 
static bool Kratos::GeometryFunctions::FastVertexCheck (const array_1d< double, 3 > &Coord, const array_1d< double, 3 > &Particle_Coord, double Radius)
 
static void Kratos::GeometryFunctions::GetRotationMatrix (const array_1d< double, 3 > &EulerAngles, double rotation_matrix[3][3])
 
static void Kratos::GeometryFunctions::GetEulerAngles (const double rotation_matrix[3][3], array_1d< double, 3 > &EulerAngles)
 
static void Kratos::GeometryFunctions::GetGiDEulerAngles (const BoundedMatrix< double, 3, 3 > &rotation_matrix, array_1d< double, 3 > &EulerAngles)
 
void Kratos::GeometryFunctions::QuaternionToGiDEulerAngles (const Quaternion< double > &quaternion, array_1d< double, 3 > &EulerAngles)
 
static void Kratos::GeometryFunctions::TriAngleArea (double Coord1[3], double Coord2[3], double Coord3[3], double &area)
 
static void Kratos::GeometryFunctions::TriAngleWeight (double Coord1[3], double Coord2[3], double Coord3[3], double JudgeCoord[3], double Weight[3])
 
static void Kratos::GeometryFunctions::QuadAngleWeight (double Coord1[3], double Coord2[3], double Coord3[3], double Coord4[3], double JudgeCoord[3], double Weight[4])
 
static void Kratos::GeometryFunctions::AreaAndCentroidCircularSector (double C[3], double Radius, double P1[3], double P2[3], double Normal[3], double &Area, double CoMSC[3])
 
static void Kratos::GeometryFunctions::AlternativeAreaCircularSegment (double Radius, double tol_Radius, double V0V1[3], double V0CC[3], double Normal[3], double &AreaSC, bool &flag)
 
static void Kratos::GeometryFunctions::AreaAndCentroidCircularSegment (double Centre[3], double Radius, double tol_Radius, double V0[3], double V1[3], double Normal[3], double &AreaSegC, double CoMSegC[3], bool &flag)
 
static void Kratos::GeometryFunctions::AreaAndCentroidTriangle (double Coord1[3], double Coord2[3], double Coord3[3], double &area, double CoMTri[3])