Documentation 6b54b78464
Loading...
Searching...
No Matches
CMultizoneDriver Class Reference

Class for driving zone-specific iterations. More...

#include <CMultizoneDriver.hpp>

Inheritance diagram for CMultizoneDriver:
[legend]

Public Member Functions

 CMultizoneDriver (char *confFile, unsigned short val_nZone, SU2_Comm MPICommunicator)
 Constructor of the class.
 
 ~CMultizoneDriver () override
 Destructor of the class.
 
void StartSolver () override
 [Overload] Launch the computation for multizone problems.
 
void Preprocess (unsigned long TimeIter) override
 Preprocess the multizone iteration.
 
void Run () override
 Solves one time iteration.
 
void Postprocess ()
 Placeholder for post processing operations to make the interface of this driver identical to CSinglezoneDriver.
 
void Update () override
 Update the dual-time solution within multiple zones.
 
void Output (unsigned long TimeIter) override
 Output the solution in solution file.
 
void DynamicMeshUpdate (unsigned long TimeIter) override
 Perform a dynamic mesh deformation, included grid velocity computation and the update of the multigrid structure (multiple zone).
 
bool Monitor (unsigned long TimeIter) override
 Check if simulation converged and return appropriate boolean.
 
- Public Member Functions inherited from CDriver
 CDriver (char *confFile, unsigned short val_nZone, SU2_Comm MPICommunicator, bool dummy_geo)
 Constructor of the class.
 
 ~CDriver (void) override
 Destructor of the class.
 
template<class Container , bool Old = false>
void SetAllSolutions (unsigned short iZone, bool adjoint, const Container &solution)
 Set the solution of all solvers (adjoint or primal) in a zone.
 
template<class Container >
void SetAllSolutionsOld (unsigned short iZone, bool adjoint, const Container &solution)
 Set the "old solution" of all solvers (adjoint or primal) in a zone.
 
template<class Container >
void GetAllSolutions (unsigned short iZone, bool adjoint, Container &solution) const
 Get the solution of all solvers (adjoint or primal) in a zone.
 
unsigned short GetTotalNumberOfVariables (unsigned short iZone, bool adjoint) const
 Sum the number of primal or adjoint variables for all solvers in a given zone.
 
void Finalize () override
 Deallocation routine.
 
virtual void SetInitialMesh ()
 Perform a mesh deformation as initial condition.
 
void BoundaryConditionsUpdate ()
 Process the boundary conditions and update the multi-grid structure.
 
unsigned long GetNumberTimeIter () const
 Get the number of time iterations.
 
unsigned long GetTimeIter () const
 Get the current time iteration.
 
passivedouble GetUnsteadyTimeStep () const
 Get the unsteady time step.
 
string GetSurfaceFileName () const
 Get the name of the output file for the surface.
 
void SetHeatSourcePosition (passivedouble alpha, passivedouble pos_x, passivedouble pos_y, passivedouble pos_z)
 Set the position of the heat source.
 
void SetInletAngle (unsigned short iMarker, passivedouble alpha)
 Set the direction of the inlet.
 
void SetFarFieldAoA (passivedouble alpha)
 Set the angle of attack of the farfield.
 
void SetFarFieldAoS (passivedouble beta)
 Set the angle of sideslip of the farfield.
 
void SetTranslationRate (passivedouble xDot, passivedouble yDot, passivedouble zDot)
 Set the dynamic mesh translation rates.
 
void SetRotationRate (passivedouble rot_x, passivedouble rot_y, passivedouble rot_z)
 Set the dynamic mesh rotation rates.
 
void SetMarkerRotationRate (unsigned short iMarker, passivedouble rot_x, passivedouble rot_y, passivedouble rot_z)
 Set the moving wall marker rotation rates.
 
void SetMarkerTranslationRate (unsigned short iMarker, passivedouble vel_x, passivedouble vel_y, passivedouble vel_z)
 Set the moving wall marker translation rates.
 
passivedouble GetDensityFreeStreamND () const
 Get the Freestream Density for nondimensionalization.
 
passivedouble GetForceRef () const
 Get the reference Body force for nondimensionalization.
 
- Public Member Functions inherited from CDriverBase
 CDriverBase (char *confFile, unsigned short val_nZone, SU2_Comm MPICommunicator)
 Constructor of the class.
 
virtual ~CDriverBase (void)
 Destructor of the class.
 
vector< string > GetOutputNames () const
 Get the list of available outputs.
 
passivedouble GetOutputValue (const std::string &output_name) const
 Get the value of one of the available history outputs.
 
vector< string > GetMarkerOutputNames () const
 Get the list of available surface outputs on both MARKER_MONITORING and MARKER_ANALYZE.
 
passivedouble GetMarkerMonitoringOutputValue (const std::string &output_name, const std::string &marker_monitoring) const
 Get the value of one of the available surface outputs at a given MARKER_MONITORING.
 
passivedouble GetMarkerAnalyzeOutputValue (const std::string &output_name, const std::string &marker_analyze) const
 Get the value of one of the available surface outputs at a given MARKER_ANALYZE.
 
unsigned short GetNumberDesignVariables () const
 Get the number of design variables.
 
unsigned short GetNumberFFDBoxes () const
 Get the number of FFD boxes.
 
unsigned long GetNumberDimensions () const
 Get the number of dimensions of the mesh.
 
unsigned long GetNumberElements () const
 Get the number of elements in the mesh.
 
unsigned long GetElementGlobalIndex (unsigned long iElem) const
 Get the global index of a mesh element.
 
vector< unsigned long > GetElementNodes (unsigned long iElem) const
 Get the node indices of a mesh element.
 
unsigned long GetNumberNodes () const
 Get the number of nodes in the mesh (including halos).
 
unsigned long GetNumberHaloNodes () const
 Get the number of halo nodes in the mesh.
 
unsigned long GetNodeGlobalIndex (unsigned long iPoint) const
 Get the global node index.
 
bool GetNodeDomain (unsigned long iPoint) const
 Get the halo flag of a mesh node.
 
CPyWrapperMatrixView InitialCoordinates () const
 Get a read-only view of the initial (undeformed) coordinates of all mesh nodes.
 
CPyWrapperMarkerMatrixView MarkerInitialCoordinates (unsigned short iMarker) const
 Get a read-only view of the initial (undeformed) coordinates of the mesh nodes of a marker.
 
CPyWrapperMatrixView Coordinates ()
 Get a read/write view of the current coordinates of all mesh nodes.
 
CPyWrapperMarkerMatrixView MarkerCoordinates (unsigned short iMarker)
 Get a read/write view of the current coordinates of the mesh nodes of a marker.
 
unsigned short GetNumberMarkers () const
 Get the number of markers in the mesh.
 
map< string, unsigned short > GetMarkerIndices () const
 Get all the boundary markers tags with their associated indices.
 
map< string, string > GetMarkerTypes () const
 Get all the boundary markers tags with their associated types.
 
vector< string > GetMarkerTags () const
 Get all the boundary marker tags.
 
vector< string > GetDeformableMarkerTags () const
 Get all the deformable boundary marker tags.
 
vector< string > GetCHTMarkerTags () const
 Get all the CHT boundary marker tags.
 
vector< string > GetInletMarkerTags () const
 Get all the inlet boundary marker tags.
 
unsigned long GetNumberMarkerElements (unsigned short iMarker) const
 Get the number of elements in the marker.
 
unsigned long GetMarkerElementGlobalIndex (unsigned short iMarker, unsigned long iElem) const
 Get the global index of a marker element.
 
vector< unsigned long > GetMarkerElementNodes (unsigned short iMarker, unsigned long iElem) const
 Get the node indices of a marker element.
 
unsigned long GetNumberMarkerNodes (unsigned short iMarker) const
 Get the number of nodes in the marker.
 
unsigned long GetMarkerNode (unsigned short iMarker, unsigned long iVertex) const
 Get the node index of a marker.
 
vector< passivedouble > GetMarkerVertexNormals (unsigned short iMarker, unsigned long iVertex, bool normalize=false) const
 Get the normal vector of a marker vertex.
 
vector< passivedouble > GetMarkerDisplacement (unsigned short iMarker, unsigned long iVertex) const
 Get the displacements currently imposed of a marker vertex.
 
void SetMarkerCustomDisplacement (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > values)
 Set the mesh displacements of a marker vertex.
 
vector< passivedouble > GetMarkerMeshVelocity (unsigned short iMarker, unsigned long iVertex) const
 Get the mesh velocities currently imposed on a marker vertex.
 
void SetMarkerCustomMeshVelocity (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > values)
 Set the velocities of a marker vertex.
 
void CommunicateMeshDisplacements (void)
 Communicate the boundary mesh displacements.
 
map< string, unsigned short > GetSolverIndices () const
 Get all the active solver names with their associated indices (which can be used to access their data).
 
map< string, unsigned short > GetFEASolutionIndices () const
 Get the structural solver solution variable names with their associated indices. These correspond to the column indices in the matrix returned by e.g. Solution().
 
CPyWrapperMatrixView Solution (unsigned short iSolver)
 Get a read/write view of the current solution on all mesh nodes of a solver.
 
CPyWrapper3DMatrixView Gradient (unsigned short iSolver)
 Get read/write view of the gradients of a solver variable in a point.
 
CPyWrapperMatrixView UserDefinedSource (unsigned short iSolver)
 Get a read/write view of the user defined source on all mesh nodes of a solver.
 
CPyWrapperMarkerMatrixView MarkerSolution (unsigned short iSolver, unsigned short iMarker)
 Get a read/write view of the current solution on the mesh nodes of a marker.
 
CPyWrapperMatrixView SolutionTimeN (unsigned short iSolver)
 Get a read/write view of the solution at time N on all mesh nodes of a solver.
 
CPyWrapperMarkerMatrixView MarkerSolutionTimeN (unsigned short iSolver, unsigned short iMarker)
 Get a read/write view of the solution at time N on the mesh nodes of a marker.
 
CPyWrapperMatrixView SolutionTimeN1 (unsigned short iSolver)
 Get a read/write view of the solution at time N-1 on all mesh nodes of a solver.
 
CPyWrapperMarkerMatrixView MarkerSolutionTimeN1 (unsigned short iSolver, unsigned short iMarker)
 Get a read/write view of the solution at time N-1 on the mesh nodes of a marker.
 
map< string, unsigned short > GetPrimitiveIndices () const
 Get the flow solver primitive variable names with their associated indices. These correspond to the column indices in the matrix returned by Primitives.
 
CPyWrapperMatrixView Primitives ()
 Get a read/write view of the current primitive variables on all mesh nodes of the flow solver.
 
CPyWrapperMarkerMatrixView MarkerPrimitives (unsigned short iMarker)
 Get a read/write view of the current primitive variables on the mesh nodes of a marker.
 
CPyWrapperMatrixView Sensitivity (unsigned short iSolver)
 Get a read-only view of the geometry sensitivity of a discrete adjoint solver.
 
void SetMarkerCustomTemperature (unsigned short iMarker, unsigned long iVertex, passivedouble WallTemp)
 Set the temperature of a vertex on a specified marker (MARKER_PYTHON_CUSTOM).
 
void SetMarkerCustomNormalHeatFlux (unsigned short iMarker, unsigned long iVertex, passivedouble WallHeatFlux)
 Set the wall normal heat flux at a vertex on a specified marker (MARKER_PYTHON_CUSTOM).
 
void SetMarkerCustomScalar (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > WallScalar)
 Set the wall normal scalar values at a vertex on a specified marker (MARKER_PYTHON_CUSTOM).
 
void SelectZone (unsigned short iZone)
 Selects zone to be used for python driver operations.
 
unsigned short SelectedZone () const
 Returns the index of the zone selected for python driver operations.
 
passivedouble GetMarkerNormalHeatFlux (unsigned short iSolver, unsigned short iMarker, unsigned long iVertex) const
 Get the wall normal heat flux at a vertex on a specified marker of the flow or heat solver.
 
void SetMarkerCustomFEALoad (unsigned short iMarker, unsigned long iVertex, std::vector< passivedouble > force)
 Sets the nodal force for the structural solver at a vertex of a marker.
 
vector< passivedouble > GetMarkerFlowLoad (unsigned short iMarker, unsigned long iVertex) const
 Get the fluid force at a vertex of a solid wall marker of the flow solver.
 
void SetMarkerCustomFlowLoadAdjoint (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > adjointLoad)
 Set the adjoint of the flow tractions of the flow solver.
 
vector< passivedouble > GetMarkerDisplacementSensitivity (unsigned short iMarker, unsigned long iVertex) const
 Get the sensitivities of the displacements of the mesh boundary vertices.
 
vector< passivedouble > GetMarkerFEALoadSensitivity (unsigned short iMarker, unsigned long iVertex) const
 Get the sensitivity of the FEA loads of the structural solver (via the adjoint structural solver).
 
void SetMarkerCustomFEADisplacementAdjoint (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > adjointDisplacement)
 Set the adjoint of the structural displacements.
 
void SetMarkerCustomFEAVelocityAdjoint (unsigned short iMarker, unsigned long iVertex, vector< passivedouble > adjointVelocity)
 Set the adjoint of the structural velocities.
 
void SetMarkerCustomInletFlowVar0 (unsigned short iMarker, unsigned long iVertex, passivedouble value)
 Set the first variable in MARKER_INLET (usually temperature).
 
void SetMarkerCustomInletFlowVar1 (unsigned short iMarker, unsigned long iVertex, passivedouble value)
 Set the second variable in MARKER_INLET (usually total pressure).
 
void SetMarkerCustomInletFlowDirection (unsigned short iMarker, unsigned long iVertex, std::vector< passivedouble > values)
 Set the flow direction vector (does not need to be a unit vector).
 

Protected Member Functions

void DynamicMeshUpdate (unsigned short val_iZone, unsigned long TimeIter)
 Perform a dynamic mesh deformation, including grid velocity computation and update of the multigrid structure.
 
void Corrector (unsigned short val_iZone)
 Use a corrector step to prevent convergence issues.
 
void RunGaussSeidel ()
 Run a Block Gauss-Seidel iteration in all physical zones.
 
void RunJacobi ()
 Run a Block-Jacobi iteration in all physical zones.
 
bool TransferData (unsigned short donorZone, unsigned short targetZone)
 Routine to provide all the desired physical transfers between the different zones during one iteration.
 
bool OuterConvergence (unsigned long OuterIter)
 Check the convergence at the outer level.
 
virtual bool GetTimeConvergence () const
 Returns whether all specified windowed-time-averaged ouputs have been converged.
 
- Protected Member Functions inherited from CDriver
void InitializeContainers ()
 Initialize containers.
 
void PreprocessInput (CConfig **&config, CConfig *&driver_config)
 Read in the config and mesh files.
 
void InitializeGeometry (CConfig *config, CGeometry **&geometry, bool dummy)
 Construction of the edge-based data structure and the multi-grid structure.
 
void InitializeGeometryDGFEM (CConfig *config, CGeometry **&geometry)
 Do the geometrical preprocessing for the DG FEM solver.
 
void InitializeGeometryFVM (CConfig *config, CGeometry **&geometry)
 InitializeGeometryFVM.
 
void PreprocessIteration (CConfig *config, CIteration *&iteration) const
 Definition of the physics iteration class or within a single zone.
 
void InitializeSolver (CConfig *config, CGeometry **geometry, CSolver ***&solver)
 Definition and allocation of all solution classes.
 
void PreprocessInlet (CSolver ***solver, CGeometry **geometry, CConfig *config) const
 Preprocess the inlets via file input for all solvers.
 
void RestartSolver (CSolver ***solver, CGeometry **geometry, CConfig *config, bool update_geo)
 Restart of the solvers from the restart files.
 
void FinalizeSolver (CSolver ****solver, CGeometry **geometry, CConfig *config, unsigned short val_iInst)
 Definition and allocation of all solution classes.
 
void InitializeIntegration (CConfig *config, CSolver **solver, CIntegration **&integration) const
 Definition and allocation of all integration classes.
 
void FinalizeIntegration (CIntegration ***integration, CGeometry **geometry, CConfig *config, unsigned short val_iInst)
 Definition and allocation of all integration classes.
 
void InitializeInterface (CConfig **config, CSolver *****solver, CGeometry ****geometry, unsigned short **interface_types, CInterface ***interface, vector< vector< unique_ptr< CInterpolator > > > &interpolation)
 Definition and allocation of all interface classes.
 
void InitializeNumerics (CConfig *config, CGeometry **geometry, CSolver ***solver, CNumerics ****&numerics) const
 Definition and allocation of all solver classes.
 
template<class FlowIndices >
void InstantiateTurbulentNumerics (unsigned short nVar_Turb, int offset, const CConfig *config, const CSolver *turb_solver, CNumerics ****&numerics) const
 Helper to instantiate turbulence numerics specialized for different flow solvers.
 
template<class FlowIndices >
void InstantiateTransitionNumerics (unsigned short nVar_Trans, int offset, const CConfig *config, const CSolver *trans_solver, CNumerics ****&numerics) const
 Helper to instantiate transition numerics specialized for different flow solvers.
 
template<class FlowIndices >
void InstantiateSpeciesNumerics (unsigned short nVar_Species, int offset, const CConfig *config, const CSolver *species_solver, CNumerics ****&numerics) const
 Helper to instantiate species transport numerics specialized for different flow solvers.
 
void FinalizeNumerics (CNumerics *****numerics, CSolver ***solver, CGeometry **geometry, CConfig *config, unsigned short val_iInst)
 Definition and allocation of all solver classes.
 
void PreprocessDynamicMesh (CConfig *config, CGeometry **geometry, CSolver ***solver, CIteration *iteration, CVolumetricMovement *&grid_movement, CSurfaceMovement *&surface_movement) const
 GridMovement_Preprocessing.
 
void PreprocessPythonInterface (CConfig **config, CGeometry ****geometry, CSolver *****solver)
 Initialize Python interface functionalities. When using multigrid, it is important to call this after modifying custom boundary values.
 
void PreprocessOutput (CConfig **config, CConfig *driver_config, COutput **&output_container, COutput *&driver_output)
 Preprocess the output container.
 
void PreprocessStaticMesh (const CConfig *config, CGeometry **geometry)
 Initiate value for static mesh movement such as the gridVel for the ROTATING frame.
 
void PreprocessTurbomachinery (CConfig **config, CGeometry ****geometry, CSolver *****solver, CInterface ***interface, CIteration ***iteration, bool dummy)
 Initiate value for static mesh movement such as the gridVel for the ROTATING frame.
 
void PreprocessTurboVertex (CConfig **config, CGeometry ****geometry, CSolver *****solver, CInterface ***interface, CIteration ***iteration, bool dummy)
 
virtual void PredictDisplacements (unsigned short donorZone, unsigned short targetZone)
 A virtual member.
 
virtual void PredictTractions (unsigned short donorZone, unsigned short targetZone)
 A virtual member.
 
virtual void TransferDisplacements (unsigned short donorZone, unsigned short targetZone)
 A virtual member.
 
virtual void TransferTractions (unsigned short donorZone, unsigned short targetZone)
 A virtual member.
 
virtual void RelaxationDisplacements (unsigned short donorZone, unsigned short targetZone, unsigned long iOuterIter)
 A virtual member.
 
virtual void RelaxationTractions (unsigned short donorZone, unsigned short targetZone, unsigned long iOuterIter)
 A virtual member.
 
void PrintDirectResidual (RECORDING kind_recording)
 Print out the direct residuals.
 
- Protected Member Functions inherited from CDriverBase
CSolver * GetSolverAndCheckMarker (unsigned short iSolver, unsigned short iMarker=std::numeric_limits< unsigned short >::max()) const
 Automates some boilerplate of accessing solution fields for the python wrapper.
 
void InitializeContainers ()
 Initialize containers.
 
void CommonFinalize ()
 Delete containers.
 
void InputPreprocessing (CConfig **&config, CConfig *&driver_config)
 Read in the config and mesh files.
 
void InitializeGeometry (CConfig *config, CGeometry **&geometry, bool dummy)
 Construction of the edge-based data structure and the multi-grid structure.
 
void InitializeSolver (CConfig *config, CGeometry **geometry, CSolver ***&solver)
 Definition and allocation of all solution classes.
 
void InitializeNumerics (CConfig *config, CGeometry **geometry, CSolver ***solver, CNumerics ****&numerics) const
 Definition and allocation of all solver classes.
 
void OutputPreprocessing (CConfig **config, CConfig *driver_config, COutput **&output_container, COutput *&driver_output)
 Preprocess the output container.
 

Protected Attributes

bool fsi
 
bool cht
 
unsigned long TimeIter
 
unsigned short * nVarZone
 
su2double ** init_res
 Stores the initial residual.
 
su2double ** residual
 Stores the current residual.
 
su2double ** residual_rel
 Stores the residual relative to the initial.
 
su2double flow_criteria
 
su2double flow_criteria_rel
 
su2double structure_criteria
 
su2double structure_criteria_rel
 
bool * prefixed_motion
 Determines if a fixed motion is imposed in the config file.
 
- Protected Attributes inherited from CDriver
su2double UsedTimeOutput
 Elapsed time between Start and Stop point of the timer for tracking output phase.
 
su2double BandwidthSum
 Aggregate value of the bandwidth for writing restarts (to be average later).
 
unsigned long IterCount
 Iteration count stored for performance benchmarking.
 
unsigned long OutputCount
 Output count stored for performance benchmarking.
 
unsigned long DOFsPerPoint
 Number of unknowns at each vertex, i.e., number of equations solved.
 
su2double Mpoints
 Total number of grid points in millions in the calculation (including ghost points).
 
su2double MpointsDomain
 Total number of grid points in millions in the calculation (excluding ghost points).
 
su2double MDOFs
 Total number of DOFs in millions in the calculation (including ghost points).
 
su2double MDOFsDomain
 Total number of DOFs in millions in the calculation (excluding ghost points).
 
bool StopCalc
 Stop computation flag.
 
bool mixingplane
 mixing-plane simulation flag.
 
bool fsi
 FSI simulation flag.
 
bool fem_solver
 FEM fluid solver simulation flag.
 
CFreeFormDefBox *** FFDBox
 FFD FFDBoxes of the problem.
 
CIteration *** iteration_container
 Container vector with all the iteration methods.
 
CIntegration **** integration_container
 Container vector with all the integration methods.
 
vector< vector< unique_ptr< CInterpolator > > > interpolator_container
 Definition of the interpolation method between non-matching discretizations of the interface.
 
CInterface *** interface_container
 Definition of the interface of information and physics.
 
unsigned short ** interface_types
 Type of coupling between the distinct (physical) zones.
 
bool dry_run
 Flag if SU2_CFD was started as dry-run via "SU2_CFD -d <config>.cfg".
 
- Protected Attributes inherited from CDriverBase
int rank
 MPI Rank.
 
int size
 MPI Size.
 
char * config_file_name
 Configuration file name of the problem.
 
su2double StartTime
 Start point of the timer for performance benchmarking.
 
su2double StopTime
 Stop point of the timer for performance benchmarking.
 
su2double UsedTimePreproc
 Elapsed time between Start and Stop point of the timer for tracking preprocessing phase.
 
su2double UsedTimeCompute
 Elapsed time between Start and Stop point of the timer for tracking compute phase.
 
su2double UsedTime
 Elapsed time between Start and Stop point of the timer.
 
unsigned long TimeIter
 
unsigned short selected_zone = ZONE_0
 Selected zone for the driver. Defaults to ZONE_0.
 
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.
 
unsigned short iInst
 Iterator on instance levels.
 
unsigned short * nInst
 Total number of instances in the problem (per zone).
 
CConfig * driver_config = nullptr
 Definition of the driver configuration.
 
COutput * driver_output = nullptr
 Definition of the driver output.
 
CConfig ** config_container
 Definition of the particular problem.
 
COutput ** output_container
 Pointer to the COutput class.
 
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).
 
CSurfaceMovement ** surface_movement
 Surface movement classes of the problem.
 
CVolumetricMovement *** grid_movement
 Volume grid movement classes of the problem.
 
CConfig * main_config = nullptr
 Reference to base (i.e. ZONE 0) configuration (used in driver API).
 
CGeometry * main_geometry = nullptr
 Reference to base (i.e. ZONE, INST, MESH 0) geometry (used in driver API).
 

Detailed Description

Class for driving zone-specific iterations.

Author
R. Sanchez, O. Burghardt
Version
8.5.0 "Harrier"

Constructor & Destructor Documentation

◆ CMultizoneDriver()

CMultizoneDriver::CMultizoneDriver ( char *  confFile,
unsigned short  val_nZone,
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.

◆ ~CMultizoneDriver()

CMultizoneDriver::~CMultizoneDriver ( )
override

Destructor of the class.

Member Function Documentation

◆ Corrector()

void CMultizoneDriver::Corrector ( unsigned short  val_iZone)
protected

Use a corrector step to prevent convergence issues.

◆ DynamicMeshUpdate() [1/2]

void CMultizoneDriver::DynamicMeshUpdate ( unsigned long  TimeIter)
overridevirtual

Perform a dynamic mesh deformation, included grid velocity computation and the update of the multigrid structure (multiple zone).

Reimplemented from CDriver.

◆ DynamicMeshUpdate() [2/2]

void CMultizoneDriver::DynamicMeshUpdate ( unsigned short  val_iZone,
unsigned long  TimeIter 
)
protected

Perform a dynamic mesh deformation, including grid velocity computation and update of the multigrid structure.

◆ GetTimeConvergence()

bool CMultizoneDriver::GetTimeConvergence ( ) const
protectedvirtual

Returns whether all specified windowed-time-averaged ouputs have been converged.

Returns
Boolean indicating whether the problem is converged.

Reimplemented in CDiscAdjMultizoneDriver.

◆ Monitor()

bool CMultizoneDriver::Monitor ( unsigned long  TimeIter)
overridevirtual

Check if simulation converged and return appropriate boolean.

Parameters
[in]TimeIter- Current time iteration.
Returns
Boolean that indicates to stop the iteration loop.

Reimplemented from CDriver.

◆ OuterConvergence()

bool CMultizoneDriver::OuterConvergence ( unsigned long  OuterIter)
protected

Check the convergence at the outer level.

◆ Output()

void CMultizoneDriver::Output ( unsigned long  TimeIter)
overridevirtual

Output the solution in solution file.

Reimplemented from CDriver.

◆ Postprocess()

void CMultizoneDriver::Postprocess ( )
inline

Placeholder for post processing operations to make the interface of this driver identical to CSinglezoneDriver.

◆ Preprocess()

void CMultizoneDriver::Preprocess ( unsigned long  TimeIter)
overridevirtual

Preprocess the multizone iteration.

Reimplemented from CDriver.

◆ Run()

void CMultizoneDriver::Run ( void  )
inlineoverridevirtual

Solves one time iteration.

Reimplemented from CDriver.

◆ RunGaussSeidel()

void CMultizoneDriver::RunGaussSeidel ( )
protected

Run a Block Gauss-Seidel iteration in all physical zones.

◆ RunJacobi()

void CMultizoneDriver::RunJacobi ( )
protected

Run a Block-Jacobi iteration in all physical zones.

◆ StartSolver()

void CMultizoneDriver::StartSolver ( )
overridevirtual

[Overload] Launch the computation for multizone problems.

Reimplemented from CDriver.

◆ TransferData()

bool CMultizoneDriver::TransferData ( unsigned short  donorZone,
unsigned short  targetZone 
)
protected

Routine to provide all the desired physical transfers between the different zones during one iteration.

Returns
Boolean that determines whether the mesh needs to be updated for this particular transfer

◆ Update()

void CMultizoneDriver::Update ( )
overridevirtual

Update the dual-time solution within multiple zones.

Reimplemented from CDriver.

Member Data Documentation

◆ cht

bool CMultizoneDriver::cht
protected

◆ flow_criteria

su2double CMultizoneDriver::flow_criteria
protected

◆ flow_criteria_rel

su2double CMultizoneDriver::flow_criteria_rel
protected

◆ fsi

bool CMultizoneDriver::fsi
protected

◆ init_res

su2double** CMultizoneDriver::init_res
protected

Stores the initial residual.

◆ nVarZone

unsigned short* CMultizoneDriver::nVarZone
protected

◆ prefixed_motion

bool* CMultizoneDriver::prefixed_motion
protected

Determines if a fixed motion is imposed in the config file.

◆ residual

su2double ** CMultizoneDriver::residual
protected

Stores the current residual.

◆ residual_rel

su2double ** CMultizoneDriver::residual_rel
protected

Stores the residual relative to the initial.

◆ structure_criteria

su2double CMultizoneDriver::structure_criteria
protected

◆ structure_criteria_rel

su2double CMultizoneDriver::structure_criteria_rel
protected

◆ TimeIter

unsigned long CMultizoneDriver::TimeIter
protected

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