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

Output class for baseline solver output. More...

#include <CBaselineOutput.hpp>

Inheritance diagram for CBaselineOutput:
[legend]

Public Member Functions

 CBaselineOutput (CConfig *config, unsigned short nDim, CSolver *solver)
 Constructor of the class.
 
 ~CBaselineOutput (void) override
 Destructor of the class.
 
void SetVolumeOutputFields (CConfig *config) override
 Set the available volume output fields.
 
void LoadVolumeData (CConfig *config, CGeometry *geometry, CSolver **solver, unsigned long iPoint) override
 Set the values of the volume output fields for a point.
 
- Public Member Functions inherited from COutput
 COutput (const CConfig *config, unsigned short nDim, bool femOutput)
 Constructor of the class.
 
void PreprocessVolumeOutput (CConfig *config)
 Preprocess the volume output by setting the requested volume output fields.
 
void LoadData (CGeometry *geometry, CConfig *config, CSolver **solver_container)
 Load the data from the solvers into the data sorters and sort it for the linear partitioning.
 
void PreprocessHistoryOutput (CConfig *config, bool wrt=true)
 Preprocess the history output by setting the history fields and opening the history file.
 
void PreprocessMultizoneHistoryOutput (COutput **output, CConfig **config, CConfig *driver_config, bool wrt=true)
 Preprocess the history output by setting the history fields and opening the history file.
 
void SetHistoryOutput (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter)
 Collects history data from the solvers, monitors the convergence and writes to screen and history file.
 
void SetHistoryOutput (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 Collects history data from the solvers and monitors the convergence. Does not write to screen or file.
 
void SetHistoryOutput (CGeometry ****geometry, CSolver *****solver_container, CConfig **config, std::shared_ptr< CTurbomachineryStagePerformance > TurboStagePerf, su2vector< std::shared_ptr< CTurboOutput > > TurboBladePerfs, unsigned short val_iZone, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter, unsigned short val_iInst)
 Collects history data from the solvers, monitors the convergence and writes to screen and history file.
 
void SetMultizoneHistoryOutput (COutput **output, CConfig **config, CConfig *driver_config, unsigned long TimeIter, unsigned long OuterIter)
 
void SetObjectiveFunctionValues (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 Evaluates objective functions in the (multiphysics) discrete adjoint solver.
 
void SetVolumeFilename (string filename)
 Sets the volume output filename.
 
void SetSurfaceFilename (string filename)
 Sets the surface output filename.
 
string GetVolumeFilename ()
 Returns the current volume filename.
 
string GetSurfaceFilename ()
 Returns the current surface filename.
 
void SetRestartFilename (string filename)
 Sets the restart filename.
 
string GetRestartFilename ()
 Returns the current restart filename.
 
void SetIteration (unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter)
 Set the current iteration indices.
 
su2double GetHistoryFieldValue (const string &name) const
 Get the value of particular history output field.
 
void ResetConvergenceMonitoring (unsigned long Iteration)
 Discard the convergence history and count it from the given iteration instead.
 
vector< pair< string, passivedouble > > GetResidualConvFields () const
 Names and values of the fields convergence is monitored on that are residuals.
 
su2double GetHistoryFieldValuePerSurface (const string &name, unsigned short iMarker) const
 Get the value of particular surface history output field.
 
vector< HistoryOutputField > GetHistoryGroup (string groupname)
 Get a vector with all output fields in a particular group.
 
const vector< string > & GetHistoryOutputList () const
 Get the list of all output fields.
 
const vector< string > & GetHistoryOutputPerSurfaceList () const
 Get the list of all per-surface fields.
 
const map< string, HistoryOutputField > & GetHistoryFields () const
 Get the map containing all output fields.
 
const map< string, vector< HistoryOutputField > > & GetHistoryPerSurfaceFields () const
 Get the map containing all output per-surface fields.
 
bool ConvergenceMonitoring (CConfig *config, unsigned long Iteration)
 Monitor the convergence of an output field.
 
void PrintConvergenceSummary ()
 Print a summary of the convergence to screen.
 
bool GetConvergence () const
 Get convergence of the problem.
 
bool GetConvergenceInterrupted () const
 Get whether the exit was forced by an interrupt signal (e.g. SIGTERM) instead of the convergence criteria.
 
void SetConvergence (const bool conv)
 Set the value of the convergence flag.
 
bool MonitorTimeConvergence (CConfig *config, unsigned long Iteration)
 Monitor the time convergence of the specified windowed-time-averaged ouput.
 
void PrintHistoryFields () const
 Print a list of all history output fields to screen.
 
void PrintVolumeFields ()
 Print a list of all volume output fields to screen.
 
bool SetResultFiles (CGeometry *geometry, CConfig *config, CSolver **solver_container, unsigned long iter, bool force_writing=false)
 Loop through all requested output files and write the volume output data.
 
bool GetCauchyCorrectedTimeConvergence (const CConfig *config)
 Get convergence time convergence of the specified windowed-time-averaged ouput of the problem. Delays solver stop, if Cauchy time convergence criterion is fullfilled, but 2nd order time marching is active, to ensure that enough restart files are written.
 
void WriteToFile (CConfig *config, CGeometry *geometry, OUTPUT_TYPE format, string fileName="")
 Allocates the appropriate file writer based on the chosen format and writes sorted data to file.
 
virtual ~COutput (void)
 Destructor of the class.
 

Additional Inherited Members

- Protected Types inherited from COutput
enum class  ScreenOutputFormat { INTEGER , FIXED , SCIENTIFIC , PERCENT }
 : Flag for delaying stop at max_time with 2nd order time stepping. More...
 
enum class  HistoryFieldType {
  RESIDUAL , AUTO_RESIDUAL , COEFFICIENT , AUTO_COEFFICIENT ,
  DEFAULT
}
 Enum to identify the screen/history field type. More...
 
enum class  OperationType {
  MACRO , FUNCTION , AREA_AVG , AREA_INT ,
  MASSFLOW_AVG , MASSFLOW_INT , PROBE
}
 Type of operation for custom outputs. More...
 
- Protected Member Functions inherited from COutput
void SetHistoryFileHeader (const CConfig *config)
 Set the history file header.
 
void SetHistoryFileOutput (const CConfig *config)
 Write the history file output.
 
void SetScreenHeader (const CConfig *config)
 Write the screen header.
 
void SetScreenOutput (const CConfig *config)
 Write the screen output.
 
void AddHistoryOutput (string name, string field_name, ScreenOutputFormat format, string groupname, string description, HistoryFieldType field_type=HistoryFieldType::DEFAULT)
 Add a new field to the history output.
 
void SetHistoryOutputValue (string name, su2double value)
 Set the value of a history output field.
 
void AddHistoryOutputPerSurface (string name, string field_name, ScreenOutputFormat format, string groupname, const vector< string > &marker_names, HistoryFieldType field_type=HistoryFieldType::DEFAULT)
 Add a new field per surface marker to the history output.
 
void SetHistoryOutputPerSurfaceValue (string name, su2double value, unsigned short iMarker)
 Set the value of a history output field for a specific surface marker.
 
const su2double * GetPtrToHistoryOutput (const string &name) const
 Returns a pointer to the value of an history output.
 
void SetupCustomHistoryOutput (const string &expression, CustomHistoryOutput &output) const
 Setup a custom history output object for a given expression.
 
void AddVolumeOutput (const string &name, const string &field_name, const string &group_name, const string &description)
 Add a new field to the volume output.
 
su2double GetVolumeOutputValue (const string &name, unsigned long iPoint)
 Set the value of a volume output field.
 
void SetVolumeOutputValue (const string &name, unsigned long iPoint, su2double value)
 Set the value of a volume output field.
 
void SetAvgVolumeOutputValue (const string &name, unsigned long iPoint, su2double value)
 Set the value of a volume output field.
 
void CheckHistoryOutput (unsigned short nZone)
 CheckHistoryOutput.
 
void CheckFullMG_Startup (const CConfig *config) const
 Check that the Full-MG startup has a criterion left to promote the active level on.
 
void PrepareHistoryFile (CConfig *config)
 Open the history file and write the header.
 
void LoadDataIntoSorter (CConfig *config, CGeometry *geometry, CSolver **solver)
 Load up the values of the requested volume fields into ::Local_Data array.
 
void PostprocessHistoryData (CConfig *config)
 Postprocess_HistoryData.
 
void PostprocessHistoryFields (CConfig *config)
 Postprocess_HistoryFields.
 
bool PrintOutput (unsigned long iIter, unsigned long iFreq)
 Check whether we should print output.
 
void OutputScreenAndHistory (CConfig *config)
 Write screen and history output.
 
void SetCommonHistoryFields ()
 Set the history fields common for all solvers.
 
void RequestCommonHistory (bool dynamic)
 Request the history fields common for all solvers.
 
void SetCustomOutputs (const CConfig *config)
 Parses user-defined outputs.
 
void ComputeSimpleCustomOutputs (const CConfig *config)
 Evaluates function-type custom outputs. Derived classes can use this to compute simple expressions of other outputs if they do not implement surface averages. This should be called just before evaluating the custom objective function.
 
void LoadCommonHistoryData (const CConfig *config)
 Load values of the history fields common for all solvers.
 
void AllocateDataSorters (CConfig *config, CGeometry *geometry)
 Allocates the data sorters if necessary.
 
void SetCustomAndComboObjectives (int idxSol, const CConfig *config, CSolver **solver)
 Computes the custom and combo objectives.
 
virtual bool WriteHistoryFileOutput (const CConfig *config)
 Determines if the history file output.
 
virtual bool WriteScreenHeader (const CConfig *config)
 Determines if the screen header should be written.
 
virtual bool WriteScreenOutput (const CConfig *config)
 Determines if the screen header should be written.
 
virtual bool WriteVolumeOutput (CConfig *config, unsigned long Iter, bool force_writing, unsigned short iFile)
 Determines if the the volume output should be written.
 
virtual void LoadVolumeDataFEM (CConfig *config, CGeometry *geometry, CSolver **solver, unsigned long iElem, unsigned long index, unsigned short dof)
 Set the values of the volume output fields for a point.
 
virtual bool SetInitResiduals (const CConfig *config)
 Check whether the base values for relative residuals should be initialized.
 
virtual void LoadSurfaceData (CConfig *config, CGeometry *geometry, CSolver **solver, unsigned long iPoint, unsigned short iMarker, unsigned long iVertex)
 Set the values of the volume output fields for a surface point.
 
virtual void LoadHistoryData (CConfig *config, CGeometry *geometry, CSolver **solver)
 Load the history output field values.
 
virtual void LoadCustomAndComboObjectiveFunctions (CConfig *config, CGeometry *geometry, CSolver **solver)
 Recompute history output field values that can be used as objective functions in the (multiphysics) discrete adjoint solver.
 
virtual void LoadMultizoneHistoryData (const COutput *const *output, const CConfig *const *config)
 Load the multizone history output field values.
 
virtual void SetTurboPerformance_Output (su2vector< std::shared_ptr< CTurboOutput > > TurboBladePerfs, CConfig *config, unsigned long TimeIter, unsigned long OuterIter, unsigned long InnerIter)
 Sets the turboperformance screen output.
 
virtual void SetTurboMultiZonePerformance_Output (std::shared_ptr< CTurbomachineryStagePerformance > TurboStagePerf, su2vector< std::shared_ptr< CTurboOutput > > TurboPerf, CConfig *config)
 Sets the multizone turboperformacne screen output.
 
virtual void LoadTurboHistoryData (std::shared_ptr< CTurbomachineryStagePerformance > TurboStagePerf, su2vector< std::shared_ptr< CTurboOutput > > TurboPerf, CConfig *config)
 Loads the turboperformacne history data.
 
virtual void WriteTurboSpanwisePerformance (su2vector< std::shared_ptr< CTurboOutput > > TurboBladePerfs, CGeometry *geometry, CConfig **config, unsigned short val_iZone)
 Write the kinematic and thermodynamic variables at each spanwise division.
 
virtual void SetHistoryOutputFields (CConfig *config)
 Set the available history output fields.
 
virtual void SetMultizoneHistoryOutputFields (const COutput *const *output, const CConfig *const *config)
 Set the available multizone history output fields.
 
virtual void WriteAdditionalFiles (CConfig *config, CGeometry *geometry, CSolver **solver_container)
 Write any additional files defined for the current solver.
 
virtual void SetAdditionalScreenOutput (const CConfig *config)
 Write any additional output defined for the current solver.
 
- Protected Attributes inherited from COutput
const int rank
 MPI Rank.
 
const int size
 MPI Size.
 
const unsigned short nDim
 Physical Dimension.
 
const bool multiZone
 Boolean to store whether we are running a multizone problem.
 
const bool gridMovement
 Boolean to store whether we have grid movement enabled.
 
const bool femOutput
 Boolean to store whether we should use the FEM routines.
 
const bool si_units
 
const bool us_units
 
const unsigned short fieldWidth = 12
 Width of each column for the screen output (hardcoded for now)
 
string historySep
 Character which separates values in the history file.
 
bool noWriting
 Boolean indicating whether a screen/history output should be written.
 
unsigned long curTimeIter
 Current value of the time iteration index.
 
unsigned long curAbsTimeIter
 Current value of the time iteration index.
 
unsigned long curOuterIter
 Current value of the outer iteration index.
 
unsigned long curInnerIter
 Current value of the inner iteration index.
 
su2double PrevStopTime
 Previous stop time for iteration timing.
 
string historyFilename
 The history filename.
 
ofstream histFile
 Output file stream for the history.
 
bool cauchyTimeConverged
 
bool maxTimeDelayActive
 : Flag indicating that solver is already converged. Needed for writing restart files.
 
std::map< string, HistoryOutputField > historyOutput_Map
 Associative map to access data stored in the history output fields by a string identifier.
 
std::vector< string > historyOutput_List
 Vector that contains the keys of the historyOutput_Map in the order of their insertion.
 
std::map< string, vector< HistoryOutputField > > historyOutputPerSurface_Map
 Associative map to access data stored in the history per surface output fields by a string identifier.
 
std::vector< string > historyOutputPerSurface_List
 Vector that contains the keys of the historyOutputPerSurface_Map in the order of their insertion.
 
std::vector< string > requestedHistoryFields
 Requested history field names in the config file.
 
unsigned short nRequestedHistoryFields
 Number of requested history field names in the config file.
 
std::vector< string > requestedScreenFields
 Requested screen field names in the config file.
 
unsigned short nRequestedScreenFields
 Number of requested screen field names in the config file.
 
std::vector< const su2double * > requestedHistoryFieldCache
 Caches to avoid hashing the output maps to retrieve field values.
 
std::vector< const HistoryOutputField * > requestedScreenFieldCache
 
PrintingToolbox::CTablePrinter * convergenceTable
 Convergence output table structure.
 
PrintingToolbox::CTablePrinter * multiZoneHeaderTable
 Multizone header output structure.
 
PrintingToolbox::CTablePrinter * historyFileTable
 Table structure for writing to history file.
 
PrintingToolbox::CTablePrinter * fileWritingTable
 File writing header.
 
std::string multiZoneHeaderString
 Multizone header string.
 
bool headerNeeded
 Boolean that stores whether a screen header is needed.
 
map< string, CWindowedAverage > windowedTimeAverages
 Structure to store the value of the running averages.
 
std::map< string, su2double > initialResiduals
 Structure to store the value initial residuals for relative residual computation.
 
CustomHistoryOutput customObjFunc
 User-defined expression for a custom objective.
 
std::vector< CustomOutput > customOutputs
 User-defined outputs.
 
CParallelDataSorter * volumeDataSorter
 Volume data sorter.
 
CParallelDataSorter * volumeDataSorterCompact
 Volume data sorter for compact files.
 
CParallelDataSorter * surfaceDataSorter
 Surface data sorter.
 
vector< string > volumeFieldNames
 Vector containing the volume field names.
 
vector< string > requiredVolumeFieldNames
 Vector containing the minimum required volume field names.
 
string volumeFilename
 Volume output filename.
 
string surfaceFilename
 Surface output filename.
 
string restartFilename
 Restart output filename.
 
std::map< string, VolumeOutputField > volumeOutput_Map
 Associative map to access data stored in the volume output fields by a string identifier.
 
std::vector< string > volumeOutput_List
 Vector that contains the keys of the volumeOutput_Map in the order of their insertion.
 
bool buildFieldIndexCache
 Whether the field index caches should be build.
 
std::vector< short > fieldIndexCache
 Vectors to cache the positions of the fields in the data array.
 
std::vector< short > fieldIndexCacheCompact
 
unsigned short cachePosition
 Current value of the cache indices.
 
std::vector< short > fieldGetIndexCache
 Vector to cache the positions of the field in the data array.
 
unsigned short curGetFieldIndex
 Current value of the cache index.
 
std::vector< string > requestedVolumeFields
 Requested volume field names in the config file.
 
unsigned short nRequestedVolumeFields
 Number of requested volume field names in the config file.
 
const std::vector< string > restartVolumeFields = {"COORDINATES", "SOLUTION", "SENSITIVITY", "GRID_VELOCITY"}
 Minimum required volume fields for restart file.
 
su2double cauchyValue
 Summed value of the convergence indicator.
 
su2double cauchyFunc
 Current value of the convergence indicator at one iteration.
 
unsigned short Cauchy_Counter
 Number of elements of the Cauchy serial.
 
vector< vector< su2double > > cauchySerie
 Complete Cauchy serial.
 
unsigned long nCauchy_Elems
 Total number of cauchy elems to monitor.
 
su2double cauchyEps
 Defines the threshold when to stop the solver.
 
su2double minLogResidual
 Minimum value of the residual to reach.
 
vector< su2double > oldFunc
 Old value of the coefficient.
 
vector< su2double > newFunc
 Current value of the coefficient.
 
bool convergence
 To indicate if the solver has converged or not.
 
bool convergenceInterrupted
 To indicate that the exit was forced by an interrupt signal instead of the convergence criteria.
 
su2double initResidual
 Initial value of the residual to evaluate the convergence level.
 
vector< string > convFields
 Name of the field to be monitored for convergence.
 
unsigned long convergenceStartIter = 0
 Iteration the convergence history is counted from.
 
su2double rhoResNew
 
su2double rhoResOld
 
vector< string > wndConvFields
 Name of the field to be monitored for convergence.
 
vector< vector< su2double > > WndCauchy_Serie
 Complete Cauchy serial.
 
unsigned long nWndCauchy_Elems
 Total number of cauchy elems to monitor.
 
su2double wndCauchyEps
 Defines the threshold when to stop the solver.
 
vector< su2double > WndOld_Func
 Old value of the objective function (the function which is monitored).
 
vector< su2double > WndNew_Func
 Current value of the objective function (the function which is monitored).
 
su2double WndCauchy_Func
 Current value of the convergence indicator at one iteration.
 
su2double WndCauchy_Value
 Summed value of the convergence indicator.
 
bool TimeConvergence
 To indicate, if the windowed time average of the time loop has converged.
 

Detailed Description

Output class for baseline solver output.

Author
R. Sanchez, T. Albring.
Date
June 5, 2018.

Constructor & Destructor Documentation

◆ CBaselineOutput()

CBaselineOutput::CBaselineOutput ( CConfig *  config,
unsigned short  nDim,
CSolver *  solver 
)

Constructor of the class.

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

◆ ~CBaselineOutput()

CBaselineOutput::~CBaselineOutput ( void  )
overridedefault

Destructor of the class.

Member Function Documentation

◆ LoadVolumeData()

void CBaselineOutput::LoadVolumeData ( CConfig *  config,
CGeometry *  geometry,
CSolver **  solver,
unsigned long  iPoint 
)
overridevirtual

Set the values of the volume output fields for a point.

Parameters
[in]config- Definition of the particular problem.
[in]geometry- Geometrical definition of the problem.
[in]solver- The container holding all solution data.
[in]iPoint- Index of the point.

Reimplemented from COutput.

◆ SetVolumeOutputFields()

void CBaselineOutput::SetVolumeOutputFields ( CConfig *  config)
overridevirtual

Set the available volume output fields.

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

Reimplemented from COutput.


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