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

Class for driving a BGS iteration for a fluid-structure interaction problem in multiple zones. More...

#include <driver_structure.hpp>

Inheritance diagram for CFSIDriver:
CDriver

Public Member Functions

 CFSIDriver (char *confFile, unsigned short val_nZone, unsigned short val_nDim, SU2_Comm MPICommunicator)
 Constructor of the class. More...
 
 ~CFSIDriver (void)
 Destructor of the class.
 
void Run ()
 Run a Block Gauss-Seidel iteration of the FSI problem.
 
void Predict_Displacements (unsigned short donorZone, unsigned short targetZone)
 Predict the structural displacements to pass them into the fluid solver on a BGS implementation. More...
 
void Predict_Tractions (unsigned short donorZone, unsigned short targetZone)
 Predict the fluid tractions to pass them into the structural solver on a BGS implementation. More...
 
void Transfer_Displacements (unsigned short donorZone, unsigned short targetZone)
 Transfer the displacements computed on the structural solver into the fluid solver. More...
 
void Transfer_Tractions (unsigned short donorZone, unsigned short targetZone)
 Transfer the tractions computed on the fluid solver into the structural solver. More...
 
void Relaxation_Displacements (unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter)
 Apply a relaxation method into the computed displacements. More...
 
void Relaxation_Tractions (unsigned short donorZone, unsigned short targetZone, unsigned long iFSIIter)
 Apply a relaxation method into the computed tractions. More...
 
void Update (unsigned short zoneFlow, unsigned short zoneStruct)
 Enforce the coupling condition at the end of the time step. More...
 
- 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 Update ()
 A virtual member.
 
void StartSolver ()
 Launch the computation for all zones and all physics.
 
virtual void ResetConvergence ()
 A virtual member.
 
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 a BGS iteration for a fluid-structure interaction problem in multiple zones.

Author
R. Sanchez.
Version
5.0.0 "Raven"

Constructor & Destructor Documentation

§ CFSIDriver()

CFSIDriver::CFSIDriver ( 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]MPICommunicator- MPI communicator for SU2.

Member Function Documentation

§ Predict_Displacements()

void CFSIDriver::Predict_Displacements ( unsigned short  donorZone,
unsigned short  targetZone 
)
virtual

Predict the structural displacements to pass them into the fluid solver on a BGS implementation.

Parameters
[in]donorZone- zone in which the displacements will be predicted.
[in]targetZone- zone which receives the predicted displacements.

Reimplemented from CDriver.

§ Predict_Tractions()

void CFSIDriver::Predict_Tractions ( unsigned short  donorZone,
unsigned short  targetZone 
)
virtual

Predict the fluid tractions to pass them into the structural solver on a BGS implementation.

Parameters
[in]donorZone- zone in which the tractions will be predicted.
[in]targetZone- zone which receives the predicted traction.

Reimplemented from CDriver.

§ Relaxation_Displacements()

void CFSIDriver::Relaxation_Displacements ( unsigned short  donorZone,
unsigned short  targetZone,
unsigned long  iFSIIter 
)
virtual

Apply a relaxation method into the computed displacements.

Parameters
[in]donorZone- origin of the information.
[in]targetZone- destination of the information.
[in]iFSIIter- Fluid-Structure Interaction subiteration.

Reimplemented from CDriver.

§ Relaxation_Tractions()

void CFSIDriver::Relaxation_Tractions ( unsigned short  donorZone,
unsigned short  targetZone,
unsigned long  iFSIIter 
)
virtual

Apply a relaxation method into the computed tractions.

Parameters
[in]donorZone- origin of the information.
[in]targetZone- destination of the information.
[in]iFSIIter- Fluid-Structure Interaction subiteration.

Reimplemented from CDriver.

§ Transfer_Displacements()

void CFSIDriver::Transfer_Displacements ( unsigned short  donorZone,
unsigned short  targetZone 
)
virtual

Transfer the displacements computed on the structural solver into the fluid solver.

Parameters
[in]donorZone- zone in which the displacements will be transferred.
[in]targetZone- zone which receives the tractions transferred.

Reimplemented from CDriver.

§ Transfer_Tractions()

void CFSIDriver::Transfer_Tractions ( unsigned short  donorZone,
unsigned short  targetZone 
)
virtual

Transfer the tractions computed on the fluid solver into the structural solver.

Parameters
[in]donorZone- zone from which the tractions will be transferred.
[in]targetZone- zone which receives the tractions transferred.

Reimplemented from CDriver.

§ Update()

void CFSIDriver::Update ( unsigned short  zoneFlow,
unsigned short  zoneStruct 
)

Enforce the coupling condition at the end of the time step.

Parameters
[in]zoneFlow- zone of the flow equations.
[in]zoneStruct- zone of the structural equations.

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