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.
projection_utilities.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Philipp Bucher, Jordi Cotela
11 //
12 // See Master-Thesis P.Bucher
13 // "Development and Implementation of a Parallel
14 // Framework for Non-Matching Grid Mapping"
15 
16 #pragma once
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
25 
26 namespace Kratos
27 {
28 namespace ProjectionUtilities
29 {
30 
31 enum class PairingIndex
32 {
33  Volume_Inside = -1,
34  Volume_Outside = -2,
35  Surface_Inside = -3,
36  Surface_Outside = -4,
37  Line_Inside = -5,
38  Line_Outside = -6,
39  Closest_Point = -7,
40  Unspecified = -8
41 };
42 
43 typedef std::size_t SizeType;
44 typedef std::size_t IndexType;
45 
47 
48 PairingIndex KRATOS_API(MAPPING_APPLICATION) ProjectOnLine(const GeometryType& rGeometry,
49  const Point& rPointToProject,
50  const double LocalCoordTol,
51  Vector& rShapeFunctionValues,
52  std::vector<int>& rEquationIds,
53  double& rProjectionDistance,
54  const bool ComputeApproximation=true);
55 
56 PairingIndex KRATOS_API(MAPPING_APPLICATION) ProjectOnSurface(const GeometryType& rGeometry,
57  const Point& rPointToProject,
58  const double LocalCoordTol,
59  Vector& rShapeFunctionValues,
60  std::vector<int>& rEquationIds,
61  double& rProjectionDistance,
62  const bool ComputeApproximation=true);
63 
64 PairingIndex KRATOS_API(MAPPING_APPLICATION) ProjectIntoVolume(const GeometryType& rGeometry,
65  const Point& rPointToProject,
66  const double LocalCoordTol,
67  Vector& rShapeFunctionValues,
68  std::vector<int>& rEquationIds,
69  double& rProjectionDistance,
70  const bool ComputeApproximation=true);
71 
72 bool KRATOS_API(MAPPING_APPLICATION) ComputeProjection(const GeometryType& rGeometry,
73  const Point& rPointToProject,
74  const double LocalCoordTol,
75  Vector& rShapeFunctionValues,
76  std::vector<int>& rEquationIds,
77  double& rProjectionDistance,
78  PairingIndex& rPairingIndex,
79  const bool ComputeApproximation=true);
80 
81 } // namespace ProjectionUtilities.
82 
83 } // namespace Kratos.
Geometry base class.
Definition: geometry.h:71
Point class.
Definition: point.h:59
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
PairingIndex
Definition: projection_utilities.h:32
std::size_t SizeType
Definition: projection_utilities.cpp:29
std::size_t IndexType
Definition: projection_utilities.cpp:30
Geometry< Node > GeometryType
Definition: projection_utilities.cpp:32
bool ComputeProjection(const GeometryType &rGeometry, const Point &rPointToProject, const double LocalCoordTol, Vector &rShapeFunctionValues, std::vector< int > &rEquationIds, double &rProjectionDistance, PairingIndex &rPairingIndex, const bool ComputeApproximation)
Definition: projection_utilities.cpp:237
PairingIndex ProjectOnSurface(const GeometryType &rGeometry, const Point &rPointToProject, const double LocalCoordTol, Vector &rShapeFunctionValues, std::vector< int > &rEquationIds, double &rProjectionDistance, const bool ComputeApproximation)
Definition: projection_utilities.cpp:125
PairingIndex ProjectOnLine(const GeometryType &rGeometry, const Point &rPointToProject, const double LocalCoordTol, Vector &rShapeFunctionValues, std::vector< int > &rEquationIds, double &rProjectionDistance, const bool ComputeApproximation)
Definition: projection_utilities.cpp:69
PairingIndex ProjectIntoVolume(const GeometryType &rGeometry, const Point &rPointToProject, const double LocalCoordTol, Vector &rShapeFunctionValues, std::vector< int > &rEquationIds, double &rProjectionDistance, const bool ComputeApproximation)
Definition: projection_utilities.cpp:180
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21