diff --git a/Common/include/CConfig.hpp b/Common/include/CConfig.hpp index b85042d14ac4..9682fd95ad3e 100644 --- a/Common/include/CConfig.hpp +++ b/Common/include/CConfig.hpp @@ -141,8 +141,7 @@ class CConfig { Sens_Remove_Sharp, /*!< \brief Flag for removing or not the sharp edges from the sensitivity computation. */ Hold_GridFixed, /*!< \brief Flag hold fixed some part of the mesh during the deformation. */ Axisymmetric, /*!< \brief Flag for axisymmetric calculations */ - Integrated_HeatFlux, /*!< \brief Flag for heat flux BC whether it deals with integrated values.*/ - Buffet_Monitoring; /*!< \brief Flag for computing the buffet sensor.*/ + Integrated_HeatFlux; /*!< \brief Flag for heat flux BC whether it deals with integrated values.*/ su2double Buffet_k; /*!< \brief Sharpness coefficient for buffet sensor.*/ su2double Buffet_lambda; /*!< \brief Offset parameter for buffet sensor.*/ su2double Damp_Engine_Inflow; /*!< \brief Damping factor for the engine inlet. */ @@ -5034,11 +5033,6 @@ class CConfig { */ unsigned short GetKind_ObjFunc(unsigned short val_obj = 0) const { return Kind_ObjFunc[val_obj]; } - /*! - * \brief Similar to GetKind_ObjFunc but returns the corresponding string. - */ - string GetName_ObjFunc(unsigned short val_obj = 0) const; - /*! * \author H. Kline * \brief Get the weight of objective function. There are several options: Drag coefficient, @@ -5867,12 +5861,6 @@ class CConfig { */ unsigned short GetDesign_Variable(unsigned short val_dv) const { return Design_Variable[val_dv]; } - /*! - * \brief Provides the buffet monitoring information. - * \return Buffet monitoring information, if TRUE then the code will compute the buffet sensor. - */ - bool GetBuffet_Monitoring(void) const { return Buffet_Monitoring; } - /*! * \brief Get the buffet sensor sharpness coefficient. * \return Sharpness coefficient for buffet sensor. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index 461df39ee198..c69c5f5d44ca 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -1485,7 +1485,7 @@ enum ENUM_OBJECTIVE { INVERSE_DESIGN_HEATFLUX = 6, /*!< \brief Heat flux objective function definition (inverse design). */ TOTAL_HEATFLUX = 7, /*!< \brief Total heat flux. */ MAXIMUM_HEATFLUX = 8, /*!< \brief Maximum heat flux. */ - TOTAL_AVG_TEMPERATURE = 70, /*!< \brief Total averaged temperature. */ + AVG_TEMPERATURE = 70, /*!< \brief Total averaged temperature. */ MOMENT_X_COEFFICIENT = 9, /*!< \brief Pitching moment objective function definition. */ MOMENT_Y_COEFFICIENT = 10, /*!< \brief Rolling moment objective function definition. */ MOMENT_Z_COEFFICIENT = 11, /*!< \brief Yawing objective function definition. */ @@ -1545,7 +1545,7 @@ static const MapType Objective_Map = { MakePair("TORQUE", TORQUE_COEFFICIENT) MakePair("TOTAL_HEATFLUX", TOTAL_HEATFLUX) MakePair("MAXIMUM_HEATFLUX", MAXIMUM_HEATFLUX) - MakePair("TOTAL_AVG_TEMPERATURE", TOTAL_AVG_TEMPERATURE) + MakePair("AVG_TEMPERATURE", AVG_TEMPERATURE) MakePair("FIGURE_OF_MERIT", FIGURE_OF_MERIT) MakePair("BUFFET", BUFFET_SENSOR) MakePair("SURFACE_TOTAL_PRESSURE", SURFACE_TOTAL_PRESSURE) diff --git a/Common/src/CConfig.cpp b/Common/src/CConfig.cpp index 41b60c4dd0bd..dc370d2e843d 100644 --- a/Common/src/CConfig.cpp +++ b/Common/src/CConfig.cpp @@ -1594,8 +1594,6 @@ void CConfig::SetConfig_Options() { /* DESCRIPTION: Evaluate a problem with engines */ addBoolOption("ENGINE", Engine, false); - /* DESCRIPTION: Compute buffet sensor */ - addBoolOption("BUFFET_MONITORING", Buffet_Monitoring, false); /* DESCRIPTION: Sharpness coefficient for the buffet sensor */ addDoubleOption("BUFFET_K", Buffet_k, 10.0); /* DESCRIPTION: Offset parameter for the buffet sensor */ @@ -3502,10 +3500,6 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_ SU2_MPI::Error("Harmonic Balance not yet implemented for the incompressible solver.", CURRENT_FUNCTION); } - if ((Kind_Solver != NAVIER_STOKES && Kind_Solver != RANS) && (Buffet_Monitoring == true)){ - SU2_MPI::Error("Buffet monitoring incompatible with solvers other than NAVIER_STOKES and RANS", CURRENT_FUNCTION); - } - /*--- Check for Fluid model consistency ---*/ if (standard_air) { @@ -7996,9 +7990,9 @@ string CConfig::GetObjFunc_Extension(string val_filename) const { case TORQUE_COEFFICIENT: AdjExt = "_cq"; break; case TOTAL_HEATFLUX: AdjExt = "_totheat"; break; case MAXIMUM_HEATFLUX: AdjExt = "_maxheat"; break; - case TOTAL_AVG_TEMPERATURE: AdjExt = "_avtp"; break; + case AVG_TEMPERATURE: AdjExt = "_avtp"; break; case FIGURE_OF_MERIT: AdjExt = "_merit"; break; - case BUFFET_SENSOR: AdjExt = "_buffet"; break; + case BUFFET_SENSOR: AdjExt = "_buffet"; break; case SURFACE_TOTAL_PRESSURE: AdjExt = "_pt"; break; case SURFACE_STATIC_PRESSURE: AdjExt = "_pe"; break; case SURFACE_MASSFLOW: AdjExt = "_mfr"; break; @@ -9305,13 +9299,6 @@ short CConfig::FindInterfaceMarker(unsigned short iInterface) const { return -1; } -string CConfig::GetName_ObjFunc(unsigned short val_obj) const { - for (auto item : Objective_Map) - if (item.second == static_cast(Kind_ObjFunc[val_obj])) - return item.first; - return string(); -} - void CConfig::Tick(double *val_start_time) { #ifdef PROFILE diff --git a/Common/src/grid_movement/CVolumetricMovement.cpp b/Common/src/grid_movement/CVolumetricMovement.cpp index 68b35eb613a1..0fb747fe1ab8 100644 --- a/Common/src/grid_movement/CVolumetricMovement.cpp +++ b/Common/src/grid_movement/CVolumetricMovement.cpp @@ -353,7 +353,7 @@ void CVolumetricMovement::ComputenNonconvexElements(CGeometry *geometry, bool Sc nNonconvexElements++; } } - } else { + } else if (false) { /*--- 3D elements ---*/ unsigned short iNode, iFace, nFaceNodes; @@ -371,6 +371,8 @@ void CVolumetricMovement::ComputenNonconvexElements(CGeometry *geometry, bool Sc face_point_i = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, iNode)); + /// TODO: Faces may have up to 4 nodes, not all posibilities are covered + if (iNode == 0) { face_point_j = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, nFaceNodes-1)); face_point_k = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, iNode+1)); @@ -391,6 +393,9 @@ void CVolumetricMovement::ComputenNonconvexElements(CGeometry *geometry, bool Sc /*--- Calculate cross product of edge vectors and its length---*/ su2double crossProduct[3]; GeometryToolbox::CrossProduct(edgeVector_i, edgeVector_j, crossProduct); + + /// TODO: This logic is incorrect, the norm will never be less than 0 + crossProductLength = GeometryToolbox::Norm(nDim, crossProduct); /*--- Check if length is minimum or maximum ---*/ diff --git a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp index b4048cbeccab..7f91243a70c3 100644 --- a/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp +++ b/SU2_CFD/include/numerics/NEMO/NEMO_diffusion.hpp @@ -38,8 +38,8 @@ */ class CAvgGrad_NEMO : public CNEMONumerics { private: - unsigned short iDim, iVar; /*!< \brief Iterators in dimension an variable. */ - su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ + unsigned short iVar; /*!< \brief Iterators in dimension an variable. */ + su2double *Mean_PrimVar, /*!< \brief Mean primitive variables. */ *Mean_U, **Mean_GU, *Mean_dTdU, @@ -54,9 +54,8 @@ class CAvgGrad_NEMO : public CNEMONumerics { Mean_Eddy_Viscosity, /*!< \brief Mean value of the eddy viscosity. */ Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Thermal_Conductivity_ve, /*!< \brief Mean value of the vib-el. thermal conductivity. */ - *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ - + public: /*! @@ -109,13 +108,11 @@ class CAvgGradCorrected_NEMO : public CNEMONumerics { Mean_Eddy_Viscosity, /*!< \brief Mean value of the eddy viscosity. */ Mean_Thermal_Conductivity, /*!< \brief Mean value of the thermal conductivity. */ Mean_Thermal_Conductivity_ve, /*!< \brief Mean value of the vib-el. thermal conductivity. */ - - *ProjFlux, /*!< \brief Projection of the viscous fluxes. */ dist_ij; /*!< \brief Length of the edge and face. */ bool implicit; /*!< \brief Implicit calculus. */ su2double* Flux = nullptr; /*!< \brief The flux / residual across the edge. */ - + public: /*! @@ -142,5 +139,5 @@ class CAvgGradCorrected_NEMO : public CNEMONumerics { * \param[in] config - Definition of the particular problem. */ ResidualType<> ComputeResidual(const CConfig* config) final; - + }; diff --git a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp index 48ea1e1909c4..91091a65b52e 100644 --- a/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjFEASolver.hpp @@ -48,7 +48,6 @@ class CDiscAdjFEASolver final : public CSolver { su2double *Solution_Vel = nullptr, /*!< \brief Velocity componenent of the solution. */ *Solution_Accel = nullptr; /*!< \brief Acceleration componenent of the solution. */ - su2double ObjFunc_Value = 0.0; /*!< \brief Value of the objective function. */ su2double *normalLoads = nullptr; /*!< \brief Values of the normal loads for each marker iMarker_nL. */ unsigned short nMPROP = 0; /*!< \brief Number of material properties */ @@ -160,12 +159,6 @@ class CDiscAdjFEASolver final : public CSolver { */ void ExtractAdjoint_Solution(CGeometry *geometry, CConfig *config) override; - /*! - * \brief Register the objective function as output. - * \param[in] geometry - The geometrical definition of the problem. - */ - void RegisterObj_Func(CConfig *config) override; - /*! * \brief Set the surface sensitivity. * \param[in] geometry - Geometrical definition of the problem. @@ -180,13 +173,6 @@ class CDiscAdjFEASolver final : public CSolver { */ void SetSensitivity(CGeometry *geometry, CConfig *config, CSolver*) override; - /*! - * \brief Set the objective function. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void SetAdj_ObjFunc(CGeometry *geometry, CConfig* config) override; - /*! * \brief Provide the total Young's modulus sensitivity * \return Value of the total Young's modulus sensitivity diff --git a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp index 1d926e81ab21..ae3216b705b1 100644 --- a/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjMeshSolver.hpp @@ -39,7 +39,6 @@ */ class CDiscAdjMeshSolver final : public CSolver { private: - unsigned short KindDirect_Solver = 0; CSolver *direct_solver = nullptr; CDiscAdjMeshBoundVariable* nodes = nullptr; /*!< \brief Variables of the discrete adjoint mesh solver. */ diff --git a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp index 52244aafd6cd..6b60189c7d97 100644 --- a/SU2_CFD/include/solvers/CDiscAdjSolver.hpp +++ b/SU2_CFD/include/solvers/CDiscAdjSolver.hpp @@ -49,7 +49,6 @@ class CDiscAdjSolver final : public CSolver { su2double Total_Sens_BPress; /*!< \brief Total sensitivity to outlet pressure. */ su2double Total_Sens_Density; /*!< \brief Total sensitivity to initial density (incompressible). */ su2double Total_Sens_ModVel; /*!< \brief Total sensitivity to inlet velocity (incompressible). */ - su2double ObjFunc_Value; /*!< \brief Value of the objective function. */ su2double Mach, Alpha, Beta, Pressure, Temperature, BPressure, ModVel; su2double TemperatureRad, Total_Sens_Temp_Rad; @@ -140,12 +139,6 @@ class CDiscAdjSolver final : public CSolver { */ void ExtractAdjoint_Geometry(CGeometry *geometry, CConfig *config) override; - /*! - * \brief Register the objective function as output. - * \param[in] geometry - The geometrical definition of the problem. - */ - void RegisterObj_Func(CConfig *config) override; - /*! * \brief Set the surface sensitivity. * \param[in] geometry - Geometrical definition of the problem. @@ -160,13 +153,6 @@ class CDiscAdjSolver final : public CSolver { */ void SetSensitivity(CGeometry *geometry, CConfig *config, CSolver*) override; - /*! - * \brief Set the objective function. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void SetAdj_ObjFunc(CGeometry *geometry, CConfig* config) override; - /*! * \brief Provide the total shape sensitivity coefficient. * \return Value of the geometrical sensitivity coefficient diff --git a/SU2_CFD/include/solvers/CEulerSolver.hpp b/SU2_CFD/include/solvers/CEulerSolver.hpp index f7f6af0ce5e8..5a28b6c2e783 100644 --- a/SU2_CFD/include/solvers/CEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CEulerSolver.hpp @@ -474,7 +474,7 @@ class CEulerSolver : public CFVMFlowSolverBase { * \brief Compute weighted-sum "combo" objective output * \param[in] config - Definition of the particular problem. */ - void Evaluate_ObjFunc(CConfig *config) override; + void Evaluate_ObjFunc(const CConfig *config) override; /*! * \brief Impose the far-field boundary condition using characteristics. diff --git a/SU2_CFD/include/solvers/CFEASolver.hpp b/SU2_CFD/include/solvers/CFEASolver.hpp index 6602d21ccbba..31ec0790bad5 100644 --- a/SU2_CFD/include/solvers/CFEASolver.hpp +++ b/SU2_CFD/include/solvers/CFEASolver.hpp @@ -67,8 +67,9 @@ class CFEASolver : public CSolver { su2double Total_OFRefGeom; /*!< \brief Total Objective Function: Reference Geometry. */ su2double Total_OFRefNode; /*!< \brief Total Objective Function: Reference Node. */ su2double Total_OFVolFrac; /*!< \brief Total Objective Function: Volume fraction (topology optimization). */ + su2double Total_OFDiscreteness; /*!< \brief Total Objective Function: Discreteness (topology optimization). */ su2double Total_OFCompliance; /*!< \brief Total Objective Function: Compliance (topology optimization). */ - su2double Total_OFCombo = 0.0; /*!< \brief One of the above, for output/history purposes. */ + su2double ObjFunc; su2double Global_OFRefGeom; /*!< \brief Global Objective Function (added over time steps): Reference Geometry. */ su2double Global_OFRefNode; /*!< \brief Global Objective Function (added over time steps): Reference Node. */ @@ -198,6 +199,34 @@ class CFEASolver : public CSolver { su2double der, su2double der_avg) const; + /*! + * \brief Compute the objective function for a reference geometry + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Compute_OFRefGeom(CGeometry *geometry, const CConfig *config); + + /*! + * \brief Compute the objective function for a reference node + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Compute_OFRefNode(CGeometry *geometry, const CConfig *config); + + /*! + * \brief Compute the objective function for a volume fraction + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Compute_OFVolFrac(CGeometry *geometry, const CConfig *config); + + /*! + * \brief Compute the compliance objective function + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + void Compute_OFCompliance(CGeometry *geometry, const CConfig *config); + public: /*! * \brief Constructor of the class. @@ -245,20 +274,6 @@ class CFEASolver : public CSolver { CConfig *config, unsigned long TimeIter) override; - /*! - * \brief Compute the time step for solving the FEM equations. - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. - * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. - * \param[in] Iteration - Index of the current iteration. - */ - inline void SetTime_Step(CGeometry *geometry, - CSolver **solver_container, - CConfig *config, - unsigned short iMesh, - unsigned long Iteration) override { } - /*! * \brief Get the value of the reference coordinate to set on the element structure. * \param[in] geometry - Geometrical definition of the problem. @@ -508,15 +523,11 @@ class CFEASolver : public CSolver { /*! * \brief Postprocessing. * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. * \param[in] config - Definition of the particular problem. - * \param[in] iMesh - Index of the mesh in multigrid computations. + * \param[in] numerics - Implementation of numerical method. + * \param[in] of_comp_mode - Mode to compute just the objective function. */ - void Postprocessing(CGeometry *geometry, - CSolver **solver_container, - CConfig *config, - CNumerics **numerics, - unsigned short iMesh) final; + void Postprocessing(CGeometry *geometry, CConfig *config, CNumerics **numerics, bool of_comp_mode) final; /*! * \brief Routine to solve the Jacobian-Residual linearized system. @@ -541,22 +552,24 @@ class CFEASolver : public CSolver { /*! * \brief Retrieve the value of the objective function for a reference geometry - * \param[out] OFRefGeom - value of the objective function. */ inline su2double GetTotal_OFRefGeom(void) const final { return Total_OFRefGeom; } /*! * \brief Retrieve the value of the objective function for a reference node - * \param[out] OFRefNode - value of the objective function. */ inline su2double GetTotal_OFRefNode(void) const final { return Total_OFRefNode; } /*! * \brief Retrieve the value of the volume fraction objective function - * \param[out] OFVolFrac - value of the objective function. */ inline su2double GetTotal_OFVolFrac(void) const final { return Total_OFVolFrac; } + /*! + * \brief Retrieve the value of the discreteness objective function + */ + inline su2double GetTotal_OFDiscreteness(void) const final { return Total_OFDiscreteness; } + /*! * \brief Retrieve the value of the structural compliance objective function * \return Value of the objective function. @@ -564,10 +577,34 @@ class CFEASolver : public CSolver { inline su2double GetTotal_OFCompliance(void) const final { return Total_OFCompliance; } /*! - * \brief Retrieve the value of the combined objective function - * \note For now there is no combination, this is just a seletion. + * \brief Compute the objective function. + * \param[in] config - Definition of the problem. + */ + inline void Evaluate_ObjFunc(const CConfig *config) final { + ObjFunc = 0.0; + switch (config->GetKind_ObjFunc()) { + case REFERENCE_GEOMETRY: + ObjFunc = GetTotal_OFRefGeom(); + break; + case REFERENCE_NODE: + ObjFunc = GetTotal_OFRefNode(); + break; + case TOPOL_COMPLIANCE: + ObjFunc = GetTotal_OFCompliance(); + break; + case VOLUME_FRACTION: + ObjFunc = GetTotal_OFVolFrac(); + break; + case TOPOL_DISCRETENESS: + ObjFunc = GetTotal_OFDiscreteness(); + break; + } + } + + /*! + * \brief Provide the total "combo" objective (weighted sum of other values). */ - inline su2double GetTotal_ComboObj(void) const final { return Total_OFCombo; } + inline su2double GetTotal_ComboObj() const final { return ObjFunc; } /*! * \brief Determines whether there is an element-based file or not. @@ -656,43 +693,13 @@ class CFEASolver : public CSolver { */ void SetAitken_Relaxation(CGeometry *geometry, CConfig *config) final; - /*! - * \brief Compute the objective function for a reference geometry - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void Compute_OFRefGeom(CGeometry *geometry, const CConfig *config) final; - - /*! - * \brief Compute the objective function for a reference node - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void Compute_OFRefNode(CGeometry *geometry, const CConfig *config) final; - - /*! - * \brief Compute the objective function for a volume fraction - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void Compute_OFVolFrac(CGeometry *geometry, const CConfig *config) final; - - /*! - * \brief Compute the compliance objective function - * \param[in] geometry - Geometrical definition of the problem. - * \param[in] config - Definition of the particular problem. - */ - void Compute_OFCompliance(CGeometry *geometry, const CConfig *config) final; - /*! * \brief Compute the penalty due to the stiffness increase * \param[in] geometry - Geometrical definition of the problem. - * \param[in] solver_container - Container vector with all the solutions. * \param[in] numerics - Description of the numerical method. * \param[in] config - Definition of the particular problem. */ void Stiffness_Penalty(CGeometry *geometry, - CSolver **solver_container, CNumerics **numerics_container, CConfig *config); diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 068fc49c7e11..728eb8c84ad7 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -1464,6 +1464,13 @@ class CFVMFlowSolverBase : public CSolver { */ void Friction_Forces(const CGeometry* geometry, const CConfig* config) final; + /*! + * \brief Compute the buffet sensor. + * \param[in] geometry - Geometrical definition of the problem. + * \param[in] config - Definition of the particular problem. + */ + inline virtual void Buffet_Monitoring(const CGeometry *geometry, const CConfig *config) { } + /*! * \brief Allocates the final pointer of SlidingState depending on how many donor vertex donate to it. * That number is stored in SlidingStateNodes[val_marker][val_vertex]. diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl index 26b4bb7850b7..926885d3069c 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.inl @@ -2487,6 +2487,10 @@ void CFVMFlowSolverBase::Friction_Forces(const CGeometry* geometr SurfaceCoeff.CMy[iMarker_Monitoring] += SurfaceViscCoeff.CMy[iMarker_Monitoring]; SurfaceCoeff.CMz[iMarker_Monitoring] += SurfaceViscCoeff.CMz[iMarker_Monitoring]; } + + + Buffet_Monitoring(geometry, config); + } template @@ -2586,6 +2590,9 @@ su2double CFVMFlowSolverBase::EvaluateCommonObjFunc(const CConfig& config) case SURFACE_SECOND_OVER_UNIFORM: objFun += weight * config.GetSurface_SecondOverUniform(0); break; + case SURFACE_PRESSURE_DROP: + objFun += weight * config.GetSurface_PressureDrop(0); + break; case CUSTOM_OBJFUNC: objFun += weight * Total_Custom_ObjFunc; break; diff --git a/SU2_CFD/include/solvers/CIncEulerSolver.hpp b/SU2_CFD/include/solvers/CIncEulerSolver.hpp index e53a7072a795..45a8db4b36ee 100644 --- a/SU2_CFD/include/solvers/CIncEulerSolver.hpp +++ b/SU2_CFD/include/solvers/CIncEulerSolver.hpp @@ -218,7 +218,9 @@ class CIncEulerSolver : public CFVMFlowSolverBaseGetWeakly_Coupled_Heat()) { solvers[HEAT_SOL]->Heat_Fluxes(geometry, solvers, config); } + + direct_output[iZone]->SetHistory_Output(geometry, solvers, config); + solvers[FLOW_SOL]->Evaluate_ObjFunc(config); break; + case DISC_ADJ_HEAT: solvers[HEAT_SOL]->Heat_Fluxes(geometry, solvers, config); break; - } - direct_output[iZone]->SetHistory_Output(geometry, solvers, config); + case DISC_ADJ_FEM: + solvers[FEA_SOL]->Postprocessing(geometry, config, numerics_container[iZone][INST_0][MESH_0][FEA_SOL], true); + break; + } } /*--- Extract objective function values. ---*/ @@ -694,144 +697,48 @@ void CDiscAdjMultizoneDriver::SetObjFunction(unsigned short kind_recording) { auto config = config_container[iZone]; auto solvers = solver_container[iZone][INST_0][MESH_0]; - auto geometry = geometry_container[iZone][INST_0][MESH_0]; - - nMarker_Analyze = config->GetnMarker_Analyze(); - - for (iMarker_Analyze = 0; iMarker_Analyze < nMarker_Analyze; iMarker_Analyze++) { - - Weight_ObjFunc = config->GetWeight_ObjFunc(iMarker_Analyze); - - switch (config->GetKind_Solver()) { - case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: - // per-surface output to be added soon - break; - case HEAT_EQUATION: case DISC_ADJ_HEAT: - // per-surface output to be added soon - break; - default: - break; - } - } - - /*--- Not-per-surface objective functions (shall not be included above) ---*/ - - Weight_ObjFunc = config->GetWeight_ObjFunc(0); - - bool ObjectiveNotCovered = false; + const auto Weight_ObjFunc = config->GetWeight_ObjFunc(0); switch (config->GetKind_Solver()) { case DISC_ADJ_EULER: case DISC_ADJ_NAVIER_STOKES: case DISC_ADJ_RANS: case DISC_ADJ_INC_EULER: case DISC_ADJ_INC_NAVIER_STOKES: case DISC_ADJ_INC_RANS: { - string FieldName; - - switch (config->GetKind_ObjFunc()) { - - // Aerodynamic coefficients - - case DRAG_COEFFICIENT: - case LIFT_COEFFICIENT: - case SIDEFORCE_COEFFICIENT: - case EFFICIENCY: - case MOMENT_X_COEFFICIENT: - case MOMENT_Y_COEFFICIENT: - case MOMENT_Z_COEFFICIENT: - case FORCE_X_COEFFICIENT: - case FORCE_Y_COEFFICIENT: - case FORCE_Z_COEFFICIENT: - FieldName = config->GetName_ObjFunc(); - break; - - // Other surface-related output values - // The names are different than in CConfig... - - case SURFACE_MASSFLOW: FieldName = "AVG_MASSFLOW"; break; - case SURFACE_MACH: FieldName = "AVG_MACH"; break; - case SURFACE_UNIFORMITY: FieldName = "UNIFORMITY"; break; - case SURFACE_SECONDARY: FieldName = "SECONDARY_STRENGTH"; break; - case SURFACE_MOM_DISTORTION: FieldName = "MOMENTUM_DISTORTION"; break; - case SURFACE_SECOND_OVER_UNIFORM: FieldName = "SECONDARY_OVER_UNIFORMITY"; break; - case TOTAL_AVG_TEMPERATURE: FieldName = "AVG_TOTALTEMP"; break; - case SURFACE_TOTAL_PRESSURE: FieldName = "AVG_TOTALPRESS"; break; + auto val = solvers[FLOW_SOL]->GetTotal_ComboObj(); - // Not yet covered by new output structure. Be careful these use MARKER_MONITORING. - - case SURFACE_PRESSURE_DROP: - ObjFunc += config->GetSurface_PressureDrop(0)*Weight_ObjFunc; - break; - case SURFACE_STATIC_PRESSURE: - ObjFunc += config->GetSurface_Pressure(0)*Weight_ObjFunc; - break; - case TOTAL_HEATFLUX: - ObjFunc += solvers[FLOW_SOL]->GetTotal_HeatFlux()*Weight_ObjFunc; - break; - - default: - ObjectiveNotCovered = true; - break; + if (config->GetWeakly_Coupled_Heat()) { + if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) { + val += solvers[HEAT_SOL]->GetTotal_HeatFlux(); + } + else if (config->GetKind_ObjFunc() == AVG_TEMPERATURE) { + val += solvers[HEAT_SOL]->GetTotal_AvgTemperature(); + } } - - if(!FieldName.empty()) - ObjFunc += direct_output[iZone]->GetHistoryFieldValue(FieldName)*Weight_ObjFunc; - + ObjFunc += val*Weight_ObjFunc; break; } case DISC_ADJ_HEAT: { switch(config->GetKind_ObjFunc()) { - - // Not yet covered by new output structure. Be careful these use MARKER_MONITORING. - case TOTAL_HEATFLUX: ObjFunc += solvers[HEAT_SOL]->GetTotal_HeatFlux()*Weight_ObjFunc; break; - case TOTAL_AVG_TEMPERATURE: + case AVG_TEMPERATURE: ObjFunc += solvers[HEAT_SOL]->GetTotal_AvgTemperature()*Weight_ObjFunc; break; - - default: - ObjectiveNotCovered = true; - break; } break; } case DISC_ADJ_FEM: { - switch(config->GetKind_ObjFunc()) { - - case REFERENCE_NODE: - solvers[FEA_SOL]->Compute_OFRefNode(geometry, config); - ObjFunc += solvers[FEA_SOL]->GetTotal_OFRefNode()*Weight_ObjFunc; - break; - case REFERENCE_GEOMETRY: - solvers[FEA_SOL]->Compute_OFRefGeom(geometry, config); - ObjFunc += solvers[FEA_SOL]->GetTotal_OFRefGeom()*Weight_ObjFunc; - break; - case TOPOL_COMPLIANCE: - solvers[FEA_SOL]->Compute_OFCompliance(geometry, config); - ObjFunc += solvers[FEA_SOL]->GetTotal_OFCompliance()*Weight_ObjFunc; - break; - case VOLUME_FRACTION: - case TOPOL_DISCRETENESS: - solvers[FEA_SOL]->Compute_OFVolFrac(geometry, config); - ObjFunc += solvers[FEA_SOL]->GetTotal_OFVolFrac()*Weight_ObjFunc; - break; - - default: - ObjectiveNotCovered = true; - break; - } + solvers[FEA_SOL]->Evaluate_ObjFunc(config); + ObjFunc += solvers[FEA_SOL]->GetTotal_ComboObj()*Weight_ObjFunc; break; } default: break; } - - if (ObjectiveNotCovered && (rank == MASTER_NODE) && (kind_recording == SOLUTION_VARIABLES)) - cout << " Objective function not covered in Zone " << iZone << endl; } if (rank == MASTER_NODE) { diff --git a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp index b1561b048f94..a77d7a2a3484 100644 --- a/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp +++ b/SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp @@ -377,7 +377,7 @@ void CDiscAdjSinglezoneDriver::SetObjFunction(){ if (config->GetKind_ObjFunc() == TOTAL_HEATFLUX) { ObjFunc += solver[HEAT_SOL]->GetTotal_HeatFlux(); } - else if (config->GetKind_ObjFunc() == TOTAL_AVG_TEMPERATURE) { + else if (config->GetKind_ObjFunc() == AVG_TEMPERATURE) { ObjFunc += solver[HEAT_SOL]->GetTotal_AvgTemperature(); } } @@ -416,7 +416,7 @@ void CDiscAdjSinglezoneDriver::SetObjFunction(){ case TOTAL_HEATFLUX: ObjFunc = solver[HEAT_SOL]->GetTotal_HeatFlux(); break; - case TOTAL_AVG_TEMPERATURE: + case AVG_TEMPERATURE: ObjFunc = solver[HEAT_SOL]->GetTotal_AvgTemperature(); break; default: @@ -425,24 +425,9 @@ void CDiscAdjSinglezoneDriver::SetObjFunction(){ break; case DISC_ADJ_FEM: - switch (config->GetKind_ObjFunc()){ - case REFERENCE_GEOMETRY: - ObjFunc = solver[FEA_SOL]->GetTotal_OFRefGeom(); - break; - case REFERENCE_NODE: - ObjFunc = solver[FEA_SOL]->GetTotal_OFRefNode(); - break; - case TOPOL_COMPLIANCE: - ObjFunc = solver[FEA_SOL]->GetTotal_OFCompliance(); - break; - case VOLUME_FRACTION: - case TOPOL_DISCRETENESS: - ObjFunc = solver[FEA_SOL]->GetTotal_OFVolFrac(); - break; - default: - ObjFunc = 0.0; // If the objective function is computed in a different physical problem - break; - } + solver[FEA_SOL]->Postprocessing(geometry, config, numerics_container[ZONE_0][INST_0][MESH_0][FEA_SOL], true); + solver[FEA_SOL]->Evaluate_ObjFunc(config); + ObjFunc = solver[FEA_SOL]->GetTotal_ComboObj(); break; } diff --git a/SU2_CFD/src/integration/CMultiGridIntegration.cpp b/SU2_CFD/src/integration/CMultiGridIntegration.cpp index 05188d343850..b4d628c0e74a 100644 --- a/SU2_CFD/src/integration/CMultiGridIntegration.cpp +++ b/SU2_CFD/src/integration/CMultiGridIntegration.cpp @@ -688,12 +688,6 @@ void CMultiGridIntegration::NonDimensional_Parameters(CGeometry **geometry, CSol solver_container[FinestMesh][FLOW_SOL]->Momentum_Forces(geometry[FinestMesh], config); solver_container[FinestMesh][FLOW_SOL]->Friction_Forces(geometry[FinestMesh], config); - /*--- Evaluate the buffet metric if requested ---*/ - - if(config->GetBuffet_Monitoring() || config->GetKind_ObjFunc() == BUFFET_SENSOR){ - solver_container[FinestMesh][FLOW_SOL]->Buffet_Monitoring(geometry[FinestMesh], config); - } - break; case RUNTIME_ADJFLOW_SYS: diff --git a/SU2_CFD/src/integration/CStructuralIntegration.cpp b/SU2_CFD/src/integration/CStructuralIntegration.cpp index f366e77513b9..a2c7b9304e8a 100644 --- a/SU2_CFD/src/integration/CStructuralIntegration.cpp +++ b/SU2_CFD/src/integration/CStructuralIntegration.cpp @@ -62,10 +62,8 @@ void CStructuralIntegration::Structural_Iteration(CGeometry ****geometry, CSolve RunTime_EqSystem); solver->Postprocessing(geometry[iZone][iInst][MESH_0], - solver_container[iZone][iInst][MESH_0], config[iZone], - numerics_container[iZone][iInst][MESH_0][SolContainer_Position], - MESH_0); + numerics_container[iZone][iInst][MESH_0][SolContainer_Position]); } void CStructuralIntegration::Space_Integration_FEM(CGeometry *geometry, CSolver **solver_container, diff --git a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp index d889f036b4ce..37418e7fd881 100644 --- a/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CDiscAdjFEAIteration.cpp @@ -401,10 +401,6 @@ void CDiscAdjFEAIteration::RegisterOutput(CSolver***** solver, CGeometry**** geo void CDiscAdjFEAIteration::InitializeAdjoint(CSolver***** solver, CGeometry**** geometry, CConfig** config, unsigned short iZone, unsigned short iInst) { - /*--- Initialize the adjoint of the objective function (typically with 1.0) ---*/ - - solver[iZone][iInst][MESH_0][ADJFEA_SOL]->SetAdj_ObjFunc(geometry[iZone][iInst][MESH_0], config[iZone]); - /*--- Initialize the adjoints the conservative variables ---*/ solver[iZone][iInst][MESH_0][ADJFEA_SOL]->SetAdjoint_Output(geometry[iZone][iInst][MESH_0], config[iZone]); @@ -447,21 +443,8 @@ void CDiscAdjFEAIteration::Postprocess(COutput* output, CIntegration**** integra myfile_res << config[val_iZone]->GetTimeIter() << "\t"; - switch (config[val_iZone]->GetKind_ObjFunc()) { - case REFERENCE_GEOMETRY: - myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->GetTotal_OFRefGeom() << "\t"; - break; - case REFERENCE_NODE: - myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->GetTotal_OFRefNode() << "\t"; - break; - case VOLUME_FRACTION: - case TOPOL_DISCRETENESS: - myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->GetTotal_OFVolFrac() << "\t"; - break; - case TOPOL_COMPLIANCE: - myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->GetTotal_OFCompliance() << "\t"; - break; - } + solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->Evaluate_ObjFunc(config[val_iZone]); + myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][FEA_SOL]->GetTotal_ComboObj() << "\t"; for (iVar = 0; iVar < config[val_iZone]->GetnElasticityMod(); iVar++) myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][ADJFEA_SOL]->GetTotal_Sens_E(iVar) << "\t"; @@ -471,13 +454,11 @@ void CDiscAdjFEAIteration::Postprocess(COutput* output, CIntegration**** integra for (iVar = 0; iVar < config[val_iZone]->GetnMaterialDensity(); iVar++) myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][ADJFEA_SOL]->GetTotal_Sens_Rho(iVar) << "\t"; } - if (de_effects) { for (iVar = 0; iVar < config[val_iZone]->GetnElectric_Field(); iVar++) myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][ADJFEA_SOL]->GetTotal_Sens_EField(iVar) << "\t"; } - for (iVar = 0; iVar < solver[val_iZone][val_iInst][MESH_0][ADJFEA_SOL]->GetnDVFEA(); iVar++) { myfile_res << scientific << solver[val_iZone][val_iInst][MESH_0][ADJFEA_SOL]->GetTotal_Sens_DVFEA(iVar) << "\t"; } diff --git a/SU2_CFD/src/output/CAdjElasticityOutput.cpp b/SU2_CFD/src/output/CAdjElasticityOutput.cpp index 82e792fddb53..fcee50afc170 100644 --- a/SU2_CFD/src/output/CAdjElasticityOutput.cpp +++ b/SU2_CFD/src/output/CAdjElasticityOutput.cpp @@ -106,8 +106,6 @@ void CAdjElasticityOutput::SetHistoryOutputFields(CConfig *config){ AddHistoryOutput("SENS_E", "Sens[E]", ScreenOutputFormat::SCIENTIFIC, "SENSITIVITY", ""); AddHistoryOutput("SENS_NU","Sens[Nu]", ScreenOutputFormat::SCIENTIFIC, "SENSITIVITY", ""); - AddHistoryOutput("COMBO", "ObjFun", ScreenOutputFormat::SCIENTIFIC, "COMBO", "", HistoryFieldType::COEFFICIENT); - AddHistoryOutput("LINSOL_ITER", "LinSolIter", ScreenOutputFormat::INTEGER, "LINSOL", "Number of iterations of the linear solver."); AddHistoryOutput("LINSOL_RESIDUAL", "LinSolRes", ScreenOutputFormat::FIXED, "LINSOL", "Residual of the linear solver."); @@ -141,8 +139,6 @@ inline void CAdjElasticityOutput::LoadHistoryData(CConfig *config, CGeometry *ge SetHistoryOutputValue("SENS_E", Total_SensE); SetHistoryOutputValue("SENS_NU", Total_SensNu); - SetHistoryOutputValue("COMBO", solver[FEA_SOL]->GetTotal_ComboObj()); - SetHistoryOutputValue("LINSOL_ITER", solver[ADJFEA_SOL]->GetIterLinSolver()); SetHistoryOutputValue("LINSOL_RESIDUAL", log10(solver[ADJFEA_SOL]->GetResLinSolver())); diff --git a/SU2_CFD/src/output/CElasticityOutput.cpp b/SU2_CFD/src/output/CElasticityOutput.cpp index b5a8ae3bd243..0f7408b01166 100644 --- a/SU2_CFD/src/output/CElasticityOutput.cpp +++ b/SU2_CFD/src/output/CElasticityOutput.cpp @@ -134,7 +134,15 @@ void CElasticityOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CS SetHistoryOutputValue("LINSOL_ITER", fea_solver->GetIterLinSolver()); SetHistoryOutputValue("LINSOL_RESIDUAL", log10(fea_solver->GetResLinSolver())); - SetHistoryOutputValue("COMBO", fea_solver->GetTotal_ComboObj()); + SetHistoryOutputValue("REFERENCE_NODE", fea_solver->GetTotal_OFRefNode()); + SetHistoryOutputValue("TOPOL_COMPLIANCE", fea_solver->GetTotal_OFCompliance()); + if (config->GetRefGeom()) { + SetHistoryOutputValue("REFERENCE_GEOMETRY", fea_solver->GetTotal_OFRefGeom()); + } + if (config->GetTopology_Optimization()) { + SetHistoryOutputValue("VOLUME_FRACTION", fea_solver->GetTotal_OFVolFrac()); + SetHistoryOutputValue("TOPOL_DISCRETENESS", fea_solver->GetTotal_OFDiscreteness()); + } } @@ -158,11 +166,18 @@ void CElasticityOutput::SetHistoryOutputFields(CConfig *config){ AddHistoryOutput("BGS_DISP_Z", "bgs[DispZ]", ScreenOutputFormat::FIXED, "BGS_RES", "", HistoryFieldType::RESIDUAL); AddHistoryOutput("VMS", "VonMises", ScreenOutputFormat::SCIENTIFIC, "", "VMS"); - AddHistoryOutput("LOAD_INCREMENT", "Load[%]", ScreenOutputFormat::PERCENT, "", "LOAD_INCREMENT"); - AddHistoryOutput("LOAD_RAMP", "Load_Ramp", ScreenOutputFormat::FIXED, "", "LOAD_RAMP"); - - AddHistoryOutput("COMBO", "ObjFun", ScreenOutputFormat::SCIENTIFIC, "COMBO", "", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("LOAD_INCREMENT", "Load[%]", ScreenOutputFormat::PERCENT, "", "LOAD_INCREMENT"); + AddHistoryOutput("LOAD_RAMP", "Load_Ramp",ScreenOutputFormat::FIXED, "", "LOAD_RAMP"); + AddHistoryOutput("REFERENCE_NODE", "RefNode", ScreenOutputFormat::SCIENTIFIC, "STRUCT_COEFF", "", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TOPOL_COMPLIANCE", "TopComp", ScreenOutputFormat::SCIENTIFIC, "STRUCT_COEFF", "", HistoryFieldType::COEFFICIENT); + if (config->GetRefGeom()) { + AddHistoryOutput("REFERENCE_GEOMETRY", "RefGeom", ScreenOutputFormat::SCIENTIFIC, "STRUCT_COEFF", "", HistoryFieldType::COEFFICIENT); + } + if (config->GetTopology_Optimization()) { + AddHistoryOutput("VOLUME_FRACTION", "VolFrac", ScreenOutputFormat::SCIENTIFIC, "STRUCT_COEFF", "", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TOPOL_DISCRETENESS", "TopDisc", ScreenOutputFormat::SCIENTIFIC, "STRUCT_COEFF", "", HistoryFieldType::COEFFICIENT); + } } void CElasticityOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolver **solver, unsigned long iPoint){ diff --git a/SU2_CFD/src/output/CFlowCompOutput.cpp b/SU2_CFD/src/output/CFlowCompOutput.cpp index e59202bf7aef..5face463a4e4 100644 --- a/SU2_CFD/src/output/CFlowCompOutput.cpp +++ b/SU2_CFD/src/output/CFlowCompOutput.cpp @@ -215,27 +215,25 @@ void CFlowCompOutput::SetHistoryOutputFields(CConfig *config){ /// BEGIN_GROUP: ROTATING_FRAME, DESCRIPTION: Coefficients related to a rotating frame of reference. /// DESCRIPTION: Merit - AddHistoryOutput("MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("FIGURE_OF_MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CT - AddHistoryOutput("CT", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("THRUST", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CQ - AddHistoryOutput("CQ", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TORQUE", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); /// END_GROUP /// BEGIN_GROUP: EQUIVALENT_AREA, DESCRIPTION: Equivalent area. /// DESCRIPTION: Equivalent area AddHistoryOutput("EQUIV_AREA", "CEquiv_Area", ScreenOutputFormat::SCIENTIFIC, "EQUIVALENT_AREA", "Equivalent area", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Nearfield obj. function - AddHistoryOutput("NEARFIELD_OF", "CNearFieldOF", ScreenOutputFormat::SCIENTIFIC, "EQUIVALENT_AREA", "Nearfield obj. function ", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("NEARFIELD_OF", "CNearFieldOF", ScreenOutputFormat::SCIENTIFIC, "EQUIVALENT_AREA", "Nearfield obj. function", HistoryFieldType::COEFFICIENT); /// END_GROUP /// /// BEGIN_GROUP: HEAT_COEFF, DESCRIPTION: Heat coefficients on all surfaces set with MARKER_MONITORING. /// DESCRIPTION: Total heatflux AddHistoryOutput("TOTAL_HEATFLUX", "HF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Maximal heatflux - AddHistoryOutput("HEATFLUX_MAX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); - /// DESCRIPTION: Temperature - AddHistoryOutput("TEMPERATURE", "Temp", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total avg. temperature on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("MAXIMUM_HEATFLUX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// END_GROUP AddHistoryOutput("MIN_DELTA_TIME", "Min DT", ScreenOutputFormat::SCIENTIFIC, "CFL_NUMBER", "Current minimum local time step"); @@ -273,6 +271,10 @@ void CFlowCompOutput::SetHistoryOutputFields(CConfig *config){ AddAerodynamicCoefficients(config); + if (config->GetKind_Solver() == RANS || config->GetKind_Solver() == NAVIER_STOKES){ + AddHistoryOutput("BUFFET", "Buffet", ScreenOutputFormat::SCIENTIFIC, "AERO_COEFF", "Buffet sensor", HistoryFieldType::COEFFICIENT); + } + /*--- Add Cp diff fields ---*/ Add_CpInverseDesignOutput(config); @@ -662,9 +664,8 @@ void CFlowCompOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSol } } - SetHistoryOutputValue("TOTAL_HEATFLUX", flow_solver->GetTotal_HeatFlux()); - SetHistoryOutputValue("HEATFLUX_MAX", flow_solver->GetTotal_MaxHeatFlux()); - SetHistoryOutputValue("TEMPERATURE", flow_solver->GetTotal_AvgTemperature()); + SetHistoryOutputValue("TOTAL_HEATFLUX", flow_solver->GetTotal_HeatFlux()); + SetHistoryOutputValue("MAXIMUM_HEATFLUX", flow_solver->GetTotal_MaxHeatFlux()); SetHistoryOutputValue("MIN_DELTA_TIME", flow_solver->GetMin_Delta_Time()); SetHistoryOutputValue("MAX_DELTA_TIME", flow_solver->GetMax_Delta_Time()); @@ -699,6 +700,10 @@ void CFlowCompOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSol SetAerodynamicCoefficients(config, flow_solver); + if (config->GetKind_Solver() == RANS || config->GetKind_Solver() == NAVIER_STOKES){ + SetHistoryOutputValue("BUFFET", flow_solver->GetTotal_Buffet_Metric()); + } + /*--- Set rotating frame coefficients --- */ SetRotatingFrameCoefficients(config, flow_solver); diff --git a/SU2_CFD/src/output/CFlowIncOutput.cpp b/SU2_CFD/src/output/CFlowIncOutput.cpp index 927cb743c8ff..992df9c8e527 100644 --- a/SU2_CFD/src/output/CFlowIncOutput.cpp +++ b/SU2_CFD/src/output/CFlowIncOutput.cpp @@ -183,20 +183,20 @@ void CFlowIncOutput::SetHistoryOutputFields(CConfig *config){ /// BEGIN_GROUP: ROTATING_FRAME, DESCRIPTION: Coefficients related to a rotating frame of reference. /// DESCRIPTION: Merit - AddHistoryOutput("MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("FIGURE_OF_MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CT - AddHistoryOutput("CT", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("THRUST", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CQ - AddHistoryOutput("CQ", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TORQUE", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); /// END_GROUP /// BEGIN_GROUP: HEAT_COEFF, DESCRIPTION: Heat coefficients on all surfaces set with MARKER_MONITORING. /// DESCRIPTION: Total heatflux AddHistoryOutput("TOTAL_HEATFLUX", "HF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Maximal heatflux - AddHistoryOutput("HEATFLUX_MAX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("MAXIMUM_HEATFLUX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Temperature - AddHistoryOutput("TEMPERATURE", "Temp", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total avg. temperature on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("AVG_TEMPERATURE", "Temp", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total avg. temperature on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// END_GROUP /// DESCRIPTION: Angle of attack @@ -293,25 +293,25 @@ void CFlowIncOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSolv } if (weakly_coupled_heat){ - SetHistoryOutputValue("TOTAL_HEATFLUX", heat_solver->GetTotal_HeatFlux()); - SetHistoryOutputValue("HEATFLUX_MAX", heat_solver->GetTotal_MaxHeatFlux()); - SetHistoryOutputValue("TEMPERATURE", heat_solver->GetTotal_AvgTemperature()); - SetHistoryOutputValue("RMS_TEMPERATURE", log10(heat_solver->GetRes_RMS(0))); - SetHistoryOutputValue("MAX_TEMPERATURE", log10(heat_solver->GetRes_Max(0))); - if (multiZone) SetHistoryOutputValue("BGS_TEMPERATURE", log10(heat_solver->GetRes_BGS(0))); + SetHistoryOutputValue("TOTAL_HEATFLUX", heat_solver->GetTotal_HeatFlux()); + SetHistoryOutputValue("MAXIMUM_HEATFLUX", heat_solver->GetTotal_MaxHeatFlux()); + SetHistoryOutputValue("AVG_TEMPERATURE", heat_solver->GetTotal_AvgTemperature()); + SetHistoryOutputValue("RMS_TEMPERATURE", log10(heat_solver->GetRes_RMS(0))); + SetHistoryOutputValue("MAX_TEMPERATURE", log10(heat_solver->GetRes_Max(0))); + if (multiZone) SetHistoryOutputValue("BGS_TEMPERATURE", log10(heat_solver->GetRes_BGS(0))); } if (heat){ - SetHistoryOutputValue("TOTAL_HEATFLUX", flow_solver->GetTotal_HeatFlux()); - SetHistoryOutputValue("HEATFLUX_MAX", flow_solver->GetTotal_MaxHeatFlux()); - SetHistoryOutputValue("TEMPERATURE", flow_solver->GetTotal_AvgTemperature()); - if (nDim == 3) SetHistoryOutputValue("RMS_TEMPERATURE", log10(flow_solver->GetRes_RMS(4))); - else SetHistoryOutputValue("RMS_TEMPERATURE", log10(flow_solver->GetRes_RMS(3))); - - if (nDim == 3) SetHistoryOutputValue("MAX_TEMPERATURE", log10(flow_solver->GetRes_Max(4))); - else SetHistoryOutputValue("MAX_TEMPERATURE", log10(flow_solver->GetRes_Max(3))); + SetHistoryOutputValue("TOTAL_HEATFLUX", flow_solver->GetTotal_HeatFlux()); + SetHistoryOutputValue("MAXIMUM_HEATFLUX", flow_solver->GetTotal_MaxHeatFlux()); + SetHistoryOutputValue("AVG_TEMPERATURE", flow_solver->GetTotal_AvgTemperature()); + if (nDim == 3) SetHistoryOutputValue("RMS_TEMPERATURE", log10(flow_solver->GetRes_RMS(4))); + else SetHistoryOutputValue("RMS_TEMPERATURE", log10(flow_solver->GetRes_RMS(3))); + + if (nDim == 3) SetHistoryOutputValue("MAX_TEMPERATURE", log10(flow_solver->GetRes_Max(4))); + else SetHistoryOutputValue("MAX_TEMPERATURE", log10(flow_solver->GetRes_Max(3))); if (multiZone){ - if (nDim == 3) SetHistoryOutputValue("BGS_TEMPERATURE", log10(flow_solver->GetRes_BGS(4))); - else SetHistoryOutputValue("BGS_TEMPERATURE", log10(flow_solver->GetRes_BGS(3))); + if (nDim == 3) SetHistoryOutputValue("BGS_TEMPERATURE", log10(flow_solver->GetRes_BGS(4))); + else SetHistoryOutputValue("BGS_TEMPERATURE", log10(flow_solver->GetRes_BGS(3))); } } diff --git a/SU2_CFD/src/output/CFlowOutput.cpp b/SU2_CFD/src/output/CFlowOutput.cpp index f0038d1c6268..f3428d265ef2 100644 --- a/SU2_CFD/src/output/CFlowOutput.cpp +++ b/SU2_CFD/src/output/CFlowOutput.cpp @@ -41,13 +41,13 @@ void CFlowOutput::AddAnalyzeSurfaceOutput(CConfig *config){ /// DESCRIPTION: Average mass flow - AddHistoryOutput("AVG_MASSFLOW", "Avg_Massflow", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average mass flow on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_MASSFLOW", "Avg_Massflow", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average mass flow on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Mach number - AddHistoryOutput("AVG_MACH", "Avg_Mach", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average mach number on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_MACH", "Avg_Mach", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average mach number on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Temperature - AddHistoryOutput("AVG_TEMP", "Avg_Temp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average temperature on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_STATIC_TEMPERATURE","Avg_Temp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average temperature on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Pressure - AddHistoryOutput("AVG_PRESS", "Avg_Press", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average pressure on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_STATIC_PRESSURE", "Avg_Press", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average pressure on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Density AddHistoryOutput("AVG_DENSITY", "Avg_Density", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average density on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Enthalpy @@ -55,19 +55,19 @@ void CFlowOutput::AddAnalyzeSurfaceOutput(CConfig *config){ /// DESCRIPTION: Average velocity in normal direction of the surface AddHistoryOutput("AVG_NORMALVEL", "Avg_NormalVel", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average normal velocity on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Flow uniformity - AddHistoryOutput("UNIFORMITY", "Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total flow uniformity on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_UNIFORMITY", "Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total flow uniformity on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Secondary strength - AddHistoryOutput("SECONDARY_STRENGTH", "Secondary_Strength", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total secondary strength on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_SECONDARY", "Secondary_Strength", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total secondary strength on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Momentum distortion - AddHistoryOutput("MOMENTUM_DISTORTION", "Momentum_Distortion", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total momentum distortion on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_MOM_DISTORTION", "Momentum_Distortion", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total momentum distortion on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Secondary over uniformity - AddHistoryOutput("SECONDARY_OVER_UNIFORMITY", "Secondary_Over_Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total secondary over uniformity on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_SECOND_OVER_UNIFORM","Secondary_Over_Uniformity",ScreenOutputFormat::SCIENTIFIC,"FLOW_COEFF", "Total secondary over uniformity on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average total temperature - AddHistoryOutput("AVG_TOTALTEMP", "Avg_TotalTemp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average total temperature all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_TOTAL_TEMPERATURE","Avg_TotalTemp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average total temperature all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average total pressure - AddHistoryOutput("AVG_TOTALPRESS", "Avg_TotalPress", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average total pressure on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_TOTAL_PRESSURE", "Avg_TotalPress", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average total pressure on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Pressure drop - AddHistoryOutput("PRESSURE_DROP", "Pressure_Drop", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total pressure drop on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("SURFACE_PRESSURE_DROP", "Pressure_Drop", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total pressure drop on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT); /// END_GROUP @@ -78,13 +78,13 @@ void CFlowOutput::AddAnalyzeSurfaceOutput(CConfig *config){ } /// DESCRIPTION: Average mass flow - AddHistoryOutputPerSurface("AVG_MASSFLOW", "Avg_Massflow", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_MASSFLOW", "Avg_Massflow", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Mach number - AddHistoryOutputPerSurface("AVG_MACH", "Avg_Mach", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_MACH", "Avg_Mach", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Temperature - AddHistoryOutputPerSurface("AVG_TEMP", "Avg_Temp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_STATIC_TEMPERATURE","Avg_Temp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Pressure - AddHistoryOutputPerSurface("AVG_PRESS", "Avg_Press", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_STATIC_PRESSURE", "Avg_Press", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Density AddHistoryOutputPerSurface("AVG_DENSITY", "Avg_Density", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average Enthalpy @@ -92,19 +92,19 @@ void CFlowOutput::AddAnalyzeSurfaceOutput(CConfig *config){ /// DESCRIPTION: Average velocity in normal direction of the surface AddHistoryOutputPerSurface("AVG_NORMALVEL", "Avg_NormalVel", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Flow uniformity - AddHistoryOutputPerSurface("UNIFORMITY", "Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_UNIFORMITY", "Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Secondary strength - AddHistoryOutputPerSurface("SECONDARY_STRENGTH", "Secondary_Strength", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_SECONDARY", "Secondary_Strength", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Momentum distortion - AddHistoryOutputPerSurface("MOMENTUM_DISTORTION", "Momentum_Distortion", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_MOM_DISTORTION", "Momentum_Distortion", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Secondary over uniformity - AddHistoryOutputPerSurface("SECONDARY_OVER_UNIFORMITY", "Secondary_Over_Uniformity", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_SECOND_OVER_UNIFORM","Secondary_Over_Uniformity",ScreenOutputFormat::SCIENTIFIC,"FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average total temperature - AddHistoryOutputPerSurface("AVG_TOTALTEMP", "Avg_TotalTemp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_TOTAL_TEMPERATURE","Avg_TotalTemp", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Average total pressure - AddHistoryOutputPerSurface("AVG_TOTALPRESS", "Avg_TotalPress", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_TOTAL_PRESSURE", "Avg_TotalPress", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Pressure drop - AddHistoryOutputPerSurface("PRESSURE_DROP", "Pressure_Drop", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); + AddHistoryOutputPerSurface("SURFACE_PRESSURE_DROP", "Pressure_Drop", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF_SURF", Marker_Analyze, HistoryFieldType::COEFFICIENT); /// END_GROUP } @@ -470,22 +470,22 @@ void CFlowOutput::SetAnalyzeSurface(CSolver *solver, CGeometry *geometry, CConfi su2double MassFlow = Surface_MassFlow_Total[iMarker_Analyze] * config->GetDensity_Ref() * config->GetVelocity_Ref(); if (config->GetSystemMeasurements() == US) MassFlow *= 32.174; - SetHistoryOutputPerSurfaceValue("AVG_MASSFLOW", MassFlow, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_MASSFLOW", MassFlow, iMarker_Analyze); Tot_Surface_MassFlow += MassFlow; config->SetSurface_MassFlow(iMarker_Analyze, MassFlow); su2double Mach = Surface_Mach_Total[iMarker_Analyze]; - SetHistoryOutputPerSurfaceValue("AVG_MACH", Mach, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_MACH", Mach, iMarker_Analyze); Tot_Surface_Mach += Mach; config->SetSurface_Mach(iMarker_Analyze, Mach); su2double Temperature = Surface_Temperature_Total[iMarker_Analyze] * config->GetTemperature_Ref(); - SetHistoryOutputPerSurfaceValue("AVG_TEMP", Temperature, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_STATIC_TEMPERATURE", Temperature, iMarker_Analyze); Tot_Surface_Temperature += Temperature; config->SetSurface_Temperature(iMarker_Analyze, Temperature); su2double Pressure = Surface_Pressure_Total[iMarker_Analyze] * config->GetPressure_Ref(); - SetHistoryOutputPerSurfaceValue("AVG_PRESS", Pressure, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_STATIC_PRESSURE", Pressure, iMarker_Analyze); Tot_Surface_Pressure += Pressure; config->SetSurface_Pressure(iMarker_Analyze, Pressure); @@ -505,32 +505,32 @@ void CFlowOutput::SetAnalyzeSurface(CSolver *solver, CGeometry *geometry, CConfi config->SetSurface_NormalVelocity(iMarker_Analyze, NormalVelocity); su2double Uniformity = sqrt(Surface_StreamVelocity2_Total[iMarker_Analyze]) * config->GetVelocity_Ref(); - SetHistoryOutputPerSurfaceValue("UNIFORMITY", Uniformity, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_UNIFORMITY", Uniformity, iMarker_Analyze); Tot_Surface_StreamVelocity2 += Uniformity; config->SetSurface_Uniformity(iMarker_Analyze, Uniformity); su2double SecondaryStrength = sqrt(Surface_TransvVelocity2_Total[iMarker_Analyze]) * config->GetVelocity_Ref(); - SetHistoryOutputPerSurfaceValue("SECONDARY_STRENGTH", SecondaryStrength, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_SECONDARY", SecondaryStrength, iMarker_Analyze); Tot_Surface_TransvVelocity2 += SecondaryStrength; config->SetSurface_SecondaryStrength(iMarker_Analyze, SecondaryStrength); su2double MomentumDistortion = Surface_MomentumDistortion_Total[iMarker_Analyze]; - SetHistoryOutputPerSurfaceValue("MOMENTUM_DISTORTION", MomentumDistortion, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_MOM_DISTORTION", MomentumDistortion, iMarker_Analyze); Tot_Momentum_Distortion += MomentumDistortion; config->SetSurface_MomentumDistortion(iMarker_Analyze, MomentumDistortion); su2double SecondOverUniform = SecondaryStrength/Uniformity; - SetHistoryOutputPerSurfaceValue("SECONDARY_OVER_UNIFORMITY", SecondOverUniform, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_SECOND_OVER_UNIFORM", SecondOverUniform, iMarker_Analyze); Tot_SecondOverUniformity += SecondOverUniform; config->SetSurface_SecondOverUniform(iMarker_Analyze, SecondOverUniform); su2double TotalTemperature = Surface_TotalTemperature_Total[iMarker_Analyze] * config->GetTemperature_Ref(); - SetHistoryOutputPerSurfaceValue("AVG_TOTALTEMP", TotalTemperature, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_TOTAL_TEMPERATURE", TotalTemperature, iMarker_Analyze); Tot_Surface_TotalTemperature += TotalTemperature; config->SetSurface_TotalTemperature(iMarker_Analyze, TotalTemperature); su2double TotalPressure = Surface_TotalPressure_Total[iMarker_Analyze] * config->GetPressure_Ref(); - SetHistoryOutputPerSurfaceValue("AVG_TOTALPRESS", TotalPressure, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_TOTAL_PRESSURE", TotalPressure, iMarker_Analyze); Tot_Surface_TotalPressure += TotalPressure; config->SetSurface_TotalPressure(iMarker_Analyze, TotalPressure); @@ -549,24 +549,24 @@ void CFlowOutput::SetAnalyzeSurface(CSolver *solver, CGeometry *geometry, CConfi Pressure_Drop = (Surface_Pressure_Total[1]-Surface_Pressure_Total[0]) * config->GetPressure_Ref(); config->SetSurface_PressureDrop(iMarker_Analyze, Pressure_Drop); } - SetHistoryOutputPerSurfaceValue("PRESSURE_DROP", Pressure_Drop, iMarker_Analyze); + SetHistoryOutputPerSurfaceValue("SURFACE_PRESSURE_DROP", Pressure_Drop, iMarker_Analyze); Tot_Surface_PressureDrop += Pressure_Drop; } - SetHistoryOutputValue("AVG_MASSFLOW", Tot_Surface_MassFlow); - SetHistoryOutputValue("AVG_MACH", Tot_Surface_Mach); - SetHistoryOutputValue("AVG_TEMP", Tot_Surface_Temperature); - SetHistoryOutputValue("AVG_PRESS", Tot_Surface_Pressure); + SetHistoryOutputValue("SURFACE_MASSFLOW", Tot_Surface_MassFlow); + SetHistoryOutputValue("SURFACE_MACH", Tot_Surface_Mach); + SetHistoryOutputValue("SURFACE_STATIC_TEMPERATURE", Tot_Surface_Temperature); + SetHistoryOutputValue("SURFACE_STATIC_PRESSURE", Tot_Surface_Pressure); SetHistoryOutputValue("AVG_DENSITY", Tot_Surface_Density); SetHistoryOutputValue("AVG_ENTHALPY", Tot_Surface_Enthalpy); SetHistoryOutputValue("AVG_NORMALVEL", Tot_Surface_Enthalpy); - SetHistoryOutputValue("UNIFORMITY", Tot_Surface_StreamVelocity2); - SetHistoryOutputValue("SECONDARY_STRENGTH", Tot_Surface_TransvVelocity2); - SetHistoryOutputValue("MOMENTUM_DISTORTION", Tot_Momentum_Distortion); - SetHistoryOutputValue("SECONDARY_OVER_UNIFORMITY", Tot_SecondOverUniformity); - SetHistoryOutputValue("AVG_TOTALTEMP", Tot_Surface_TotalTemperature); - SetHistoryOutputValue("AVG_TOTALPRESS", Tot_Surface_TotalPressure); - SetHistoryOutputValue("PRESSURE_DROP", Tot_Surface_PressureDrop); + SetHistoryOutputValue("SURFACE_UNIFORMITY", Tot_Surface_StreamVelocity2); + SetHistoryOutputValue("SURFACE_SECONDARY", Tot_Surface_TransvVelocity2); + SetHistoryOutputValue("SURFACE_MOM_DISTORTION", Tot_Momentum_Distortion); + SetHistoryOutputValue("SURFACE_SECOND_OVER_UNIFORM", Tot_SecondOverUniformity); + SetHistoryOutputValue("SURFACE_TOTAL_TEMPERATURE", Tot_Surface_TotalTemperature); + SetHistoryOutputValue("SURFACE_TOTAL_PRESSURE", Tot_Surface_TotalPressure); + SetHistoryOutputValue("SURFACE_PRESSURE_DROP", Tot_Surface_PressureDrop); if ((rank == MASTER_NODE) && !config->GetDiscrete_Adjoint() && output) { @@ -797,15 +797,15 @@ void CFlowOutput::SetAerodynamicCoefficients(CConfig *config, CSolver *flow_solv void CFlowOutput::SetRotatingFrameCoefficients(CConfig *config, CSolver *flow_solver) { - SetHistoryOutputValue("CT", flow_solver->GetTotal_CT()); - SetHistoryOutputValue("CQ", flow_solver->GetTotal_CQ()); - SetHistoryOutputValue("MERIT", flow_solver->GetTotal_CMerit()); + SetHistoryOutputValue("THRUST", flow_solver->GetTotal_CT()); + SetHistoryOutputValue("TORQUE", flow_solver->GetTotal_CQ()); + SetHistoryOutputValue("FIGURE_OF_MERIT", flow_solver->GetTotal_CMerit()); } void CFlowOutput::Add_CpInverseDesignOutput(CConfig *config){ - AddHistoryOutput("CP_DIFF", "Cp_Diff", ScreenOutputFormat::FIXED, "CP_DIFF", "Cp difference for inverse design"); + AddHistoryOutput("INVERSE_DESIGN_PRESSURE", "Cp_Diff", ScreenOutputFormat::FIXED, "CP_DIFF", "Cp difference for inverse design"); } @@ -929,7 +929,7 @@ void CFlowOutput::Set_CpInverseDesign(CSolver *solver, CGeometry *geometry, CCon solver->SetTotal_CpDiff(PressDiff); - SetHistoryOutputValue("CP_DIFF", PressDiff); + SetHistoryOutputValue("INVERSE_DESIGN_PRESSURE", PressDiff); } diff --git a/SU2_CFD/src/output/CHeatOutput.cpp b/SU2_CFD/src/output/CHeatOutput.cpp index 9d76e88542ea..7f6738fe000d 100644 --- a/SU2_CFD/src/output/CHeatOutput.cpp +++ b/SU2_CFD/src/output/CHeatOutput.cpp @@ -83,7 +83,7 @@ void CHeatOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSolver CSolver* heat_solver = solver[HEAT_SOL]; SetHistoryOutputValue("TOTAL_HEATFLUX", heat_solver->GetTotal_HeatFlux()); - SetHistoryOutputValue("HEATFLUX_MAX", heat_solver->GetTotal_MaxHeatFlux()); + SetHistoryOutputValue("MAXIMUM_HEATFLUX", heat_solver->GetTotal_MaxHeatFlux()); SetHistoryOutputValue("AVG_TEMPERATURE", heat_solver->GetTotal_AvgTemperature()); SetHistoryOutputValue("RMS_TEMPERATURE", log10(heat_solver->GetRes_RMS(0))); SetHistoryOutputValue("MAX_TEMPERATURE", log10(heat_solver->GetRes_Max(0))); @@ -107,7 +107,7 @@ void CHeatOutput::SetHistoryOutputFields(CConfig *config){ AddHistoryOutput("BGS_TEMPERATURE", "bgs[T]", ScreenOutputFormat::FIXED, "BGS_RES", "Block-Gauss seidel residual of the temperature", HistoryFieldType::RESIDUAL); AddHistoryOutput("TOTAL_HEATFLUX", "HF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total heatflux on all surfaces defined in MARKER_MONITORING", HistoryFieldType::COEFFICIENT); - AddHistoryOutput("HEATFLUX_MAX", "MaxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximal heatflux on all surfaces defined in MARKER_MONITORING", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("MAXIMUM_HEATFLUX", "MaxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximal heatflux on all surfaces defined in MARKER_MONITORING", HistoryFieldType::COEFFICIENT); AddHistoryOutput("AVG_TEMPERATURE", "AvgTemp", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total average temperature on all surfaces defined in MARKER_MONITORING", HistoryFieldType::COEFFICIENT); AddHistoryOutput("CFL_NUMBER", "CFL number", ScreenOutputFormat::SCIENTIFIC, "CFL_NUMBER", "Current value of the CFL number"); diff --git a/SU2_CFD/src/output/CNEMOCompOutput.cpp b/SU2_CFD/src/output/CNEMOCompOutput.cpp index 836e78200254..763f9006af56 100644 --- a/SU2_CFD/src/output/CNEMOCompOutput.cpp +++ b/SU2_CFD/src/output/CNEMOCompOutput.cpp @@ -225,11 +225,11 @@ void CNEMOCompOutput::SetHistoryOutputFields(CConfig *config){ /// BEGIN_GROUP: ROTATING_FRAME, DESCRIPTION: Coefficients related to a rotating frame of reference. /// DESCRIPTION: Merit - AddHistoryOutput("MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("FIGURE_OF_MERIT", "CMerit", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "Merit", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CT - AddHistoryOutput("CT", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("THRUST", "CT", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CT", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: CQ - AddHistoryOutput("CQ", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TORQUE", "CQ", ScreenOutputFormat::SCIENTIFIC, "ROTATING_FRAME", "CQ", HistoryFieldType::COEFFICIENT); /// END_GROUP /// BEGIN_GROUP: EQUIVALENT_AREA, DESCRIPTION: Equivalent area. @@ -241,11 +241,9 @@ void CNEMOCompOutput::SetHistoryOutputFields(CConfig *config){ /// /// BEGIN_GROUP: HEAT_COEFF, DESCRIPTION: Heat coefficients on all surfaces set with MARKER_MONITORING. /// DESCRIPTION: Total heatflux - AddHistoryOutput("HEATFLUX", "HF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("TOTAL_HEATFLUX", "HF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// DESCRIPTION: Maximal heatflux - AddHistoryOutput("HEATFLUX_MAX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); - /// DESCRIPTION: Temperature - AddHistoryOutput("TEMPERATURE", "Temp", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total avg. temperature on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); + AddHistoryOutput("MAXIMUM_HEATFLUX", "maxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximum heatflux on all surfaces set with MARKER_MONITORING.", HistoryFieldType::COEFFICIENT); /// END_GROUP AddHistoryOutput("CFL_NUMBER", "CFL number", ScreenOutputFormat::SCIENTIFIC, "CFL_NUMBER", "Current value of the CFL number"); @@ -441,7 +439,7 @@ void CNEMOCompOutput::LoadVolumeData(CConfig *config, CGeometry *geometry, CSolv SetVolumeOutputValue("COORD-Y", iPoint, Node_Geo->GetCoord(iPoint, 1)); if (nDim == 3) SetVolumeOutputValue("COORD-Z", iPoint, Node_Geo->GetCoord(iPoint, 2)); - + for(iSpecies = 0; iSpecies < nSpecies; iSpecies++) SetVolumeOutputValue("DENSITY_" + std::to_string(iSpecies), iPoint, Node_Flow->GetSolution(iPoint, iSpecies)); @@ -581,7 +579,7 @@ void CNEMOCompOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSol for(iSpecies = 0; iSpecies < nSpecies; iSpecies++) SetHistoryOutputValue("RMS_DENSITY_" + std::to_string(iSpecies), log10(NEMO_solver->GetRes_RMS(iSpecies))); - + SetHistoryOutputValue("RMS_MOMENTUM-X", log10(NEMO_solver->GetRes_RMS(nSpecies))); SetHistoryOutputValue("RMS_MOMENTUM-Y", log10(NEMO_solver->GetRes_RMS(nSpecies+1))); if (nDim == 2){ @@ -649,9 +647,8 @@ void CNEMOCompOutput::LoadHistoryData(CConfig *config, CGeometry *geometry, CSol } } - SetHistoryOutputValue("HEATFLUX", NEMO_solver->GetTotal_HeatFlux()); - SetHistoryOutputValue("HEATFLUX_MAX", NEMO_solver->GetTotal_MaxHeatFlux()); - SetHistoryOutputValue("TEMPERATURE", NEMO_solver->GetTotal_AvgTemperature()); + SetHistoryOutputValue("TOTAL_HEATFLUX", NEMO_solver->GetTotal_HeatFlux()); + SetHistoryOutputValue("MAXIMUM_HEATFLUX", NEMO_solver->GetTotal_MaxHeatFlux()); SetHistoryOutputValue("CFL_NUMBER", config->GetCFL(MESH_0)); diff --git a/SU2_CFD/src/output/output_structure_legacy.cpp b/SU2_CFD/src/output/output_structure_legacy.cpp index 59b76a3aee8d..aca2fa2c602b 100644 --- a/SU2_CFD/src/output/output_structure_legacy.cpp +++ b/SU2_CFD/src/output/output_structure_legacy.cpp @@ -347,7 +347,7 @@ void COutputLegacy::SetConvHistory_Header(ofstream *ConvHist_file, CConfig *conf bool rotating_frame = config->GetRotating_Frame(); bool aeroelastic = config->GetAeroelastic_Simulation(); bool equiv_area = config->GetEquivArea(); - bool buffet = (config->GetBuffet_Monitoring() || config->GetKind_ObjFunc() == BUFFET_SENSOR); + bool buffet = (config->GetViscous() || config->GetKind_Regime() == COMPRESSIBLE); bool engine = ((config->GetnMarker_EngineInflow() != 0) || (config->GetnMarker_EngineExhaust() != 0)); bool actuator_disk = ((config->GetnMarker_ActDiskInlet() != 0) || (config->GetnMarker_ActDiskOutlet() != 0)); bool turbulent = ((config->GetKind_Solver() == RANS) || (config->GetKind_Solver() == ADJ_RANS) || @@ -760,7 +760,7 @@ void COutputLegacy::SetConvHistory_Body(ofstream *ConvHist_file, (config[val_iZone]->GetKind_Solver() == ADJ_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == ADJ_RANS) || (config[val_iZone]->GetKind_Solver() == INC_EULER) || (config[val_iZone]->GetKind_Solver() == INC_NAVIER_STOKES) || (config[val_iZone]->GetKind_Solver() == INC_RANS); - bool buffet = (config[val_iZone]->GetBuffet_Monitoring() || config[val_iZone]->GetKind_ObjFunc() == BUFFET_SENSOR); + bool buffet = (config[val_iZone]->GetViscous() || config[val_iZone]->GetKind_Regime() == COMPRESSIBLE); bool fem = ((config[val_iZone]->GetKind_Solver() == FEM_ELASTICITY) || // FEM structural solver. (config[val_iZone]->GetKind_Solver() == DISC_ADJ_FEM)); diff --git a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp index 1621d22f12f0..fdcb0df49219 100644 --- a/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjFEASolver.cpp @@ -462,67 +462,6 @@ void CDiscAdjFEASolver::RegisterOutput(CGeometry *geometry, CConfig *config){ } -void CDiscAdjFEASolver::RegisterObj_Func(CConfig *config){ - - /*--- Here we can add new (scalar) objective functions ---*/ - - switch (config->GetKind_ObjFunc()){ - case REFERENCE_GEOMETRY: - ObjFunc_Value = direct_solver->GetTotal_OFRefGeom(); - break; - case REFERENCE_NODE: - ObjFunc_Value = direct_solver->GetTotal_OFRefNode(); - break; - case VOLUME_FRACTION: - case TOPOL_DISCRETENESS: - ObjFunc_Value = direct_solver->GetTotal_OFVolFrac(); - break; - case TOPOL_COMPLIANCE: - ObjFunc_Value = direct_solver->GetTotal_OFCompliance(); - break; - default: - ObjFunc_Value = 0.0; // If the objective function is computed in a different physical problem - break; - /*--- Template for new objective functions where TemplateObjFunction() - * is the routine that returns the obj. function value. The computation - * must be done while the tape is active, i.e. between AD::StartRecording() and - * AD::StopRecording() in DiscAdjMeanFlowIteration::Iterate(). The best place is somewhere - * inside MeanFlowIteration::Iterate(). - * - * case TEMPLATE_OBJECTIVE: - * ObjFunc_Value = TemplateObjFunction(); - * break; - * ---*/ - } - if (rank == MASTER_NODE){ - AD::RegisterOutput(ObjFunc_Value); - } -} - - -void CDiscAdjFEASolver::SetAdj_ObjFunc(CGeometry *geometry, CConfig *config){ - - bool dynamic = (config->GetTime_Domain()); - unsigned long IterAvg_Obj = config->GetIter_Avg_Objective(); - unsigned long TimeIter = config->GetTimeIter(); - su2double seeding = 1.0; - - if (dynamic){ - if (TimeIter < IterAvg_Obj){ - seeding = 1.0/((su2double)IterAvg_Obj); - } - else{ - seeding = 0.0; - } - } - - if (rank == MASTER_NODE){ - SU2_TYPE::SetDerivative(ObjFunc_Value, SU2_TYPE::GetValue(seeding)); - } else { - SU2_TYPE::SetDerivative(ObjFunc_Value, 0.0); - } -} - void CDiscAdjFEASolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *config){ bool dynamic = config->GetTime_Domain(); diff --git a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp index de7eebe5d27e..de2de7f09c2e 100644 --- a/SU2_CFD/src/solvers/CDiscAdjSolver.cpp +++ b/SU2_CFD/src/solvers/CDiscAdjSolver.cpp @@ -394,87 +394,6 @@ void CDiscAdjSolver::RegisterOutput(CGeometry *geometry, CConfig *config) { direct_solver->GetNodes()->RegisterSolution(input, push_index); } -void CDiscAdjSolver::RegisterObj_Func(CConfig *config) { - - /*--- Here we can add new (scalar) objective functions ---*/ - if (config->GetnObj()==1) { - switch (config->GetKind_ObjFunc()) { - case DRAG_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CD(); - if (config->GetFixed_CL_Mode()) ObjFunc_Value -= config->GetdCD_dCL() * direct_solver->GetTotal_CL(); - if (config->GetFixed_CM_Mode()) ObjFunc_Value -= config->GetdCD_dCMy() * direct_solver->GetTotal_CMy(); - break; - case LIFT_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CL(); - break; - case SIDEFORCE_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CSF(); - break; - case EFFICIENCY: - ObjFunc_Value = direct_solver->GetTotal_CEff(); - break; - case MOMENT_X_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CMx(); - break; - case MOMENT_Y_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CMy(); - break; - case MOMENT_Z_COEFFICIENT: - ObjFunc_Value = direct_solver->GetTotal_CMz(); - break; - case EQUIVALENT_AREA: - ObjFunc_Value = direct_solver->GetTotal_CEquivArea(); - break; - case BUFFET_SENSOR: - ObjFunc_Value = direct_solver->GetTotal_Buffet_Metric(); - break; - case TOTAL_HEATFLUX: - ObjFunc_Value = direct_solver->GetTotal_HeatFlux(); - break; - } - - /*--- Template for new objective functions where TemplateObjFunction() - * is the routine that returns the obj. function value. The computation - * must be done while the tape is active, i.e. between AD::StartRecording() and - * AD::StopRecording() in DiscAdjMeanFlowIteration::Iterate(). The best place is somewhere - * inside MeanFlowIteration::Iterate(). - * - * case TEMPLATE_OBJECTIVE: - * ObjFunc_Value = TemplateObjFunction(); - * break; - * ---*/ - } - else{ - ObjFunc_Value = direct_solver->GetTotal_ComboObj(); - } - if (rank == MASTER_NODE) { - AD::RegisterOutput(ObjFunc_Value); - } -} - -void CDiscAdjSolver::SetAdj_ObjFunc(CGeometry *geometry, CConfig *config) { - - bool time_stepping = config->GetTime_Marching() != STEADY; - unsigned long IterAvg_Obj = config->GetIter_Avg_Objective(); - unsigned long TimeIter = config->GetTimeIter(); - su2double seeding = 1.0; - - if (time_stepping) { - if (TimeIter < IterAvg_Obj) { - seeding = 1.0/((su2double)IterAvg_Obj); - } - else { - seeding = 0.0; - } - } - - if (rank == MASTER_NODE) { - SU2_TYPE::SetDerivative(ObjFunc_Value, SU2_TYPE::GetValue(seeding)); - } else { - SU2_TYPE::SetDerivative(ObjFunc_Value, 0.0); - } -} - void CDiscAdjSolver::ExtractAdjoint_Solution(CGeometry *geometry, CConfig *config){ const bool time_n1_needed = config->GetTime_Marching() == DT_STEPPING_2ND; diff --git a/SU2_CFD/src/solvers/CEulerSolver.cpp b/SU2_CFD/src/solvers/CEulerSolver.cpp index d05bbfc0bc3a..73806f978d92 100644 --- a/SU2_CFD/src/solvers/CEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CEulerSolver.cpp @@ -5522,7 +5522,7 @@ void CEulerSolver::UpdateCustomBoundaryConditions(CGeometry **geometry_container } } -void CEulerSolver::Evaluate_ObjFunc(CConfig *config) { +void CEulerSolver::Evaluate_ObjFunc(const CConfig *config) { unsigned short iMarker_Monitoring, Kind_ObjFunc; su2double Weight_ObjFunc; @@ -5573,9 +5573,6 @@ void CEulerSolver::Evaluate_ObjFunc(CConfig *config) { case SURFACE_MACH: Total_ComboObj+=Weight_ObjFunc*config->GetSurface_Mach(0); break; - case TOTAL_AVG_TEMPERATURE: - Total_ComboObj+=Weight_ObjFunc*config->GetSurface_Temperature(0); - break; default: break; } diff --git a/SU2_CFD/src/solvers/CFEASolver.cpp b/SU2_CFD/src/solvers/CFEASolver.cpp index fe10390bf57c..f9afa46d1651 100644 --- a/SU2_CFD/src/solvers/CFEASolver.cpp +++ b/SU2_CFD/src/solvers/CFEASolver.cpp @@ -194,7 +194,9 @@ CFEASolver::CFEASolver(CGeometry *geometry, CConfig *config) : CSolver() { /*--- Initialize the value of the total objective function ---*/ Total_OFRefGeom = 0.0; Total_OFRefNode = 0.0; - Total_OFVolFrac = 0.0; + Total_OFVolFrac = 1.0; + Total_OFDiscreteness = 0.0; + Total_OFCompliance = 0.0; /*--- Initialize the value of the global objective function ---*/ Global_OFRefGeom = 0.0; @@ -1909,34 +1911,43 @@ CSysVector computeLinearResidual(const CSysMatrix& A, return r; } -void CFEASolver::Postprocessing(CGeometry *geometry, CSolver **solver_container, - CConfig *config, CNumerics **numerics, unsigned short iMesh) { +void CFEASolver::Postprocessing(CGeometry *geometry, CConfig *config, CNumerics **numerics, bool of_comp_mode) { - const bool nonlinear_analysis = (config->GetGeometricConditions() == LARGE_DEFORMATIONS); - - /*--- Compute stresses for monitoring and output. ---*/ - - Compute_NodalStress(geometry, numerics, config); - - /*--- Compute the objective function to be able to monitor it. ---*/ + /*--- Compute the objective function. ---*/ const auto kindObjFunc = config->GetKind_ObjFunc(); + const bool penalty = ((kindObjFunc == REFERENCE_GEOMETRY) || (kindObjFunc == REFERENCE_NODE)) && + ((config->GetDV_FEA() == YOUNG_MODULUS) || (config->GetDV_FEA() == DENSITY_VAL)); + + if (of_comp_mode) { + if (penalty) Stiffness_Penalty(geometry, numerics, config); + + switch (kindObjFunc) { + case REFERENCE_GEOMETRY: Compute_OFRefGeom(geometry, config); break; + case REFERENCE_NODE: Compute_OFRefNode(geometry, config); break; + case VOLUME_FRACTION: Compute_OFVolFrac(geometry, config); break; + case TOPOL_DISCRETENESS: Compute_OFVolFrac(geometry, config); break; + case TOPOL_COMPLIANCE: Compute_OFCompliance(geometry, config); break; + } + return; + } - if (((kindObjFunc == REFERENCE_GEOMETRY) || (kindObjFunc == REFERENCE_NODE)) && - ((config->GetDV_FEA() == YOUNG_MODULUS) || (config->GetDV_FEA() == DENSITY_VAL))) { + if (!config->GetDiscrete_Adjoint()) { + /*--- Compute stresses for monitoring and output. ---*/ + Compute_NodalStress(geometry, numerics, config); - Stiffness_Penalty(geometry, solver_container, numerics, config); + /*--- Compute functions for monitoring and output. ---*/ + if (penalty) Stiffness_Penalty(geometry, numerics, config); + Compute_OFRefNode(geometry, config); + Compute_OFCompliance(geometry, config); + if (config->GetRefGeom()) Compute_OFRefGeom(geometry, config); + if (config->GetTopology_Optimization()) Compute_OFVolFrac(geometry, config); } - switch (kindObjFunc) { - case REFERENCE_GEOMETRY: Compute_OFRefGeom(geometry, config); break; - case REFERENCE_NODE: Compute_OFRefNode(geometry, config); break; - case VOLUME_FRACTION: Compute_OFVolFrac(geometry, config); break; - case TOPOL_DISCRETENESS: Compute_OFVolFrac(geometry, config); break; - case TOPOL_COMPLIANCE: Compute_OFCompliance(geometry, config); break; - } + /*--- Residuals do not have to be computed while recording. ---*/ + if (config->GetDiscrete_Adjoint() && AD::TapeActive()) return; - if (nonlinear_analysis) { + if (config->GetGeometricConditions() == LARGE_DEFORMATIONS) { /*--- For nonlinear analysis we have 3 convergence criteria: ---*/ /*--- UTOL = norm(Delta_U(k)): ABSOLUTE, norm of the incremental displacements ---*/ @@ -3006,9 +3017,6 @@ void CFEASolver::Compute_OFRefGeom(CGeometry *geometry, const CConfig *config){ Global_OFRefGeom += Total_OFRefGeom; - /*--- To be accessible from the output. ---*/ - Total_OFCombo = Total_OFRefGeom; - /// TODO: Temporary output files for the direct mode. if ((rank == MASTER_NODE) && (config->GetDirectDiff() != NO_DERIVATIVE)) { @@ -3052,9 +3060,6 @@ void CFEASolver::Compute_OFRefNode(CGeometry *geometry, const CConfig *config){ Global_OFRefNode += Total_OFRefNode; - /*--- To be accessible from the output. ---*/ - Total_OFCombo = Total_OFRefNode; - /// TODO: Temporary output files for the direct mode. if ((rank == MASTER_NODE) && (config->GetDirectDiff() != NO_DERIVATIVE)) { @@ -3109,13 +3114,8 @@ void CFEASolver::Compute_OFVolFrac(CGeometry *geometry, const CConfig *config) SU2_MPI::Allreduce(&discreteness,&tmp,1,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); discreteness = tmp; - if (config->GetKind_ObjFunc() == TOPOL_DISCRETENESS) - Total_OFVolFrac = discreteness/total_volume; - else - Total_OFVolFrac = integral/total_volume; - - /*--- To be accessible from the output. ---*/ - Total_OFCombo = Total_OFVolFrac; + Total_OFDiscreteness = discreteness/total_volume; + Total_OFVolFrac = integral/total_volume; } @@ -3169,12 +3169,9 @@ void CFEASolver::Compute_OFCompliance(CGeometry *geometry, const CConfig *config SU2_MPI::Allreduce(&compliance, &Total_OFCompliance, 1,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); - /*--- To be accessible from the output. ---*/ - Total_OFCombo = Total_OFCompliance; - } -void CFEASolver::Stiffness_Penalty(CGeometry *geometry, CSolver **solver, CNumerics **numerics, CConfig *config){ +void CFEASolver::Stiffness_Penalty(CGeometry *geometry, CNumerics **numerics, CConfig *config){ if (config->GetTotalDV_Penalty() == 0.0) { /*--- No need to go into expensive computations. ---*/ diff --git a/SU2_CFD/src/solvers/CIncEulerSolver.cpp b/SU2_CFD/src/solvers/CIncEulerSolver.cpp index 50c62b0635b6..06063ba959a5 100644 --- a/SU2_CFD/src/solvers/CIncEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CIncEulerSolver.cpp @@ -2189,27 +2189,6 @@ void CIncEulerSolver::ImplicitEuler_Iteration(CGeometry *geometry, CSolver **sol } -void CIncEulerSolver::Evaluate_ObjFunc(CConfig *config) { - - Total_ComboObj = EvaluateCommonObjFunc(*config); - - /*--- The following are not per-surface, and so to avoid that they are - double-counted when multiple surfaces are specified, they have been - placed outside of the loop above. In addition, multi-objective mode is - also disabled for these objective functions (error thrown at start). ---*/ - - const auto Weight_ObjFunc = config->GetWeight_ObjFunc(0); - const auto Kind_ObjFunc = config->GetKind_ObjFunc(0); - - switch(Kind_ObjFunc) { - case SURFACE_PRESSURE_DROP: - Total_ComboObj+=Weight_ObjFunc*config->GetSurface_PressureDrop(0); - break; - default: - break; - } -} - void CIncEulerSolver::SetBeta_Parameter(CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) { diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 787c60e90c03..188d26edbb26 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -219,22 +219,22 @@ CNEMOEulerSolver::CNEMOEulerSolver(CGeometry *geometry, CConfig *config, counter_local = 0; for (iPoint = 0; iPoint < nPoint; iPoint++) { - + nonPhys = nodes->SetPrimVar(iPoint, FluidModel); - + /*--- Set mixture state ---*/ - FluidModel->SetTDStatePTTv(Pressure_Inf, MassFrac_Inf, Temperature_Inf, Temperature_ve_Inf); + FluidModel->SetTDStatePTTv(Pressure_Inf, MassFrac_Inf, Temperature_Inf, Temperature_ve_Inf); /*--- Compute other freestream quantities ---*/ Density_Inf = FluidModel->GetDensity(); Soundspeed_Inf = FluidModel->GetSoundSpeed(); - + sqvel = 0.0; for (iDim = 0; iDim < nDim; iDim++){ sqvel += Mvec_Inf[iDim]*Soundspeed_Inf * Mvec_Inf[iDim]*Soundspeed_Inf; } const auto& Energies_Inf = FluidModel->ComputeMixtureEnergies(); - + /*--- Initialize Solution & Solution_Old vectors ---*/ for (iSpecies = 0; iSpecies < nSpecies; iSpecies++) { Solution[iSpecies] = Density_Inf*MassFrac_Inf[iSpecies]; @@ -246,9 +246,9 @@ CNEMOEulerSolver::CNEMOEulerSolver(CGeometry *geometry, CConfig *config, Solution[nSpecies+nDim+1] = Density_Inf*Energies_Inf[1]; nodes->SetSolution(iPoint,Solution); nodes->SetSolution_Old(iPoint,Solution); - + if(nonPhys) - counter_local++; + counter_local++; } /*--- Warning message about non-physical points ---*/ @@ -614,6 +614,7 @@ void CNEMOEulerSolver::SetTime_Step(CGeometry *geometry, CSolver **solver_contai SU2_OMP_MASTER if (config->GetComm_Level() == COMM_FULL) { su2double rbuf_time; + SU2_MPI::Allreduce(&Min_Delta_Time, &rbuf_time, 1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); Min_Delta_Time = rbuf_time; SU2_MPI::Allreduce(&Max_Delta_Time, &rbuf_time, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); @@ -1501,7 +1502,7 @@ void CNEMOEulerSolver::SetNondimensionalization(CConfig *config, unsigned short #else SU2_MPI::Error(string("Either 1) Mutation++ has not been configured/compiled (add '-Denable-mpp=true' to your meson string) or 2) CODI must be deactivated since it is not compatible with Mutation++."), CURRENT_FUNCTION); - #endif + #endif break; case SU2_NONEQ: FluidModel = new CSU2TCLib(config, nDim, viscous); diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index 7ff339bfcfed..a648c30c47c2 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -51,13 +51,9 @@ CNSSolver::CNSSolver(CGeometry *geometry, CConfig *config, unsigned short iMesh) /*--- Buffet sensor in all the markers and coefficients ---*/ - if (config->GetBuffet_Monitoring() || config->GetKind_ObjFunc() == BUFFET_SENSOR){ - - Alloc2D(nMarker, nVertex, Buffet_Sensor); - Buffet_Metric = new su2double[nMarker]; - Surface_Buffet_Metric = new su2double[config->GetnMarker_Monitoring()]; - - } + Alloc2D(nMarker, nVertex, Buffet_Sensor); + Buffet_Metric = new su2double[nMarker]; + Surface_Buffet_Metric = new su2double[config->GetnMarker_Monitoring()]; /*--- Read farfield conditions from config ---*/ @@ -304,14 +300,13 @@ void CNSSolver::Viscous_Residual(unsigned long iEdge, CGeometry *geometry, CSolv } -void CNSSolver::Buffet_Monitoring(CGeometry *geometry, CConfig *config) { +void CNSSolver::Buffet_Monitoring(const CGeometry *geometry, const CConfig *config) { unsigned long iVertex; unsigned short Boundary, Monitoring, iMarker, iMarker_Monitoring, iDim; - su2double *Vel_FS = config->GetVelocity_FreeStream(); + const su2double* Vel_FS = Velocity_Inf; su2double VelMag_FS = 0.0, SkinFrictionMag = 0.0, SkinFrictionDot = 0.0, *Normal, Area, Sref = config->GetRefArea(); - su2double k = config->GetBuffet_k(), - lam = config->GetBuffet_lambda(); + su2double k = config->GetBuffet_k(), lam = config->GetBuffet_lambda(); string Marker_Tag, Monitoring_Tag; for (iDim = 0; iDim < nDim; iDim++){ @@ -347,7 +342,7 @@ void CNSSolver::Buffet_Monitoring(CGeometry *geometry, CConfig *config) { SkinFrictionMag = 0.0; SkinFrictionDot = 0.0; for(iDim = 0; iDim < nDim; iDim++){ - SkinFrictionMag += CSkinFriction[iMarker][iDim][iVertex]*CSkinFriction[iMarker][iDim][iVertex]; + SkinFrictionMag += pow(CSkinFriction[iMarker][iDim][iVertex], 2); SkinFrictionDot += CSkinFriction[iMarker][iDim][iVertex]*Vel_FS[iDim]; } SkinFrictionMag = sqrt(SkinFrictionMag); @@ -414,7 +409,7 @@ void CNSSolver::Buffet_Monitoring(CGeometry *geometry, CConfig *config) { } -void CNSSolver::Evaluate_ObjFunc(CConfig *config) { +void CNSSolver::Evaluate_ObjFunc(const CConfig *config) { unsigned short iMarker_Monitoring, Kind_ObjFunc; su2double Weight_ObjFunc; diff --git a/SU2_DEF/src/SU2_DEF.cpp b/SU2_DEF/src/SU2_DEF.cpp index 225a74d42221..7514d1ee86cb 100644 --- a/SU2_DEF/src/SU2_DEF.cpp +++ b/SU2_DEF/src/SU2_DEF.cpp @@ -39,7 +39,6 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ -#ifdef HAVE_MPI #ifdef HAVE_OMP int provided; SU2_MPI::Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &provided); @@ -47,9 +46,6 @@ int main(int argc, char *argv[]) { SU2_MPI::Init(&argc, &argv); #endif SU2_MPI::Comm MPICommunicator(MPI_COMM_WORLD); -#else - SU2_Comm MPICommunicator(0); -#endif rank = SU2_MPI::GetRank(); size = SU2_MPI::GetSize(); @@ -502,10 +498,7 @@ int main(int argc, char *argv[]) { cout << endl << "------------------------- Exit Success (SU2_DEF) ------------------------" << endl << endl; /*--- Finalize MPI parallelization ---*/ - -#ifdef HAVE_MPI SU2_MPI::Finalize(); -#endif return EXIT_SUCCESS; diff --git a/SU2_DOT/src/SU2_DOT.cpp b/SU2_DOT/src/SU2_DOT.cpp index 4960c2a40716..e1176a71ea74 100644 --- a/SU2_DOT/src/SU2_DOT.cpp +++ b/SU2_DOT/src/SU2_DOT.cpp @@ -38,7 +38,6 @@ int main(int argc, char *argv[]) { /*--- MPI initialization, and buffer setting ---*/ -#ifdef HAVE_MPI #ifdef HAVE_OMP int provided; SU2_MPI::Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &provided); @@ -46,9 +45,6 @@ int main(int argc, char *argv[]) { SU2_MPI::Init(&argc, &argv); #endif SU2_MPI::Comm MPICommunicator(MPI_COMM_WORLD); -#else - SU2_Comm MPICommunicator(0); -#endif const int rank = SU2_MPI::GetRank(); const int size = SU2_MPI::GetSize(); @@ -407,10 +403,7 @@ int main(int argc, char *argv[]) { cout << "\n------------------------- Exit Success (SU2_DOT) ------------------------\n" << endl; /*--- Finalize MPI parallelization ---*/ - -#ifdef HAVE_MPI SU2_MPI::Finalize(); -#endif return EXIT_SUCCESS; @@ -777,11 +770,8 @@ void SetProjection_AD(CGeometry *geometry, CConfig *config, CSurfaceMovement *su for (iDV_Value = 0; iDV_Value < nDV_Value; iDV_Value++){ DV_Value = config->GetDV_Value(iDV, iDV_Value); my_Gradient = SU2_TYPE::GetDerivative(DV_Value); -#ifdef HAVE_MPI - SU2_MPI::Allreduce(&my_Gradient, &localGradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); -#else - localGradient = my_Gradient; -#endif + SU2_MPI::Allreduce(&my_Gradient, &localGradient, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + /*--- Angle of Attack design variable (this is different, the value comes form the input file) ---*/ diff --git a/SU2_GEO/src/SU2_GEO.cpp b/SU2_GEO/src/SU2_GEO.cpp index 8ac58865cb9e..8a2c83a90716 100644 --- a/SU2_GEO/src/SU2_GEO.cpp +++ b/SU2_GEO/src/SU2_GEO.cpp @@ -58,12 +58,8 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ -#ifdef HAVE_MPI SU2_MPI::Init(&argc,&argv); SU2_MPI::Comm MPICommunicator(MPI_COMM_WORLD); -#else - SU2_Comm MPICommunicator(0); -#endif rank = SU2_MPI::GetRank(); size = SU2_MPI::GetSize(); @@ -1292,10 +1288,7 @@ int main(int argc, char *argv[]) { /*--- Finalize MPI parallelization ---*/ - -#ifdef HAVE_MPI SU2_MPI::Finalize(); -#endif return EXIT_SUCCESS; diff --git a/SU2_PY/SU2/io/historyMap.py b/SU2_PY/SU2/io/historyMap.py index 080280e5c530..157218eaeaaf 100644 --- a/SU2_PY/SU2/io/historyMap.py +++ b/SU2_PY/SU2/io/historyMap.py @@ -35,50 +35,35 @@ 'GROUP': 'FLOW_COEFF', 'HEADER': 'Avg_Enthalpy', 'TYPE': 'COEFFICIENT'}, - 'AVG_MACH': {'DESCRIPTION': 'Total average mach number on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_Mach', - 'TYPE': 'COEFFICIENT'}, - 'AVG_MASSFLOW': {'DESCRIPTION': 'Total average mass flow on all markers set ' - 'in MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_Massflow', - 'TYPE': 'COEFFICIENT'}, 'AVG_NORMALVEL': {'DESCRIPTION': 'Total average normal velocity on all ' 'markers set in MARKER_ANALYZE', 'GROUP': 'FLOW_COEFF', 'HEADER': 'Avg_NormalVel', 'TYPE': 'COEFFICIENT'}, - 'AVG_PRESS': {'DESCRIPTION': 'Total average pressure on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_Press', - 'TYPE': 'COEFFICIENT'}, - 'AVG_TEMP': {'DESCRIPTION': 'Total average temperature on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_Temp', - 'TYPE': 'COEFFICIENT'}, 'AVG_TEMPERATURE': {'DESCRIPTION': 'Total average temperature on all surfaces ' 'defined in MARKER_MONITORING', 'GROUP': 'HEAT', 'HEADER': 'AvgTemp', 'TYPE': 'COEFFICIENT'}, - 'AVG_TOTALPRESS': {'DESCRIPTION': 'Total average total pressure on all ' - 'markers set in MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_TotalPress', - 'TYPE': 'COEFFICIENT'}, - 'AVG_TOTALTEMP': {'DESCRIPTION': 'Total average total temperature all markers ' - 'set in MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Avg_TotalTemp', - 'TYPE': 'COEFFICIENT'}, 'BGS_ADJ_DENSITY': {'DESCRIPTION': 'BGS residual of the adjoint density.', 'GROUP': 'BGS_RES', 'HEADER': 'bgs[A_Rho]', 'TYPE': 'RESIDUAL'}, + 'BGS_ADJ_DISP_X': {'DESCRIPTION': 'BGS residual of the adjoint X ' + 'displacement.', + 'GROUP': 'BGS_RES', + 'HEADER': 'bgs[A_Ux]', + 'TYPE': 'RESIDUAL'}, + 'BGS_ADJ_DISP_Y': {'DESCRIPTION': 'BGS residual of the adjoint Y ' + 'displacement.', + 'GROUP': 'BGS_RES', + 'HEADER': 'bgs[A_Uy]', + 'TYPE': 'RESIDUAL'}, + 'BGS_ADJ_DISP_Z': {'DESCRIPTION': 'BGS residual of the adjoint Z ' + 'displacement.', + 'GROUP': 'BGS_RES', + 'HEADER': 'bgs[A_Uz]', + 'TYPE': 'RESIDUAL'}, 'BGS_ADJ_DISSIPATION': {'DESCRIPTION': 'BGS residual of the adjoint ' 'dissipation.', 'GROUP': 'BGS_RES', @@ -201,6 +186,10 @@ 'GROUP': 'BGS_RES', 'HEADER': 'bgs[W]', 'TYPE': 'RESIDUAL'}, + 'BUFFET': {'DESCRIPTION': 'Buffet sensor', + 'GROUP': 'AERO_COEFF', + 'HEADER': 'Buffet', + 'TYPE': 'COEFFICIENT'}, 'CFL_NUMBER': {'DESCRIPTION': 'Current value of the CFL number', 'GROUP': 'CFL_NUMBER', 'HEADER': 'CFL number', @@ -222,18 +211,6 @@ 'GROUP': 'COMBO', 'HEADER': 'ComboObj', 'TYPE': 'COEFFICIENT'}, - 'CP_DIFF': {'DESCRIPTION': 'Cp difference for inverse design', - 'GROUP': 'CP_DIFF', - 'HEADER': 'Cp_Diff', - 'TYPE': 'DEFAULT'}, - 'CQ': {'DESCRIPTION': 'CQ', - 'GROUP': 'ROTATING_FRAME', - 'HEADER': 'CQ', - 'TYPE': 'COEFFICIENT'}, - 'CT': {'DESCRIPTION': 'CT', - 'GROUP': 'ROTATING_FRAME', - 'HEADER': 'CT', - 'TYPE': 'COEFFICIENT'}, 'DEFORM_ITER': {'DESCRIPTION': 'Linear solver iterations for the mesh ' 'deformation', 'GROUP': 'DEFORM', @@ -273,38 +250,18 @@ 'GROUP': 'D_FLOW_COEFF', 'HEADER': 'd[Avg_Enthalpy]', 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_MACH': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_Mach]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_MASSFLOW': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_Massflow]', - 'TYPE': 'D_COEFFICIENT'}, 'D_AVG_NORMALVEL': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_FLOW_COEFF', 'HEADER': 'd[Avg_NormalVel]', 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_PRESS': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_Press]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_TEMP': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_Temp]', - 'TYPE': 'D_COEFFICIENT'}, 'D_AVG_TEMPERATURE': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_HEAT', 'HEADER': 'd[AvgTemp]', 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_TOTALPRESS': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_TotalPress]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_AVG_TOTALTEMP': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Avg_TotalTemp]', - 'TYPE': 'D_COEFFICIENT'}, + 'D_BUFFET': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_AERO_COEFF', + 'HEADER': 'd[Buffet]', + 'TYPE': 'D_COEFFICIENT'}, 'D_CIRCUMFERENTIAL_DISTORTION': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_ENGINE_OUTPUT', 'HEADER': 'd[Circumferential_Distortion]', @@ -313,14 +270,6 @@ 'GROUP': 'D_COMBO', 'HEADER': 'd[ComboObj]', 'TYPE': 'D_COEFFICIENT'}, - 'D_CQ': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_ROTATING_FRAME', - 'HEADER': 'd[CQ]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_CT': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_ROTATING_FRAME', - 'HEADER': 'd[CT]', - 'TYPE': 'D_COEFFICIENT'}, 'D_DELTA_CL': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_FIXED_CL', 'HEADER': 'd[Delta_CL]', @@ -337,6 +286,10 @@ 'GROUP': 'D_EQUIVALENT_AREA', 'HEADER': 'd[CEquiv_Area]', 'TYPE': 'D_COEFFICIENT'}, + 'D_FIGURE_OF_MERIT': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_ROTATING_FRAME', + 'HEADER': 'd[CMerit]', + 'TYPE': 'D_COEFFICIENT'}, 'D_FORCE_X': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_AERO_COEFF', 'HEADER': 'd[CFx]', @@ -349,26 +302,14 @@ 'GROUP': 'D_AERO_COEFF', 'HEADER': 'd[CFz]', 'TYPE': 'D_COEFFICIENT'}, - 'D_HEATFLUX': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_HEAT', - 'HEADER': 'd[HF]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_HEATFLUX_MAX': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_HEAT', - 'HEADER': 'd[MaxHF]', - 'TYPE': 'D_COEFFICIENT'}, 'D_LIFT': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_AERO_COEFF', 'HEADER': 'd[CL]', 'TYPE': 'D_COEFFICIENT'}, - 'D_MERIT': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_ROTATING_FRAME', - 'HEADER': 'd[CMerit]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_MOMENTUM_DISTORTION': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Momentum_Distortion]', - 'TYPE': 'D_COEFFICIENT'}, + 'D_MAXIMUM_HEATFLUX': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_HEAT', + 'HEADER': 'd[MaxHF]', + 'TYPE': 'D_COEFFICIENT'}, 'D_MOMENT_X': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_AERO_COEFF', 'HEADER': 'd[CMx]', @@ -385,22 +326,18 @@ 'GROUP': 'D_EQUIVALENT_AREA', 'HEADER': 'd[CNearFieldOF]', 'TYPE': 'D_COEFFICIENT'}, - 'D_PRESSURE_DROP': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Pressure_Drop]', - 'TYPE': 'D_COEFFICIENT'}, 'D_RADIAL_DISTORTION': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_ENGINE_OUTPUT', 'HEADER': 'd[Radial_Distortion]', 'TYPE': 'D_COEFFICIENT'}, - 'D_SECONDARY_OVER_UNIFORMITY': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Secondary_Over_Uniformity]', - 'TYPE': 'D_COEFFICIENT'}, - 'D_SECONDARY_STRENGTH': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Secondary_Strength]', + 'D_REFERENCE_GEOMETRY': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_STRUCT_COEFF', + 'HEADER': 'd[RefGeom]', 'TYPE': 'D_COEFFICIENT'}, + 'D_REFERENCE_NODE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_STRUCT_COEFF', + 'HEADER': 'd[RefNode]', + 'TYPE': 'D_COEFFICIENT'}, 'D_SENS_AOA': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_SENSITIVITY', 'HEADER': 'd[Sens_AoA]', @@ -437,18 +374,74 @@ 'GROUP': 'D_ENGINE_OUTPUT', 'HEADER': 'd[SolidCDrag]', 'TYPE': 'D_COEFFICIENT'}, - 'D_TEMPERATURE': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_HEAT', - 'HEADER': 'd[Temp]', - 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_MACH': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_Mach]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_MASSFLOW': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_Massflow]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_MOM_DISTORTION': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Momentum_Distortion]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_PRESSURE_DROP': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Pressure_Drop]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_SECONDARY': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Secondary_Strength]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_SECOND_OVER_UNIFORM': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Secondary_Over_Uniformity]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_STATIC_PRESSURE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_Press]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_STATIC_TEMPERATURE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_Temp]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_TOTAL_PRESSURE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_TotalPress]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_TOTAL_TEMPERATURE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Avg_TotalTemp]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_SURFACE_UNIFORMITY': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_FLOW_COEFF', + 'HEADER': 'd[Uniformity]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_THRUST': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_ROTATING_FRAME', + 'HEADER': 'd[CT]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_TOPOL_COMPLIANCE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_STRUCT_COEFF', + 'HEADER': 'd[TopComp]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_TOPOL_DISCRETENESS': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_STRUCT_COEFF', + 'HEADER': 'd[TopDisc]', + 'TYPE': 'D_COEFFICIENT'}, + 'D_TORQUE': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_ROTATING_FRAME', + 'HEADER': 'd[CQ]', + 'TYPE': 'D_COEFFICIENT'}, 'D_TOTAL_HEATFLUX': {'DESCRIPTION': 'Derivative value', 'GROUP': 'D_HEAT', 'HEADER': 'd[HF]', 'TYPE': 'D_COEFFICIENT'}, - 'D_UNIFORMITY': {'DESCRIPTION': 'Derivative value', - 'GROUP': 'D_FLOW_COEFF', - 'HEADER': 'd[Uniformity]', - 'TYPE': 'D_COEFFICIENT'}, + 'D_VOLUME_FRACTION': {'DESCRIPTION': 'Derivative value', + 'GROUP': 'D_STRUCT_COEFF', + 'HEADER': 'd[VolFrac]', + 'TYPE': 'D_COEFFICIENT'}, 'EFFICIENCY': {'DESCRIPTION': 'Total lift-to-drag ratio on all surfaces set ' 'with MARKER_MONITORING', 'GROUP': 'AERO_COEFF', @@ -458,6 +451,10 @@ 'GROUP': 'EQUIVALENT_AREA', 'HEADER': 'CEquiv_Area', 'TYPE': 'COEFFICIENT'}, + 'FIGURE_OF_MERIT': {'DESCRIPTION': 'Merit', + 'GROUP': 'ROTATING_FRAME', + 'HEADER': 'CMerit', + 'TYPE': 'COEFFICIENT'}, 'FORCE_X': {'DESCRIPTION': 'Total force x-component on all surfaces set with ' 'MARKER_MONITORING', 'GROUP': 'AERO_COEFF', @@ -473,16 +470,10 @@ 'GROUP': 'AERO_COEFF', 'HEADER': 'CFz', 'TYPE': 'COEFFICIENT'}, - 'HEATFLUX': {'DESCRIPTION': 'Total heatflux on all surfaces set with ' - 'MARKER_MONITORING.', - 'GROUP': 'HEAT', - 'HEADER': 'HF', - 'TYPE': 'COEFFICIENT'}, - 'HEATFLUX_MAX': {'DESCRIPTION': 'Total maximal heatflux on all surfaces ' - 'defined in MARKER_MONITORING', - 'GROUP': 'HEAT', - 'HEADER': 'MaxHF', - 'TYPE': 'COEFFICIENT'}, + 'INVERSE_DESIGN_PRESSURE': {'DESCRIPTION': 'Cp difference for inverse design', + 'GROUP': 'CP_DIFF', + 'HEADER': 'Cp_Diff', + 'TYPE': 'DEFAULT'}, 'LIFT': {'DESCRIPTION': 'Total lift coefficient on all surfaces set with ' 'MARKER_MONITORING', 'GROUP': 'AERO_COEFF', @@ -504,6 +495,11 @@ 'GROUP': '', 'HEADER': 'Load_Ramp', 'TYPE': 'DEFAULT'}, + 'MAXIMUM_HEATFLUX': {'DESCRIPTION': 'Total maximal heatflux on all surfaces ' + 'defined in MARKER_MONITORING', + 'GROUP': 'HEAT', + 'HEADER': 'MaxHF', + 'TYPE': 'COEFFICIENT'}, 'MAX_ADJ_DENSITY': {'DESCRIPTION': 'Maximum residual of the adjoint density.', 'GROUP': 'MAX_RES', 'HEADER': 'max[A_Rho]', @@ -628,10 +624,6 @@ 'GROUP': 'MAX_RES', 'HEADER': 'max[W]', 'TYPE': 'RESIDUAL'}, - 'MERIT': {'DESCRIPTION': 'Merit', - 'GROUP': 'ROTATING_FRAME', - 'HEADER': 'CMerit', - 'TYPE': 'COEFFICIENT'}, 'MIN_CFL': {'DESCRIPTION': 'Current minimum of the local CFL numbers', 'GROUP': 'CFL_NUMBER', 'HEADER': 'Min CFL', @@ -640,11 +632,6 @@ 'GROUP': 'CFL_NUMBER', 'HEADER': 'Min DT', 'TYPE': 'DEFAULT'}, - 'MOMENTUM_DISTORTION': {'DESCRIPTION': 'Total momentum distortion on all ' - 'markers set in MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Momentum_Distortion', - 'TYPE': 'COEFFICIENT'}, 'MOMENT_X': {'DESCRIPTION': 'Total momentum x-component on all surfaces set ' 'with MARKER_MONITORING', 'GROUP': 'AERO_COEFF', @@ -664,11 +651,6 @@ 'GROUP': 'EQUIVALENT_AREA', 'HEADER': 'CNearFieldOF', 'TYPE': 'COEFFICIENT'}, - 'PRESSURE_DROP': {'DESCRIPTION': 'Total pressure drop on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Pressure_Drop', - 'TYPE': 'COEFFICIENT'}, 'PREV_AOA': {'DESCRIPTION': 'Angle of Attack at the previous iteration of the ' 'Fixed CL driver', 'GROUP': 'FIXED_CL', @@ -678,6 +660,14 @@ 'GROUP': 'ENGINE_OUTPUT', 'HEADER': 'Radial_Distortion', 'TYPE': 'COEFFICIENT'}, + 'REFERENCE_GEOMETRY': {'DESCRIPTION': '', + 'GROUP': 'STRUCT_COEFF', + 'HEADER': 'RefGeom', + 'TYPE': 'COEFFICIENT'}, + 'REFERENCE_NODE': {'DESCRIPTION': '', + 'GROUP': 'STRUCT_COEFF', + 'HEADER': 'RefNode', + 'TYPE': 'COEFFICIENT'}, 'RMS_ADJ_DENSITY': {'DESCRIPTION': 'Root-mean square residual of the adjoint ' 'density.', 'GROUP': 'RMS_RES', @@ -824,17 +814,6 @@ 'GROUP': 'RMS_RES', 'HEADER': 'rms[V]', 'TYPE': 'RESIDUAL'}, - 'SECONDARY_OVER_UNIFORMITY': {'DESCRIPTION': 'Total secondary over uniformity ' - 'on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Secondary_Over_Uniformity', - 'TYPE': 'COEFFICIENT'}, - 'SECONDARY_STRENGTH': {'DESCRIPTION': 'Total secondary strength on all ' - 'markers set in MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Secondary_Strength', - 'TYPE': 'COEFFICIENT'}, 'SENS_AOA': {'DESCRIPTION': 'Sensitivity of the objective function with ' 'respect to the angle of attack (only for ' 'compressible solver).', @@ -889,6 +868,64 @@ 'GROUP': 'ENGINE_OUTPUT', 'HEADER': 'SolidCDrag', 'TYPE': 'COEFFICIENT'}, + 'SURFACE_MACH': {'DESCRIPTION': 'Total average mach number on all markers set ' + 'in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_Mach', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_MASSFLOW': {'DESCRIPTION': 'Total average mass flow on all markers ' + 'set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_Massflow', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_MOM_DISTORTION': {'DESCRIPTION': 'Total momentum distortion on all ' + 'markers set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Momentum_Distortion', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_PRESSURE_DROP': {'DESCRIPTION': 'Total pressure drop on all markers ' + 'set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Pressure_Drop', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_SECONDARY': {'DESCRIPTION': 'Total secondary strength on all markers ' + 'set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Secondary_Strength', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_SECOND_OVER_UNIFORM': {'DESCRIPTION': 'Total secondary over ' + 'uniformity on all markers set ' + 'in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Secondary_Over_Uniformity', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_STATIC_PRESSURE': {'DESCRIPTION': 'Total average pressure on all ' + 'markers set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_Press', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_STATIC_TEMPERATURE': {'DESCRIPTION': 'Total average temperature on ' + 'all markers set in ' + 'MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_Temp', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_TOTAL_PRESSURE': {'DESCRIPTION': 'Total average total pressure on ' + 'all markers set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_TotalPress', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_TOTAL_TEMPERATURE': {'DESCRIPTION': 'Total average total temperature ' + 'all markers set in ' + 'MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Avg_TotalTemp', + 'TYPE': 'COEFFICIENT'}, + 'SURFACE_UNIFORMITY': {'DESCRIPTION': 'Total flow uniformity on all markers ' + 'set in MARKER_ANALYZE', + 'GROUP': 'FLOW_COEFF', + 'HEADER': 'Uniformity', + 'TYPE': 'COEFFICIENT'}, 'TAVG_AEROCDRAG': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_ENGINE_OUTPUT', 'HEADER': 'tavg[AeroCDrag]', @@ -901,38 +938,18 @@ 'GROUP': 'TAVG_FLOW_COEFF', 'HEADER': 'tavg[Avg_Enthalpy]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_MACH': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_Mach]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_MASSFLOW': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_Massflow]', - 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_AVG_NORMALVEL': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_FLOW_COEFF', 'HEADER': 'tavg[Avg_NormalVel]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_PRESS': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_Press]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_TEMP': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_Temp]', - 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_AVG_TEMPERATURE': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_HEAT', 'HEADER': 'tavg[AvgTemp]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_TOTALPRESS': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_TotalPress]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_AVG_TOTALTEMP': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Avg_TotalTemp]', - 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_BUFFET': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_AERO_COEFF', + 'HEADER': 'tavg[Buffet]', + 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_CIRCUMFERENTIAL_DISTORTION': {'DESCRIPTION': 'weighted time average ' 'value', 'GROUP': 'TAVG_ENGINE_OUTPUT', @@ -942,14 +959,6 @@ 'GROUP': 'TAVG_COMBO', 'HEADER': 'tavg[ComboObj]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_CQ': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_ROTATING_FRAME', - 'HEADER': 'tavg[CQ]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_CT': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_ROTATING_FRAME', - 'HEADER': 'tavg[CT]', - 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_DELTA_CL': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_FIXED_CL', 'HEADER': 'tavg[Delta_CL]', @@ -971,43 +980,20 @@ 'GROUP': 'TAVG_D_FLOW_COEFF', 'HEADER': 'dtavg[Avg_Enthalpy]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_MACH': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_Mach]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_MASSFLOW': {'DESCRIPTION': 'weighted time average derivative ' - 'value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_Massflow]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_AVG_NORMALVEL': {'DESCRIPTION': 'weighted time average derivative ' 'value', 'GROUP': 'TAVG_D_FLOW_COEFF', 'HEADER': 'dtavg[Avg_NormalVel]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_PRESS': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_Press]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_TEMP': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_Temp]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_AVG_TEMPERATURE': {'DESCRIPTION': 'weighted time average derivative ' 'value', 'GROUP': 'TAVG_D_HEAT', 'HEADER': 'dtavg[AvgTemp]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_TOTALPRESS': {'DESCRIPTION': 'weighted time average derivative ' - 'value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_TotalPress]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_AVG_TOTALTEMP': {'DESCRIPTION': 'weighted time average derivative ' - 'value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Avg_TotalTemp]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_BUFFET': {'DESCRIPTION': 'weighted time average derivative value', + 'GROUP': 'TAVG_D_AERO_COEFF', + 'HEADER': 'dtavg[Buffet]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_CIRCUMFERENTIAL_DISTORTION': {'DESCRIPTION': 'weighted time average ' 'derivative value', 'GROUP': 'TAVG_D_ENGINE_OUTPUT', @@ -1017,14 +1003,6 @@ 'GROUP': 'TAVG_D_COMBO', 'HEADER': 'dtavg[ComboObj]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_CQ': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_ROTATING_FRAME', - 'HEADER': 'dtavg[CQ]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_CT': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_ROTATING_FRAME', - 'HEADER': 'dtavg[CT]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_DELTA_CL': {'DESCRIPTION': 'weighted time average derivative value', 'GROUP': 'TAVG_D_FIXED_CL', 'HEADER': 'dtavg[Delta_CL]', @@ -1041,6 +1019,11 @@ 'GROUP': 'TAVG_D_EQUIVALENT_AREA', 'HEADER': 'dtavg[CEquiv_Area]', 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_FIGURE_OF_MERIT': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_ROTATING_FRAME', + 'HEADER': 'dtavg[CMerit]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_FORCE_X': {'DESCRIPTION': 'weighted time average derivative value', 'GROUP': 'TAVG_D_AERO_COEFF', 'HEADER': 'dtavg[CFx]', @@ -1053,28 +1036,15 @@ 'GROUP': 'TAVG_D_AERO_COEFF', 'HEADER': 'dtavg[CFz]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_HEATFLUX': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_HEAT', - 'HEADER': 'dtavg[HF]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_HEATFLUX_MAX': {'DESCRIPTION': 'weighted time average derivative ' - 'value', - 'GROUP': 'TAVG_D_HEAT', - 'HEADER': 'dtavg[MaxHF]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_LIFT': {'DESCRIPTION': 'weighted time average derivative value', 'GROUP': 'TAVG_D_AERO_COEFF', 'HEADER': 'dtavg[CL]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_MERIT': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_ROTATING_FRAME', - 'HEADER': 'dtavg[CMerit]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_MOMENTUM_DISTORTION': {'DESCRIPTION': 'weighted time average ' - 'derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Momentum_Distortion]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_MAXIMUM_HEATFLUX': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_HEAT', + 'HEADER': 'dtavg[MaxHF]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_MOMENT_X': {'DESCRIPTION': 'weighted time average derivative value', 'GROUP': 'TAVG_D_AERO_COEFF', 'HEADER': 'dtavg[CMx]', @@ -1092,26 +1062,21 @@ 'GROUP': 'TAVG_D_EQUIVALENT_AREA', 'HEADER': 'dtavg[CNearFieldOF]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_PRESSURE_DROP': {'DESCRIPTION': 'weighted time average derivative ' - 'value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Pressure_Drop]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_RADIAL_DISTORTION': {'DESCRIPTION': 'weighted time average derivative ' 'value', 'GROUP': 'TAVG_D_ENGINE_OUTPUT', 'HEADER': 'dtavg[Radial_Distortion]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_SECONDARY_OVER_UNIFORMITY': {'DESCRIPTION': 'weighted time average ' - 'derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Secondary_Over_Uniformity]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_SECONDARY_STRENGTH': {'DESCRIPTION': 'weighted time average ' + 'TAVG_D_REFERENCE_GEOMETRY': {'DESCRIPTION': 'weighted time average ' 'derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Secondary_Strength]', + 'GROUP': 'TAVG_D_STRUCT_COEFF', + 'HEADER': 'dtavg[RefGeom]', 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_REFERENCE_NODE': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_STRUCT_COEFF', + 'HEADER': 'dtavg[RefNode]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_SENS_AOA': {'DESCRIPTION': 'weighted time average derivative value', 'GROUP': 'TAVG_D_SENSITIVITY', 'HEADER': 'dtavg[Sens_AoA]', @@ -1149,19 +1114,89 @@ 'GROUP': 'TAVG_D_ENGINE_OUTPUT', 'HEADER': 'dtavg[SolidCDrag]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_TEMPERATURE': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_HEAT', - 'HEADER': 'dtavg[Temp]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_MACH': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_Mach]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_MASSFLOW': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_Massflow]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_MOM_DISTORTION': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Momentum_Distortion]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_PRESSURE_DROP': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Pressure_Drop]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_SECONDARY': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Secondary_Strength]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_SECOND_OVER_UNIFORM': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Secondary_Over_Uniformity]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_STATIC_PRESSURE': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_Press]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_STATIC_TEMPERATURE': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_Temp]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_TOTAL_PRESSURE': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_TotalPress]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_TOTAL_TEMPERATURE': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Avg_TotalTemp]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_SURFACE_UNIFORMITY': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_FLOW_COEFF', + 'HEADER': 'dtavg[Uniformity]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_THRUST': {'DESCRIPTION': 'weighted time average derivative value', + 'GROUP': 'TAVG_D_ROTATING_FRAME', + 'HEADER': 'dtavg[CT]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_TOPOL_COMPLIANCE': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_STRUCT_COEFF', + 'HEADER': 'dtavg[TopComp]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_TOPOL_DISCRETENESS': {'DESCRIPTION': 'weighted time average ' + 'derivative value', + 'GROUP': 'TAVG_D_STRUCT_COEFF', + 'HEADER': 'dtavg[TopDisc]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_TORQUE': {'DESCRIPTION': 'weighted time average derivative value', + 'GROUP': 'TAVG_D_ROTATING_FRAME', + 'HEADER': 'dtavg[CQ]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_D_TOTAL_HEATFLUX': {'DESCRIPTION': 'weighted time average derivative ' 'value', 'GROUP': 'TAVG_D_HEAT', 'HEADER': 'dtavg[HF]', 'TYPE': 'TAVG_D_COEFFICIENT'}, - 'TAVG_D_UNIFORMITY': {'DESCRIPTION': 'weighted time average derivative value', - 'GROUP': 'TAVG_D_FLOW_COEFF', - 'HEADER': 'dtavg[Uniformity]', - 'TYPE': 'TAVG_D_COEFFICIENT'}, + 'TAVG_D_VOLUME_FRACTION': {'DESCRIPTION': 'weighted time average derivative ' + 'value', + 'GROUP': 'TAVG_D_STRUCT_COEFF', + 'HEADER': 'dtavg[VolFrac]', + 'TYPE': 'TAVG_D_COEFFICIENT'}, 'TAVG_EFFICIENCY': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_AERO_COEFF', 'HEADER': 'tavg[CEff]', @@ -1170,6 +1205,10 @@ 'GROUP': 'TAVG_EQUIVALENT_AREA', 'HEADER': 'tavg[CEquiv_Area]', 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_FIGURE_OF_MERIT': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_ROTATING_FRAME', + 'HEADER': 'tavg[CMerit]', + 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_FORCE_X': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_AERO_COEFF', 'HEADER': 'tavg[CFx]', @@ -1182,26 +1221,14 @@ 'GROUP': 'TAVG_AERO_COEFF', 'HEADER': 'tavg[CFz]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_HEATFLUX': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_HEAT', - 'HEADER': 'tavg[HF]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_HEATFLUX_MAX': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_HEAT', - 'HEADER': 'tavg[MaxHF]', - 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_LIFT': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_AERO_COEFF', 'HEADER': 'tavg[CL]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_MERIT': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_ROTATING_FRAME', - 'HEADER': 'tavg[CMerit]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_MOMENTUM_DISTORTION': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Momentum_Distortion]', - 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_MAXIMUM_HEATFLUX': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_HEAT', + 'HEADER': 'tavg[MaxHF]', + 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_MOMENT_X': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_AERO_COEFF', 'HEADER': 'tavg[CMx]', @@ -1218,23 +1245,18 @@ 'GROUP': 'TAVG_EQUIVALENT_AREA', 'HEADER': 'tavg[CNearFieldOF]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_PRESSURE_DROP': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Pressure_Drop]', - 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_RADIAL_DISTORTION': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_ENGINE_OUTPUT', 'HEADER': 'tavg[Radial_Distortion]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_SECONDARY_OVER_UNIFORMITY': {'DESCRIPTION': 'weighted time average ' - 'value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Secondary_Over_Uniformity]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_SECONDARY_STRENGTH': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Secondary_Strength]', + 'TAVG_REFERENCE_GEOMETRY': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_STRUCT_COEFF', + 'HEADER': 'tavg[RefGeom]', 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_REFERENCE_NODE': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_STRUCT_COEFF', + 'HEADER': 'tavg[RefNode]', + 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_SENS_AOA': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_SENSITIVITY', 'HEADER': 'tavg[Sens_AoA]', @@ -1271,34 +1293,103 @@ 'GROUP': 'TAVG_ENGINE_OUTPUT', 'HEADER': 'tavg[SolidCDrag]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_TEMPERATURE': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_HEAT', - 'HEADER': 'tavg[Temp]', - 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_MACH': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_Mach]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_MASSFLOW': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_Massflow]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_MOM_DISTORTION': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Momentum_Distortion]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_PRESSURE_DROP': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Pressure_Drop]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_SECONDARY': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Secondary_Strength]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_SECOND_OVER_UNIFORM': {'DESCRIPTION': 'weighted time average ' + 'value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Secondary_Over_Uniformity]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_STATIC_PRESSURE': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_Press]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_STATIC_TEMPERATURE': {'DESCRIPTION': 'weighted time average ' + 'value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_Temp]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_TOTAL_PRESSURE': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_TotalPress]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_TOTAL_TEMPERATURE': {'DESCRIPTION': 'weighted time average ' + 'value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Avg_TotalTemp]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_SURFACE_UNIFORMITY': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_FLOW_COEFF', + 'HEADER': 'tavg[Uniformity]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_THRUST': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_ROTATING_FRAME', + 'HEADER': 'tavg[CT]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_TOPOL_COMPLIANCE': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_STRUCT_COEFF', + 'HEADER': 'tavg[TopComp]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_TOPOL_DISCRETENESS': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_STRUCT_COEFF', + 'HEADER': 'tavg[TopDisc]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'TAVG_TORQUE': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_ROTATING_FRAME', + 'HEADER': 'tavg[CQ]', + 'TYPE': 'TAVG_COEFFICIENT'}, 'TAVG_TOTAL_HEATFLUX': {'DESCRIPTION': 'weighted time average value', 'GROUP': 'TAVG_HEAT', 'HEADER': 'tavg[HF]', 'TYPE': 'TAVG_COEFFICIENT'}, - 'TAVG_UNIFORMITY': {'DESCRIPTION': 'weighted time average value', - 'GROUP': 'TAVG_FLOW_COEFF', - 'HEADER': 'tavg[Uniformity]', - 'TYPE': 'TAVG_COEFFICIENT'}, - 'TEMPERATURE': {'DESCRIPTION': 'Total avg. temperature on all surfaces set ' - 'with MARKER_MONITORING.', - 'GROUP': 'HEAT', - 'HEADER': 'Temp', - 'TYPE': 'COEFFICIENT'}, + 'TAVG_VOLUME_FRACTION': {'DESCRIPTION': 'weighted time average value', + 'GROUP': 'TAVG_STRUCT_COEFF', + 'HEADER': 'tavg[VolFrac]', + 'TYPE': 'TAVG_COEFFICIENT'}, + 'THRUST': {'DESCRIPTION': 'CT', + 'GROUP': 'ROTATING_FRAME', + 'HEADER': 'CT', + 'TYPE': 'COEFFICIENT'}, + 'TOPOL_COMPLIANCE': {'DESCRIPTION': '', + 'GROUP': 'STRUCT_COEFF', + 'HEADER': 'TopComp', + 'TYPE': 'COEFFICIENT'}, + 'TOPOL_DISCRETENESS': {'DESCRIPTION': '', + 'GROUP': 'STRUCT_COEFF', + 'HEADER': 'TopDisc', + 'TYPE': 'COEFFICIENT'}, + 'TORQUE': {'DESCRIPTION': 'CQ', + 'GROUP': 'ROTATING_FRAME', + 'HEADER': 'CQ', + 'TYPE': 'COEFFICIENT'}, 'TOTAL_HEATFLUX': {'DESCRIPTION': 'Total heatflux on all surfaces defined in ' 'MARKER_MONITORING', 'GROUP': 'HEAT', 'HEADER': 'HF', 'TYPE': 'COEFFICIENT'}, - 'UNIFORMITY': {'DESCRIPTION': 'Total flow uniformity on all markers set in ' - 'MARKER_ANALYZE', - 'GROUP': 'FLOW_COEFF', - 'HEADER': 'Uniformity', - 'TYPE': 'COEFFICIENT'}, 'VMS': {'DESCRIPTION': 'VMS', 'GROUP': '', 'HEADER': 'VonMises', - 'TYPE': 'DEFAULT'}} + 'TYPE': 'DEFAULT'}, + 'VOLUME_FRACTION': {'DESCRIPTION': '', + 'GROUP': 'STRUCT_COEFF', + 'HEADER': 'VolFrac', + 'TYPE': 'COEFFICIENT'}} diff --git a/SU2_PY/topology_optimization.py b/SU2_PY/topology_optimization.py index 6bb590c5deca..d7ac5e492ca2 100755 --- a/SU2_PY/topology_optimization.py +++ b/SU2_PY/topology_optimization.py @@ -122,7 +122,12 @@ def obj_val(self,x): try: sp.call(self._objValCommand,shell=True) - fid = open(self._objValFile,"r"); val = float(fid.readlines()[1]); fid.close() + with open(self._objValFile,"r") as fid: + lines = fid.readlines() + for col,name in enumerate(lines[0].split(",")): + if "TopComp" in name: + val = float(lines[1].split(",")[col]) + break # the return code of mpirun is useless, we test the value of the function self._assert_isfinite(val) except: @@ -161,15 +166,13 @@ def obj_der(self,x): def con_val(self,x): # inputs written in obj_val_driver - # clear previous output and run solver - try: os.remove(self._conValFile) - except: pass - try: os.remove(self._conDerFile) - except: pass - try: - sp.call(self._conDerCommand,shell=True) - fid = open(self._conValFile,"r"); val = float(fid.readlines()[1]); fid.close() + with open(self._conValFile,"r") as fid: + lines = fid.readlines() + for col,name in enumerate(lines[0].split(",")): + if "VolFrac" in name: + val = float(lines[1].split(",")[col]) + break self._assert_isfinite(val) except: raise RuntimeError("Constraint function evaluation failed") @@ -181,12 +184,16 @@ def con_val(self,x): def con_der(self,x): # inputs written in obj_val_driver - # adjoint solver already ran + # clear previous output and run solver + try: os.remove(self._conDerFile) + except: pass N = x.shape[0] y = np.ndarray((N,)) # read result try: + sp.call(self._conDerCommand,shell=True) + fid = open(self._conDerFile,"r"); lines = fid.readlines(); fid.close() for i in range(N): val = float(lines[i][0:-1]) diff --git a/SU2_SOL/src/SU2_SOL.cpp b/SU2_SOL/src/SU2_SOL.cpp index 24b569ff0c49..55e25e01b7ce 100644 --- a/SU2_SOL/src/SU2_SOL.cpp +++ b/SU2_SOL/src/SU2_SOL.cpp @@ -39,12 +39,8 @@ int main(int argc, char *argv[]) { /*--- MPI initialization ---*/ -#ifdef HAVE_MPI SU2_MPI::Init(&argc,&argv); SU2_MPI::Comm MPICommunicator(MPI_COMM_WORLD); -#else - SU2_Comm MPICommunicator(0); -#endif const int rank = SU2_MPI::GetRank(); const int size = SU2_MPI::GetSize(); @@ -785,10 +781,7 @@ int main(int argc, char *argv[]) { cout << endl <<"------------------------- Exit Success (SU2_SOL) ------------------------" << endl << endl; /*--- Finalize MPI parallelization ---*/ - -#ifdef HAVE_MPI SU2_MPI::Finalize(); -#endif return EXIT_SUCCESS; } diff --git a/TestCases/fea_fsi/MixElemsKnowles/config.cfg b/TestCases/fea_fsi/MixElemsKnowles/config.cfg index d9fe420e0643..e233aa718f05 100644 --- a/TestCases/fea_fsi/MixElemsKnowles/config.cfg +++ b/TestCases/fea_fsi/MixElemsKnowles/config.cfg @@ -4,7 +4,7 @@ % Case description: Tip-loaded 3D cantilever beam, mix of element types, % % nonlinear elasticity with Knowles material model. % % Institution: Imperial College London % -% File Version 7.0.8 "Blackbird" % +% File Version 7.0.8 "Blackbird" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -51,4 +51,5 @@ TABULAR_FORMAT= CSV RESTART_SOL= YES SOLUTION_FILENAME= solution_structure.dat -SCREEN_OUTPUT=(INNER_ITER, RMS_UTOL, RMS_RTOL, RMS_ETOL, COMBO, VMS) +HISTORY_OUTPUT= (ITER, RMS_RES, STRUCT_COEFF) +SCREEN_OUTPUT=(INNER_ITER, RMS_UTOL, RMS_RTOL, RMS_ETOL, REFERENCE_NODE, VMS) diff --git a/TestCases/fea_topology/quick_start/settings.cfg b/TestCases/fea_topology/quick_start/settings.cfg index e1ce988d48d3..44d8b3eafaff 100644 --- a/TestCases/fea_topology/quick_start/settings.cfg +++ b/TestCases/fea_topology/quick_start/settings.cfg @@ -46,4 +46,4 @@ TABULAR_FORMAT= CSV SOLUTION_FILENAME= direct.dat RESTART_FILENAME= direct.dat OUTPUT_FILES= RESTART, PARAVIEW -HISTORY_OUTPUT= COMBO +HISTORY_OUTPUT= STRUCT_COEFF diff --git a/TestCases/fea_topology/quick_start/settings_compliance.cfg b/TestCases/fea_topology/quick_start/settings_compliance.cfg index 6c7df4e5f55b..a535068f4bf2 100644 --- a/TestCases/fea_topology/quick_start/settings_compliance.cfg +++ b/TestCases/fea_topology/quick_start/settings_compliance.cfg @@ -48,5 +48,4 @@ TABULAR_FORMAT= CSV SOLUTION_FILENAME= direct.dat RESTART_FILENAME= direct.dat OUTPUT_FILES= PARAVIEW -HISTORY_OUTPUT= COMBO diff --git a/TestCases/fea_topology/quick_start/settings_volfrac.cfg b/TestCases/fea_topology/quick_start/settings_volfrac.cfg index 96dc122c3f66..2319a83c0410 100644 --- a/TestCases/fea_topology/quick_start/settings_volfrac.cfg +++ b/TestCases/fea_topology/quick_start/settings_volfrac.cfg @@ -48,5 +48,4 @@ TABULAR_FORMAT= CSV SOLUTION_FILENAME= direct.dat RESTART_FILENAME= direct.dat OUTPUT_FILES= PARAVIEW -HISTORY_OUTPUT= COMBO diff --git a/UnitTests/test_driver.cpp b/UnitTests/test_driver.cpp index a93741c04e80..d53ef2b9063d 100644 --- a/UnitTests/test_driver.cpp +++ b/UnitTests/test_driver.cpp @@ -37,7 +37,6 @@ int main(int argc, char *argv[]) { /*--- Startup MPI, if supported ---*/ -#ifdef HAVE_MPI #ifdef HAVE_OMP int provided; SU2_MPI::Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &provided); @@ -45,9 +44,6 @@ int main(int argc, char *argv[]) { SU2_MPI::Init(&argc, &argv); #endif SU2_Comm MPICommunicator(MPI_COMM_WORLD); -#else - SU2_Comm MPICommunicator(0); -#endif /*--- Run the test driver supplied by Catch ---*/ int result = Catch::Session().run(argc, argv);