Skip to content

Commit

Permalink
Merge pull request #1238 from su2code/happy_little_fixes
Browse files Browse the repository at this point in the history
Some fixes / cleanup of CONV_CRITERIA which has no effect and will be deprecated in 7.2.0
  • Loading branch information
TobiKattmann authored Mar 22, 2021
2 parents 2d2238a + 93fd616 commit 19826aa
Show file tree
Hide file tree
Showing 238 changed files with 51 additions and 1,088 deletions.
8 changes: 1 addition & 7 deletions Common/include/CConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ class CConfig {
su2double EA_ScaleFactor; /*!< \brief Equivalent Area scaling factor */
su2double AdjointLimit; /*!< \brief Adjoint variable limit */
string* ConvField; /*!< \brief Field used for convergence check.*/
string ConvCriteria; // This option is deprecated. After a grace period until 7.2.0 the usage warning should become an error.

string* WndConvField; /*!< \brief Function where to apply the windowed convergence criteria for the time average of the unsteady (single zone) flow problem. */
unsigned short nConvField; /*!< \brief Number of fields used to monitor convergence.*/
Expand All @@ -96,7 +97,6 @@ class CConfig {
bool ActDisk_DoubleSurface; /*!< \brief actuator disk double surface */
bool Engine_HalfModel; /*!< \brief only half model is in the computational grid */
bool ActDisk_SU2_DEF; /*!< \brief actuator disk double surface */
unsigned short ConvCriteria; /*!< \brief Kind of convergence criteria. */
unsigned short nFFD_Iter; /*!< \brief Iteration for the point inversion problem. */
unsigned short FFD_Blending; /*!< \brief Kind of FFD Blending function. */
su2double FFD_Tol; /*!< \brief Tolerance in the point inversion problem. */
Expand Down Expand Up @@ -5865,12 +5865,6 @@ class CConfig {
*/
su2double GetBuffet_lambda(void) const { return Buffet_lambda; }

/*!
* \brief Obtain the kind of convergence criteria to establish the convergence of the CFD code.
* \return Kind of convergence criteria.
*/
unsigned short GetConvCriteria(void) const { return ConvCriteria; }

/*!
* \brief Get the index in the config information of the marker <i>val_marker</i>.
* \note When we read the config file, it stores the markers in a particular vector.
Expand Down
10 changes: 0 additions & 10 deletions Common/include/geometry/CGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1168,16 +1168,6 @@ class CGeometry {
*/
inline unsigned long GetnElemPyra(void) const { return nelem_pyramid; }

/*!
* \brief Indentify geometrical planes in the mesh
*/
void SetGeometryPlanes(CConfig *config);

/*!
* \brief Get geometrical planes in the mesh
*/
inline vector<su2double> GetGeometryPlanes() const {return XCoordList;}

/*!
* \brief Get x coords of geometrical planes in the mesh
*/
Expand Down
14 changes: 2 additions & 12 deletions Common/include/option_structure.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1494,6 +1494,7 @@ enum ENUM_OBJECTIVE {
BUFFET_SENSOR = 20, /*!< \brief Sensor for detecting separation. */
SURFACE_TOTAL_PRESSURE = 28, /*!< \brief Total Pressure objective function definition. */
SURFACE_STATIC_PRESSURE = 29, /*!< \brief Static Pressure objective function definition. */
SURFACE_STATIC_TEMPERATURE = 57, /*!< \brief Static Temperature objective function definition. */
SURFACE_MASSFLOW = 30, /*!< \brief Mass Flow Rate objective function definition. */
SURFACE_MACH = 51, /*!< \brief Mach number objective function definition. */
SURFACE_UNIFORMITY = 52, /*!< \brief Flow uniformity objective function definition. */
Expand Down Expand Up @@ -1545,6 +1546,7 @@ static const MapType<string, ENUM_OBJECTIVE> Objective_Map = {
MakePair("BUFFET", BUFFET_SENSOR)
MakePair("SURFACE_TOTAL_PRESSURE", SURFACE_TOTAL_PRESSURE)
MakePair("SURFACE_STATIC_PRESSURE", SURFACE_STATIC_PRESSURE)
MakePair("SURFACE_STATIC_TEMPERATURE", SURFACE_STATIC_TEMPERATURE)
MakePair("SURFACE_MASSFLOW", SURFACE_MASSFLOW)
MakePair("SURFACE_MACH", SURFACE_MACH)
MakePair("SURFACE_UNIFORMITY", SURFACE_UNIFORMITY)
Expand Down Expand Up @@ -2021,18 +2023,6 @@ static const MapType<string, ENUM_UNSTEADY> TimeMarching_Map = {
MakePair("ROTATIONAL_FRAME", ROTATIONAL_FRAME)
};

/*!
* \brief Types of criteria to determine when the solution is converged
*/
enum ENUM_CONVERGE_CRIT {
CAUCHY = 1, /*!< \brief Cauchy criteria to establish the convergence of the code. */
RESIDUAL = 2 /*!< \brief Residual criteria to establish the convergence of the code. */
};
static const MapType<string, ENUM_CONVERGE_CRIT> Converge_Crit_Map = {
MakePair("CAUCHY", CAUCHY)
MakePair("RESIDUAL", RESIDUAL)
};

/*!
* \brief Types of element stiffnesses imposed for FEA mesh deformation
*/
Expand Down
30 changes: 24 additions & 6 deletions Common/src/CConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1727,9 +1727,8 @@ void CConfig::SetConfig_Options() {
/*!\par CONFIG_CATEGORY: Convergence\ingroup Config*/
/*--- Options related to convergence ---*/

/*!\brief CONV_CRITERIA
* \n DESCRIPTION: Convergence criteria \n OPTIONS: see \link Converge_Crit_Map \endlink \n DEFAULT: RESIDUAL \ingroup Config*/
addEnumOption("CONV_CRITERIA", ConvCriteria, Converge_Crit_Map, RESIDUAL);
// This option is deprecated. After a grace period until 7.2.0 the usage warning should become an error.
addStringOption("CONV_CRITERIA", ConvCriteria, "this option is deprecated");
/*!\brief CONV_RESIDUAL_MINVAL\n DESCRIPTION: Min value of the residual (log10 of the residual)\n DEFAULT: -14.0 \ingroup Config*/
addDoubleOption("CONV_RESIDUAL_MINVAL", MinLogResidual, -14.0);
/*!\brief CONV_STARTITER\n DESCRIPTION: Iteration number to begin convergence monitoring\n DEFAULT: 5 \ingroup Config*/
Expand Down Expand Up @@ -2887,6 +2886,10 @@ void CConfig::SetConfig_Parsing(istream& config_buffer){
newString.append("WRT_SOL_FREQ is deprecated. Use OUTPUT_WRT_FREQ instead.\n\n");
if (!option_name.compare("WRT_SOL_FREQ_DUALTIME"))
newString.append("WRT_SOL_FREQ_DUALTIME is deprecated. Use OUTPUT_WRT_FREQ instead.\n\n");
// This option is deprecated. After a grace period until 7.2.0 the usage warning should become an error.
/*if (!option_name.compare("CONV_CRITERIA"))
newString.append(string("CONV_CRITERIA is deprecated. SU2 will choose the criteria automatically based on the CONV_FIELD.\n") +
string("RESIDUAL for any RMS_* BGS_* value. CAUCHY for coefficients like DRAG etc.\n\n"));*/
errorString.append(newString);
err_count++;
line_count++;
Expand Down Expand Up @@ -3274,6 +3277,9 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
SU2_MPI::Error(string("Fixed CL mode not implemented for the incompressible solver. \n"), CURRENT_FUNCTION);
}

/*--- Inc CHT simulation, but energy equation of fluid is inactive. ---*/
if (Multizone_Problem && (nMarker_CHTInterface > 0) && !Energy_Equation)
SU2_MPI::Error(string("You probably want to set INC_ENERGY_EQUATION= YES for the fluid solver. \n"), CURRENT_FUNCTION);
}

/*--- By default, in 2D we should use TWOD_AIRFOIL (independenly from the input file) ---*/
Expand Down Expand Up @@ -3377,6 +3383,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
case FIGURE_OF_MERIT:
case SURFACE_TOTAL_PRESSURE:
case SURFACE_STATIC_PRESSURE:
case SURFACE_STATIC_TEMPERATURE:
case SURFACE_MASSFLOW:
case SURFACE_UNIFORMITY:
case SURFACE_SECONDARY:
Expand All @@ -3390,7 +3397,7 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
string("INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, THRUST_COEFFICIENT, TORQUE_COEFFICIENT\n")+
string("FIGURE_OF_MERIT, SURFACE_TOTAL_PRESSURE, SURFACE_STATIC_PRESSURE, SURFACE_MASSFLOW\n")+
string("SURFACE_UNIFORMITY, SURFACE_SECONDARY, SURFACE_MOM_DISTORTION, SURFACE_SECOND_OVER_UNIFORM\n")+
string("SURFACE_PRESSURE_DROP, CUSTOM_OBJFUNC.\n"), CURRENT_FUNCTION);
string("SURFACE_PRESSURE_DROP, SURFACE_STATIC_TEMPERATURE, CUSTOM_OBJFUNC.\n"), CURRENT_FUNCTION);
}
break;
default:
Expand Down Expand Up @@ -3421,7 +3428,11 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
if (!OptionIsSet("HISTORY_WRT_FREQ_INNER")) { HistoryWrtFreq[2] = 0; }
if (!OptionIsSet("HISTORY_WRT_FREQ_OUTER")) { HistoryWrtFreq[1] = 0; }

if (Restart == NO) { Restart_Iter = 0; }
if (Restart == NO) {
Restart_Iter = 0;
} else {
if(nTimeIter <= Restart_Iter) SU2_MPI::Error("TIME_ITER must be larger than RESTART_ITER.", CURRENT_FUNCTION);
}

if (Time_Step <= 0.0 && Unst_CFL == 0.0){ SU2_MPI::Error("Invalid value for TIME_STEP.", CURRENT_FUNCTION); }
} else {
Expand Down Expand Up @@ -4450,7 +4461,6 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_

if (Fixed_CM_Mode) {
nInnerIter += Iter_dCL_dAlpha;
ConvCriteria = RESIDUAL;
MinLogResidual = -24;
}
}
Expand Down Expand Up @@ -4980,6 +4990,12 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
if (GetSurface_Movement(DEFORMING)) Deform_Mesh = true;

if (GetGasModel() == "ARGON") monoatomic = true;

// This option is deprecated. After a grace period until 7.2.0 the usage warning should become an error.
if(OptionIsSet("CONV_CRITERIA")) {
cout << string("\n\nWARNING: CONV_CRITERIA is deprecated. SU2 will choose the criteria automatically based on the CONV_FIELD.\n") +
string("RESIDUAL for any RMS_* BGS_* value. CAUCHY for coefficients like DRAG etc.\n\n");
}
}

void CConfig::SetMarkers(unsigned short val_software) {
Expand Down Expand Up @@ -6013,6 +6029,7 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) {
case BUFFET_SENSOR: cout << "Buffet sensor objective function." << endl; break;
case SURFACE_TOTAL_PRESSURE: cout << "Average total pressure objective function." << endl; break;
case SURFACE_STATIC_PRESSURE: cout << "Average static pressure objective function." << endl; break;
case SURFACE_STATIC_TEMPERATURE: cout << "Average static temperature objective function." << endl; break;
case SURFACE_MASSFLOW: cout << "Mass flow rate objective function." << endl; break;
case SURFACE_MACH: cout << "Mach number objective function." << endl; break;
case CUSTOM_OBJFUNC: cout << "Custom objective function." << endl; break;
Expand Down Expand Up @@ -7916,6 +7933,7 @@ string CConfig::GetObjFunc_Extension(string val_filename) const {
case BUFFET_SENSOR: AdjExt = "_buffet"; break;
case SURFACE_TOTAL_PRESSURE: AdjExt = "_pt"; break;
case SURFACE_STATIC_PRESSURE: AdjExt = "_pe"; break;
case SURFACE_STATIC_TEMPERATURE: AdjExt = "_T"; break;
case SURFACE_MASSFLOW: AdjExt = "_mfr"; break;
case SURFACE_UNIFORMITY: AdjExt = "_uniform"; break;
case SURFACE_SECONDARY: AdjExt = "_second"; break;
Expand Down
95 changes: 0 additions & 95 deletions Common/src/geometry/CGeometry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3534,101 +3534,6 @@ void CGeometry::SetElemVolume()
} // end SU2_OMP_PARALLEL
}

void CGeometry::SetGeometryPlanes(CConfig *config) {

bool loop_on;
unsigned short iMarker = 0;
su2double *Face_Normal = nullptr, *Xcoord = nullptr, *Ycoord = nullptr, *Zcoord = nullptr, *FaceArea = nullptr;
unsigned long jVertex, iVertex, ixCoord, iPoint, iVertex_Wall, nVertex_Wall = 0;

/*--- Compute the total number of points on the near-field ---*/
nVertex_Wall = 0;
for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++)
if (config->GetSolid_Wall(iMarker))
nVertex_Wall += nVertex[iMarker];

/*--- Create an array with all the coordinates, points, pressures, face area,
equivalent area, and nearfield weight ---*/
Xcoord = new su2double[nVertex_Wall];
Ycoord = new su2double[nVertex_Wall];
if (nDim == 3) Zcoord = new su2double[nVertex_Wall];
FaceArea = new su2double[nVertex_Wall];

/*--- Copy the boundary information to an array ---*/
iVertex_Wall = 0;
for (iMarker = 0; iMarker < config->GetnMarker_All(); iMarker++)
if (config->GetSolid_Wall(iMarker))
for (iVertex = 0; iVertex < nVertex[iMarker]; iVertex++) {
iPoint = vertex[iMarker][iVertex]->GetNode();
Xcoord[iVertex_Wall] = nodes->GetCoord(iPoint, 0);
Ycoord[iVertex_Wall] = nodes->GetCoord(iPoint, 1);
if (nDim==3) Zcoord[iVertex_Wall] = nodes->GetCoord(iPoint, 2);
Face_Normal = vertex[iMarker][iVertex]->GetNormal();
FaceArea[iVertex_Wall] = fabs(Face_Normal[nDim-1]);
iVertex_Wall ++;
}


//vector<su2double> XCoordList;
vector<su2double>::iterator IterXCoordList;

for (iVertex = 0; iVertex < nVertex_Wall; iVertex++)
XCoordList.push_back(Xcoord[iVertex]);

sort( XCoordList.begin(), XCoordList.end());
IterXCoordList = unique( XCoordList.begin(), XCoordList.end());
XCoordList.resize( IterXCoordList - XCoordList.begin() );

/*--- Create vectors and distribute the values among the different PhiAngle queues ---*/
Xcoord_plane.resize(XCoordList.size());
Ycoord_plane.resize(XCoordList.size());
if (nDim==3) Zcoord_plane.resize(XCoordList.size());
FaceArea_plane.resize(XCoordList.size());
Plane_points.resize(XCoordList.size());


su2double dist_ratio;
unsigned long iCoord;

/*--- Distribute the values among the different PhiAngles ---*/
for (iPoint = 0; iPoint < nPoint; iPoint++) {
if (nodes->GetDomain(iPoint)) {
loop_on = true;
for (ixCoord = 0; ixCoord < XCoordList.size()-1 && loop_on; ixCoord++) {
dist_ratio = (nodes->GetCoord(iPoint, 0) - XCoordList[ixCoord])/(XCoordList[ixCoord+1]- XCoordList[ixCoord]);
if (dist_ratio >= 0 && dist_ratio <= 1.0) {
if (dist_ratio <= 0.5) iCoord = ixCoord;
else iCoord = ixCoord+1;
Xcoord_plane[iCoord].push_back(nodes->GetCoord(iPoint, 0) );
Ycoord_plane[iCoord].push_back(nodes->GetCoord(iPoint, 1) );
if (nDim==3) Zcoord_plane[iCoord].push_back(nodes->GetCoord(iPoint, 2) );
FaceArea_plane[iCoord].push_back(nodes->GetVolume(iPoint)); ///// CHECK AREA CALCULATION
Plane_points[iCoord].push_back(iPoint );
loop_on = false;
}
}
}
}

/*--- Order the arrays in ascending values of y ---*/
/// TODO: Depending on the size of the arrays, this may not be a good way of sorting them.
for (ixCoord = 0; ixCoord < XCoordList.size(); ixCoord++)
for (iVertex = 0; iVertex < Xcoord_plane[ixCoord].size(); iVertex++)
for (jVertex = 0; jVertex < Xcoord_plane[ixCoord].size() - 1 - iVertex; jVertex++)
if (Ycoord_plane[ixCoord][jVertex] > Ycoord_plane[ixCoord][jVertex+1]) {
swap(Xcoord_plane[ixCoord][jVertex], Xcoord_plane[ixCoord][jVertex+1]);
swap(Ycoord_plane[ixCoord][jVertex], Ycoord_plane[ixCoord][jVertex+1]);
if (nDim==3) swap(Zcoord_plane[ixCoord][jVertex], Zcoord_plane[ixCoord][jVertex+1]);
swap(Plane_points[ixCoord][jVertex], Plane_points[ixCoord][jVertex+1]);
swap(FaceArea_plane[ixCoord][jVertex], FaceArea_plane[ixCoord][jVertex+1]);
}

/*--- Delete structures ---*/
delete[] Xcoord; delete[] Ycoord;
delete[] Zcoord;
delete[] FaceArea;
}

void CGeometry::SetRotationalVelocity(CConfig *config, bool print) {

unsigned long iPoint;
Expand Down
1 change: 0 additions & 1 deletion QuickStart/inv_NACA0012.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ DEFORM_CONSOLE_OUTPUT= YES
DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME

% --------------------------- CONVERGENCE PARAMETERS --------------------------%
% Convergence criteria (CAUCHY, RESIDUAL)
%
CONV_FIELD= RMS_DENSITY
%
Expand Down
18 changes: 9 additions & 9 deletions SU2_CFD/include/output/COutput.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,12 @@ class COutput {
*/
bool GetConvergence() const {return convergence;}

/*!
* \brief Set the value of the convergence flag.
* \param[in] conv - New value of the convergence flag.
*/
void SetConvergence(const bool conv) {convergence = conv;}

/*!
* \brief Monitor the time convergence of the specified windowed-time-averaged ouput
* \param[in] config - Definition of the particular problem.
Expand All @@ -434,17 +440,11 @@ class COutput {
bool MonitorTimeConvergence(CConfig *config, unsigned long Iteration);

/*!
* \brief Get convergence time convergence of the specified windowed-time-averaged ouput of the problem.
* \brief Get time convergence of the specified windowed-time-averaged ouput of the problem.
* Indicates, if the time loop is converged. COnvergence criterion: Windowed time average
* \return Boolean indicating whether the problem is converged.
*/
bool GetTimeConvergence()const {return TimeConvergence;} /*! \brief Indicates, if the time loop is converged. COnvergence criterion: Windowed time average */


/*!
* \brief Set the value of the convergence flag.
* \param[in] conv - New value of the convergence flag.
*/
void SetConvergence(bool conv) {convergence = conv;}
bool GetTimeConvergence() const {return TimeConvergence;}

/*!
* \brief Print a list of all history output fields to screen.
Expand Down
3 changes: 3 additions & 0 deletions SU2_CFD/include/solvers/CFVMFlowSolverBase.inl
Original file line number Diff line number Diff line change
Expand Up @@ -2901,6 +2901,9 @@ su2double CFVMFlowSolverBase<V,R>::EvaluateCommonObjFunc(const CConfig& config)
case SURFACE_STATIC_PRESSURE:
objFun += weight * config.GetSurface_Pressure(0);
break;
case SURFACE_STATIC_TEMPERATURE:
objFun += weight * config.GetSurface_Temperature(0);
break;
case SURFACE_MASSFLOW:
objFun += weight * config.GetSurface_MassFlow(0);
break;
Expand Down
2 changes: 1 addition & 1 deletion SU2_CFD/src/drivers/CMultizoneDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ void CMultizoneDriver::StartSolver() {
if (rank == MASTER_NODE){
cout << endl <<"Simulation Run using the Multizone Driver" << endl;
if (driver_config->GetTime_Domain())
cout << "The simulation will run for " << driver_config->GetnTime_Iter() << " time steps." << endl;
cout << "The simulation will run until time step " << driver_config->GetnTime_Iter() << "." << endl;
}

/*--- Set the initial time iteration to the restart iteration. ---*/
Expand Down
2 changes: 1 addition & 1 deletion SU2_CFD/src/output/CHeatOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ void CHeatOutput::SetHistoryOutputFields(CConfig *config){

AddHistoryOutput("RMS_TEMPERATURE", "rms[T]", ScreenOutputFormat::FIXED, "RMS_RES", "Root mean square residual of the temperature", HistoryFieldType::RESIDUAL);
AddHistoryOutput("MAX_TEMPERATURE", "max[T]", ScreenOutputFormat::FIXED, "MAX_RES", "Maximum residual of the temperature", HistoryFieldType::RESIDUAL);
AddHistoryOutput("BGS_TEMPERATURE", "bgs[T]", ScreenOutputFormat::FIXED, "BGS_RES", "Block-Gauss seidel residual of the temperature", HistoryFieldType::RESIDUAL);
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("MAXIMUM_HEATFLUX", "MaxHF", ScreenOutputFormat::SCIENTIFIC, "HEAT", "Total maximal heatflux on all surfaces defined in MARKER_MONITORING", HistoryFieldType::COEFFICIENT);
Expand Down
17 changes: 8 additions & 9 deletions SU2_CFD/src/solvers/CDiscAdjSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -760,22 +760,21 @@ void CDiscAdjSolver::SetSurface_Sensitivity(CGeometry *geometry, CConfig *config
}

void CDiscAdjSolver::Preprocessing(CGeometry *geometry, CSolver **solver_container, CConfig *config_container, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) {
bool dual_time_1st = (config_container->GetTime_Marching() == DT_STEPPING_1ST);
bool dual_time_2nd = (config_container->GetTime_Marching() == DT_STEPPING_2ND);
bool dual_time = (dual_time_1st || dual_time_2nd);
const bool dual_time_1st = (config_container->GetTime_Marching() == DT_STEPPING_1ST);
const bool dual_time_2nd = (config_container->GetTime_Marching() == DT_STEPPING_2ND);
const bool dual_time = (dual_time_1st || dual_time_2nd);
su2double *solution_n, *solution_n1;
unsigned long iPoint;
unsigned short iVar;

if (dual_time) {
for (iPoint = 0; iPoint<geometry->GetnPoint(); iPoint++) {
for (auto iPoint = 0ul; iPoint<geometry->GetnPoint(); iPoint++) {
solution_n = nodes->GetSolution_time_n(iPoint);
solution_n1 = nodes->GetSolution_time_n1(iPoint);
for (iVar=0; iVar < nVar; iVar++) {
for (unsigned short iVar=0; iVar < nVar; iVar++) {
nodes->SetDual_Time_Derivative(iPoint, iVar, solution_n[iVar]+nodes->GetDual_Time_Derivative_n(iPoint, iVar));
nodes->SetDual_Time_Derivative_n(iPoint,iVar, solution_n1[iVar]);
}
}
}
} // for iPoint
} // if dual_time
}

void CDiscAdjSolver::LoadRestart(CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter, bool val_update_geo) {
Expand Down
Loading

0 comments on commit 19826aa

Please sign in to comment.