Documentation 6b54b78464
Loading...
Searching...
No Matches
CPhysicalGeometry Class Referencefinal

Class for reading a defining the primal grid which is read from the grid file in .su2 or .cgns format. More...

#include <CPhysicalGeometry.hpp>

Inheritance diagram for CPhysicalGeometry:
[legend]

Public Member Functions

 CPhysicalGeometry (void)
 Constructor of the class.
 
 CPhysicalGeometry (CConfig *config, unsigned short val_iZone, unsigned short val_nZone)
 Reads the geometry of the grid and adjust the boundary conditions with the configuration file.
 
 CPhysicalGeometry (CGeometry *geometry, CConfig *config)
 Accepts a geometry container holding a linearly partitioned grid with coloring performed by ParMETIS, and this routine distributes the points and cells to all partitions based on the coloring.
 
 CPhysicalGeometry (CGeometry *geometry, CConfig *config, bool val_flag)
 Accepts a geometry container holding a linearly partitioned grid with coloring performed by ParMETIS, and this routine distributes the points and cells to all partitions based on the coloring.
 
 ~CPhysicalGeometry (void) override
 Destructor of the class.
 
void DistributeColoring (const CConfig *config, CGeometry *geometry)
 Distributes the coloring from ParMETIS so that each rank has complete information about the local grid points.
 
void DistributePoints (const CConfig *config, CGeometry *geometry)
 Distribute the grid points, including ghost points, across all ranks based on a ParMETIS coloring.
 
void DistributeVolumeConnectivity (const CConfig *config, CGeometry *geometry, unsigned short Elem_Type)
 Distribute the connectivity for a single volume element type across all ranks based on a ParMETIS coloring.
 
void DistributeSurfaceConnectivity (CConfig *config, CGeometry *geometry, unsigned short Elem_Type)
 Distribute the connectivity for a single surface element type in all markers across all ranks based on a ParMETIS coloring.
 
void DistributeMarkerTags (CConfig *config, CGeometry *geometry)
 Broadcast the marker tags for all boundaries from the master rank to all other ranks.
 
void PartitionSurfaceConnectivity (CConfig *config, CGeometry *geometry, unsigned short Elem_Type)
 Partition the marker connectivity held on the master rank according to a linear partitioning.
 
void LoadPoints (CConfig *config, CGeometry *geometry)
 Load the local grid points after partitioning (owned and ghost) into the geometry class objects.
 
void LoadVolumeElements (CConfig *config, CGeometry *geometry)
 Load the local volume elements after partitioning (owned and ghost) into the geometry class objects.
 
void LoadSurfaceElements (CConfig *config, CGeometry *geometry)
 Load the local surface elements after partitioning (owned and ghost) into the geometry class objects.
 
void InitiateCommsAll (void *bufSend, const int *nElemSend, SU2_MPI::Request *sendReq, void *bufRecv, const int *nElemRecv, SU2_MPI::Request *recvReq, unsigned short countPerElem, COMM_TYPE commType)
 Routine to launch non-blocking sends and recvs amongst all processors.
 
void CompleteCommsAll (int nSends, SU2_MPI::Request *sendReq, int nRecvs, SU2_MPI::Request *recvReq)
 Routine to complete the set of non-blocking communications launched with InitiateComms() with MPI_Waitany().
 
void PrepareOffsets (unsigned long val_npoint_global)
 Routine to compute the initial linear partitioning offset counts and store in persistent data structures.
 
unsigned long GetLinearPartition (unsigned long val_global_index)
 Get the processor that owns the global numbering index based on the linear partitioning.
 
void SortAdjacency (const CConfig *config)
 Routine to sort the adjacency for ParMETIS for graph partitioning in parallel.
 
void SetSendReceive (const CConfig *config) override
 Set the send receive boundaries of the grid.
 
void SetBoundaries (CConfig *config) override
 Set the send receive boundaries of the grid.
 
void SetGlobal_to_Local_Point () override
 Set the local index that correspond with the global numbering index.
 
long GetGlobal_to_Local_Point (unsigned long val_ipoint) const override
 Get the local index that correspond with the global numbering index.
 
void Read_Mesh (CConfig *config, const string &val_mesh_filename, unsigned short val_iZone, unsigned short val_nZone)
 Reads the geometry of the grid and adjust the boundary conditions with the configuration file in parallel (for parmetis).
 
void LoadLinearlyPartitionedPoints (CConfig *config, CMeshReaderBase *mesh)
 Routine to load the CGNS grid points from a single zone into the proper SU2 data structures.
 
void LoadLinearlyPartitionedPointsFEM (CConfig *config, CMeshReaderBase *mesh)
 Routine to load the grid points from a single zone into the proper SU2 data structures for the FEM solver.
 
void LoadLinearlyPartitionedVolumeElements (CConfig *config, CMeshReaderBase *mesh)
 Loads the interior volume elements from the mesh reader object into the primal element data structures.
 
void LoadLinearlyPartitionedVolumeElementsFEM (CConfig *config, CMeshReaderBase *mesh)
 Loads the interior volume elements from the mesh reader object into the primal element data structures for the FEM solver.
 
void LoadUnpartitionedSurfaceElements (CConfig *config, CMeshReaderBase *mesh)
 Loads the boundary elements (markers) from the mesh reader object into the primal element data structures.
 
void LoadLinearlyPartitionedSurfaceElementsFEM (CConfig *config, CMeshReaderBase *mesh)
 Loads the boundary elements (markers) from the mesh reader object into the primal element data structures for the FEM solver.
 
void PrepareAdjacency (const CConfig *config)
 Prepares the grid point adjacency based on a linearly partitioned mesh object needed by ParMETIS for graph partitioning in parallel.
 
bool FindFace (unsigned long first_elem, unsigned long second_elem, unsigned short &face_first_elem, unsigned short &face_second_elem) override
 Find repeated nodes between two elements to identify the common face.
 
void SetPositive_ZArea (CConfig *config) override
 Compute surface area (positive z-direction) for force coefficient non-dimensionalization.
 
void SetPoint_Connectivity () override
 Set points which surround a point.
 
void SetRCM_Ordering (CConfig *config) override
 Set a renumbering using a Reverse Cuthill-McKee Algorithm.
 
void SetElement_Connectivity (void) override
 Set elements which surround an element.
 
void SetBoundVolume (void) override
 Set the volume element associated to each boundary element.
 
void SetVertex (const CConfig *config) override
 Set boundary vertex.
 
void ComputeNSpan (CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate) override
 Set number of span wise level for turbomachinery computation.
 
void SetTurboVertex (CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate) override
 Set turbo boundary vertex.
 
void UpdateTurboVertex (CConfig *config, unsigned short val_iZone, unsigned short marker_flag) override
 update turbo boundary vertex.
 
void SetAvgTurboValue (CConfig *config, unsigned short val_iZone, unsigned short marker_flag, bool allocate) override
 Set turbo boundary vertex.
 
void GatherInOutAverageValues (CConfig *config, bool allocate) override
 Set turbo boundary vertex.
 
void SetAvgTurboGeoValues (const CConfig *donor_config, CGeometry *donor_geometry, unsigned short donorZone) override
 Store all the turboperformance in the solver in ZONE_0.
 
void SetControlVolume (CConfig *config, unsigned short action) override
 Set the edge structure of the control volume.
 
void VisualizeControlVolume (const CConfig *config) const override
 Visualize the structure of the control volume(s).
 
void MatchActuator_Disk (const CConfig *config) override
 Mach the near field boundary condition.
 
void SetBoundControlVolume (const CConfig *config, unsigned short action) override
 Set boundary vertex structure of the control volume.
 
void SetMaxLength (CConfig *config) override
 Set the maximum cell-center to cell-center distance for CVs.
 
void SetTecPlot (char config_filename[MAX_STRING_SIZE], bool new_file) override
 Set the Tecplot file.
 
void SetBoundTecPlot (char mesh_filename[MAX_STRING_SIZE], bool new_file, CConfig *config) override
 Set the output file for boundaries in Tecplot.
 
void Check_IntElem_Orientation (const CConfig *config) override
 Check the volume element orientation.
 
void Check_BoundElem_Orientation (const CConfig *config) override
 Check the volume element orientation.
 
void SetColorGrid_Parallel (const CConfig *config) override
 Set the domains for grid grid partitioning using ParMETIS.
 
void SetColorFEMGrid_Parallel (CConfig *config) override
 Set the domains for FEM grid partitioning using ParMETIS.
 
void DetermineDonorElementsWallFunctions (CConfig *config)
 Determine the donor elements for the boundary elements on viscous wall boundaries when wall functions are used.
 
void DetermineFEMConstantJacobiansAndLenScale (CConfig *config)
 Determine whether or not the Jacobians of the elements and faces are constant and a length scale of the elements.
 
void DetermineFEMGraphWeights (CConfig *config, const vector< CFaceOfElement > &localFaces, const vector< vector< unsigned long > > &adjacency, const map< unsigned long, CUnsignedShort2T > &mapExternalElemIDToTimeLevel, vector< passivedouble > &vwgt, vector< vector< passivedouble > > &adjwgt)
 Compute the weights of the FEM graph for ParMETIS.
 
void DetermineGraphAdjacency (const vector< CFaceOfElement > &localFaces, vector< vector< unsigned long > > &adjacency)
 Function, which determines the adjacency information of the graph representation of the grid.
 
void DetermineMatchingFacesFEMGrid (const CConfig *config, vector< CFaceOfElement > &localFaces)
 Function, which determines the matching faces of a FEM grid.
 
void DetermineNonMatchingFacesFEMGrid (const CConfig *config, vector< CFaceOfElement > &localMatchingFaces)
 Function, which determines the non-matching faces of a FEM grid.
 
void DetermineOwnershipInternalFaces (vector< CFaceOfElement > &localFaces, map< unsigned long, CUnsignedShort2T > &mapExternalElemIDToTimeLevel)
 Function, which determines the owner of the internal faces, i.e. which element is responsible for computing the fluxes through the face.
 
void DeterminePeriodicFacesFEMGrid (CConfig *config, vector< CFaceOfElement > &localFaces)
 Determine the neighboring information for periodic faces of a FEM grid.
 
void DetermineTimeLevelElements (CConfig *config, const vector< CFaceOfElement > &localFaces, map< unsigned long, CUnsignedShort2T > &mapExternalElemIDToTimeLevel)
 Determine the time level of the elements when time accurate local time stepping is employed.
 
void StoreFaceInfoInLocalElements (const vector< CFaceOfElement > &localFaces)
 Function, which stores the information of the local matching faces in the data structures of the local elements.
 
void ComputeMeshQualityStatistics (const CConfig *config) override
 Compute 3 grid quality metrics: orthogonality angle, dual cell aspect ratio, and dual cell volume ratio.
 
void FindNormal_Neighbor (const CConfig *config) override
 Find and store the closest, most normal, neighbor to a vertex.
 
void SetBoundSensitivity (CConfig *config) override
 Read the sensitivity from an input file.
 
su2double Compute_MaxThickness (su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the maximum thickness of an airfoil.
 
su2double Compute_Twist (su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the twist of an airfoil.
 
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) override
 Compute the leading/trailing edge location of an airfoil.
 
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) override
 Compute the leading/trailing edge location of a fuselage.
 
su2double Compute_Chord (su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the chord of an airfoil.
 
su2double Compute_Width (su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the chord of an airfoil.
 
su2double Compute_WaterLineWidth (su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the chord of an airfoil.
 
su2double Compute_Height (su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the chord of an airfoil.
 
su2double Compute_LERadius (su2double *Plane_P0, su2double *Plane_Normal, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the chord of an airfoil.
 
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) override
 Compute the thickness of an airfoil.
 
su2double Compute_Area (su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the area of an airfoil.
 
su2double Compute_Length (su2double *Plane_P0, su2double *Plane_Normal, CConfig *config, vector< su2double > &Xcoord_Airfoil, vector< su2double > &Ycoord_Airfoil, vector< su2double > &Zcoord_Airfoil) override
 Compute the length of an airfoil.
 
su2double Compute_Dihedral (su2double *LeadingEdge_im1, su2double *TrailingEdge_im1, su2double *LeadingEdge_i, su2double *TrailingEdge_i) override
 Compute the dihedral of a wing.
 
su2double Compute_Curvature (su2double *LeadingEdge_im1, su2double *TrailingEdge_im1, su2double *LeadingEdge_i, su2double *TrailingEdge_i, su2double *LeadingEdge_ip1, su2double *TrailingEdge_ip1) override
 Compute the curvature of a wing.
 
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) override
 Evaluate geometrical parameters of a wing.
 
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) override
 Evaluate geometrical parameters of a wing.
 
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) override
 Evaluate geometrical parameters of a wing.
 
void SetSensitivity (CConfig *config) override
 Read the sensitivity from adjoint solution file and store it.
 
void ReadUnorderedSensitivity (CConfig *config) override
 Read the sensitivity from unordered ASCII adjoint solution file and store it.
 
su2double GetSensitivity (unsigned long iPoint, unsigned short iDim) const override
 Get the Sensitivity at a specific point.
 
void SetSensitivity (unsigned long iPoint, unsigned short iDim, su2double val) override
 Set the Sensitivity at a specific point.
 
std::unique_ptr< CADTElemClass > ComputeViscousWallADT (const CConfig *config) const override
 Compute an ADT including the coordinates of all viscous markers.
 
void SetWallDistance (CADTElemClass *WallADT, const CConfig *config, unsigned short iZone) override
 Reduce the wall distance based on an previously constructed ADT.
 
void SetWallDistance (su2double val) override
 Set wall distances a specific value.
 
void FindUniqueNode_PeriodicBound (const CConfig *config) final
 For streamwise periodicity, find & store a unique reference node on the designated periodic inlet.
 
const su2double * GetStreamwise_Periodic_RefNode (void) const final
 Get a pointer to the reference node coordinate vector.
 
virtual void SetBoundControlVolume (const CConfig *config, unsigned short action)
 A virtual member.
 
virtual void SetBoundControlVolume (const CGeometry *fine_grid, const CConfig *config, unsigned short action)
 A virtual member.
 
virtual void SetControlVolume (CConfig *config, unsigned short action)
 Sets control volume.
 
virtual void SetControlVolume (const CGeometry *fine_grid, unsigned short action)
 A virtual member.
 
virtual void SetPoint_Connectivity ()
 Set connectivity between points.
 
virtual void SetPoint_Connectivity (const CGeometry *fine_grid)
 A virtual member.
 
virtual void SetVertex (const CConfig *config)
 Sets the vertices.
 
virtual void SetVertex (const CGeometry *fine_grid, const CConfig *config)
 A virtual member.
 
- Public Member Functions inherited from CGeometry
 CGeometry ()
 Constructor of the class.
 
 CGeometry (CConfig *config, unsigned short nDim)
 Constructor of the class.
 
virtual ~CGeometry ()
 Destructor of the class.
 
void PreprocessP2PComms (CGeometry *geometry, CConfig *config)
 Routine to launch non-blocking recvs only for all periodic communications.
 
void AllocateP2PComms (unsigned short val_countPerPoint)
 Routine to allocate buffers for point-to-point MPI communications. Also called to dynamically reallocate if not enough memory is found for comms during runtime.
 
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 partitions.
 
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 commucation.
 
template<class T >
COMM_TYPE GetCommType () const
 Returns the COMM_TYPE enum for a given data type.
 
template<class T >
auto * GetP2PSendBuf () const
 Returns the send buffer for a given data type.
 
template<class T >
auto * GetP2PRecvBuf () const
 Returns the receive buffer for a given data type.
 
template<class T >
auto * GetP2PSendReq () const
 Returns the send requests for a given data type.
 
template<class T >
auto * GetP2PRecvReq () const
 Returns the receive requests for a given data type.
 
void PreprocessPeriodicComms (CGeometry *geometry, CConfig *config)
 Routine to set up persistent data structures for periodic communications.
 
void AllocatePeriodicComms (unsigned short val_countPerPeriodicPoint)
 Routine to allocate buffers for periodic communications. Also called to dynamically reallocate if not enough memory is found for comms during runtime.
 
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.
 
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.
 
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.
 
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 and to launch non-blocking sends and recvs for all point-to-point communication with neighboring partitions.
 
void CompleteComms (CGeometry *geometry, const CConfig *config, MPI_QUANTITIES commType)
 Routine to complete the set of non-blocking communications launched by InitiateComms() and unpacking of the data into the geometry class.
 
unsigned short GetnDim () const
 Get number of coordinates.
 
unsigned short GetnZone () const
 Get number of zones.
 
unsigned long GetnPoint () const
 Get number of points.
 
unsigned long GetnPointDomain () const
 Get number of real points (that belong to the domain).
 
unsigned long GetGlobal_nPoint () const
 Retrieve total number of nodes in a simulation across all processors (including halos).
 
unsigned long GetGlobal_nPointDomain () const
 Retrieve total number of nodes in a simulation across all processors (excluding halos).
 
unsigned long GetnElem () const
 Get number of elements.
 
unsigned long GetnEdge () const
 Get number of edges.
 
unsigned short GetnMarker () const
 Get number of markers.
 
const su2double * GetSpanWiseValue (unsigned short val_marker) const
 Get number of vertices.
 
unsigned long GetnVertex (unsigned short val_marker) const
 Get number of vertices.
 
unsigned short GetnSpanWiseSections (unsigned short marker_flag) const
 Get number of span wise section.
 
unsigned long GetnVertexSpan (unsigned short val_marker, unsigned short val_span) const
 Get number of vertices.
 
unsigned long GetnFreqSpan (unsigned short val_marker, unsigned short val_span) const
 Get number of frequencies per span for NRBC.
 
unsigned long GetnVertexSpanMax (unsigned short marker_flag) const
 Get number of vertices.
 
unsigned long GetnFreqSpanMax (unsigned short marker_flag) const
 Get number of max frequencies for initializing the Fourier Coefficient for NR BC.
 
void SetnVertexSpanMax (unsigned short marker_flag, unsigned long nVertMax)
 Get number of vertices.
 
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.
 
bool CheckEdge (unsigned long first_point, unsigned long second_point) const
 Get the edge index from using the nodes of the edge.
 
void TestGeometry () const
 Create a file for testing the geometry.
 
void SetnMarker (unsigned short val_nmarker)
 A virtual member.
 
void SetnDim (unsigned short val_nDim)
 Set the number of dimensions of the problem.
 
string GetMarker_Tag (unsigned short val_marker) const
 Get the index of a marker.
 
void SetMarker_Tag (unsigned short val_marker, string val_index)
 Set index of a marker.
 
void SetnElem_Bound (unsigned short val_marker, unsigned long val_nelem_bound)
 Set the number of boundary elements.
 
void SetnPoint (unsigned long val_npoint)
 Set the number of grid points.
 
void SetnPointDomain (unsigned long val_npoint)
 Set the number of grid points in the domain.
 
void SetGlobal_nPointDomain (unsigned long val_global_npoint)
 Set the value of the total number of points globally in the simulation.
 
void SetnElem (unsigned long val_nelem)
 Set the number of grid elements.
 
unsigned long GetnElem_Bound (unsigned short val_marker) const
 Get the number of boundary elements.
 
unsigned long GetMax_GlobalPoint () const
 Get the number of elements in vtk fortmat.
 
void SetEdges ()
 Sets the edges of an elemment.
 
void SetFaces ()
 Sets the faces of an element..
 
virtual void MatchPeriodic (const CConfig *config, unsigned short val_periodic)
 Match periodic boundary points using coordinate-based matching.
 
void ComputeModifiedSymmetryNormals (const CConfig *config)
 Computes modified normals at intersecting symmetry planes.
 
virtual void SetColorGrid (CConfig *config)
 A virtual member.
 
virtual void DivideConnectivity (CConfig *config, unsigned short Elem_Type)
 A virtual member.
 
virtual void SetCoord (const CGeometry *fine_grid)
 A virtual member.
 
virtual void SetMultiGridWallHeatFlux (const CGeometry *fine_grid, unsigned short val_marker)
 A virtual member.
 
virtual void SetMultiGridWallTemperature (const CGeometry *fine_grid, unsigned short val_marker)
 A virtual member.
 
void SetCustomBoundary (CConfig *config)
 Set the data containers for customized boundary conditions.
 
void SetVelocity (CConfig *config, bool print)
 General interface for setting the velocity in the geometry during motion ramps.
 
void SetRotationalVelocity (const CConfig *config, bool print=false)
 Set cartesian grid velocity based on rotational speed and axis.
 
void SetShroudVelocity (const CConfig *config)
 Set the rotational velocity of the points on the shroud markers to 0.
 
void SetTranslationalVelocity (const CConfig *config, bool print=false)
 Set the translational velocity at each node.
 
void SetWallVelocity (const CConfig *config, bool print=false)
 Set the translational/rotational velocity for all moving walls.
 
void SetGridVelocity (const CConfig *config)
 Set the grid velocity via finite differencing at each node.
 
virtual void SetRestricted_GridVelocity (const CGeometry *fine_grid)
 A virtual member.
 
void ComputeSurfaceAreaCfgFile (const CConfig *config)
 Compute the surface area of all global markers.
 
su2double GetSurfaceArea (const CConfig *config, unsigned short val_marker) const
 Get global Surface Area to a local marker.
 
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 information in boundIsStraight. For all other boundary types this will return false and could therfore be wrong. Used ultimately for BC_Slip_Wall.
 
void ComputeSurf_Curvature (CConfig *config)
 Find and store all vertices on a sharp corner in the geometry.
 
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.
 
unsigned long GetGlobal_nElem () const
 Retrieve total number of elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemDomain () const
 Retrieve total number of elements in a simulation across all processors (excluding halos).
 
unsigned long GetGlobal_nElemLine () const
 Retrieve total number of triangular elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemTria () const
 Retrieve total number of triangular elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemQuad () const
 Retrieve total number of quadrilateral elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemTetr () const
 Retrieve total number of tetrahedral elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemHexa () const
 Retrieve total number of hexahedral elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemPris () const
 Retrieve total number of prism elements in a simulation across all processors.
 
unsigned long GetGlobal_nElemPyra () const
 Retrieve total number of pyramid elements in a simulation across all processors.
 
unsigned long GetnElemLine () const
 Get number of triangular elements.
 
unsigned long GetnElemTria () const
 Get number of triangular elements.
 
unsigned long GetnElemQuad () const
 Get number of quadrilateral elements.
 
unsigned long GetnElemTetr () const
 Get number of tetrahedral elements.
 
unsigned long GetnElemHexa () const
 Get number of hexahedral elements.
 
unsigned long GetnElemPris () const
 Get number of prism elements.
 
unsigned long GetnElemPyra () const
 Get number of pyramid elements.
 
vector< vector< su2double > > GetXCoord () const
 Get x coords of geometrical planes in the mesh.
 
vector< vector< su2double > > GetYCoord () const
 Get y coords of geometrical planes in the mesh.
 
vector< vector< su2double > > GetZCoord () const
 Get z coords of geometrical planes in the mesh.
 
vector< vector< unsigned long > > GetPlanarPoints () const
 Get all points on a geometrical plane in the mesh.
 
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.
 
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)
 
bool SegmentIntersectsTriangle (su2double point0[3], const su2double point1[3], su2double vert0[3], su2double vert1[3], su2double vert2[3])
 Segment Intersects Triangle.
 
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)
 
void RegisterCoordinates () const
 Register the coordinates of the mesh nodes.
 
void UpdateCustomBoundaryConditions (CGeometry **geometry_container, CConfig *config)
 Update the multi-grid structure for the customized boundary conditions.
 
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.
 
const su2double * GetAverageNormal (unsigned short val_marker, unsigned short val_span) const
 Get the average normal at a specific span for a given marker.
 
su2double GetSpanArea (unsigned short val_marker, unsigned short val_span) const
 Get the value of the total area for each span.
 
su2double GetTurboRadius (unsigned short val_marker, unsigned short val_span) const
 Get the value of the total area for each span.
 
su2double GetAverageTangGridVel (unsigned short val_marker, unsigned short val_span) const
 Get the value of the average tangential rotational velocity for each span.
 
su2double GetTangGridVelIn (unsigned short val_marker, unsigned short val_span) const
 Get the value of the inflow tangential velocity at each span.
 
su2double GetTangGridVelOut (unsigned short val_marker, unsigned short val_span) const
 Get the value of the outflow tangential velocity at each span.
 
su2double GetSpanAreaIn (unsigned short val_marker, unsigned short val_span) const
 Get the value of the inflow area at each span.
 
su2double GetSpanAreaOut (unsigned short val_marker, unsigned short val_span) const
 Get the value of the outflow area at each span.
 
su2double GetTurboRadiusIn (unsigned short val_marker, unsigned short val_span) const
 Get the value of the inflow radius at each span.
 
su2double GetTurboRadiusOut (unsigned short val_marker, unsigned short val_span) const
 Get the value of the outflow radius at each span.
 
void SetTangGridVelIn (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the inflow tangential velocity at each span.
 
void SetTangGridVelOut (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the outflow tangential velocity at each span.
 
void SetSpanAreaIn (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the inflow area at each span.
 
void SetSpanAreaOut (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the outflow area at each span.
 
void SetTurboRadiusIn (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the inflow radius at each span.
 
void SetTurboRadiusOut (su2double value, unsigned short val_marker, unsigned short val_span)
 Set the value of the outflow radius at each span.
 
unsigned long GetnTotVertexSpan (unsigned short val_marker, unsigned short val_span) const
 A total number of vertex independently from the MPI partions.
 
su2double GetMinAngularCoord (unsigned short val_marker, unsigned short val_span) const
 min angular pitch independently from the MPI partions.
 
su2double GetMaxAngularCoord (unsigned short val_marker, unsigned short val_span) const
 max angular pitch independently from the MPI partions.
 
su2double GetMinRelAngularCoord (unsigned short val_marker, unsigned short val_span) const
 min Relatice angular coord independently from the MPI partions.
 
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.
 
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.
 
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.
 
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.
 
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.
 
template<class T >
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.
 
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.
 
void GetGlobalElementAdjacencyMatrix (vector< unsigned long > &neighbour_start, long *&neighbour_idx) const
 Build the global (entire mesh!) adjacency matrix for the elements in compressed format. Used by FilterValuesAtElementCG to search for geometrically close neighbours.
 
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 "radius" of it.
 
void SetElemVolume ()
 Compute and store the volume of the primal elements.
 
void SetMGLevel (unsigned short val_iMesh)
 Set the multigrid index for the current geometry object.
 
unsigned short GetMGLevel () const
 Get the multigrid index for the current geometry object.
 
void ColorMGLevels (unsigned short nMGLevels, const CGeometry *const *geometry)
 Color multigrid levels for visualization.
 
const LDUSparsePattern & GetSparsePattern (ConnectivityType type, unsigned long fillLvl=0)
 Get the sparse pattern of "type" with given level of fill.
 
const su2vector< su2uint > & GetLToUTransposeSparsePatternMap (ConnectivityType type)
 Get the bijective map from L-entry indices to U-entry indices of their transposes.
 
const su2vector< su2uint > & GetUToLTransposeSparsePatternMap (ConnectivityType type)
 Get the bijective map from U-entry indices to L-entry indices of their transposes.
 
const CCompressedSparsePatternUL & GetEdgeColoring (su2double *efficiency=nullptr, bool maximizeEdgeColorGroupSize=false)
 Get the edge coloring.
 
void SetNaturalEdgeColoring ()
 Force the natural (sequential) edge coloring.
 
unsigned long GetEdgeColorGroupSize () const
 Get the group size used in edge coloring.
 
const CCompressedSparsePatternUL & GetElementColoring (su2double *efficiency=nullptr)
 Get the element coloring.
 
void SetNaturalElementColoring ()
 Force the natural (sequential) element coloring.
 
unsigned long GetElementColorGroupSize () const
 Get the group size used in element coloring.
 
const CLineletInfo & GetLineletInfo (const CConfig *config) const
 Get the linelet definition, this function computes the linelets if that has not been done yet.
 
void SetnNonconvexElements (unsigned long nonconvex_elems)
 Set the amount of nonconvex elements in the mesh.
 
unsigned long GetnNonconvexElements () const
 Get the amount of nonconvex elements in the mesh.
 

Additional Inherited Members

- Public Types inherited from CGeometry
using PassiveRequest = typename SelectMPIWrapper< passivedouble >::W::Request
 
- Static Public Member Functions inherited from CGeometry
static void UpdateGeometry (CGeometry **geometry_container, CConfig *config)
 Update the multi-grid structure and the wall-distance.
 
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.
 
- Public Attributes inherited from CGeometry
CPrimalGrid ** elem {nullptr}
 Element vector (primal grid information).
 
CPrimalGrid *** bound {nullptr}
 Boundary vector (primal grid information).
 
CPoint * nodes {nullptr}
 Node vector (dual grid information).
 
CEdge * edges {nullptr}
 Edge vector (dual grid information).
 
CVertex *** vertex {nullptr}
 Boundary Vertex vector (dual grid information).
 
CTurboVertex **** turbovertex
 Boundary Vertex vector ordered for turbomachinery calculation(dual grid information).
 
unsigned long * nVertex {nullptr}
 Number of vertex for each marker.
 
unsigned long * nElem_Bound {nullptr}
 Number of elements of the boundary.
 
string * Tag_to_Marker {nullptr}
 Names of boundary markers.
 
vector< std::unordered_map< unsigned long, std::array< su2double, MAXNDIM > > > symmetryNormals
 Bool if boundary-marker is straight(2D)/plane(3D) for each local marker.
 
vector< bool > boundIsStraight
 
vector< su2double > SurfaceAreaCfgFile
 Total Surface area for all markers.
 
unordered_map< unsigned long, unsigned long > Global_to_Local_Elem
 Mapping of global to local index for elements.
 
unsigned long * beg_node {nullptr}
 Array containing the first node on each rank due to a linear partitioning by global index.
 
unsigned long * end_node
 Array containing the last node on each rank due to a linear partitioning by global index.
 
unsigned long * nPointLinear {nullptr}
 Array containing the total number of nodes on each rank due to a linear partioning by global index.
 
unsigned long * nPointCumulative {nullptr}
 Cumulative storage array containing the total number of points on all prior ranks in the linear partitioning.
 
int maxCountPerPoint {0}
 Maximum number of pieces of data sent per vertex in point-to-point comms.
 
int nP2PSend {0}
 Number of sends during point-to-point comms.
 
int nP2PRecv {0}
 Number of receives during point-to-point comms.
 
int * nPoint_P2PSend
 Data structure holding number of vertices for each send in point-to-point comms.
 
int * nPoint_P2PRecv
 Data structure holding number of vertices for each recv in point-to-point comms.
 
int * Neighbors_P2PSend
 Data structure holding the ranks of the neighbors for point-to-point send comms.
 
int * Neighbors_P2PRecv
 Data structure holding the ranks of the neighbors for point-to-point recv comms.
 
map< int, int > P2PSend2Neighbor
 Data structure holding the reverse mapping of the ranks of the neighbors for point-to-point send comms.
 
map< int, int > P2PRecv2Neighbor
 Data structure holding the reverse mapping of the ranks of the neighbors for point-to-point recv comms.
 
unsigned long * Local_Point_P2PSend {nullptr}
 Data structure holding the local index of all vertices to be sent in point-to-point comms.
 
unsigned long * Local_Point_P2PRecv {nullptr}
 Data structure holding the local index of all vertices to be received in point-to-point comms.
 
su2double * bufD_P2PRecv {nullptr}
 Data structure for su2double point-to-point receive.
 
su2double * bufD_P2PSend {nullptr}
 Data structure for su2double point-to-point send.
 
unsigned short * bufS_P2PRecv {nullptr}
 Data structure for unsigned long point-to-point receive.
 
unsigned short * bufS_P2PSend {nullptr}
 Data structure for unsigned long point-to-point send.
 
SU2_MPI::Request * req_P2PSend {nullptr}
 Data structure for point-to-point send requests.
 
SU2_MPI::Request * req_P2PRecv {nullptr}
 Data structure for point-to-point recv requests.
 
PassiveRequest * reqP_P2PSend {nullptr}
 Data structure for point-to-point send requests.
 
PassiveRequest * reqP_P2PRecv {nullptr}
 Data structure for point-to-point recv requests.
 
int maxCountPerPeriodicPoint {0}
 Maximum number of pieces of data sent per vertex in periodic comms.
 
int nPeriodicSend {0}
 Number of sends during periodic comms.
 
int nPeriodicRecv {0}
 Number of receives during periodic comms.
 
int * nPoint_PeriodicSend
 Data structure holding number of vertices for each send in periodic comms.
 
int * nPoint_PeriodicRecv
 Data structure holding number of vertices for each recv in periodic comms.
 
int * Neighbors_PeriodicSend
 Data structure holding the ranks of the neighbors for periodic send comms.
 
int * Neighbors_PeriodicRecv
 Data structure holding the ranks of the neighbors for periodic recv comms.
 
map< int, int > PeriodicSend2Neighbor
 Data structure holding the reverse mapping of the ranks of the neighbors for periodic send comms.
 
map< int, int > PeriodicRecv2Neighbor
 Data structure holding the reverse mapping of the ranks of the neighbors for periodic recv comms.
 
unsigned long * Local_Point_PeriodicSend
 Data structure holding the local index of all vertices to be sent in periodic comms.
 
unsigned long * Local_Point_PeriodicRecv {nullptr}
 Data structure holding the local index of all vertices to be received in periodic comms.
 
unsigned long * Local_Marker_PeriodicSend {nullptr}
 Data structure holding the local index of the periodic marker for a particular vertex to be sent in periodic comms.
 
unsigned long * Local_Marker_PeriodicRecv {nullptr}
 Data structure holding the local index of the periodic marker for a particular vertex to be received in periodic comms.
 
su2double * bufD_PeriodicRecv {nullptr}
 Data structure for su2double periodic receive.
 
su2double * bufD_PeriodicSend {nullptr}
 Data structure for su2double periodic send.
 
unsigned short * bufS_PeriodicRecv {nullptr}
 Data structure for unsigned long periodic receive.
 
unsigned short * bufS_PeriodicSend {nullptr}
 Data structure for unsigned long periodic send.
 
SU2_MPI::Request * req_PeriodicSend {nullptr}
 Data structure for periodic send requests.
 
SU2_MPI::Request * req_PeriodicRecv {nullptr}
 Data structure for periodic recv requests.
 
vector< su2double > Orthogonality
 Measure of dual CV orthogonality angle (0 to 90 deg., 90 being best).
 
vector< su2double > Aspect_Ratio
 Measure of dual CV aspect ratio (max face area / min face area).

 
vector< su2double > Volume_Ratio
 Measure of dual CV volume ratio (max sub-element volume / min sub-element volume).
 
const ColMajorMatrix< uint8_t > & CoarseGridColor = CoarseGridColor_
 Coarse grid levels, colorized.
 
- Protected Types inherited from CGeometry
enum  : size_t { OMP_MIN_SIZE = 32 }
 
enum  : size_t { MAXNDIM = 3 }
 
- Protected Attributes inherited from CGeometry
const int size {SINGLE_NODE}
 MPI Size.
 
const int rank {MASTER_NODE}
 MPI Rank.
 
unsigned long nPoint {0}
 Number of points of the mesh.
 
unsigned long nPointDomain {0}
 Number of real points of the mesh.
 
unsigned long nPointGhost {0}
 Number of ghost points of the mesh.
 
unsigned long Global_nPoint {0}
 Total number of nodes in a simulation across all processors (including halos).
 
unsigned long Global_nPointDomain
 Total number of nodes in a simulation across all processors (excluding halos).
 
unsigned long nElem {0}
 Number of elements of the mesh.
 
unsigned long Global_nElem {0}
 Total number of elements in a simulation across all processors (all types).
 
unsigned long Global_nElemDomain
 Total number of elements in a simulation across all processors (excluding halos).
 
unsigned long nEdge {0}
 Number of edges of the mesh.
 
unsigned long nFace {0}
 Number of faces of the mesh.
 
unsigned long nelem_edge {0}
 Number of edges in the mesh.
 
unsigned long Global_nelem_edge {0}
 Total number of edges in the mesh across all processors.
 
unsigned long nelem_triangle {0}
 Number of triangles in the mesh.
 
unsigned long Global_nelem_triangle {0}
 Total number of triangles in the mesh across all processors.
 
unsigned long nelem_quad {0}
 Number of quadrangles in the mesh.
 
unsigned long Global_nelem_quad {0}
 Total number of quadrangles in the mesh across all processors.
 
unsigned long nelem_tetra {0}
 Number of tetrahedra in the mesh.
 
unsigned long Global_nelem_tetra {0}
 Total number of tetrahedra in the mesh across all processors.
 
unsigned long nelem_hexa {0}
 Number of hexahedra in the mesh.
 
unsigned long Global_nelem_hexa {0}
 Total number of hexahedra in the mesh across all processors.
 
unsigned long nelem_prism {0}
 Number of prisms in the mesh.
 
unsigned long Global_nelem_prism {0}
 Total number of prisms in the mesh across all processors.
 
unsigned long nelem_pyramid {0}
 Number of pyramids in the mesh.
 
unsigned long Global_nelem_pyramid {0}
 Total number of pyramids in the mesh across all processors.
 
unsigned long nelem_edge_bound {0}
 Number of edges on the mesh boundaries.
 
unsigned long Global_nelem_edge_bound {0}
 Total number of edges on the mesh boundaries across all processors.
 
unsigned long nelem_triangle_bound {0}
 Number of triangles on the mesh boundaries.
 
unsigned long Global_nelem_triangle_bound
 Total number of triangles on the mesh boundaries across all processors.
 
unsigned long nelem_quad_bound {0}
 Number of quads on the mesh boundaries.
 
unsigned long Global_nelem_quad_bound {0}
 Total number of quads on the mesh boundaries across all processors.
 
unsigned long nNonconvexElements {0}
 Number of nonconvex elements in the mesh.
 
unsigned short nDim {0}
 Number of dimension of the problem.
 
unsigned short nZone {0}
 Number of zones in the problem.
 
unsigned short nMarker {0}
 Number of different markers of the mesh.
 
unsigned short nCommLevel {0}
 Number of non-blocking communication levels.
 
unsigned short MGLevel {0}
 The mesh level index for the current geometry container.
 
unsigned long Max_GlobalPoint {0}
 Greater global point in the domain local structure.
 
short * Marker_All_SendRecv {nullptr}
 MPI Marker.
 
su2double ** CustomBoundaryTemperature {nullptr}
 
su2double ** CustomBoundaryHeatFlux {nullptr}
 
vector< vector< su2double > > Xcoord_plane
 Vector containing x coordinates of new points appearing on a single plane.
 
vector< vector< su2double > > Ycoord_plane
 Vector containing y coordinates of new points appearing on a single plane.
 
vector< vector< su2double > > Zcoord_plane
 Vector containing z coordinates of new points appearing on a single plane.
 
vector< vector< su2double > > FaceArea_plane
 Vector containing area/volume associated with new points appearing on a single plane.
 
vector< vector< unsigned long > > Plane_points
 Vector containing points appearing on a single plane.
 
vector< su2double > XCoordList
 Vector containing points appearing on a single plane.
 
unsigned short * nSpanWiseSections
 Number of Span wise section for each turbo marker, indexed by inflow/outflow.
 
unsigned short * nSpanSectionsByMarker {nullptr}
 Number of Span wise section for each turbo marker, indexed by marker. Needed for deallocation.
 
unsigned short nTurboPerf {0}
 Number of Span wise section for each turbo marker.
 
su2double ** SpanWiseValue {nullptr}
 Span wise values for each turbo marker.
 
long ** nVertexSpan {nullptr}
 number of vertexes for span wise section for each marker.

 
unsigned long ** nTotVertexSpan {nullptr}
 number of vertexes at each span wise section for each marker.

 
unsigned long nVertexSpanMax [3]
 max number of vertexes for each span section for each marker flag.

 
su2double *** AverageTurboNormal {nullptr}
 Average boundary normal at each span wise section for each marker in the turbomachinery frame of reference.
 
su2double *** AverageNormal {nullptr}
 Average boundary normal at each span wise section for each marker.
 
su2double *** AverageGridVel
 Average boundary grid velocity at each span wise section for each marker.
 
su2double ** AverageTangGridVel
 Average tangential rotational speed at each span wise section for each marker.
 
su2double ** SpanArea {nullptr}
 Area at each span wise section for each marker.
 
su2double ** MaxAngularCoord {nullptr}
 Max angular pitch at each span wise section for each marker.
 
su2double ** MinAngularCoord {nullptr}
 Max angular pitch at each span wise section for each marker.
 
su2double ** MinRelAngularCoord
 Min relative angular coord at each span wise section for each marker.
 
su2double ** TurboRadius {nullptr}
 Radius at each span wise section for each marker.
 
su2double ** TangGridVelIn {nullptr}
 
su2double ** TangGridVelOut {nullptr}
 Average tangential rotational speed at each span wise section for each turbomachinery marker.
 
su2double ** SpanAreaIn {nullptr}
 
su2double ** SpanAreaOut {nullptr}
 Area at each span wise section for each turbomachinery marker.
 
su2double ** TurboRadiusIn {nullptr}
 
su2double ** TurboRadiusOut {nullptr}
 Radius at each span wise section for each turbomachinery marker.
 
LDUSparsePattern finiteVolumePatternFill0
 FVM sparsity with 0-fill (structural pattern).
 
LDUSparsePattern finiteVolumePatternFillN
 FVM sparsity with N-fill (e.g. for ILU-N).
 
LDUSparsePattern finiteElementPatternFill0
 FEM sparsity with 0-fill (structural pattern).
 
LDUSparsePattern finiteElementPatternFillN
 FEM sparsity with N-fill (e.g. for ILU-N).
 
su2vector< su2uint > finiteVolumeLToUTranspMap
 FVM L-entry -> U-entry of its transpose.
 
su2vector< su2uint > finiteVolumeUToLTranspMap
 FVM U-entry -> L-entry of its transpose.
 
su2vector< su2uint > finiteElementLToUTranspMap
 FEM L-entry -> U-entry of its transpose.
 
su2vector< su2uint > finiteElementUToLTranspMap
 FEM U-entry -> L-entry of its transpose.
 
CCompressedSparsePatternUL edgeColoring
 Edge coloring structure for thread-based parallelization.
 
CCompressedSparsePatternUL elemColoring
 Element coloring structure for thread-based parallelization.
 
unsigned long edgeColorGroupSize {1}
 Size of the edge groups within each color.
 
unsigned long elemColorGroupSize {1}
 Size of the element groups within each color.
 
ColMajorMatrix< uint8_t > CoarseGridColor_
 Coarse grid levels, colorized.
 
CLineletInfo lineletInfo
 

Detailed Description

Class for reading a defining the primal grid which is read from the grid file in .su2 or .cgns format.

Author
F. Palacios, T. Economon, J. Alonso

Constructor & Destructor Documentation

◆ CPhysicalGeometry() [1/4]

CPhysicalGeometry::CPhysicalGeometry ( void  )

Constructor of the class.

◆ CPhysicalGeometry() [2/4]

CPhysicalGeometry::CPhysicalGeometry ( CConfig *  config,
unsigned short  val_iZone,
unsigned short  val_nZone 
)

Reads the geometry of the grid and adjust the boundary conditions with the configuration file.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]config- Definition of the particular problem.
[in]val_mesh_filename- Name of the file with the grid information.
[in]val_format- Format of the file with the grid information.
[in]val_iZone- Domain to be read from the grid file.
[in]val_nZone- Total number of domains in the grid file.

◆ CPhysicalGeometry() [3/4]

CPhysicalGeometry::CPhysicalGeometry ( CGeometry *  geometry,
CConfig *  config 
)

Accepts a geometry container holding a linearly partitioned grid with coloring performed by ParMETIS, and this routine distributes the points and cells to all partitions based on the coloring.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]geometry- Definition of the geometry container holding the initial linear partitions of the grid + coloring.
[in]config- Definition of the particular problem.

◆ CPhysicalGeometry() [4/4]

CPhysicalGeometry::CPhysicalGeometry ( CGeometry *  geometry,
CConfig *  config,
bool  val_flag 
)

Accepts a geometry container holding a linearly partitioned grid with coloring performed by ParMETIS, and this routine distributes the points and cells to all partitions based on the coloring.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]geometry- Definition of the geometry container holding the initial linear partitions of the grid + coloring.
[in]config- Definition of the particular problem.

◆ ~CPhysicalGeometry()

CPhysicalGeometry::~CPhysicalGeometry ( void  )
override

Destructor of the class.

Member Function Documentation

◆ Check_BoundElem_Orientation()

void CPhysicalGeometry::Check_BoundElem_Orientation ( const CConfig *  config)
overridevirtual

Check the volume element orientation.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ Check_IntElem_Orientation()

void CPhysicalGeometry::Check_IntElem_Orientation ( const CConfig *  config)
overridevirtual

Check the volume element orientation.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ CompleteCommsAll()

void CPhysicalGeometry::CompleteCommsAll ( int  nSends,
SU2_MPI::Request *  sendReq,
int  nRecvs,
SU2_MPI::Request *  recvReq 
)

Routine to complete the set of non-blocking communications launched with InitiateComms() with MPI_Waitany().

Parameters
[in]nSends- Number of sends to be completed.
[in]sendReq- Array of MPI send requests.
[in]nRecvs- Number of receives to be completed.
[in]sendReq- Array of MPI recv requests.

◆ Compute_Area()

su2double CPhysicalGeometry::Compute_Area ( su2double *  Plane_P0,
su2double *  Plane_Normal,
CConfig *  config,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the area of an airfoil.

Returns
Area of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Chord()

su2double CPhysicalGeometry::Compute_Chord ( su2double *  Plane_P0,
su2double *  Plane_Normal,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the chord of an airfoil.

Returns
Chord of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Curvature()

su2double CPhysicalGeometry::Compute_Curvature ( su2double *  LeadingEdge_im1,
su2double *  TrailingEdge_im1,
su2double *  LeadingEdge_i,
su2double *  TrailingEdge_i,
su2double *  LeadingEdge_ip1,
su2double *  TrailingEdge_ip1 
)
overridevirtual

Compute the curvature of a wing.

Reimplemented from CGeometry.

◆ Compute_Dihedral()

su2double CPhysicalGeometry::Compute_Dihedral ( su2double *  LeadingEdge_im1,
su2double *  TrailingEdge_im1,
su2double *  LeadingEdge_i,
su2double *  TrailingEdge_i 
)
overridevirtual

Compute the dihedral of a wing.

Returns
Dihedral at a particular section.

Reimplemented from CGeometry.

◆ Compute_Fuselage()

void CPhysicalGeometry::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 
)
overridevirtual

Evaluate geometrical parameters of a wing.

Reimplemented from CGeometry.

◆ Compute_Fuselage_LeadingTrailing()

void CPhysicalGeometry::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 
)
overridevirtual

Compute the leading/trailing edge location of a fuselage.

Reimplemented from CGeometry.

◆ Compute_Height()

su2double CPhysicalGeometry::Compute_Height ( su2double *  Plane_P0,
su2double *  Plane_Normal,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the chord of an airfoil.

Returns
Chord of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Length()

su2double CPhysicalGeometry::Compute_Length ( su2double *  Plane_P0,
su2double *  Plane_Normal,
CConfig *  config,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the length of an airfoil.

Returns
Area of an airfoil.

Reimplemented from CGeometry.

◆ Compute_LERadius()

su2double CPhysicalGeometry::Compute_LERadius ( su2double *  Plane_P0,
su2double *  Plane_Normal,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the chord of an airfoil.

Returns
Chord of an airfoil.

Reimplemented from CGeometry.

◆ Compute_MaxThickness()

su2double CPhysicalGeometry::Compute_MaxThickness ( su2double *  Plane_P0,
su2double *  Plane_Normal,
CConfig *  config,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the maximum thickness of an airfoil.

Returns
Maximum thickness at a particular section.

Reimplemented from CGeometry.

◆ Compute_Nacelle()

void CPhysicalGeometry::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 
)
overridevirtual

Evaluate geometrical parameters of a wing.

Reimplemented from CGeometry.

◆ Compute_Thickness()

su2double CPhysicalGeometry::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 
)
overridevirtual

Compute the thickness of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Twist()

su2double CPhysicalGeometry::Compute_Twist ( su2double *  Plane_P0,
su2double *  Plane_Normal,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the twist of an airfoil.

Returns
Twist at a particular section.

Reimplemented from CGeometry.

◆ Compute_WaterLineWidth()

su2double CPhysicalGeometry::Compute_WaterLineWidth ( su2double *  Plane_P0,
su2double *  Plane_Normal,
CConfig *  config,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the chord of an airfoil.

Returns
Chord of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Width()

su2double CPhysicalGeometry::Compute_Width ( su2double *  Plane_P0,
su2double *  Plane_Normal,
vector< su2double > &  Xcoord_Airfoil,
vector< su2double > &  Ycoord_Airfoil,
vector< su2double > &  Zcoord_Airfoil 
)
overridevirtual

Compute the chord of an airfoil.

Returns
Chord of an airfoil.

Reimplemented from CGeometry.

◆ Compute_Wing()

void CPhysicalGeometry::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 
)
overridevirtual

Evaluate geometrical parameters of a wing.

Reimplemented from CGeometry.

◆ Compute_Wing_LeadingTrailing()

void CPhysicalGeometry::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 
)
overridevirtual

Compute the leading/trailing edge location of an airfoil.

Reimplemented from CGeometry.

◆ ComputeMeshQualityStatistics()

void CPhysicalGeometry::ComputeMeshQualityStatistics ( const CConfig *  config)
overridevirtual

Compute 3 grid quality metrics: orthogonality angle, dual cell aspect ratio, and dual cell volume ratio.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ ComputeNSpan()

void CPhysicalGeometry::ComputeNSpan ( CConfig *  config,
unsigned short  val_iZone,
unsigned short  marker_flag,
bool  allocate 
)
overridevirtual

Set number of span wise level for turbomachinery computation.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ ComputeViscousWallADT()

std::unique_ptr< CADTElemClass > CPhysicalGeometry::ComputeViscousWallADT ( const CConfig *  config) const
overridevirtual

Compute an ADT including the coordinates of all viscous markers.

Parameters
[in]config- Definition of the particular problem.
Returns
pointer to the ADT

Reimplemented from CGeometry.

◆ DetermineDonorElementsWallFunctions()

void CPhysicalGeometry::DetermineDonorElementsWallFunctions ( CConfig *  config)

Determine the donor elements for the boundary elements on viscous wall boundaries when wall functions are used.

Parameters
[in]config- Definition of the particular problem.

◆ DetermineFEMConstantJacobiansAndLenScale()

void CPhysicalGeometry::DetermineFEMConstantJacobiansAndLenScale ( CConfig *  config)

Determine whether or not the Jacobians of the elements and faces are constant and a length scale of the elements.

Parameters
[in]config- Definition of the particular problem.

◆ DetermineFEMGraphWeights()

void CPhysicalGeometry::DetermineFEMGraphWeights ( CConfig *  config,
const vector< CFaceOfElement > &  localFaces,
const vector< vector< unsigned long > > &  adjacency,
const map< unsigned long, CUnsignedShort2T > &  mapExternalElemIDToTimeLevel,
vector< passivedouble > &  vwgt,
vector< vector< passivedouble > > &  adjwgt 
)

Compute the weights of the FEM graph for ParMETIS.

Parameters
[in]config- Definition of the particular problem.
[in]localFaces- Vector, which contains the element faces of this rank.
[in]adjacency- Neighbors of the element.
[in]mapExternalElemIDToTimeLevel- Map from the external element ID's to their time level and number of DOFs.
[out]vwgt- Weights of the vertices of the graph, i.e. the elements.
[out]adjwgt- Weights of the edges of the graph.

◆ DetermineGraphAdjacency()

void CPhysicalGeometry::DetermineGraphAdjacency ( const vector< CFaceOfElement > &  localFaces,
vector< vector< unsigned long > > &  adjacency 
)

Function, which determines the adjacency information of the graph representation of the grid.

Parameters
[in]localFaces- Vector containing the local matching faces of the FEM grid.
[out]adjacency- Vector of vectors to store the adjacency.

◆ DetermineMatchingFacesFEMGrid()

void CPhysicalGeometry::DetermineMatchingFacesFEMGrid ( const CConfig *  config,
vector< CFaceOfElement > &  localFaces 
)

Function, which determines the matching faces of a FEM grid.

Parameters
[in]config- Definition of the particular problem.
[out]localFaces- Vector containing the local faces of the FEM grid. On output the matching faces are stored as one face.

◆ DetermineNonMatchingFacesFEMGrid()

void CPhysicalGeometry::DetermineNonMatchingFacesFEMGrid ( const CConfig *  config,
vector< CFaceOfElement > &  localMatchingFaces 
)

Function, which determines the non-matching faces of a FEM grid.

Parameters
[in]config- Definition of the particular problem.
[in,out]localMatchingFaces- Vector containing the local faces of the FEM grid. On output the non-matching faces are removed.

◆ DetermineOwnershipInternalFaces()

void CPhysicalGeometry::DetermineOwnershipInternalFaces ( vector< CFaceOfElement > &  localFaces,
map< unsigned long, CUnsignedShort2T > &  mapExternalElemIDToTimeLevel 
)

Function, which determines the owner of the internal faces, i.e. which element is responsible for computing the fluxes through the face.

Parameters
[in]localFaces- Vector, which contains the element faces of this rank.
[out]mapExternalElemIDToTimeLevel- Map from the external element ID's to their time level and number of DOFs.

◆ DeterminePeriodicFacesFEMGrid()

void CPhysicalGeometry::DeterminePeriodicFacesFEMGrid ( CConfig *  config,
vector< CFaceOfElement > &  localFaces 
)

Determine the neighboring information for periodic faces of a FEM grid.

Parameters
[in]config- Definition of the particular problem.
[in,out]localFaces- Vector, which contains the element faces of this rank.

◆ DetermineTimeLevelElements()

void CPhysicalGeometry::DetermineTimeLevelElements ( CConfig *  config,
const vector< CFaceOfElement > &  localFaces,
map< unsigned long, CUnsignedShort2T > &  mapExternalElemIDToTimeLevel 
)

Determine the time level of the elements when time accurate local time stepping is employed.

Parameters
[in]config- Definition of the particular problem.
[in]localFaces- Vector, which contains the element faces of this rank.
[out]mapExternalElemIDToTimeLevel- Map from the external element ID's to their time level and number of DOFs.

◆ DistributeColoring()

void CPhysicalGeometry::DistributeColoring ( const CConfig *  config,
CGeometry *  geometry 
)

Distributes the coloring from ParMETIS so that each rank has complete information about the local grid points.

Parameters
[in]geometry- Definition of the geometry container holding the initial linear partitions of the grid + coloring.
[in]config- Definition of the particular problem.

◆ DistributeMarkerTags()

void CPhysicalGeometry::DistributeMarkerTags ( CConfig *  config,
CGeometry *  geometry 
)

Broadcast the marker tags for all boundaries from the master rank to all other ranks.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.

◆ DistributePoints()

void CPhysicalGeometry::DistributePoints ( const CConfig *  config,
CGeometry *  geometry 
)

Distribute the grid points, including ghost points, across all ranks based on a ParMETIS coloring.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.

◆ DistributeSurfaceConnectivity()

void CPhysicalGeometry::DistributeSurfaceConnectivity ( CConfig *  config,
CGeometry *  geometry,
unsigned short  Elem_Type 
)

Distribute the connectivity for a single surface element type in all markers across all ranks based on a ParMETIS coloring.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.
[in]Elem_Type- VTK index of the element type being distributed.

◆ DistributeVolumeConnectivity()

void CPhysicalGeometry::DistributeVolumeConnectivity ( const CConfig *  config,
CGeometry *  geometry,
unsigned short  Elem_Type 
)

Distribute the connectivity for a single volume element type across all ranks based on a ParMETIS coloring.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.
[in]Elem_Type- VTK index of the element type being distributed.

◆ FindFace()

bool CPhysicalGeometry::FindFace ( unsigned long  first_elem,
unsigned long  second_elem,
unsigned short &  face_first_elem,
unsigned short &  face_second_elem 
)
overridevirtual

Find repeated nodes between two elements to identify the common face.

Parameters
[in]first_elem- Identification of the first element.
[in]second_elem- Identification of the second element.
[in]face_first_elem- Index of the common face for the first element.
[in]face_second_elem- Index of the common face for the second element.
Returns
It provides 0 or 1 depending if there is a common face or not.

Reimplemented from CGeometry.

◆ FindNormal_Neighbor()

void CPhysicalGeometry::FindNormal_Neighbor ( const CConfig *  config)
overridevirtual

Find and store the closest, most normal, neighbor to a vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ FindUniqueNode_PeriodicBound()

void CPhysicalGeometry::FindUniqueNode_PeriodicBound ( const CConfig *  config)
finalvirtual

For streamwise periodicity, find & store a unique reference node on the designated periodic inlet.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ GatherInOutAverageValues()

void CPhysicalGeometry::GatherInOutAverageValues ( CConfig *  config,
bool  allocate 
)
overridevirtual

Set turbo boundary vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ GetGlobal_to_Local_Point()

long CPhysicalGeometry::GetGlobal_to_Local_Point ( unsigned long  val_ipoint) const
inlineoverridevirtual

Get the local index that correspond with the global numbering index.

Parameters
[in]val_ipoint- Global point.
Returns
Local index that correspond with the global index, -1 if not found on the current rank (process).

Reimplemented from CGeometry.

◆ GetLinearPartition()

unsigned long CPhysicalGeometry::GetLinearPartition ( unsigned long  val_global_index)

Get the processor that owns the global numbering index based on the linear partitioning.

Parameters
[in]val_global_index- Global index for a point.
Returns
Rank of the owner processor for the current point based on linear partitioning.

◆ GetSensitivity()

su2double CPhysicalGeometry::GetSensitivity ( unsigned long  iPoint,
unsigned short  iDim 
) const
inlineoverridevirtual

Get the Sensitivity at a specific point.

Parameters
[in]iPoint- The point where to get the sensitivity.
[in]iDim- The component of the dim. vector.
Returns
The sensitivity at point iPoint and dim. iDim.

Reimplemented from CGeometry.

◆ GetStreamwise_Periodic_RefNode()

const su2double * CPhysicalGeometry::GetStreamwise_Periodic_RefNode ( void  ) const
inlinefinalvirtual

Get a pointer to the reference node coordinate vector.

Returns
A pointer to the reference node coordinate vector.

Reimplemented from CGeometry.

◆ InitiateCommsAll()

void CPhysicalGeometry::InitiateCommsAll ( void *  bufSend,
const int *  nElemSend,
SU2_MPI::Request *  sendReq,
void *  bufRecv,
const int *  nElemRecv,
SU2_MPI::Request *  recvReq,
unsigned short  countPerElem,
COMM_TYPE  commType 
)

Routine to launch non-blocking sends and recvs amongst all processors.

Parameters
[in]bufSend- Buffer of data to be sent.
[in]nElemSend- Array containing the number of elements to send to other processors in cumulative storage format.
[in]sendReq- Array of MPI send requests.
[in]bufRecv- Buffer of data to be received.
[in]nElemSend- Array containing the number of elements to receive from other processors in cumulative storage format.
[in]sendReq- Array of MPI recv requests.
[in]countPerElem- Pieces of data per element communicated.

◆ LoadLinearlyPartitionedPoints()

void CPhysicalGeometry::LoadLinearlyPartitionedPoints ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Routine to load the CGNS grid points from a single zone into the proper SU2 data structures.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadLinearlyPartitionedPointsFEM()

void CPhysicalGeometry::LoadLinearlyPartitionedPointsFEM ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Routine to load the grid points from a single zone into the proper SU2 data structures for the FEM solver.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadLinearlyPartitionedSurfaceElementsFEM()

void CPhysicalGeometry::LoadLinearlyPartitionedSurfaceElementsFEM ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Loads the boundary elements (markers) from the mesh reader object into the primal element data structures for the FEM solver.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadLinearlyPartitionedVolumeElements()

void CPhysicalGeometry::LoadLinearlyPartitionedVolumeElements ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Loads the interior volume elements from the mesh reader object into the primal element data structures.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadLinearlyPartitionedVolumeElementsFEM()

void CPhysicalGeometry::LoadLinearlyPartitionedVolumeElementsFEM ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Loads the interior volume elements from the mesh reader object into the primal element data structures for the FEM solver.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadPoints()

void CPhysicalGeometry::LoadPoints ( CConfig *  config,
CGeometry *  geometry 
)

Load the local grid points after partitioning (owned and ghost) into the geometry class objects.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.

◆ LoadSurfaceElements()

void CPhysicalGeometry::LoadSurfaceElements ( CConfig *  config,
CGeometry *  geometry 
)

Load the local surface elements after partitioning (owned and ghost) into the geometry class objects.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.

◆ LoadUnpartitionedSurfaceElements()

void CPhysicalGeometry::LoadUnpartitionedSurfaceElements ( CConfig *  config,
CMeshReaderBase *  mesh 
)

Loads the boundary elements (markers) from the mesh reader object into the primal element data structures.

Parameters
[in]config- definition of the particular problem.
[in]mesh- mesh reader object containing the current zone data.

◆ LoadVolumeElements()

void CPhysicalGeometry::LoadVolumeElements ( CConfig *  config,
CGeometry *  geometry 
)

Load the local volume elements after partitioning (owned and ghost) into the geometry class objects.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.

◆ MatchActuator_Disk()

void CPhysicalGeometry::MatchActuator_Disk ( const CConfig *  config)
overridevirtual

Mach the near field boundary condition.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ PartitionSurfaceConnectivity()

void CPhysicalGeometry::PartitionSurfaceConnectivity ( CConfig *  config,
CGeometry *  geometry,
unsigned short  Elem_Type 
)

Partition the marker connectivity held on the master rank according to a linear partitioning.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.
[in]Elem_Type- VTK index of the element type being distributed.

◆ PrepareAdjacency()

void CPhysicalGeometry::PrepareAdjacency ( const CConfig *  config)

Prepares the grid point adjacency based on a linearly partitioned mesh object needed by ParMETIS for graph partitioning in parallel.

Parameters
[in]config- Definition of the particular problem.

◆ PrepareOffsets()

void CPhysicalGeometry::PrepareOffsets ( unsigned long  val_npoint_global)

Routine to compute the initial linear partitioning offset counts and store in persistent data structures.

Parameters
[in]val_npoint_global- total number of grid points in the mesh.

◆ Read_Mesh()

void CPhysicalGeometry::Read_Mesh ( CConfig *  config,
const string &  val_mesh_filename,
unsigned short  val_iZone,
unsigned short  val_nZone 
)

Reads the geometry of the grid and adjust the boundary conditions with the configuration file in parallel (for parmetis).

Parameters
[in]config- Definition of the particular problem.
[in]val_mesh_filename- Name of the file with the grid information.
[in]val_format- Format of the file with the grid information.
[in]val_iZone- Domain to be read from the grid file.
[in]val_nZone- Total number of domains in the grid file.

◆ ReadUnorderedSensitivity()

void CPhysicalGeometry::ReadUnorderedSensitivity ( CConfig *  config)
overridevirtual

Read the sensitivity from unordered ASCII adjoint solution file and store it.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetAvgTurboGeoValues()

void CPhysicalGeometry::SetAvgTurboGeoValues ( const CConfig *  donor_config,
CGeometry *  donor_geometry,
unsigned short  donorZone 
)
overridevirtual

Store all the turboperformance in the solver in ZONE_0.

Parameters
[in]donor_geometry- Solution from the donor mesh.
[in]target_geometry- Solution from the target mesh.
[in]donorZone- counter of the donor solution

Reimplemented from CGeometry.

◆ SetAvgTurboValue()

void CPhysicalGeometry::SetAvgTurboValue ( CConfig *  config,
unsigned short  val_iZone,
unsigned short  marker_flag,
bool  allocate 
)
overridevirtual

Set turbo boundary vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetBoundaries()

void CPhysicalGeometry::SetBoundaries ( CConfig *  config)
overridevirtual

Set the send receive boundaries of the grid.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetBoundControlVolume() [1/3]

virtual void CGeometry::SetBoundControlVolume ( const CConfig *  config,
unsigned short  action 
)
inlinevirtual

A virtual member.

Parameters
[in]config- Definition of the particular problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetBoundControlVolume() [2/3]

void CPhysicalGeometry::SetBoundControlVolume ( const CConfig *  config,
unsigned short  action 
)
overridevirtual

Set boundary vertex structure of the control volume.

Parameters
[in]config- Definition of the particular problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetBoundControlVolume() [3/3]

virtual void CGeometry::SetBoundControlVolume ( const CGeometry *  fine_grid,
const CConfig *  config,
unsigned short  action 
)
inlinevirtual

A virtual member.

Parameters
[in]fine_grid- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetBoundSensitivity()

void CPhysicalGeometry::SetBoundSensitivity ( CConfig *  config)
overridevirtual

Read the sensitivity from an input file.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetBoundTecPlot()

void CPhysicalGeometry::SetBoundTecPlot ( char  mesh_filename[MAX_STRING_SIZE],
bool  new_file,
CConfig *  config 
)
overridevirtual

Set the output file for boundaries in Tecplot.

Parameters
[in]config- Definition of the particular problem.
[in]mesh_filename- Name of the file where the Tecplot information is going to be stored.
[in]new_file- Create a new file.

Reimplemented from CGeometry.

◆ SetBoundVolume()

void CPhysicalGeometry::SetBoundVolume ( void  )
overridevirtual

Set the volume element associated to each boundary element.

Reimplemented from CGeometry.

◆ SetColorFEMGrid_Parallel()

void CPhysicalGeometry::SetColorFEMGrid_Parallel ( CConfig *  config)
overridevirtual

Set the domains for FEM grid partitioning using ParMETIS.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetColorGrid_Parallel()

void CPhysicalGeometry::SetColorGrid_Parallel ( const CConfig *  config)
overridevirtual

Set the domains for grid grid partitioning using ParMETIS.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetControlVolume() [1/3]

virtual void CGeometry::SetControlVolume ( CConfig *  config,
unsigned short  action 
)
inlinevirtual

Sets control volume.

Parameters
[in]config- Definition of the particular problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetControlVolume() [2/3]

void CPhysicalGeometry::SetControlVolume ( CConfig *  config,
unsigned short  action 
)
overridevirtual

Set the edge structure of the control volume.

Parameters
[in]config- Definition of the particular problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetControlVolume() [3/3]

virtual void CGeometry::SetControlVolume ( const CGeometry *  fine_grid,
unsigned short  action 
)
inlinevirtual

A virtual member.

Parameters
[in]fine_grid- Geometrical definition of the problem.
[in]action- Allocate or not the new elements.

Reimplemented from CGeometry.

◆ SetElement_Connectivity()

void CPhysicalGeometry::SetElement_Connectivity ( void  )
overridevirtual

Set elements which surround an element.

Reimplemented from CGeometry.

◆ SetGlobal_to_Local_Point()

void CPhysicalGeometry::SetGlobal_to_Local_Point ( )
overridevirtual

Set the local index that correspond with the global numbering index.

Reimplemented from CGeometry.

◆ SetMaxLength()

void CPhysicalGeometry::SetMaxLength ( CConfig *  config)
overridevirtual

Set the maximum cell-center to cell-center distance for CVs.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetPoint_Connectivity() [1/3]

virtual void CGeometry::SetPoint_Connectivity ( )
inlinevirtual

Set connectivity between points.

Reimplemented from CGeometry.

◆ SetPoint_Connectivity() [2/3]

void CPhysicalGeometry::SetPoint_Connectivity ( )
overridevirtual

Set points which surround a point.

Reimplemented from CGeometry.

◆ SetPoint_Connectivity() [3/3]

virtual void CGeometry::SetPoint_Connectivity ( const CGeometry *  fine_grid)
inlinevirtual

A virtual member.

Parameters
[in]fine_grid- Geometrical definition of the child grid (for multigrid).

Reimplemented from CGeometry.

◆ SetPositive_ZArea()

void CPhysicalGeometry::SetPositive_ZArea ( CConfig *  config)
overridevirtual

Compute surface area (positive z-direction) for force coefficient non-dimensionalization.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetRCM_Ordering()

void CPhysicalGeometry::SetRCM_Ordering ( CConfig *  config)
overridevirtual

Set a renumbering using a Reverse Cuthill-McKee Algorithm.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetSendReceive()

void CPhysicalGeometry::SetSendReceive ( const CConfig *  config)
overridevirtual

Set the send receive boundaries of the grid.

Parameters
[in]config- Definition of the particular problem.

<Vector to store the type of transformation for this send point.

<Vector to store the type of transformation for this received point.

<SendDomain[from domain][to domain] and return the point index of the node that must me sended.

<SendDomain[from domain][to domain] and return the point index of the node that must me sended.

Reimplemented from CGeometry.

◆ SetSensitivity() [1/2]

void CPhysicalGeometry::SetSensitivity ( CConfig *  config)
overridevirtual

Read the sensitivity from adjoint solution file and store it.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetSensitivity() [2/2]

void CPhysicalGeometry::SetSensitivity ( unsigned long  iPoint,
unsigned short  iDim,
su2double  val 
)
inlineoverridevirtual

Set the Sensitivity at a specific point.

Parameters
[in]iPoint- The point where to get the sensitivity.
[in]iDim- The component of the dim. vector.
[in]val- Value of the sensitivity.

Reimplemented from CGeometry.

◆ SetTecPlot()

void CPhysicalGeometry::SetTecPlot ( char  config_filename[MAX_STRING_SIZE],
bool  new_file 
)
overridevirtual

Set the Tecplot file.

Parameters
[in]config_filename- Name of the file where the Tecplot information is going to be stored.
[in]new_file- Create a new file.

Reimplemented from CGeometry.

◆ SetTurboVertex()

void CPhysicalGeometry::SetTurboVertex ( CConfig *  config,
unsigned short  val_iZone,
unsigned short  marker_flag,
bool  allocate 
)
overridevirtual

Set turbo boundary vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetVertex() [1/3]

virtual void CGeometry::SetVertex ( const CConfig *  config)
inlinevirtual

Sets the vertices.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetVertex() [2/3]

void CPhysicalGeometry::SetVertex ( const CConfig *  config)
overridevirtual

Set boundary vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetVertex() [3/3]

virtual void CGeometry::SetVertex ( const CGeometry *  fine_grid,
const CConfig *  config 
)
inlinevirtual

A virtual member.

Parameters
[in]fine_grid- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ SetWallDistance() [1/2]

void CPhysicalGeometry::SetWallDistance ( CADTElemClass *  WallADT,
const CConfig *  config,
unsigned short  iZone 
)
overridevirtual

Reduce the wall distance based on an previously constructed ADT.

The ADT might belong to another zone, giving rise to lower wall distances than those already stored.

Parameters
[in]WallADT- The ADT to reduce the wall distance
[in]config- ignored
[in]iZone- zone whose markers made the ADT

Reimplemented from CGeometry.

◆ SetWallDistance() [2/2]

void CPhysicalGeometry::SetWallDistance ( su2double  val)
inlineoverridevirtual

Set wall distances a specific value.

Reimplemented from CGeometry.

◆ SortAdjacency()

void CPhysicalGeometry::SortAdjacency ( const CConfig *  config)

Routine to sort the adjacency for ParMETIS for graph partitioning in parallel.

Parameters
[in]config- Definition of the particular problem.

◆ StoreFaceInfoInLocalElements()

void CPhysicalGeometry::StoreFaceInfoInLocalElements ( const vector< CFaceOfElement > &  localFaces)

Function, which stores the information of the local matching faces in the data structures of the local elements.

Parameters
[in]localFaces- Vector, which contains the internal matching faces of this rank.

◆ UpdateTurboVertex()

void CPhysicalGeometry::UpdateTurboVertex ( CConfig *  config,
unsigned short  val_iZone,
unsigned short  marker_flag 
)
overridevirtual

update turbo boundary vertex.

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.

◆ VisualizeControlVolume()

void CPhysicalGeometry::VisualizeControlVolume ( const CConfig *  config) const
overridevirtual

Visualize the structure of the control volume(s).

Parameters
[in]config- Definition of the particular problem.

Reimplemented from CGeometry.


The documentation for this class was generated from the following files: