Documentation 6b54b78464
Loading...
Searching...
No Matches
CDiscAdjFEAIteration Class Referencefinal

Class for driving an iteration of the discrete adjoint FEM system. More...

#include <CDiscAdjFEAIteration.hpp>

Inheritance diagram for CDiscAdjFEAIteration:
[legend]

Public Member Functions

 CDiscAdjFEAIteration (const CConfig *config)
 Constructor of the class.
 
 ~CDiscAdjFEAIteration () override
 Destructor of the class.
 
void Preprocess (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
 Preprocessing to prepare for an iteration of the physics.
 
void IterateDiscAdj (CGeometry ****geometry, CSolver *****solver, CConfig **config, unsigned short val_iZone, unsigned short val_iInst, bool CrossTerm) override
 Perform a single iteration of the adjoint FEA problem.
 
bool Monitor (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
 Monitors the convergence and other metrics for the discrete adjoint FEA problem.
 
void Postprocess (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
 Postprocesses the discrete adjoint FEA problem before heading to another physics system or the next iteration.
 
void RegisterInput (CSolver *****solver, CGeometry ****geometry, CConfig **config, unsigned short iZone, unsigned short iInst, RECORDING kind_recording) override
 Registers all input variables of the FEM iteration.
 
void RegisterOutput (CSolver *****solver, CGeometry ****geometry, CConfig **config, unsigned short iZone, unsigned short iInst) override
 Registers all output variables of the FEM iteration.
 
void InitializeAdjoint (CSolver *****solver, CGeometry ****geometry, CConfig **config, unsigned short iZone, unsigned short iInst) override
 Initializes the adjoints of the output variables of the FEM iteration.
 
void SetDependencies (CSolver *****solver, CGeometry ****geometry, CNumerics ******numerics, CConfig **config, unsigned short iZone, unsigned short iInst, RECORDING kind_recording) override
 Compute necessary variables that depend on the variables in the numerics (E, Nu...)
 
- Public Member Functions inherited from CIteration
 CIteration (const CConfig *config)
 Constructor of the class.
 
virtual ~CIteration (void)=default
 Destructor of the class.
 
virtual void SetGrid_Movement (CGeometry **geometry, CSurfaceMovement *surface_movement, CVolumetricMovement *grid_movement, CSolver ***solver, CConfig *config, unsigned long IntIter, unsigned long TimeIter)
 Updates the positions and grid velocities for dynamic meshes between physical time steps.
 
void SetMesh_Deformation (CGeometry **geometry, CSolver **solver_container, CNumerics ***numerics_container, CConfig *config_container, RECORDING kind_recording)
 Run the mesh deformation algorithms.
 
virtual void Iterate (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
virtual void Solve (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
virtual void Update (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
virtual void Predictor (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
virtual void Relaxation (COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
void Output (COutput *output, CGeometry ****geometry, CSolver *****solver, CConfig **config, unsigned long InnerIter, bool StopCalc, unsigned short val_iZone, unsigned short val_iInst)
 A virtual member.
 
void ComputeTurboPerformance (CSolver *****solver, CGeometry ****geometry_container, CConfig **config_container)
 Computes turboperformance.
 
void InitTurboPerformance (CGeometry *geometry, CConfig **config, CFluidModel *fluid, unsigned short val_iZone)
 Initialises turboperformance classes.
 
su2vector< std::shared_ptr< CTurboOutput > > GetBladesPerformanceVector (CSolver *****solver, unsigned short nBladeRow)
 

Additional Inherited Members

- Protected Attributes inherited from CIteration
const int rank
 MPI Rank.
 
const int size
 MPI Size.
 
const unsigned short nZone
 Total number of zones in the problem.
 
const unsigned short nInst
 Total number of instances in the problem.
 
const bool multizone
 Flag for multizone problems.
 
const bool singlezone
 Flag for singlezone problems.
 
su2double StartTime {0.0}
 Tracking wall time.
 
su2double StopTime {0.0}
 
su2double UsedTime {0.0}
 
std::shared_ptr< CTurbomachineryStagePerformance > TurbomachineryStagePerformance
 turbo stage performance calculator.
 

Detailed Description

Class for driving an iteration of the discrete adjoint FEM system.

Author
R. Sanchez

Constructor & Destructor Documentation

◆ CDiscAdjFEAIteration()

CDiscAdjFEAIteration::CDiscAdjFEAIteration ( const CConfig *  config)
explicit

Constructor of the class.

Parameters
[in]config- Definition of the particular problem.

◆ ~CDiscAdjFEAIteration()

CDiscAdjFEAIteration::~CDiscAdjFEAIteration ( )
override

Destructor of the class.

Member Function Documentation

◆ InitializeAdjoint()

void CDiscAdjFEAIteration::InitializeAdjoint ( CSolver *****  solver,
CGeometry ****  geometry,
CConfig **  config,
unsigned short  iZone,
unsigned short  iInst 
)
overridevirtual

Initializes the adjoints of the output variables of the FEM iteration.

Parameters
[in]solver- Container vector with all the solutions.
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Index of the zone.
[in]iInst- Index of the zone.

Reimplemented from CIteration.

◆ IterateDiscAdj()

void CDiscAdjFEAIteration::IterateDiscAdj ( CGeometry ****  geometry,
CSolver *****  solver,
CConfig **  config,
unsigned short  val_iZone,
unsigned short  val_iInst,
bool  CrossTerm 
)
overridevirtual

Perform a single iteration of the adjoint FEA problem.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]val_iZone- Index of the zone.
[in]val_iInst- Index of the instance.
[in]CrossTerm- Boolean for CrossTerm.

Reimplemented from CIteration.

◆ Monitor()

bool CDiscAdjFEAIteration::Monitor ( COutput *  output,
CIntegration ****  integration,
CGeometry ****  geometry,
CSolver *****  solver,
CNumerics ******  numerics,
CConfig **  config,
CSurfaceMovement **  surface_movement,
CVolumetricMovement ***  grid_movement,
CFreeFormDefBox ***  FFDBox,
unsigned short  val_iZone,
unsigned short  val_iInst 
)
overridevirtual

Monitors the convergence and other metrics for the discrete adjoint FEA problem.

Parameters
[in]output- Pointer to the COutput class.
[in]integration- Container vector with all the integration methods.
[in]geometry- Geometrical definition of the problem.
[in]solver- Container vector with all the solutions.
[in]numerics- Description of the numerical method (the way in which the equations are solved).
[in]config- Definition of the particular problem.
[in]surface_movement- Surface movement classes of the problem.
[in]grid_movement- Volume grid movement classes of the problem.
[in]FFDBox- FFD FFDBoxes of the problem.
[in]val_iZone- Index of the zone.
[in]val_iInst- Index of the instance.

Reimplemented from CIteration.

◆ Postprocess()

void CDiscAdjFEAIteration::Postprocess ( COutput *  output,
CIntegration ****  integration,
CGeometry ****  geometry,
CSolver *****  solver,
CNumerics ******  numerics,
CConfig **  config,
CSurfaceMovement **  surface_movement,
CVolumetricMovement ***  grid_movement,
CFreeFormDefBox ***  FFDBox,
unsigned short  val_iZone,
unsigned short  val_iInst 
)
overridevirtual

Postprocesses the discrete adjoint FEA problem before heading to another physics system or the next iteration.

Parameters
[in]output- Pointer to the COutput class.
[in]integration- Container vector with all the integration methods.
[in]geometry- Geometrical definition of the problem.
[in]solver- Container vector with all the solutions.
[in]numerics- Description of the numerical method (the way in which the equations are solved).
[in]config- Definition of the particular problem.
[in]surface_movement- Surface movement classes of the problem.
[in]grid_movement- Volume grid movement classes of the problem.
[in]FFDBox- FFD FFDBoxes of the problem.
[in]val_iZone- Index of the zone.
[in]val_iInst- Index of the instance.

Reimplemented from CIteration.

◆ Preprocess()

void CDiscAdjFEAIteration::Preprocess ( COutput *  output,
CIntegration ****  integration,
CGeometry ****  geometry,
CSolver *****  solver,
CNumerics ******  numerics,
CConfig **  config,
CSurfaceMovement **  surface_movement,
CVolumetricMovement ***  grid_movement,
CFreeFormDefBox ***  FFDBox,
unsigned short  val_iZone,
unsigned short  val_iInst 
)
overridevirtual

Preprocessing to prepare for an iteration of the physics.

Parameters
[in]output- Pointer to the COutput class.
[in]integration- Container vector with all the integration methods.
[in]geometry- Geometrical definition of the problem.
[in]solver- Container vector with all the solutions.
[in]numerics- Description of the numerical method (the way in which the equations are solved).
[in]config- Definition of the particular problem.
[in]surface_movement- Surface movement classes of the problem.
[in]grid_movement- Volume grid movement classes of the problem.
[in]FFDBox- FFD FFDBoxes of the problem.
[in]val_iZone- Index of the zone.
[in]val_iInst- Index of the instance.

Reimplemented from CIteration.

◆ RegisterInput()

void CDiscAdjFEAIteration::RegisterInput ( CSolver *****  solver,
CGeometry ****  geometry,
CConfig **  config,
unsigned short  iZone,
unsigned short  iInst,
RECORDING  kind_recording 
)
overridevirtual

Registers all input variables of the FEM iteration.

Parameters
[in]solver- Container vector with all the solutions.
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Index of the zone.
[in]kind_recording- Kind of recording, either FEM_VARIABLES or MESH_COORDS

Reimplemented from CIteration.

◆ RegisterOutput()

void CDiscAdjFEAIteration::RegisterOutput ( CSolver *****  solver,
CGeometry ****  geometry,
CConfig **  config,
unsigned short  iZone,
unsigned short  iInst 
)
overridevirtual

Registers all output variables of the FEM iteration.

Parameters
[in]solver- Container vector with all the solutions.
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- Index of the zone.
[in]iInst- Index of the zone.

Reimplemented from CIteration.

◆ SetDependencies()

void CDiscAdjFEAIteration::SetDependencies ( CSolver *****  solver,
CGeometry ****  geometry,
CNumerics ******  numerics,
CConfig **  config,
unsigned short  iZone,
unsigned short  iInst,
RECORDING  kind_recording 
)
overridevirtual

Compute necessary variables that depend on the variables in the numerics (E, Nu...)

Parameters
[in]solver- Container vector with all the solutions.
[in]geometry- Geometrical definition of the problem.
[in]numerics- Description of the numerical method (the way in which the equations are solved).
[in]config- Definition of the particular problem.
[in]iZone- Index of the zone.
[in]iInst- Index of the zone.
[in]kind_recording- The kind of recording (geometry or flow).

TODO: Ideally there would be a way to capture this dependency without the static_cast, but making it a virtual method of CSolver does not feel "right" as its purpose could be confused.

Reimplemented from CIteration.


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