Skip to content

Commit 67296cb

Browse files
committed
cleanup objective function handling
1 parent fb59ee7 commit 67296cb

24 files changed

Lines changed: 143 additions & 358 deletions

Common/include/CConfig.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5469,12 +5469,6 @@ class CConfig {
54695469
*/
54705470
string GetObjFunc_Extension(string val_filename) const;
54715471

5472-
/*!
5473-
* \brief Get the criteria for structural residual (relative/absolute).
5474-
* \return Relative/Absolute criteria for structural convergence.
5475-
*/
5476-
unsigned short GetResidual_Criteria_FEM(void) const { return Res_FEM_CRIT; }
5477-
54785472
/*!
54795473
* \brief Get functional that is going to be used to evaluate the residual flow convergence.
54805474
* \return Functional that is going to be used to evaluate the residual flow convergence.

Common/include/option_structure.hpp

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1563,17 +1563,8 @@ enum ENUM_OBJECTIVE {
15631563
SURFACE_SPECIES_0 = 58, /*!< \brief Surface Avg. Species_0 objective function definition. */
15641564
SURFACE_SPECIES_VARIANCE = 59,/*!< \brief Species Variance objective function definition. */
15651565
CUSTOM_OBJFUNC = 31, /*!< \brief Custom objective function definition. */
1566-
TOTAL_PRESSURE_LOSS = 39,
1567-
KINETIC_ENERGY_LOSS = 40,
1568-
TOTAL_EFFICIENCY = 41,
1569-
TOTAL_STATIC_EFFICIENCY = 42,
1570-
EULERIAN_WORK = 43,
1571-
TOTAL_ENTHALPY_IN = 44,
1572-
FLOW_ANGLE_IN = 45,
15731566
FLOW_ANGLE_OUT = 46,
15741567
MASS_FLOW_IN = 47,
1575-
MASS_FLOW_OUT = 48,
1576-
PRESSURE_RATIO = 49,
15771568
ENTROPY_GENERATION = 50,
15781569
REFERENCE_GEOMETRY = 60, /*!< \brief Norm of displacements with respect to target geometry. */
15791570
REFERENCE_NODE = 61, /*!< \brief Objective function defined as the difference of a particular node respect to a reference position. */
@@ -1617,18 +1608,9 @@ static const MapType<std::string, ENUM_OBJECTIVE> Objective_Map = {
16171608
MakePair("SURFACE_SPECIES_0", SURFACE_SPECIES_0)
16181609
MakePair("SURFACE_SPECIES_VARIANCE", SURFACE_SPECIES_VARIANCE)
16191610
MakePair("CUSTOM_OBJFUNC", CUSTOM_OBJFUNC)
1620-
MakePair("TOTAL_EFFICIENCY", TOTAL_EFFICIENCY)
1621-
MakePair("TOTAL_STATIC_EFFICIENCY", TOTAL_STATIC_EFFICIENCY)
1622-
MakePair("TOTAL_PRESSURE_LOSS", TOTAL_PRESSURE_LOSS)
1623-
MakePair("EULERIAN_WORK", EULERIAN_WORK)
1624-
MakePair("TOTAL_ENTHALPY_IN", TOTAL_ENTHALPY_IN)
1625-
MakePair("FLOW_ANGLE_IN", FLOW_ANGLE_IN)
16261611
MakePair("FLOW_ANGLE_OUT", FLOW_ANGLE_OUT)
16271612
MakePair("MASS_FLOW_IN", MASS_FLOW_IN)
1628-
MakePair("MASS_FLOW_OUT", MASS_FLOW_OUT)
1629-
MakePair("PRESSURE_RATIO", PRESSURE_RATIO)
16301613
MakePair("ENTROPY_GENERATION", ENTROPY_GENERATION)
1631-
MakePair("KINETIC_ENERGY_LOSS", KINETIC_ENERGY_LOSS)
16321614
MakePair("REFERENCE_GEOMETRY", REFERENCE_GEOMETRY)
16331615
MakePair("REFERENCE_NODE", REFERENCE_NODE)
16341616
MakePair("VOLUME_FRACTION", VOLUME_FRACTION)
@@ -1637,46 +1619,6 @@ static const MapType<std::string, ENUM_OBJECTIVE> Objective_Map = {
16371619
MakePair("STRESS_PENALTY", STRESS_PENALTY)
16381620
};
16391621

1640-
/*!
1641-
* \brief Types of residual criteria equations
1642-
*/
1643-
enum ENUM_RESIDUAL {
1644-
RHO_RESIDUAL = 1, /*!< \brief Rho equation residual criteria equation. */
1645-
RHO_ENERGY_RESIDUAL = 2 /*!< \brief RhoE equation residual criteria equation. */
1646-
};
1647-
static const MapType<std::string, ENUM_RESIDUAL> Residual_Map = {
1648-
MakePair("RHO", RHO_RESIDUAL)
1649-
MakePair("RHO_ENERGY", RHO_ENERGY_RESIDUAL)
1650-
};
1651-
1652-
/*!
1653-
* \brief Types of residual criteria for structural problems
1654-
*/
1655-
enum ENUM_RESFEM {
1656-
RESFEM_RELATIVE = 1, /*!< \brief Relative criteria: Res/Res0. */
1657-
RESFEM_ABSOLUTE = 2 /*!< \brief Absolute criteria: abs(Res). */
1658-
};
1659-
static const MapType<std::string, ENUM_RESFEM> ResFem_Map = {
1660-
MakePair("RELATIVE", RESFEM_RELATIVE)
1661-
MakePair("ABSOLUTE", RESFEM_ABSOLUTE)
1662-
};
1663-
1664-
/*!
1665-
* \brief Types of sensitivities to compute
1666-
*/
1667-
enum ENUM_SENS {
1668-
SENS_GEOMETRY = 1, /*!< \brief Geometrical sensitivity. */
1669-
SENS_MACH = 2, /*!< \brief Mach number sensitivity. */
1670-
SENS_AOA = 3, /*!< \brief Angle of attack sensitivity. */
1671-
SENS_AOS = 4 /*!< \brief Angle of Sideslip sensitivity. */
1672-
};
1673-
static const MapType<std::string, ENUM_SENS> Sens_Map = {
1674-
MakePair("SENS_GEOMETRY", SENS_GEOMETRY)
1675-
MakePair("SENS_MACH", SENS_MACH)
1676-
MakePair("SENS_AOA", SENS_AOA)
1677-
MakePair("SENS_AOS", SENS_AOS)
1678-
};
1679-
16801622
/*!
16811623
* \brief Types of input file formats
16821624
*/
@@ -1823,32 +1765,6 @@ static const MapType<std::string, MG_CYCLE> MG_Cycle_Map = {
18231765
MakePair("FULLMG_CYCLE", FULLMG_CYCLE)
18241766
};
18251767

1826-
/*!
1827-
* \brief Type of solution output variables
1828-
*/
1829-
enum ENUM_OUTPUT_VARS {
1830-
DENSITY = 1, /*!< \brief Density. */
1831-
VEL_X = 2, /*!< \brief X-component of velocity. */
1832-
VEL_Y = 3, /*!< \brief Y-component of velocity. */
1833-
VEL_Z = 4, /*!< \brief Z-component of velocity. */
1834-
PRESSURE = 5, /*!< \brief Static pressure. */
1835-
MACH = 6, /*!< \brief Mach number. */
1836-
TEMPERATURE = 7, /*!< \brief Temperature. */
1837-
LAM_VISC = 8, /*!< \brief Laminar viscosity. */
1838-
EDDY_VISC = 9 /*!< \brief Eddy viscosity. */
1839-
};
1840-
static const MapType<std::string, ENUM_OUTPUT_VARS> Output_Vars_Map = {
1841-
MakePair("DENSITY", DENSITY)
1842-
MakePair("VEL_X", VEL_X)
1843-
MakePair("VEL_Y", VEL_Y)
1844-
MakePair("VEL_Z", VEL_Z)
1845-
MakePair("PRESSURE", PRESSURE)
1846-
MakePair("MACH", MACH)
1847-
MakePair("TEMPERATURE", TEMPERATURE)
1848-
MakePair("LAM_VISC", LAM_VISC)
1849-
MakePair("EDDY_VISC", EDDY_VISC)
1850-
};
1851-
18521768
/*!
18531769
* \brief Types of design parameterizations
18541770
*/

Common/src/CConfig.cpp

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3466,10 +3466,10 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
34663466
nObjW = nObj;
34673467
}
34683468
else if(nObj>1) {
3469-
SU2_MPI::Error(string("When using more than one OBJECTIVE_FUNCTION, MARKER_MONITORING must be the same length or length 1.\n ") +
3470-
string("For multiple surfaces per objective, either use one objective or list the objective multiple times.\n") +
3471-
string("For multiple objectives per marker either use one marker or list the marker multiple times.\n")+
3472-
string("Similar rules apply for multi-objective optimization using OPT_OBJECTIVE rather than OBJECTIVE_FUNCTION."),
3469+
SU2_MPI::Error("When using more than one OBJECTIVE_FUNCTION, MARKER_MONITORING must be the same length or length 1.\n"
3470+
"For multiple surfaces per objective, either use one objective or list the objective multiple times.\n"
3471+
"For multiple objectives per marker either use one marker or list the marker multiple times.\n"
3472+
"Similar rules apply for multi-objective optimization using OPT_OBJECTIVE rather than OBJECTIVE_FUNCTION.",
34733473
CURRENT_FUNCTION);
34743474
}
34753475
}
@@ -3479,8 +3479,8 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
34793479

34803480
if (nObjW<nObj) {
34813481
if (Weight_ObjFunc!= nullptr && nObjW>1) {
3482-
SU2_MPI::Error(string("The option OBJECTIVE_WEIGHT must either have the same length as OBJECTIVE_FUNCTION,\n") +
3483-
string("be lenght 1, or be deleted from the config file (equal weights will be applied)."), CURRENT_FUNCTION);
3482+
SU2_MPI::Error("The option OBJECTIVE_WEIGHT must either have the same length as OBJECTIVE_FUNCTION,\n"
3483+
"be lenght 1, or be deleted from the config file (equal weights will be applied).", CURRENT_FUNCTION);
34843484
}
34853485
Weight_ObjFunc = new su2double[nObj];
34863486
for (unsigned short iObj=0; iObj<nObj; iObj++)
@@ -3512,13 +3512,13 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
35123512
case SURFACE_SPECIES_VARIANCE:
35133513
case CUSTOM_OBJFUNC:
35143514
if (Kind_ObjFunc[iObj] != Obj_0) {
3515-
SU2_MPI::Error(string("The following objectives can only be used for the first surface in a multi-objective \n")+
3516-
string("problem or as a single objective applied to multiple monitoring markers:\n")+
3517-
string("INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, THRUST_COEFFICIENT, TORQUE_COEFFICIENT\n")+
3518-
string("FIGURE_OF_MERIT, SURFACE_TOTAL_PRESSURE, SURFACE_STATIC_PRESSURE, SURFACE_MASSFLOW\n")+
3519-
string("SURFACE_UNIFORMITY, SURFACE_SECONDARY, SURFACE_MOM_DISTORTION, SURFACE_SECOND_OVER_UNIFORM\n")+
3520-
string("SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, SURFACE_SPECIES_0\n")+
3521-
string("SURFACE_SPECIES_VARIANCE, CUSTOM_OBJFUNC.\n"), CURRENT_FUNCTION);
3515+
SU2_MPI::Error("The following objectives can only be used for the first surface in a multi-objective \n"
3516+
"problem or as a single objective applied to multiple monitoring markers:\n"
3517+
"INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, THRUST_COEFFICIENT, TORQUE_COEFFICIENT\n"
3518+
"FIGURE_OF_MERIT, SURFACE_TOTAL_PRESSURE, SURFACE_STATIC_PRESSURE, SURFACE_MASSFLOW\n"
3519+
"SURFACE_UNIFORMITY, SURFACE_SECONDARY, SURFACE_MOM_DISTORTION, SURFACE_SECOND_OVER_UNIFORM\n"
3520+
"SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, SURFACE_SPECIES_0\n"
3521+
"SURFACE_SPECIES_VARIANCE, CUSTOM_OBJFUNC.\n", CURRENT_FUNCTION);
35223522
}
35233523
break;
35243524
default:
@@ -8203,15 +8203,8 @@ string CConfig::GetObjFunc_Extension(string val_filename) const {
82038203
case SURFACE_SPECIES_VARIANCE: AdjExt = "_specvar"; break;
82048204
case SURFACE_MACH: AdjExt = "_mach"; break;
82058205
case CUSTOM_OBJFUNC: AdjExt = "_custom"; break;
8206-
case KINETIC_ENERGY_LOSS: AdjExt = "_ke"; break;
8207-
case TOTAL_PRESSURE_LOSS: AdjExt = "_pl"; break;
82088206
case FLOW_ANGLE_OUT: AdjExt = "_fao"; break;
8209-
case FLOW_ANGLE_IN: AdjExt = "_fai"; break;
8210-
case TOTAL_EFFICIENCY: AdjExt = "_teff"; break;
8211-
case TOTAL_STATIC_EFFICIENCY: AdjExt = "_tseff"; break;
8212-
case EULERIAN_WORK: AdjExt = "_ew"; break;
82138207
case MASS_FLOW_IN: AdjExt = "_mfi"; break;
8214-
case MASS_FLOW_OUT: AdjExt = "_mfo"; break;
82158208
case ENTROPY_GENERATION: AdjExt = "_entg"; break;
82168209
case REFERENCE_GEOMETRY: AdjExt = "_refgeom"; break;
82178210
case REFERENCE_NODE: AdjExt = "_refnode"; break;

SU2_CFD/include/output/CElasticityOutput.hpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@ class CElasticityOutput final: public COutput {
5050
*/
5151
CElasticityOutput(CConfig *config, unsigned short nDim);
5252

53-
/*!
54-
* \brief Destructor of the class.
55-
*/
56-
~CElasticityOutput(void) override;
57-
5853
/*!
5954
* \brief Load the history output field values
6055
* \param[in] config - Definition of the particular problem.

SU2_CFD/include/output/CFlowOutput.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ class CFlowOutput : public CFVMOutput{
182182
*/
183183
void Set_NearfieldInverseDesign(CSolver *solver, const CGeometry *geometry, const CConfig *config);
184184

185+
/*!
186+
* \brief Set the values of the rotating frame coefficients (CT, CQ and CMerit).
187+
* \param[in] config - Definition of the particular problem.
188+
* \param[in] solver - The container holding all solution data.
189+
*/
190+
virtual void SetComboAndCustomObjectives(CConfig *config, CSolver **solver);
191+
185192
/*!
186193
* \brief Compute value of the Q criteration for vortex idenfitication
187194
* \param[in] VelocityGradient - Velocity gradients

SU2_CFD/include/output/CHeatOutput.hpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@ class CHeatOutput final: public CFVMOutput {
4444
*/
4545
CHeatOutput(CConfig *config, unsigned short nDim);
4646

47-
/*!
48-
* \brief Destructor of the class.
49-
*/
50-
~CHeatOutput(void) override;
51-
5247
/*!
5348
* \brief Set the available history output fields
5449
* \param[in] config - Definition of the particular problem.

SU2_CFD/include/solvers/CEulerSolver.hpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -434,8 +434,9 @@ class CEulerSolver : public CFVMFlowSolverBase<CEulerVariable, ENUM_REGIME::COMP
434434
* \author H. Kline
435435
* \brief Compute weighted-sum "combo" objective output
436436
* \param[in] config - Definition of the particular problem.
437+
* \param[in] solver - Container vector with all the solutions.
437438
*/
438-
void Evaluate_ObjFunc(const CConfig *config) override;
439+
void Evaluate_ObjFunc(const CConfig *config, CSolver **solver) override;
439440

440441
/*!
441442
* \brief Impose the far-field boundary condition using characteristics.
@@ -807,13 +808,6 @@ class CEulerSolver : public CFVMFlowSolverBase<CEulerVariable, ENUM_REGIME::COMP
807808
*/
808809
inline su2double GetTotal_CNearFieldOF() const final { return Total_CNearFieldOF; }
809810

810-
/*!
811-
* \author H. Kline
812-
* \brief Add to the value of the total 'combo' objective.
813-
* \param[in] val_obj - Value of the contribution to the 'combo' objective.
814-
*/
815-
inline void AddTotal_ComboObj(su2double val_obj) final {Total_ComboObj +=val_obj;}
816-
817811
/*!
818812
* \brief Set the value of the Aero drag.
819813
* \param[in] val_cequivarea - Value of the aero drag.

SU2_CFD/include/solvers/CFEASolver.hpp

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ class CFEASolver : public CSolver {
7070
su2double Total_OFDiscreteness; /*!< \brief Total Objective Function: Discreteness (topology optimization). */
7171
su2double Total_OFCompliance; /*!< \brief Total Objective Function: Compliance (topology optimization). */
7272
su2double Total_OFStressPenalty; /*!< \brief Total Objective Function: Stress penalty. */
73-
su2double ObjFunc;
7473

7574
su2double Global_OFRefGeom; /*!< \brief Global Objective Function (added over time steps): Reference Geometry. */
7675
su2double Global_OFRefNode; /*!< \brief Global Objective Function (added over time steps): Reference Node. */
@@ -556,36 +555,35 @@ class CFEASolver : public CSolver {
556555
/*!
557556
* \brief Compute the objective function.
558557
* \param[in] config - Definition of the problem.
558+
* \param[in] solver - Container vector with all the solutions.
559559
*/
560-
inline void Evaluate_ObjFunc(const CConfig *config) final {
561-
ObjFunc = 0.0;
560+
void Evaluate_ObjFunc(const CConfig *config, CSolver**) final {
561+
Total_ComboObj = 0.0;
562562
switch (config->GetKind_ObjFunc()) {
563563
case REFERENCE_GEOMETRY:
564-
ObjFunc = GetTotal_OFRefGeom();
564+
Total_ComboObj = GetTotal_OFRefGeom();
565565
break;
566566
case REFERENCE_NODE:
567-
ObjFunc = GetTotal_OFRefNode();
567+
Total_ComboObj = GetTotal_OFRefNode();
568568
break;
569569
case TOPOL_COMPLIANCE:
570-
ObjFunc = GetTotal_OFCompliance();
570+
Total_ComboObj = GetTotal_OFCompliance();
571571
break;
572572
case VOLUME_FRACTION:
573-
ObjFunc = GetTotal_OFVolFrac();
573+
Total_ComboObj = GetTotal_OFVolFrac();
574574
break;
575575
case TOPOL_DISCRETENESS:
576-
ObjFunc = GetTotal_OFDiscreteness();
576+
Total_ComboObj = GetTotal_OFDiscreteness();
577577
break;
578578
case STRESS_PENALTY:
579-
ObjFunc = GetTotal_OFStressPenalty();
579+
Total_ComboObj = GetTotal_OFStressPenalty();
580+
break;
581+
case CUSTOM_OBJFUNC:
582+
Total_ComboObj = Total_Custom_ObjFunc;
580583
break;
581584
}
582585
}
583586

584-
/*!
585-
* \brief Provide the total "combo" objective (weighted sum of other values).
586-
*/
587-
inline su2double GetTotal_ComboObj() const final { return ObjFunc; }
588-
589587
/*!
590588
* \brief Determines whether there is an element-based file or not.
591589
* \return Bool that defines whether the solution has an element-based file or not

SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,6 @@ class CFVMFlowSolverBase : public CSolver {
152152
su2double AeroCoeffForceRef = 1.0; /*!< \brief Reference force for aerodynamic coefficients. */
153153
su2double DynamicPressureRef = 1.0; /*!< \brief Reference dynamic pressure. */
154154

155-
su2double InverseDesign = 0.0; /*!< \brief Inverse design functional for each boundary. */
156-
su2double Total_ComboObj = 0.0; /*!< \brief Total 'combo' objective for all monitored boundaries */
157-
su2double Total_Custom_ObjFunc = 0.0; /*!< \brief Total custom objective function for all the boundaries. */
158155
su2double Total_CpDiff = 0.0; /*!< \brief Total Equivalent Area coefficient for all the boundaries. */
159156
su2double Total_HeatFluxDiff = 0.0; /*!< \brief Total Equivalent Area coefficient for all the boundaries. */
160157
su2double Total_CEquivArea = 0.0; /*!< \brief Total Equivalent Area coefficient for all the boundaries. */
@@ -1995,20 +1992,6 @@ class CFVMFlowSolverBase : public CSolver {
19951992
*/
19961993
inline void SetTotal_CNearFieldOF(su2double val_cnearfieldpress) final { Total_CNearFieldOF = val_cnearfieldpress; }
19971994

1998-
/*!
1999-
* \author H. Kline
2000-
* \brief Set the total "combo" objective (weighted sum of other values).
2001-
* \param[in] ComboObj - Value of the combined objective.
2002-
*/
2003-
inline void SetTotal_ComboObj(su2double ComboObj) final { Total_ComboObj = ComboObj; }
2004-
2005-
/*!
2006-
* \author H. Kline
2007-
* \brief Provide the total "combo" objective (weighted sum of other values).
2008-
* \return Value of the "combo" objective values.
2009-
*/
2010-
inline su2double GetTotal_ComboObj() const final { return Total_ComboObj; }
2011-
20121995
/*!
20131996
* \brief Provide the total (inviscid + viscous) non dimensional Equivalent Area coefficient.
20141997
* \return Value of the Equivalent Area coefficient (inviscid + viscous contribution).
@@ -2027,24 +2010,6 @@ class CFVMFlowSolverBase : public CSolver {
20272010
*/
20282011
inline su2double GetTotal_CEquivArea() const final { return Total_CEquivArea; }
20292012

2030-
/*!
2031-
* \brief Set the value of the custom objective function.
2032-
* \param[in] val_Total_Custom_ObjFunc - Value of the total custom objective function.
2033-
* \param[in] val_weight - Value of the weight for the custom objective function.
2034-
*/
2035-
inline void SetTotal_Custom_ObjFunc(su2double val_total_custom_objfunc, su2double val_weight) final {
2036-
Total_Custom_ObjFunc = val_total_custom_objfunc * val_weight;
2037-
}
2038-
2039-
/*!
2040-
* \brief Add the value of the custom objective function.
2041-
* \param[in] val_Total_Custom_ObjFunc - Value of the total custom objective function.
2042-
* \param[in] val_weight - Value of the weight for the custom objective function.
2043-
*/
2044-
inline void AddTotal_Custom_ObjFunc(su2double val_total_custom_objfunc, su2double val_weight) final {
2045-
Total_Custom_ObjFunc += val_total_custom_objfunc * val_weight;
2046-
}
2047-
20482013
/*!
20492014
* \brief Provide the total heat load.
20502015
* \return Value of the heat load (viscous contribution).
@@ -2069,12 +2034,6 @@ class CFVMFlowSolverBase : public CSolver {
20692034
*/
20702035
inline void SetTotal_MaxHeatFlux(su2double val_Total_MaxHeat) final { Total_MaxHeat = val_Total_MaxHeat; }
20712036

2072-
/*!
2073-
* \brief Provide the total custom objective function.
2074-
* \return Value of the custom objective function.
2075-
*/
2076-
inline su2double GetTotal_Custom_ObjFunc() const final { return Total_Custom_ObjFunc; }
2077-
20782037
/*!
20792038
* \brief Provide the Pressure coefficient.
20802039
* \param[in] val_marker - Surface marker where the coefficient is computed.

0 commit comments

Comments
 (0)