32#include "../parallelization/mpi_structure.hpp"
53#include <unordered_map>
63#include "../CConfig.hpp"
64#include "../toolboxes/graph_toolbox.hpp"
65#include "../adt/CADTElemClass.hpp"
147 vector<vector<su2double>>
149 vector<vector<su2double>>
151 vector<vector<su2double>>
159#if defined(HAVE_MPI) && defined(HAVE_PARMETIS)
160 vector<vector<unsigned long>>
162 vector<idx_t> adjacency;
235 enum :
unsigned {
NO_LINELET = std::numeric_limits<unsigned>::max() };
263 vector<std::unordered_map<unsigned long, std::array<su2double, MAXNDIM>>>
symmetryNormals;
271 unordered_map<unsigned long, unsigned long>
305#ifdef CODI_REVERSE_TYPE
309#ifdef USE_MIXED_PRECISION
404 bool val_reverse)
const;
417 int val_iMessage,
bool val_reverse)
const;
424 if constexpr (std::is_same_v<T, su2double>) {
426 }
else if constexpr (std::is_same_v<T, passivedouble>) {
428 }
else if constexpr (std::is_same_v<T, su2mixedfloat>) {
431 static_assert(std::is_same_v<T, unsigned short>);
441 if constexpr (std::is_same_v<T, su2double>) {
443#ifdef CODI_REVERSE_TYPE
444 }
else if constexpr (std::is_same_v<T, passivedouble>) {
445 return bufPD_P2PSend;
447#ifdef USE_MIXED_PRECISION
448 }
else if constexpr (std::is_same_v<T, su2mixedfloat>) {
452 static_assert(std::is_same_v<T, unsigned short>);
462 if constexpr (std::is_same_v<T, su2double>) {
464#ifdef CODI_REVERSE_TYPE
465 }
else if constexpr (std::is_same_v<T, passivedouble>) {
466 return bufPD_P2PRecv;
468#ifdef USE_MIXED_PRECISION
469 }
else if constexpr (std::is_same_v<T, su2mixedfloat>) {
473 static_assert(std::is_same_v<T, unsigned short>);
483 if constexpr (std::is_same_v<T, su2double>) {
485 }
else if constexpr (std::is_same_v<T, passivedouble> || std::is_same_v<T, su2mixedfloat>) {
488 static_assert(std::is_same_v<T, unsigned short>);
498 if constexpr (std::is_same_v<T, su2double>) {
500 }
else if constexpr (std::is_same_v<T, passivedouble> || std::is_same_v<T, su2mixedfloat>) {
503 static_assert(std::is_same_v<T, unsigned short>);
531 unsigned short countPerPeriodicPoint);
543 unsigned short countPerPeriodicPoint,
int val_iMessage)
const;
637 inline unsigned long GetnVertex(
unsigned short val_marker)
const {
return nVertex[val_marker]; }
653 inline unsigned long GetnVertexSpan(
unsigned short val_marker,
unsigned short val_span)
const {
662 inline unsigned long GetnFreqSpan(
unsigned short val_marker,
unsigned short val_span)
const {
698 inline long FindEdge(
unsigned long first_point,
unsigned long second_point,
bool error =
true)
const {
699 for (
unsigned short iNode = 0; iNode <
nodes->
GetnPoint(first_point); iNode++) {
701 if (iPoint == second_point)
return nodes->
GetEdge(first_point, iNode);
705 SPRINTF(buf,
"Can't find the edge that connects %lu and %lu.", first_point, second_point);
717 inline bool CheckEdge(
unsigned long first_point,
unsigned long second_point)
const {
718 return FindEdge(first_point, second_point,
false) >= 0;
759 inline void SetnElem_Bound(
unsigned short val_marker,
unsigned long val_nelem_bound) {
805 inline virtual bool FindFace(
unsigned long first_elem,
unsigned long second_elem,
unsigned short& face_first_elem,
806 unsigned short& face_second_elem) {
905 unsigned short donorZone){};
1167 const su2double* FlowVariable, vector<su2double>& Xcoord_Airfoil,
1168 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil,
1169 vector<su2double>& Variable_Airfoil,
bool original_surface,
CConfig* config);
1175 vector<su2double>& Xcoord_Airfoil, vector<su2double>& Ycoord_Airfoil,
1176 vector<su2double>& Zcoord_Airfoil) {
1184 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {
1192 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {
1200 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {
1208 vector<su2double>& Xcoord_Airfoil, vector<su2double>& Ycoord_Airfoil,
1209 vector<su2double>& Zcoord_Airfoil) {
1217 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {
1225 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {
1233 vector<su2double>& Xcoord_Airfoil, vector<su2double>& Ycoord_Airfoil,
1234 vector<su2double>& Zcoord_Airfoil,
su2double& ZLoc) {
1242 vector<su2double>& Xcoord_Airfoil, vector<su2double>& Ycoord_Airfoil,
1243 vector<su2double>& Zcoord_Airfoil) {
1251 vector<su2double>& Xcoord_Airfoil, vector<su2double>& Ycoord_Airfoil,
1252 vector<su2double>& Zcoord_Airfoil) {
1260 su2double* Plane_Normal, vector<su2double>& Xcoord_Airfoil,
1261 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {}
1267 su2double* Plane_Normal, vector<su2double>& Xcoord_Airfoil,
1268 vector<su2double>& Ycoord_Airfoil, vector<su2double>& Zcoord_Airfoil) {}
1552 return SpanArea[val_marker][val_span];
1750 su2double val_customBoundaryTemperature) {
1782 for (
auto iVertex = 0ul; iVertex <
nVertex[val_marker]; iVertex++) {
1783 const auto Point_Coarse =
vertex[val_marker][iVertex]->
GetNode();
1792 const auto isVertex =
1804 const auto isVertex =
1807 const auto Vertex_Fine = fine_grid->
nodes->
GetVertex(Point_Fine, val_marker);
1808 const auto Area_Children = fine_grid->
nodes->
GetVolume(Point_Fine);
1809 Quantity_Coarse += wall_quantity.Get(Vertex_Fine) * Area_Children / Area_Parent;
1814 wall_quantity.Set(iVertex, Quantity_Coarse);
1826 const vector<pair<ENUM_FILTER_KERNEL, su2double>>& kernels,
1827 const unsigned short search_limit,
su2double* values)
const;
1849 const vector<unsigned long>& neighbour_start,
const long* neighbour_idx,
1850 const su2double* cg_elem, vector<long>& neighbours, vector<bool>& is_neighbor)
const;
1917 bool maximizeEdgeColorGroupSize =
false);
1970 unsigned short iZone = numeric_limits<unsigned short>::max()) {}
1984 const int record_zone = -1);
Headers of the main subroutines for doing the complete dual grid structure. The subroutines and funct...
Declaration of the edge class CEdge.cpp file.
Declaration of the point class that stores geometric and adjacency information for dual control volum...
Headers of the main subroutines for storing the primal grid structure. The subroutines and functions ...
Headers of the main subroutines for doing the complete dual grid structure. The subroutines and funct...
Headers of the main subroutines for doing the complete dual grid structure. The subroutines and funct...
A templated matrix/vector-like object.
Definition C2DContainer.hpp:374
Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
Definition CADTElemClass.hpp:41
int Request
Definition mpi_structure.hpp:505
static void Error(const std::string &ErrorMsg, const std::string &FunctionName)
Definition mpi_structure.cpp:131
bool empty() const
Definition graph_toolbox.hpp:184
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
unsigned short GetKind_GridMovement() const
Get the type of dynamic mesh motion. Each zone gets a config file.
Definition CConfig.hpp:6303
Class for defining the edges of the dual grid.
Definition CEdge.hpp:39
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
unsigned long GetnVertex(unsigned short val_marker) const
Get number of vertices.
Definition CGeometry.hpp:637
su2double * bufD_P2PRecv
Data structure for su2double point-to-point receive.
Definition CGeometry.hpp:303
unsigned short GetnSpanWiseSections(unsigned short marker_flag) const
Get number of span wise section.
Definition CGeometry.hpp:644
unsigned long GetGlobal_nElemTetr() const
Retrieve total number of tetrahedral elements in a simulation across all processors.
Definition CGeometry.hpp:1366
void SetGridVelocity(const CConfig *config)
Set the grid velocity via finite differencing at each node.
Definition CGeometry.cpp:4095
su2double GetMinRelAngularCoord(unsigned short val_marker, unsigned short val_span) const
min Relatice angular coord independently from the MPI partions.
Definition CGeometry.hpp:1721
unsigned long Global_nElemDomain
Total number of elements in a simulation across all processors (excluding halos).
Definition CGeometry.hpp:104
unsigned long Global_nelem_triangle_bound
Total number of triangles on the mesh boundaries across all processors.
Definition CGeometry.hpp:125
virtual void Check_IntElem_Orientation(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:972
unsigned long edgeColorGroupSize
Size of the edge groups within each color.
Definition CGeometry.hpp:217
SU2_MPI::Request * req_PeriodicSend
Data structure for periodic send requests.
Definition CGeometry.hpp:351
unsigned long nelem_edge
Number of edges in the mesh.
Definition CGeometry.hpp:108
unsigned short GetMGLevel() const
Get the multigrid index for the current geometry object.
Definition CGeometry.hpp:1867
unsigned long Global_nelem_triangle
Total number of triangles in the mesh across all processors.
Definition CGeometry.hpp:111
virtual void SetSendReceive(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:1010
virtual su2double Compute_Twist(su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1183
const CCompressedSparsePatternUL & GetElementColoring(su2double *efficiency=nullptr)
Get the element coloring.
Definition CGeometry.cpp:4263
SU2_MPI::Request * req_P2PSend
Data structure for point-to-point send requests.
Definition CGeometry.hpp:315
virtual void SetColorGrid(CConfig *config)
A virtual member.
Definition CGeometry.hpp:984
virtual void SetBoundControlVolume(const CConfig *config, unsigned short action)
A virtual member.
Definition CGeometry.hpp:946
unsigned long GetEdgeColorGroupSize() const
Get the group size used in edge coloring.
Definition CGeometry.hpp:1928
void PostP2PSends(CGeometry *geometry, const CConfig *config, COMM_TYPE commType, unsigned short countPerPoint, int val_iMessage, bool val_reverse) const
Routine to launch a single non-blocking send once the buffer is loaded for a point-to-point commucati...
Definition CGeometry.cpp:497
unsigned long GetGlobal_nElemLine() const
Retrieve total number of triangular elements in a simulation across all processors.
Definition CGeometry.hpp:1348
su2double *** AverageGridVel
Average boundary grid velocity at each span wise section for each marker.
Definition CGeometry.hpp:183
int * Neighbors_P2PRecv
Data structure holding the ranks of the neighbors for point-to-point recv comms.
Definition CGeometry.hpp:293
su2double GetSpanArea(unsigned short val_marker, unsigned short val_span) const
Get the value of the total area for each span.
Definition CGeometry.hpp:1551
virtual void SetGlobal_to_Local_Point()
A virtual member.
Definition CGeometry.hpp:1323
unsigned long * Local_Point_PeriodicSend
Data structure holding the local index of all vertices to be sent in periodic comms.
Definition CGeometry.hpp:339
unsigned short * bufS_P2PRecv
Data structure for unsigned long point-to-point receive.
Definition CGeometry.hpp:313
const int size
MPI Size.
Definition CGeometry.hpp:93
virtual void SetColorFEMGrid_Parallel(CConfig *config)
A virtual member.
Definition CGeometry.hpp:996
int nPeriodicSend
Number of sends during periodic comms.
Definition CGeometry.hpp:325
void SetSpanAreaOut(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the outflow area at each span.
Definition CGeometry.hpp:1667
vector< su2double > XCoordList
Vector containing points appearing on a single plane.
Definition CGeometry.hpp:157
unsigned long GetnElemPris() const
Get number of prism elements.
Definition CGeometry.hpp:1420
void SetNaturalElementColoring()
Force the natural (sequential) element coloring.
Definition CGeometry.cpp:4306
@ MAXNDIM
Definition CGeometry.hpp:91
void SetCustomBoundaryTemperature(unsigned short val_marker, unsigned long val_vertex, su2double val_customBoundaryTemperature)
Set the value of the customized temperature at a specified vertex on a specified marker.
Definition CGeometry.hpp:1749
void SetCustomBoundary(CConfig *config)
Set the data containers for customized boundary conditions.
Definition CGeometry.cpp:2750
PassiveRequest * reqP_P2PSend
Data structure for point-to-point send requests.
Definition CGeometry.hpp:319
const CCompressedSparsePatternUL & GetEdgeColoring(su2double *efficiency=nullptr, bool maximizeEdgeColorGroupSize=false)
Get the edge coloring.
Definition CGeometry.cpp:4161
void PostPeriodicRecvs(CGeometry *geometry, const CConfig *config, COMM_TYPE commType, unsigned short countPerPeriodicPoint)
Routine to launch non-blocking recvs only for all periodic communication with neighboring partitions.
Definition CGeometry.cpp:1531
const su2double * GetAverageTurboNormal(unsigned short val_marker, unsigned short val_span) const
Get the average normal at a specific span for a given marker in the turbomachinery reference of frame...
Definition CGeometry.hpp:1531
unsigned long GetGlobal_nPointDomain() const
Retrieve total number of nodes in a simulation across all processors (excluding halos).
Definition CGeometry.hpp:605
static void UpdateGeometry(CGeometry **geometry_container, CConfig *config)
Update the multi-grid structure and the wall-distance.
Definition CGeometry.cpp:2730
unsigned short nTurboPerf
Number of Span wise section for each turbo marker.
Definition CGeometry.hpp:174
su2double GetAverageTangGridVel(unsigned short val_marker, unsigned short val_span) const
Get the value of the average tangential rotational velocity for each span.
Definition CGeometry.hpp:1571
void SetShroudVelocity(const CConfig *config)
Set the rotational velocity of the points on the shroud markers to 0.
Definition CGeometry.cpp:3999
vector< bool > boundIsStraight
Definition CGeometry.hpp:266
virtual su2double Compute_Length(su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1250
void TestGeometry() const
Create a file for testing the geometry.
Definition CGeometry.cpp:1713
unsigned long Global_nelem_quad
Total number of quadrangles in the mesh across all processors.
Definition CGeometry.hpp:113
unsigned long Global_nelem_tetra
Total number of tetrahedra in the mesh across all processors.
Definition CGeometry.hpp:115
su2double ** SpanArea
Area at each span wise section for each marker.
Definition CGeometry.hpp:187
void GetCommCountAndType(const CConfig *config, MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, COMM_TYPE &MPI_TYPE) const
Helper function to define the type and number of variables per point for each communication type.
Definition CGeometry.cpp:608
unsigned short MGLevel
The mesh level index for the current geometry container.
Definition CGeometry.hpp:136
void ComputeSurfaceAreaCfgFile(const CConfig *config)
Compute the surface area of all global markers.
Definition CGeometry.cpp:2809
vector< vector< su2double > > GetXCoord() const
Get x coords of geometrical planes in the mesh.
Definition CGeometry.hpp:1431
unsigned long nElem
Number of elements of the mesh.
Definition CGeometry.hpp:102
unsigned long nelem_quad
Number of quadrangles in the mesh.
Definition CGeometry.hpp:112
unsigned long nEdge
Number of edges of the mesh.
Definition CGeometry.hpp:106
su2double ** MinAngularCoord
Max angular pitch at each span wise section for each marker.
Definition CGeometry.hpp:189
int nP2PRecv
Number of receives during point-to-point comms.
Definition CGeometry.hpp:286
LDUSparsePattern finiteElementPatternFillN
FEM sparsity with N-fill (e.g. for ILU-N).
Definition CGeometry.hpp:206
void ComputeSurf_Curvature(CConfig *config)
Find and store all vertices on a sharp corner in the geometry.
Definition CGeometry.cpp:3128
PassiveRequest * reqP_P2PRecv
Data structure for point-to-point recv requests.
Definition CGeometry.hpp:320
unsigned long GetnPoint() const
Get number of points.
Definition CGeometry.hpp:587
auto * GetP2PSendReq() const
Returns the send requests for a given data type.
Definition CGeometry.hpp:482
void FilterValuesAtElementCG(const vector< su2double > &filter_radius, const vector< pair< ENUM_FILTER_KERNEL, su2double > > &kernels, const unsigned short search_limit, su2double *values) const
Filter values given at the element CG by performing a weighted average over a radial neighbourhood.
Definition CGeometry.cpp:3507
virtual su2double Compute_Width(su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1199
unsigned long nelem_prism
Number of prisms in the mesh.
Definition CGeometry.hpp:118
vector< std::unordered_map< unsigned long, std::array< su2double, MAXNDIM > > > symmetryNormals
Bool if boundary-marker is straight(2D)/plane(3D) for each local marker.
Definition CGeometry.hpp:263
void SetCustomBoundaryHeatFlux(unsigned short val_marker, unsigned long val_vertex, su2double val_customBoundaryHeatFlux)
Set the value of the customized normal heat flux at a specified vertex on a specified marker.
Definition CGeometry.hpp:1769
unsigned long GetnElemTria() const
Get number of triangular elements.
Definition CGeometry.hpp:1396
void SetVelocity(CConfig *config, bool print)
General interface for setting the velocity in the geometry during motion ramps.
Definition CGeometry.hpp:1086
virtual ~CGeometry()
Destructor of the class.
Definition CGeometry.cpp:38
virtual void SetSensitivity(CConfig *config)
A virtual member.
Definition CGeometry.hpp:1502
unsigned long * nElem_Bound
Number of elements of the boundary.
Definition CGeometry.hpp:259
unsigned short * bufS_PeriodicRecv
Data structure for unsigned long periodic receive.
Definition CGeometry.hpp:349
virtual su2double Compute_Chord(su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1191
virtual void SetBoundTecPlot(char mesh_filename[MAX_STRING_SIZE], bool new_file, CConfig *config)
A virtual member.
Definition CGeometry.hpp:966
const ColMajorMatrix< uint8_t > & CoarseGridColor
Coarse grid levels, colorized.
Definition CGeometry.hpp:361
CPoint * nodes
Node vector (dual grid information).
Definition CGeometry.hpp:253
map< int, int > P2PRecv2Neighbor
Data structure holding the reverse mapping of the ranks of the neighbors for point-to-point recv comm...
Definition CGeometry.hpp:297
su2double ** MinRelAngularCoord
Min relative angular coord at each span wise section for each marker.
Definition CGeometry.hpp:190
virtual void SetPoint_Connectivity(const CGeometry *fine_grid)
A virtual member.
Definition CGeometry.hpp:1044
unsigned long * Local_Point_PeriodicRecv
Data structure holding the local index of all vertices to be received in periodic comms.
Definition CGeometry.hpp:341
@ OMP_MIN_SIZE
Definition CGeometry.hpp:90
void SetnPoint(unsigned long val_npoint)
Set the number of grid points.
Definition CGeometry.hpp:767
void CompleteComms(CGeometry *geometry, const CConfig *config, MPI_QUANTITIES commType)
Routine to complete the set of non-blocking communications launched by InitiateComms() and unpacking ...
Definition CGeometry.cpp:737
map< int, int > P2PSend2Neighbor
Data structure holding the reverse mapping of the ranks of the neighbors for point-to-point send comm...
Definition CGeometry.hpp:295
unsigned long nPointDomain
Number of real points of the mesh.
Definition CGeometry.hpp:97
CPrimalGrid *** bound
Boundary vector (primal grid information).
Definition CGeometry.hpp:252
void SetTurboRadiusIn(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the inflow radius at each span.
Definition CGeometry.hpp:1676
const LDUSparsePattern & GetSparsePattern(ConnectivityType type, unsigned long fillLvl=0)
Get the sparse pattern of "type" with given level of fill.
Definition CGeometry.cpp:4126
unsigned long ** nTotVertexSpan
number of vertexes at each span wise section for each marker.
Definition CGeometry.hpp:177
su2double GetCustomBoundaryTemperature(unsigned short val_marker, unsigned long val_vertex) const
Get the value of the customized temperature at a specified vertex on a specified marker.
Definition CGeometry.hpp:1739
void AllocatePeriodicComms(unsigned short val_countPerPeriodicPoint)
Routine to allocate buffers for periodic communications. Also called to dynamically reallocate if not...
Definition CGeometry.cpp:1494
unsigned long GetnElem() const
Get number of elements.
Definition CGeometry.hpp:611
virtual void FindUniqueNode_PeriodicBound(const CConfig *config)
For streamwise periodicity, find & store a unique reference node on the designated periodic inlet.
Definition CGeometry.hpp:2002
su2double ** CustomBoundaryHeatFlux
Definition CGeometry.hpp:143
void ColorMGLevels(unsigned short nMGLevels, const CGeometry *const *geometry)
Color multigrid levels for visualization.
Definition CGeometry.cpp:4313
unsigned long nelem_edge_bound
Number of edges on the mesh boundaries.
Definition CGeometry.hpp:122
unsigned long GetnElemPyra() const
Get number of pyramid elements.
Definition CGeometry.hpp:1426
virtual void SetBoundVolume()
Sets the boundary volume.
Definition CGeometry.hpp:845
void SetFaces()
Sets the faces of an element..
Definition CGeometry.cpp:1682
SU2_MPI::Request * req_PeriodicRecv
Data structure for periodic recv requests.
Definition CGeometry.hpp:352
su2double ** SpanWiseValue
Span wise values for each turbo marker.
Definition CGeometry.hpp:175
void SetNaturalEdgeColoring()
Force the natural (sequential) edge coloring.
Definition CGeometry.cpp:4256
void ComputeSurfStraightness(const CConfig *config, bool print_on_screen)
Check if a boundary is straight(2D) / plane(3D) for EULER_WALL and SYMMETRY_PLANE only and store the ...
Definition CGeometry.cpp:3011
CGeometry(CConfig *config, unsigned short nDim)
Constructor of the class.
unsigned long Global_nelem_prism
Total number of prisms in the mesh across all processors.
Definition CGeometry.hpp:119
virtual su2double Compute_MaxThickness(su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1174
virtual void SetPositive_ZArea(CConfig *config)
Sets area to be positive in Z direction.
Definition CGeometry.hpp:814
unsigned long GetGlobal_nElemTria() const
Retrieve total number of triangular elements in a simulation across all processors.
Definition CGeometry.hpp:1354
void SetEdges()
Sets the edges of an elemment.
Definition CGeometry.cpp:1650
unsigned long nelem_quad_bound
Number of quads on the mesh boundaries.
Definition CGeometry.hpp:127
CTurboVertex **** turbovertex
Boundary Vertex vector ordered for turbomachinery calculation(dual grid information).
Definition CGeometry.hpp:256
virtual void SetMaxLength(CConfig *config)
Set max length.
Definition CGeometry.hpp:911
virtual void SetTurboVertex(CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate)
Set vertices for turbomachinery problems.
Definition CGeometry.hpp:870
unsigned long * Local_Point_P2PSend
Data structure holding the local index of all vertices to be sent in point-to-point comms.
Definition CGeometry.hpp:299
vector< vector< unsigned long > > GetPlanarPoints() const
Get all points on a geometrical plane in the mesh.
Definition CGeometry.hpp:1446
su2double ** TurboRadius
Radius at each span wise section for each marker.
Definition CGeometry.hpp:192
su2double GetSurfaceArea(const CConfig *config, unsigned short val_marker) const
Get global Surface Area to a local marker.
Definition CGeometry.cpp:2843
unsigned long Global_nElem
Total number of elements in a simulation across all processors (all types).
Definition CGeometry.hpp:103
virtual void SetRCM_Ordering(CConfig *config)
Orders the RCM.
Definition CGeometry.hpp:825
virtual void DivideConnectivity(CConfig *config, unsigned short Elem_Type)
A virtual member.
Definition CGeometry.hpp:1002
virtual su2double GetSensitivity(unsigned long iPoint, unsigned short iDim) const
A virtual member.
Definition CGeometry.hpp:1515
void SetWallVelocity(const CConfig *config, bool print=false)
Set the translational/rotational velocity for all moving walls.
Definition CGeometry.cpp:4036
su2double ** CustomBoundaryTemperature
Definition CGeometry.hpp:142
unsigned long GetnElemHexa() const
Get number of hexahedral elements.
Definition CGeometry.hpp:1414
void SetMultiGridMarkerQuantity(const CGeometry *fine_grid, unsigned short val_marker, T &wall_quantity)
Set a representative wall value of the agglomerated control volumes on a particular boundary marker.
Definition CGeometry.hpp:1781
su2double GetSpanAreaIn(unsigned short val_marker, unsigned short val_span) const
Get the value of the inflow area at each span.
Definition CGeometry.hpp:1601
virtual void SetPoint_Connectivity()
Set connectivity between points.
Definition CGeometry.hpp:819
unsigned short * nSpanWiseSections
Number of Span wise section for each turbo marker, indexed by inflow/outflow.
Definition CGeometry.hpp:170
unsigned long GetnVertexSpanMax(unsigned short marker_flag) const
Get number of vertices.
Definition CGeometry.hpp:671
unsigned long Global_nelem_quad_bound
Total number of quads on the mesh boundaries across all processors.
Definition CGeometry.hpp:128
short * Marker_All_SendRecv
MPI Marker.
Definition CGeometry.hpp:141
unsigned long GetGlobal_nElem() const
Retrieve total number of elements in a simulation across all processors.
Definition CGeometry.hpp:1336
void UpdateCustomBoundaryConditions(CGeometry **geometry_container, CConfig *config)
Update the multi-grid structure for the customized boundary conditions.
Definition CGeometry.cpp:2789
void GetGlobalElementAdjacencyMatrix(vector< unsigned long > &neighbour_start, long *&neighbour_idx) const
Build the global (entire mesh!) adjacency matrix for the elements in compressed format....
Definition CGeometry.cpp:3735
void SetTangGridVelIn(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the inflow tangential velocity at each span.
Definition CGeometry.hpp:1640
vector< su2double > SurfaceAreaCfgFile
Total Surface area for all markers.
Definition CGeometry.hpp:267
vector< vector< unsigned long > > Plane_points
Vector containing points appearing on a single plane.
Definition CGeometry.hpp:155
virtual void SetWallDistance(su2double val)
Set wall distances a specific value.
Definition CGeometry.hpp:1976
su2vector< su2uint > finiteVolumeLToUTranspMap
FVM L-entry -> U-entry of its transpose.
Definition CGeometry.hpp:208
vector< vector< su2double > > GetYCoord() const
Get y coords of geometrical planes in the mesh.
Definition CGeometry.hpp:1436
int * nPoint_PeriodicSend
Data structure holding number of vertices for each send in periodic comms.
Definition CGeometry.hpp:327
virtual long GetGlobal_to_Local_Point(unsigned long val_ipoint) const
A virtual member.
Definition CGeometry.hpp:1330
unsigned long GetMax_GlobalPoint() const
Get the number of elements in vtk fortmat.
Definition CGeometry.hpp:796
CVertex *** vertex
Boundary Vertex vector (dual grid information).
Definition CGeometry.hpp:255
int * nPoint_P2PRecv
Data structure holding number of vertices for each recv in point-to-point comms.
Definition CGeometry.hpp:289
unsigned long * nPointCumulative
Cumulative storage array containing the total number of points on all prior ranks in the linear parti...
Definition CGeometry.hpp:279
int nP2PSend
Number of sends during point-to-point comms.
Definition CGeometry.hpp:285
unsigned long Global_nPointDomain
Total number of nodes in a simulation across all processors (excluding halos).
Definition CGeometry.hpp:100
void SetTurboRadiusOut(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the outflow radius at each span.
Definition CGeometry.hpp:1685
su2double * bufD_P2PSend
Data structure for su2double point-to-point send.
Definition CGeometry.hpp:304
const su2vector< su2uint > & GetUToLTransposeSparsePatternMap(ConnectivityType type)
Get the bijective map from U-entry indices to L-entry indices of their transposes.
Definition CGeometry.cpp:4150
virtual const su2double * GetStreamwise_Periodic_RefNode() const
Get a pointer to the reference node coordinate vector.
Definition CGeometry.hpp:2008
void SetnElem(unsigned long val_nelem)
Set the number of grid elements.
Definition CGeometry.hpp:785
bool CheckEdge(unsigned long first_point, unsigned long second_point) const
Get the edge index from using the nodes of the edge.
Definition CGeometry.hpp:717
virtual void SetMultiGridWallTemperature(const CGeometry *fine_grid, unsigned short val_marker)
A virtual member.
Definition CGeometry.hpp:1038
su2vector< su2uint > finiteVolumeUToLTranspMap
FVM U-entry -> L-entry of its transpose.
Definition CGeometry.hpp:209
int * nPoint_P2PSend
Data structure holding number of vertices for each send in point-to-point comms.
Definition CGeometry.hpp:287
virtual void SetBoundSensitivity(CConfig *config)
A virtual member.
Definition CGeometry.hpp:1072
bool SegmentIntersectsPlane(const su2double *Segment_P0, const su2double *Segment_P1, su2double Variable_P0, su2double Variable_P1, const su2double *Plane_P0, const su2double *Plane_Normal, su2double *Intersection, su2double &Variable_Interp)
Compute the intersection between a segment and a plane.
Definition CGeometry.cpp:1754
vector< vector< su2double > > Zcoord_plane
Vector containing z coordinates of new points appearing on a single plane.
Definition CGeometry.hpp:152
unordered_map< unsigned long, unsigned long > Global_to_Local_Elem
Mapping of global to local index for elements.
Definition CGeometry.hpp:272
void PreprocessPeriodicComms(CGeometry *geometry, CConfig *config)
Routine to set up persistent data structures for periodic communications.
Definition CGeometry.cpp:1158
virtual bool FindFace(unsigned long first_elem, unsigned long second_elem, unsigned short &face_first_elem, unsigned short &face_second_elem)
Finds face of element.
Definition CGeometry.hpp:805
unsigned short nCommLevel
Number of non-blocking communication levels.
Definition CGeometry.hpp:134
virtual su2double Compute_Thickness(su2double *Plane_P0, su2double *Plane_Normal, su2double Location, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil, su2double &ZLoc)
A virtual member.
Definition CGeometry.hpp:1232
virtual void SetVertex(const CConfig *config)
Sets the vertices.
Definition CGeometry.hpp:851
su2double ** TurboRadiusIn
Definition CGeometry.hpp:198
typename SelectMPIWrapper< passivedouble >::W::Request PassiveRequest
Definition CGeometry.hpp:318
unsigned long * Local_Marker_PeriodicRecv
Data structure holding the local index of the periodic marker for a particular vertex to be received ...
Definition CGeometry.hpp:345
unsigned short nMarker
Number of different markers of the mesh.
Definition CGeometry.hpp:133
unsigned long GetnVertexSpan(unsigned short val_marker, unsigned short val_span) const
Get number of vertices.
Definition CGeometry.hpp:653
void PreprocessP2PComms(CGeometry *geometry, CConfig *config)
Routine to launch non-blocking recvs only for all periodic communications.
Definition CGeometry.cpp:149
unsigned long nelem_triangle
Number of triangles in the mesh.
Definition CGeometry.hpp:110
unsigned short GetnZone() const
Get number of zones.
Definition CGeometry.hpp:581
virtual void FindNormal_Neighbor(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:1318
unsigned long nPoint
Number of points of the mesh.
Definition CGeometry.hpp:96
int nPeriodicRecv
Number of receives during periodic comms.
Definition CGeometry.hpp:326
su2double GetSpanAreaOut(unsigned short val_marker, unsigned short val_span) const
Get the value of the outflow area at each span.
Definition CGeometry.hpp:1611
su2double GetMaxAngularCoord(unsigned short val_marker, unsigned short val_span) const
max angular pitch independently from the MPI partions.
Definition CGeometry.hpp:1712
void ComputeAirfoil_Section(su2double *Plane_P0, su2double *Plane_Normal, su2double MinXCoord, su2double MaxXCoord, su2double MinYCoord, su2double MaxYCoord, su2double MinZCoord, su2double MaxZCoord, const su2double *FlowVariable, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil, vector< su2double > &Variable_Airfoil, bool original_surface, CConfig *config)
A virtual member.
Definition CGeometry.cpp:1934
su2double GetTurboRadius(unsigned short val_marker, unsigned short val_span) const
Get the value of the total area for each span.
Definition CGeometry.hpp:1561
vector< vector< su2double > > FaceArea_plane
Vector containing area/volume associated with new points appearing on a single plane.
Definition CGeometry.hpp:153
int maxCountPerPoint
Maximum number of pieces of data sent per vertex in point-to-point comms.
Definition CGeometry.hpp:284
virtual void Compute_Fuselage_LeadingTrailing(su2double *LeadingEdge, su2double *TrailingEdge, su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1266
unsigned long * Local_Point_P2PRecv
Data structure holding the local index of all vertices to be received in point-to-point comms.
Definition CGeometry.hpp:301
void SetElemVolume()
Compute and store the volume of the primal elements.
Definition CGeometry.cpp:3880
const su2double * GetSpanWiseValue(unsigned short val_marker) const
Get number of vertices.
Definition CGeometry.hpp:630
unsigned long nelem_hexa
Number of hexahedra in the mesh.
Definition CGeometry.hpp:116
virtual void SetAvgTurboValue(CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate)
A virtual member.
Definition CGeometry.hpp:888
string GetMarker_Tag(unsigned short val_marker) const
Get the index of a marker.
Definition CGeometry.hpp:743
su2double GetTangGridVelOut(unsigned short val_marker, unsigned short val_span) const
Get the value of the outflow tangential velocity at each span.
Definition CGeometry.hpp:1591
unsigned long GetElementColorGroupSize() const
Get the group size used in element coloring.
Definition CGeometry.hpp:1947
static void ComputeWallDistance(const CConfig *const *config_container, CGeometry ****geometry_container, const int record_zone=-1)
Compute the distances to the closest vertex on viscous walls over the entire domain.
Definition CGeometry.cpp:4547
unsigned short nDim
Number of dimension of the problem.
Definition CGeometry.hpp:131
void SetnElem_Bound(unsigned short val_marker, unsigned long val_nelem_bound)
Set the number of boundary elements.
Definition CGeometry.hpp:759
vector< su2double > Volume_Ratio
Measure of dual CV volume ratio (max sub-element volume / min sub-element volume).
Definition CGeometry.hpp:359
su2double ** SpanAreaOut
Area at each span wise section for each turbomachinery marker.
Definition CGeometry.hpp:197
virtual void UpdateTurboVertex(CConfig *config, unsigned short val_iZone, unsigned short marker_flag)
A virtual member.
Definition CGeometry.hpp:879
const su2double * GetAverageNormal(unsigned short val_marker, unsigned short val_span) const
Get the average normal at a specific span for a given marker.
Definition CGeometry.hpp:1541
LDUSparsePattern finiteVolumePatternFillN
FVM sparsity with N-fill (e.g. for ILU-N).
Definition CGeometry.hpp:204
virtual su2double Compute_Area(su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1241
unsigned long GetnNonconvexElements() const
Get the amount of nonconvex elements in the mesh.
Definition CGeometry.hpp:1996
su2vector< su2uint > finiteElementUToLTranspMap
FEM U-entry -> L-entry of its transpose.
Definition CGeometry.hpp:211
unsigned short * nSpanSectionsByMarker
Number of Span wise section for each turbo marker, indexed by marker. Needed for deallocation.
Definition CGeometry.hpp:172
vector< vector< su2double > > Ycoord_plane
Vector containing y coordinates of new points appearing on a single plane.
Definition CGeometry.hpp:150
unsigned long GetGlobal_nElemHexa() const
Retrieve total number of hexahedral elements in a simulation across all processors.
Definition CGeometry.hpp:1372
unsigned long GetnElem_Bound(unsigned short val_marker) const
Get the number of boundary elements.
Definition CGeometry.hpp:791
unsigned long GetGlobal_nElemPyra() const
Retrieve total number of pyramid elements in a simulation across all processors.
Definition CGeometry.hpp:1384
void PostPeriodicSends(CGeometry *geometry, const CConfig *config, COMM_TYPE commType, unsigned short countPerPeriodicPoint, int val_iMessage) const
Routine to launch a single non-blocking send once the buffer is loaded for a periodic commucation.
Definition CGeometry.cpp:1582
string * Tag_to_Marker
Names of boundary markers.
Definition CGeometry.hpp:260
su2double GetMinAngularCoord(unsigned short val_marker, unsigned short val_span) const
min angular pitch independently from the MPI partions.
Definition CGeometry.hpp:1703
unsigned long GetnTotVertexSpan(unsigned short val_marker, unsigned short val_span) const
A total number of vertex independently from the MPI partions.
Definition CGeometry.hpp:1694
void SetnNonconvexElements(unsigned long nonconvex_elems)
Set the amount of nonconvex elements in the mesh.
Definition CGeometry.hpp:1990
virtual void SetColorGrid_Parallel(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:990
virtual su2double Compute_Height(su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1216
CGeometry()
Constructor of the class.
Definition CGeometry.cpp:36
int * Neighbors_P2PSend
Data structure holding the ranks of the neighbors for point-to-point send comms.
Definition CGeometry.hpp:291
vector< su2double > Aspect_Ratio
Measure of dual CV aspect ratio (max face area / min face area).
Definition CGeometry.hpp:357
virtual void SetControlVolume(const CGeometry *fine_grid, unsigned short action)
A virtual member.
Definition CGeometry.hpp:1058
su2double ** SpanAreaIn
Definition CGeometry.hpp:196
su2double GetTangGridVelIn(unsigned short val_marker, unsigned short val_span) const
Get the value of the inflow tangential velocity at each span.
Definition CGeometry.hpp:1581
virtual su2double Compute_Dihedral(su2double *LeadingEdge_im1, su2double *TrailingEdge_im1, su2double *LeadingEdge_i, su2double *TrailingEdge_i)
A virtual member.
Definition CGeometry.hpp:1273
void SetGlobal_nPointDomain(unsigned long val_global_npoint)
Set the value of the total number of points globally in the simulation.
Definition CGeometry.hpp:779
unsigned long elemColorGroupSize
Size of the element groups within each color.
Definition CGeometry.hpp:218
su2double GetTurboRadiusOut(unsigned short val_marker, unsigned short val_span) const
Get the value of the outflow radius at each span.
Definition CGeometry.hpp:1631
long FindEdge(unsigned long first_point, unsigned long second_point, bool error=true) const
Get the edge index from using the nodes of the edge.
Definition CGeometry.hpp:698
void RegisterCoordinates() const
Register the coordinates of the mesh nodes.
Definition CGeometry.cpp:2720
void SetnDim(unsigned short val_nDim)
Set the number of dimensions of the problem.
Definition CGeometry.hpp:736
unsigned long * nPointLinear
Array containing the total number of nodes on each rank due to a linear partioning by global index.
Definition CGeometry.hpp:277
void SetRotationalVelocity(const CConfig *config, bool print=false)
Set cartesian grid velocity based on rotational speed and axis.
Definition CGeometry.cpp:3948
virtual su2double Compute_LERadius(su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1224
void SetTranslationalVelocity(const CConfig *config, bool print=false)
Set the translational velocity at each node.
Definition CGeometry.cpp:4017
bool RayIntersectsTriangle(const su2double orig[3], const su2double dir[3], const su2double vert0[3], const su2double vert1[3], const su2double vert2[3], su2double *intersect)
Ray Intersects Triangle (Moller and Trumbore algorithm)
Definition CGeometry.cpp:1803
void SetMarker_Tag(unsigned short val_marker, string val_index)
Set index of a marker.
Definition CGeometry.hpp:750
map< int, int > PeriodicRecv2Neighbor
Data structure holding the reverse mapping of the ranks of the neighbors for periodic recv comms.
Definition CGeometry.hpp:337
unsigned long nelem_tetra
Number of tetrahedra in the mesh.
Definition CGeometry.hpp:114
virtual void MatchActuator_Disk(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:930
unsigned long GetGlobal_nElemPris() const
Retrieve total number of prism elements in a simulation across all processors.
Definition CGeometry.hpp:1378
virtual void SetControlVolume(CConfig *config, unsigned short action)
Sets control volume.
Definition CGeometry.hpp:918
virtual std::unique_ptr< CADTElemClass > ComputeViscousWallADT(const CConfig *config) const
Compute an ADT including the coordinates of all viscous markers.
Definition CGeometry.hpp:1959
unsigned long nVertexSpanMax[3]
max number of vertexes for each span section for each marker flag.
Definition CGeometry.hpp:178
unsigned long nPointGhost
Number of ghost points of the mesh.
Definition CGeometry.hpp:98
auto * GetP2PRecvBuf() const
Returns the receive buffer for a given data type.
Definition CGeometry.hpp:461
void AllocateP2PComms(unsigned short val_countPerPoint)
Routine to allocate buffers for point-to-point MPI communications. Also called to dynamically realloc...
Definition CGeometry.cpp:343
vector< vector< su2double > > Xcoord_plane
Vector containing x coordinates of new points appearing on a single plane.
Definition CGeometry.hpp:148
bool SegmentIntersectsTriangle(su2double point0[3], const su2double point1[3], su2double vert0[3], su2double vert1[3], su2double vert2[3])
Segment Intersects Triangle.
Definition CGeometry.cpp:1898
void SetSpanAreaIn(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the inflow area at each span.
Definition CGeometry.hpp:1658
unsigned long Global_nelem_edge
Total number of edges in the mesh across all processors.
Definition CGeometry.hpp:109
unsigned long GetnEdge() const
Get number of edges.
Definition CGeometry.hpp:617
int * nPoint_PeriodicRecv
Data structure holding number of vertices for each recv in periodic comms.
Definition CGeometry.hpp:329
const su2double * GetAverageGridVel(unsigned short val_marker, unsigned short val_span) const
Get the average grid velocity at a specific span for a given marker.
Definition CGeometry.hpp:1730
virtual void SetRestricted_GridVelocity(const CGeometry *fine_grid)
A virtual member.
Definition CGeometry.hpp:1130
auto * GetP2PSendBuf() const
Returns the send buffer for a given data type.
Definition CGeometry.hpp:440
ColMajorMatrix< uint8_t > CoarseGridColor_
Coarse grid levels, colorized.
Definition CGeometry.hpp:220
int maxCountPerPeriodicPoint
Maximum number of pieces of data sent per vertex in periodic comms.
Definition CGeometry.hpp:324
unsigned short * bufS_P2PSend
Data structure for unsigned long point-to-point send.
Definition CGeometry.hpp:314
su2double *** AverageTurboNormal
Average boundary normal at each span wise section for each marker in the turbomachinery frame of refe...
Definition CGeometry.hpp:180
const su2vector< su2uint > & GetLToUTransposeSparsePatternMap(ConnectivityType type)
Get the bijective map from L-entry indices to U-entry indices of their transposes.
Definition CGeometry.cpp:4139
unsigned long * beg_node
Array containing the first node on each rank due to a linear partitioning by global index.
Definition CGeometry.hpp:273
bool SegmentIntersectsLine(const su2double point0[2], const su2double point1[2], const su2double vert0[2], const su2double vert1[2])
Segment Intersects Line (for 2D FFD Intersection)
Definition CGeometry.cpp:1859
virtual void Compute_Wing(CConfig *config, bool original_surface, su2double &Wing_Volume, su2double &Wing_MinMaxThickness, su2double &Wing_MaxMaxThickness, su2double &Wing_MinChord, su2double &Wing_MaxChord, su2double &Wing_MinLERadius, su2double &Wing_MaxLERadius, su2double &Wing_MinToC, su2double &Wing_MaxToC, su2double &Wing_ObjFun_MinToC, su2double &Wing_MaxTwist, su2double &Wing_MaxCurvature, su2double &Wing_MaxDihedral)
A virtual member.
Definition CGeometry.hpp:1290
const int rank
MPI Rank.
Definition CGeometry.hpp:94
virtual void SetMultiGridWallHeatFlux(const CGeometry *fine_grid, unsigned short val_marker)
A virtual member.
Definition CGeometry.hpp:1031
unsigned long GetnElemTetr() const
Get number of tetrahedral elements.
Definition CGeometry.hpp:1408
virtual void VisualizeControlVolume(const CConfig *config) const
A virtual member.
Definition CGeometry.hpp:924
CCompressedSparsePatternUL elemColoring
Element coloring structure for thread-based parallelization.
Definition CGeometry.hpp:216
bool GetRadialNeighbourhood(const unsigned long iElem_global, const passivedouble radius, size_t search_limit, const vector< unsigned long > &neighbour_start, const long *neighbour_idx, const su2double *cg_elem, vector< long > &neighbours, vector< bool > &is_neighbor) const
Get the neighbours of the global element in the first position of "neighbours" that are within "radiu...
Definition CGeometry.cpp:3815
unsigned long nelem_triangle_bound
Number of triangles on the mesh boundaries.
Definition CGeometry.hpp:124
unsigned long Global_nelem_edge_bound
Total number of edges on the mesh boundaries across all processors.
Definition CGeometry.hpp:123
unsigned long GetnPointDomain() const
Get number of real points (that belong to the domain).
Definition CGeometry.hpp:593
unsigned long * Local_Marker_PeriodicSend
Data structure holding the local index of the periodic marker for a particular vertex to be sent in p...
Definition CGeometry.hpp:343
unsigned long Global_nPoint
Total number of nodes in a simulation across all processors (including halos).
Definition CGeometry.hpp:99
void SetnVertexSpanMax(unsigned short marker_flag, unsigned long nVertMax)
Get number of vertices.
Definition CGeometry.hpp:687
su2double ** AverageTangGridVel
Average tangential rotational speed at each span wise section for each marker.
Definition CGeometry.hpp:185
unsigned long nelem_pyramid
Number of pyramids in the mesh.
Definition CGeometry.hpp:120
virtual su2double Compute_WaterLineWidth(su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1207
unsigned short GetnDim() const
Get number of coordinates.
Definition CGeometry.hpp:575
virtual void ComputeNSpan(CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate)
Computes the N span.
Definition CGeometry.hpp:860
su2double *** AverageNormal
Average boundary normal at each span wise section for each marker.
Definition CGeometry.hpp:182
virtual void SetAvgTurboGeoValues(const CConfig *donor_config, CGeometry *donor_geometry, unsigned short donorZone)
Store all the turboperformance in the solver in final zone.
Definition CGeometry.hpp:904
su2double ** TurboRadiusOut
Radius at each span wise section for each turbomachinery marker.
Definition CGeometry.hpp:199
unsigned short GetnMarker() const
Get number of markers.
Definition CGeometry.hpp:623
LDUSparsePattern finiteElementPatternFill0
FEM sparsity with 0-fill (structural pattern).
Definition CGeometry.hpp:205
CEdge * edges
Edge vector (dual grid information).
Definition CGeometry.hpp:254
virtual void SetVertex(const CGeometry *fine_grid, const CConfig *config)
A virtual member.
Definition CGeometry.hpp:1051
unsigned long GetnElemLine() const
Get number of triangular elements.
Definition CGeometry.hpp:1390
void PostP2PRecvs(CGeometry *geometry, const CConfig *config, COMM_TYPE commType, unsigned short countPerPoint, bool val_reverse) const
Routine to launch non-blocking recvs only for all point-to-point communication with neighboring parti...
Definition CGeometry.cpp:380
SU2_MPI::Request * req_P2PRecv
Data structure for point-to-point recv requests.
Definition CGeometry.hpp:316
su2double ** MaxAngularCoord
Max angular pitch at each span wise section for each marker.
Definition CGeometry.hpp:188
su2vector< su2uint > finiteElementLToUTranspMap
FEM L-entry -> U-entry of its transpose.
Definition CGeometry.hpp:210
unsigned long GetnFreqSpan(unsigned short val_marker, unsigned short val_span) const
Get number of frequencies per span for NRBC.
Definition CGeometry.hpp:662
unsigned long GetnFreqSpanMax(unsigned short marker_flag) const
Get number of max frequencies for initializing the Fourier Coefficient for NR BC.
Definition CGeometry.hpp:678
LDUSparsePattern finiteVolumePatternFill0
FVM sparsity with 0-fill (structural pattern).
Definition CGeometry.hpp:203
int * Neighbors_PeriodicRecv
Data structure holding the ranks of the neighbors for periodic recv comms.
Definition CGeometry.hpp:333
void SetMGLevel(unsigned short val_iMesh)
Set the multigrid index for the current geometry object.
Definition CGeometry.hpp:1861
CCompressedSparsePatternUL edgeColoring
Edge coloring structure for thread-based parallelization.
Definition CGeometry.hpp:215
virtual su2double Compute_Curvature(su2double *LeadingEdge_im1, su2double *TrailingEdge_im1, su2double *LeadingEdge_i, su2double *TrailingEdge_i, su2double *LeadingEdge_ip1, su2double *TrailingEdge_ip1)
A virtual member.
Definition CGeometry.hpp:1281
virtual void ReadUnorderedSensitivity(CConfig *config)
A virtual member.
Definition CGeometry.hpp:1508
virtual void Compute_Nacelle(CConfig *config, bool original_surface, su2double &Nacelle_Volume, su2double &Nacelle_MinMaxThickness, su2double &Nacelle_MaxMaxThickness, su2double &Nacelle_MinChord, su2double &Nacelle_MaxChord, su2double &Nacelle_MinLERadius, su2double &Nacelle_MaxLERadius, su2double &Nacelle_MinToC, su2double &Nacelle_MaxToC, su2double &Nacelle_ObjFun_MinToC, su2double &Nacelle_MaxTwist)
A virtual member.
Definition CGeometry.hpp:1308
void SetTangGridVelOut(su2double value, unsigned short val_marker, unsigned short val_span)
Set the value of the outflow tangential velocity at each span.
Definition CGeometry.hpp:1649
virtual void SetBoundaries(CConfig *config)
A virtual member.
Definition CGeometry.hpp:1018
void SetnMarker(unsigned short val_nmarker)
A virtual member.
Definition CGeometry.hpp:730
CPrimalGrid ** elem
Element vector (primal grid information).
Definition CGeometry.hpp:251
long ** nVertexSpan
number of vertexes for span wise section for each marker.
Definition CGeometry.hpp:176
void ComputeModifiedSymmetryNormals(const CConfig *config)
Computes modified normals at intersecting symmetry planes.
Definition CGeometry.cpp:2857
const CLineletInfo & GetLineletInfo(const CConfig *config) const
Get the linelet definition, this function computes the linelets if that has not been done yet.
Definition CGeometry.cpp:4340
CLineletInfo lineletInfo
Definition CGeometry.hpp:246
su2double GetTurboRadiusIn(unsigned short val_marker, unsigned short val_span) const
Get the value of the inflow radius at each span.
Definition CGeometry.hpp:1621
su2double ** TangGridVelOut
Average tangential rotational speed at each span wise section for each turbomachinery marker.
Definition CGeometry.hpp:194
unsigned long Max_GlobalPoint
Greater global point in the domain local structure.
Definition CGeometry.hpp:137
virtual void Check_BoundElem_Orientation(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:978
unsigned long GetGlobal_nElemDomain() const
Retrieve total number of elements in a simulation across all processors (excluding halos).
Definition CGeometry.hpp:1342
virtual void SetSensitivity(unsigned long iPoint, unsigned short iDim, su2double val)
A virtual member.
Definition CGeometry.hpp:1523
su2double * bufD_PeriodicSend
Data structure for su2double periodic send.
Definition CGeometry.hpp:348
unsigned long Global_nelem_pyramid
Total number of pyramids in the mesh across all processors.
Definition CGeometry.hpp:121
su2double GetCustomBoundaryHeatFlux(unsigned short val_marker, unsigned long val_vertex) const
Get the value of the customized normal heat flux at a specified vertex on a specified marker.
Definition CGeometry.hpp:1759
virtual void Compute_Fuselage(CConfig *config, bool original_surface, su2double &Fuselage_Volume, su2double &Fuselage_WettedArea, su2double &Fuselage_MinWidth, su2double &Fuselage_MaxWidth, su2double &Fuselage_MinWaterLineWidth, su2double &Fuselage_MaxWaterLineWidth, su2double &Fuselage_MinHeight, su2double &Fuselage_MaxHeight, su2double &Fuselage_MaxCurvature)
A virtual member.
Definition CGeometry.hpp:1299
vector< vector< su2double > > GetZCoord() const
Get z coords of geometrical planes in the mesh.
Definition CGeometry.hpp:1441
unsigned long * nVertex
Number of vertex for each marker.
Definition CGeometry.hpp:258
unsigned long nFace
Number of faces of the mesh.
Definition CGeometry.hpp:107
vector< su2double > Orthogonality
Measure of dual CV orthogonality angle (0 to 90 deg., 90 being best).
Definition CGeometry.hpp:356
su2double ** TangGridVelIn
Definition CGeometry.hpp:193
unsigned short * bufS_PeriodicSend
Data structure for unsigned long periodic send.
Definition CGeometry.hpp:350
unsigned long GetnElemQuad() const
Get number of quadrilateral elements.
Definition CGeometry.hpp:1402
virtual void ComputeMeshQualityStatistics(const CConfig *config)
A virtual member.
Definition CGeometry.hpp:1873
unsigned long GetGlobal_nElemQuad() const
Retrieve total number of quadrilateral elements in a simulation across all processors.
Definition CGeometry.hpp:1360
unsigned long GetGlobal_nPoint() const
Retrieve total number of nodes in a simulation across all processors (including halos).
Definition CGeometry.hpp:599
unsigned long * end_node
Array containing the last node on each rank due to a linear partitioning by global index.
Definition CGeometry.hpp:275
auto * GetP2PRecvReq() const
Returns the receive requests for a given data type.
Definition CGeometry.hpp:497
virtual void GatherInOutAverageValues(CConfig *config, bool allocate)
A virtual member.
Definition CGeometry.hpp:896
virtual void SetBoundControlVolume(const CGeometry *fine_grid, const CConfig *config, unsigned short action)
A virtual member.
Definition CGeometry.hpp:1066
virtual void SetCoord(const CGeometry *fine_grid)
A virtual member.
Definition CGeometry.hpp:1024
su2double * bufD_PeriodicRecv
Data structure for su2double periodic receive.
Definition CGeometry.hpp:347
map< int, int > PeriodicSend2Neighbor
Data structure holding the reverse mapping of the ranks of the neighbors for periodic send comms.
Definition CGeometry.hpp:335
unsigned long Global_nelem_hexa
Total number of hexahedra in the mesh across all processors.
Definition CGeometry.hpp:117
unsigned long nNonconvexElements
Number of nonconvex elements in the mesh.
Definition CGeometry.hpp:129
virtual void MatchPeriodic(const CConfig *config, unsigned short val_periodic)
Match periodic boundary points using coordinate-based matching.
Definition CGeometry.cpp:834
virtual void SetTecPlot(char config_filename[MAX_STRING_SIZE], bool new_file)
A virtual member.
Definition CGeometry.hpp:958
void SetnPointDomain(unsigned long val_npoint)
Set the number of grid points in the domain.
Definition CGeometry.hpp:773
COMM_TYPE GetCommType() const
Returns the COMM_TYPE enum for a given data type.
Definition CGeometry.hpp:423
unsigned short nZone
Number of zones in the problem.
Definition CGeometry.hpp:132
void InitiateComms(CGeometry *geometry, const CConfig *config, MPI_QUANTITIES commType) const
Routine to load a geometric quantity into the data structures for MPI point-to-point communication an...
Definition CGeometry.cpp:640
virtual void SetElement_Connectivity()
Connects elements .
Definition CGeometry.hpp:830
virtual void Compute_Wing_LeadingTrailing(su2double *LeadingEdge, su2double *TrailingEdge, su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil)
A virtual member.
Definition CGeometry.hpp:1259
virtual void SetWallDistance(CADTElemClass *WallADT, const CConfig *config, unsigned short iZone=numeric_limits< unsigned short >::max())
Reduce the wall distance based on an previously constructed ADT.
Definition CGeometry.hpp:1969
int * Neighbors_PeriodicSend
Data structure holding the ranks of the neighbors for periodic send comms.
Definition CGeometry.hpp:331
Class for point definition (dual control volumes).
Definition CPoint.hpp:47
unsigned long GetChildren_CV(unsigned long iPoint, unsigned short nchildren_CV) const
Get the children control volume of an agglomerated control volume.
Definition CPoint.hpp:681
unsigned long GetPoint(unsigned long iPoint, unsigned long npoint) const
Get all the points that compose the control volume.
Definition CPoint.hpp:264
long GetEdge(unsigned long iPoint, unsigned long nedge) const
Get all the edges that compose the control volume.
Definition CPoint.hpp:291
long GetVertex(unsigned long iPoint, unsigned long iMarker) const
Get the vertex that compose the control volume for a marker.
Definition CPoint.hpp:316
bool GetDomain(unsigned long iPoint) const
For parallel computation, its indicates if a point must be computed or not.
Definition CPoint.hpp:423
su2double & GetVolume(unsigned long iPoint)
Get area or volume of the control volume.
Definition CPoint.hpp:557
unsigned short GetnPoint(unsigned long iPoint) const
Get the number of points that compose the control volume.
Definition CPoint.hpp:256
unsigned short GetnChildren_CV(unsigned long iPoint) const
Get the number of children of an agglomerated control volume.
Definition CPoint.hpp:721
Class to define the numerical primal grid.
Definition CPrimalGrid.hpp:45
Class for vertex definition for turbomachinery (equivalent to edges, but for the boundaries).
Definition CTurboVertex.hpp:38
Class for vertex definition (equivalent to edges, but for the boundaries).
Definition CVertex.hpp:38
unsigned long GetNode() const
Get the node of the vertex.
Definition CVertex.hpp:70
double passivedouble
Definition code_config.hpp:129
passivedouble su2mixedfloat
Definition code_config.hpp:189
passivedouble su2double
Definition code_config.hpp:181
#define SPRINTF
Definition datatype_structure.hpp:181
ConnectivityType
In FVM points are connected by the edges (faces) of the grid. In FEM, two points are connected if the...
Definition graph_toolbox.hpp:49
#define CURRENT_FUNCTION
Definition mpi_structure.hpp:59
const int MASTER_NODE
Master node for MPI parallelization.
Definition option_structure.hpp:112
@ STEADY_TRANSLATION
Simulation in a steadily translating frame.
Definition option_structure.hpp:864
@ ROTATING_FRAME
Simulation in a rotating frame.
Definition option_structure.hpp:863
COMM_TYPE
Definition option_structure.hpp:116
@ UNSIGNED_SHORT
Communication type for unsigned short.
@ PASSIVE_DOUBLE
Communication type for passivedouble.
@ FLOAT
Communication type for su2mixedfloat.
@ DOUBLE
Communication type for double.
const int SINGLE_NODE
There is only a node in the MPI parallelization.
Definition option_structure.hpp:113
const unsigned int MAX_STRING_SIZE
Maximum size of a generic string.
Definition option_structure.hpp:78
MPI_QUANTITIES
Vertex-based quantities exchanged in MPI point-to-point communications.
Definition option_structure.hpp:2873
Linelets (mesh lines perpendicular to stretching direction).
Definition CGeometry.hpp:224
std::vector< unsigned > lineletIdx
Signals that a point is not on a linelet.
Definition CGeometry.hpp:232
static passivedouble ALPHA_ISOTROPIC()
Detect isotropic mesh region.
Definition CGeometry.hpp:226
@ MAX_LINELET_POINTS
Definition CGeometry.hpp:227
@ NO_LINELET
Definition CGeometry.hpp:235
std::vector< uint8_t > lineletColor
Coloring transfered to points, for visualization.
Definition CGeometry.hpp:240
bool computed
Set once the (collective) computation is done, even if a rank has no linelets.
Definition CGeometry.hpp:242
std::vector< unsigned long > colorOffsets
Definition CGeometry.hpp:238
std::vector< std::vector< unsigned long > > linelets
Point indices for each linelet.
Definition CGeometry.hpp:229
Aggregates the full symmetric CSR and its LDU split (L strictly-lower, U strictly-upper)....
Definition CGeometry.hpp:81
CCompressedSparsePatternUL l
Definition CGeometry.hpp:83
CCompressedSparsePatternUL csr
Definition CGeometry.hpp:82
CCompressedSparsePatternUL u
Definition CGeometry.hpp:84
bool empty() const
Definition CGeometry.hpp:86