SU2
interpolation_structure.hpp
Go to the documentation of this file.
1 
35 #pragma once
36 
37 #include "../../Common/include/mpi_structure.hpp"
38 
39 #include <iostream>
40 #include <cmath>
41 #include <cstdlib>
42 
43 #include "config_structure.hpp"
44 #include "geometry_structure.hpp"
45 #include "vector_structure.hpp"
46 
47 using namespace std;
48 
49 
58 protected:
59  unsigned int nZone;
60  unsigned int donorZone, targetZone;
61 
62  unsigned long MaxLocalVertex_Donor,
64  nGlobalFaceNodes_Donor,
65  MaxFace_Donor,
66  MaxFaceNodes_Donor;
67  unsigned long *Buffer_Receive_nVertex_Donor,
68  *Buffer_Receive_nFace_Donor,
69  *Buffer_Receive_nFaceNodes_Donor,
71  *Buffer_Send_nFace_Donor,
72  *Buffer_Send_nFaceNodes_Donor,
73  *Buffer_Receive_GlobalPoint,
74  *Buffer_Send_GlobalPoint,
75  *Buffer_Send_FaceIndex,
76  *Buffer_Receive_FaceIndex,
77  *Buffer_Send_FaceNodes,
78  *Buffer_Receive_FaceNodes,
79  *Buffer_Send_FaceProc,
80  *Buffer_Receive_FaceProc;
82  su2double *Buffer_Send_Coord,
84  *Buffer_Receive_Coord,
85  *Buffer_Receive_Normal;
89 public:
97  CInterpolator(void);
98 
106  CInterpolator(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone);
107 
111  virtual ~CInterpolator(void);
112 
118  int Find_InterfaceMarker(CConfig *config, unsigned short val_marker_interface);
119 
124  virtual void Set_TransferCoeff(CConfig **config);
125 
135  void Determine_ArraySize(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim);
136 
145  void Collect_VertexInfo(bool faces, int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim);
146 
147 
148 };
149 
154 public:
155 
159  CNearestNeighbor(void);
160 
168  CNearestNeighbor(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone);
169 
173  ~CNearestNeighbor(void);
174 
179  void Set_TransferCoeff(CConfig **config);
180 
181 };
182 
187 public:
188 
196  CIsoparametric(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone);
197 
201  ~CIsoparametric(void);
202 
207  void Set_TransferCoeff(CConfig **config);
208 
223  void Isoparameters(unsigned short nDim, unsigned short nDonor, su2double *X, su2double *xj,su2double* isoparams);
224 
225 };
226 
231 class CMirror : public CInterpolator {
232 public:
233 
244  CMirror(CGeometry ***geometry_container, CConfig **config, unsigned int iZone, unsigned int jZone);
245 
249  ~CMirror(void);
250 
255  void Set_TransferCoeff(CConfig **config);
256 
257 };
unsigned long * Buffer_Send_nVertex_Donor
Buffer to store the number of nodes associated with faces per processor.
Definition: interpolation_structure.hpp:67
Headers of the main subroutines for creating the geometrical structure. The subroutines and functions...
CGeometry *** Geometry
Buffer to receive normal vector values.
Definition: interpolation_structure.hpp:90
Mirror interpolation: copy point linking and coefficient values from the opposing mesh Assumes that t...
Definition: interpolation_structure.hpp:231
unsigned long nGlobalFace_Donor
Maximum vertices per processor.
Definition: interpolation_structure.hpp:62
All the information about the definition of the physical problem. The subroutines and functions are i...
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition: geometry_structure.hpp:72
CGeometry * donor_geometry
Vector which stores n zones of geometry.
Definition: interpolation_structure.hpp:91
Isoparametric interpolation.
Definition: interpolation_structure.hpp:186
Main class for defining the interpolator, it requires a child class for each particular interpolation...
Definition: interpolation_structure.hpp:57
Nearest Neighbor interpolation.
Definition: interpolation_structure.hpp:153
Headers for the classes related to linear solvers (CG, FGMRES, etc) The subroutines and functions are...
CGeometry * target_geometry
Vector which stores the donor geometry.
Definition: interpolation_structure.hpp:92
Main class for defining the problem; basically this class reads the configuration file...
Definition: config_structure.hpp:68
su2double * Buffer_Send_Normal
Buffer to send coordinate values.
Definition: interpolation_structure.hpp:82