SU2
transfer_structure.hpp
Go to the documentation of this file.
1 
35 #pragma once
36 
37 #include "../../Common/include/mpi_structure.hpp"
38 
39 #include <cmath>
40 #include <string>
41 #include <fstream>
42 #include <sstream>
43 #include <algorithm>
44 #include <iostream>
45 #include <stdlib.h>
46 #include <stdio.h>
47 
48 #include "../../Common/include/config_structure.hpp"
49 #include "../../Common/include/geometry_structure.hpp"
50 #include "../../Common/include/vector_structure.hpp"
51 #include "solver_structure.hpp"
52 
53 using namespace std;
54 
62 class CTransfer {
63 protected:
64 
65  su2double *Physical_Constants;
66  su2double *Donor_Variable;
67  su2double *Target_Variable;
68 
69  unsigned short nVar;
70 
71 public:
75  CTransfer(void);
76 
83  CTransfer(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
84 
88  virtual ~CTransfer(void);
89 
99  void Scatter_InterfaceData(CSolver *donor_solution, CSolver *target_solution,
100  CGeometry *donor_geometry, CGeometry *target_geometry,
101  CConfig *donor_config, CConfig *target_config);
102 
112  void Broadcast_InterfaceData_Matching(CSolver *donor_solution, CSolver *target_solution,
113  CGeometry *donor_geometry, CGeometry *target_geometry,
114  CConfig *donor_config, CConfig *target_config);
115 
125  void Broadcast_InterfaceData_Interpolate(CSolver *donor_solution, CSolver *target_solution,
126  CGeometry *donor_geometry, CGeometry *target_geometry,
127  CConfig *donor_config, CConfig *target_config);
128 
138  void Allgather_InterfaceData(CSolver *donor_solution, CSolver *target_solution,
139  CGeometry *donor_geometry, CGeometry *target_geometry,
140  CConfig *donor_config, CConfig *target_config);
141 
146  virtual void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
147  CGeometry *donor_geometry, CGeometry *target_geometry,
148  CConfig *donor_config, CConfig *target_config);
157  virtual void GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry,
158  CConfig *donor_config, unsigned long Marker_Donor,
159  unsigned long Vertex_Donor, unsigned long Point_Donor);
160 
170  virtual void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry,
171  CConfig *target_config, unsigned long Marker_Target,
172  unsigned long Vertex_Target, unsigned long Point_Target);
173 
174 };
175 
184 
185 protected:
186 
187 public:
188 
193 
199  CTransfer_FlowTraction(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
200 
204  virtual ~CTransfer_FlowTraction(void);
205 
215  void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
216  CGeometry *donor_geometry, CGeometry *target_geometry,
217  CConfig *donor_config, CConfig *target_config);
218 
227  void GetDonor_Variable(CSolver *flow_solution, CGeometry *flow_geometry, CConfig *flow_config,
228  unsigned long Marker_Flow, unsigned long Vertex_Flow, unsigned long Point_Flow);
229 
239  void SetTarget_Variable(CSolver *fea_solution, CGeometry *fea_geometry,
240  CConfig *fea_config, unsigned long Marker_Struct,
241  unsigned long Vertex_Struct, unsigned long Point_Struct);
242 
243 };
244 
253 
254 protected:
255 
256 public:
257 
262 
268  CTransfer_StructuralDisplacements(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
269 
273  virtual ~CTransfer_StructuralDisplacements(void);
274 
284  void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
285  CGeometry *donor_geometry, CGeometry *target_geometry,
286  CConfig *donor_config, CConfig *target_config);
287 
296  void GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config,
297  unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct);
298 
308  void SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry,
309  CConfig *flow_config, unsigned long Marker_Flow,
310  unsigned long Vertex_Flow, unsigned long Point_Flow);
311 
312 };
313 
322 
323 protected:
324 
325 public:
326 
331 
337  CTransfer_StructuralDisplacements_Original(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
338 
343 
353  void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
354  CGeometry *donor_geometry, CGeometry *target_geometry,
355  CConfig *donor_config, CConfig *target_config);
356 
365  void GetDonor_Variable(CSolver *struct_solution, CGeometry *struct_geometry, CConfig *struct_config,
366  unsigned long Marker_Struct, unsigned long Vertex_Struct, unsigned long Point_Struct);
367 
377  void SetTarget_Variable(CSolver *flow_solution, CGeometry *flow_geometry,
378  CConfig *flow_config, unsigned long Marker_Flow,
379  unsigned long Vertex_Flow, unsigned long Point_Flow);
380 
381 };
382 
391 
392 protected:
393 
394 public:
395 
400 
406  CTransfer_ConservativeVars(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
407 
411  virtual ~CTransfer_ConservativeVars(void);
412 
422  void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
423  CGeometry *donor_geometry, CGeometry *target_geometry,
424  CConfig *donor_config, CConfig *target_config);
425 
435  void GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, CConfig *donor_config,
436  unsigned long Marker_Donor, unsigned long Vertex_Donor, unsigned long Point_Donor);
437 
447  void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, CConfig *target_config,
448  unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target);
449 
450 
451 };
452 
453 
454 
463 
464 protected:
465 
466 public:
467 
472 
478  CTransfer_SlidingInterface(unsigned short val_nVar, unsigned short val_nConst, CConfig *config);
479 
483  virtual ~CTransfer_SlidingInterface(void);
484 
494  void GetPhysical_Constants(CSolver *donor_solution, CSolver *target_solution,
495  CGeometry *donor_geometry, CGeometry *target_geometry,
496  CConfig *donor_config, CConfig *target_config);
497 
507  void GetDonor_Variable(CSolver *donor_solution, CGeometry *donor_geometry, CConfig *donor_config,
508  unsigned long Marker_Donor, unsigned long Vertex_Donor, unsigned long Point_Donor);
509 
519  void SetTarget_Variable(CSolver *target_solution, CGeometry *target_geometry, CConfig *target_config,
520  unsigned long Marker_Target, unsigned long Vertex_Target, unsigned long Point_Target);
521 
522 
523 };
524 
525 
526 
527 
528 
529 
530 
531 #include "transfer_structure.inl"
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition: geometry_structure.hpp:72
Main class for defining the physical transfer of information.
Definition: transfer_structure.hpp:62
Main class for defining the PDE solution, it requires a child class for each particular solver (Euler...
Definition: solver_structure.hpp:71
Transfer flow tractions from a fluid zone into a structural zone.
Definition: transfer_structure.hpp:183
Transfer structural displacements from a structural zone into a fluid zone (legacy method...
Definition: transfer_structure.hpp:321
Transfer conservative variables from a generic zone into another.
Definition: transfer_structure.hpp:462
Transfer conservative variables from a generic zone into another.
Definition: transfer_structure.hpp:390
Transfer structural displacements from a structural zone into a fluid zone.
Definition: transfer_structure.hpp:252
Headers of the main subroutines for solving partial differential equations. The subroutines and funct...
In-Line subroutines of the transfer_structure.hpp file.
Main class for defining the problem; basically this class reads the configuration file...
Definition: config_structure.hpp:68