SU2
Public Member Functions | List of all members
CHBDriver Class Reference

Class for driving an iteration of Harmonic Balance (HB) method problem using multiple time zones. More...

#include <driver_structure.hpp>

Inheritance diagram for CHBDriver:
CDriver

Public Member Functions

 CHBDriver (char *confFile, unsigned short val_nZone, unsigned short val_nDim, SU2_Comm MPICommunicator)
 Constructor of the class. More...
 
 ~CHBDriver (void)
 Destructor of the class.
 
void Run ()
 Run a single iteration of a Harmonic Balance problem.
 
void SetHarmonicBalance (unsigned short iZone)
 Computation and storage of the Harmonic Balance method source terms. More...
 
void ComputeHB_Operator ()
 Computation of the Harmonic Balance operator matrix for harmonic balance. More...
 
void Update ()
 Update the solution for the Harmonic Balance.
 
void ResetConvergence ()
 Reset the convergence flag (set to false) of the solver for the Harmonic Balance.
 
- Public Member Functions inherited from CDriver
 CDriver (char *confFile, unsigned short val_nZone, unsigned short val_nDim, SU2_Comm MPICommunicator)
 Constructor of the class. More...
 
virtual ~CDriver (void)
 Destructor of the class.
 
void Geometrical_Preprocessing ()
 Construction of the edge-based data structure and the multigrid structure.
 
void Iteration_Preprocessing ()
 Definition of the physics iteration class or within a single zone. More...
 
void Solver_Preprocessing (CSolver ***solver_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all solution classes. More...
 
void Solver_Postprocessing (CSolver ***solver_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all solution classes. More...
 
void Integration_Preprocessing (CIntegration **integration_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all integration classes. More...
 
void Integration_Postprocessing (CIntegration **integration_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all integration classes. More...
 
void Interface_Preprocessing ()
 Definition and allocation of all interface classes.
 
void Numerics_Preprocessing (CNumerics ****numerics_container, CSolver ***solver_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all solver classes. More...
 
void Numerics_Postprocessing (CNumerics ****numerics_container, CSolver ***solver_container, CGeometry **geometry, CConfig *config)
 Definition and allocation of all solver classes. More...
 
void Postprocessing ()
 Deallocation routine.
 
virtual void Predict_Displacements (unsigned short donorZone, unsigned short targetZone)
 A virtual member. More...
 
virtual void Predict_Tractions (unsigned short donorZone, unsigned short targetZone)
 A virtual member. More...
 
virtual void Transfer_Displacements (unsigned short donorZone, unsigned short targetZone)
 A virtual member. More...
 
virtual void Transfer_Tractions (unsigned short donorZone, unsigned short targetZone)
 A virtual member. More...
 
virtual void Relaxation_Displacements (unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter)
 A virtual member. More...
 
virtual void Relaxation_Tractions (unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter)
 A virtual member. More...
 
void StartSolver ()
 Launch the computation for all zones and all physics.
 
void PreprocessExtIter (unsigned long ExtIter)
 Perform some pre-processing before an iteration of the physics.
 
bool Monitor (unsigned long ExtIter)
 Monitor the computation.
 
void Output (unsigned long ExtIter)
 Output the solution in solution file.
 
virtual void DynamicMeshUpdate (unsigned long ExtIter)
 Perform a dynamic mesh deformation, including grid velocity computation and update of the multigrid structure.
 
virtual void StaticMeshUpdate ()
 Perform a static mesh deformation, without considering grid velocity.
 
virtual void SetInitialMesh ()
 Perform a mesh deformation as initial condition.
 
su2double Get_Drag ()
 Get the total drag. More...
 
su2double Get_Lift ()
 Get the total lift. More...
 
su2double Get_Mx ()
 Get the total x moment. More...
 
su2double Get_My ()
 Get the total y moment. More...
 
su2double Get_Mz ()
 Get the total z moment. More...
 
su2double Get_DragCoeff ()
 Get the total drag coefficient. More...
 
su2double Get_LiftCoeff ()
 Get the total lift coefficient. More...
 
unsigned short GetMovingMarker ()
 Get the moving marker identifier. More...
 
unsigned long GetNumberVertices (unsigned short iMarker)
 Get the number of vertices (halo nodes included) from a specified marker. More...
 
unsigned long GetNumberHaloVertices (unsigned short iMarker)
 Get the number of halo vertices from a specified marker. More...
 
bool IsAHaloNode (unsigned short iMarker, unsigned short iVertex)
 Check if a vertex is physical or not (halo node) on a specified marker. More...
 
unsigned long GetnExtIter ()
 Get the number of external iterations. More...
 
unsigned long GetVertexGlobalIndex (unsigned short iMarker, unsigned short iVertex)
 Get the global index of a vertex on a specified marker. More...
 
su2double GetVertexCoordX (unsigned short iMarker, unsigned short iVertex)
 Get the x coordinate of a vertex on a specified marker. More...
 
su2double GetVertexCoordY (unsigned short iMarker, unsigned short iVertex)
 Get the y coordinate of a vertex on a specified marker. More...
 
su2double GetVertexCoordZ (unsigned short iMarker, unsigned short iVertex)
 Get the z coordinate of a vertex on a specified marker. More...
 
bool ComputeVertexForces (unsigned short iMarker, unsigned short iVertex)
 Compute the total force (pressure and shear stress) at a vertex on a specified marker (3 components). More...
 
su2double GetVertexForceX (unsigned short iMarker, unsigned short iVertex)
 Get the x component of the force at a vertex on a specified marker. More...
 
su2double GetVertexForceY (unsigned short iMarker, unsigned short iVertex)
 Get the y component of the force at a vertex on a specified marker. More...
 
su2double GetVertexForceZ (unsigned short iMarker, unsigned short iVertex)
 Get the z component of the force at a vertex on a specified marker. More...
 
su2double GetVertexForceDensityX (unsigned short iMarker, unsigned short iVertex)
 Get the x component of the force density at a vertex on a specified marker. More...
 
su2double GetVertexForceDensityY (unsigned short iMarker, unsigned short iVertex)
 Get the y component of the force density at a vertex on a specified marker. More...
 
su2double GetVertexForceDensityZ (unsigned short iMarker, unsigned short iVertex)
 Get the z component of the force density at a vertex on a specified marker. More...
 
void SetVertexCoordX (unsigned short iMarker, unsigned short iVertex, su2double newPosX)
 Set the x coordinate of a vertex on a specified marker. More...
 
void SetVertexCoordY (unsigned short iMarker, unsigned short iVertex, su2double newPosY)
 Set the y coordinate of a vertex on a specified marker. More...
 
void SetVertexCoordZ (unsigned short iMarker, unsigned short iVertex, su2double newPosZ)
 Set the z coordinate of a vertex on a specified marker. More...
 
su2double SetVertexVarCoord (unsigned short iMarker, unsigned short iVertex)
 Set the VarCoord of a vertex on a specified marker. More...
 

Additional Inherited Members

- Protected Attributes inherited from CDriver
char * config_file_name
 Configuration file name of the problem.
 
char runtime_file_name [MAX_STRING_SIZE]
 
su2double StartTime
 Start point of the timer for performance benchmarking.
 
su2double StopTime
 Stop point of the timer for performance benchmarking.
 
su2double UsedTime
 Elapsed time between Start and Stop point of the timer.
 
unsigned long ExtIter
 External iteration.
 
ofstream ConvHist_file
 Convergence history file.
 
unsigned short iMesh
 Iterator on mesh levels.
 
unsigned short iZone
 Iterator on zones.
 
unsigned short nZone
 Total number of zones in the problem.
 
unsigned short nDim
 Number of dimensions.
 
bool StopCalc
 Stop computation flag.
 
bool fsi
 FSI simulation flag.
 
CIteration ** iteration_container
 Container vector with all the iteration methods.
 
COutputoutput
 Pointer to the COutput class.
 
CIntegration *** integration_container
 Container vector with all the integration methods.
 
CGeometry *** geometry_container
 Geometrical definition of the problem.
 
CSolver **** solver_container
 Container vector with all the solutions.
 
CNumerics ***** numerics_container
 Description of the numerical method (the way in which the equations are solved).
 
CConfig ** config_container
 Definition of the particular problem.
 
CSurfaceMovement ** surface_movement
 Surface movement classes of the problem.
 
CVolumetricMovement ** grid_movement
 Volume grid movement classes of the problem.
 
CFreeFormDefBox *** FFDBox
 FFD FFDBoxes of the problem.
 
CInterpolator *** interpolator_container
 Definition of the interpolation method between non-matching discretizations of the interface.
 
CTransfer *** transfer_container
 Definition of the transfer of information and the physics involved in the interface.
 
su2double APIVarCoord [3]
 This is used to store the VarCoord of each node.
 
su2double APINodalForce [3]
 This is used to store the force at each node.
 
su2double APINodalForceDensity [3]
 This is used to store the force density at each node.
 

Detailed Description

Class for driving an iteration of Harmonic Balance (HB) method problem using multiple time zones.

Author
T. Economon
Version
5.0.0 "Raven"

Constructor & Destructor Documentation

§ CHBDriver()

CHBDriver::CHBDriver ( char *  confFile,
unsigned short  val_nZone,
unsigned short  val_nDim,
SU2_Comm  MPICommunicator 
)

Constructor of the class.

Parameters
[in]confFile- Configuration file name.
[in]val_nZone- Total number of zones.
[in]val_nDim- Number of dimensions.
[in]MPICommunicator- MPI communicator for SU2.

Member Function Documentation

§ ComputeHB_Operator()

void CHBDriver::ComputeHB_Operator ( )

Computation of the Harmonic Balance operator matrix for harmonic balance.

Author
A. Rubino, S. Nimmagadda

§ SetHarmonicBalance()

void CHBDriver::SetHarmonicBalance ( unsigned short  iZone)

Computation and storage of the Harmonic Balance method source terms.

Author
T. Economon, K. Naik
Parameters
[in]iZone- Current zone number.

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