Skip to content

Commit 9397571

Browse files
committed
Merge branch 'develop' into fix_inc_rotatingframe after minor conflict
2 parents 86ae5f5 + a2da75e commit 9397571

41 files changed

Lines changed: 5296 additions & 10212 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Common/include/CConfig.hpp

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,6 @@ class CConfig {
396396
unsigned long OuterIter; /*!< \brief Current Outer iterations for multizone problems. */
397397
unsigned long InnerIter; /*!< \brief Current inner iterations for multizone problems. */
398398
unsigned long TimeIter; /*!< \brief Current time iterations for multizone problems. */
399-
unsigned long Unst_nIntIter; /*!< \brief Number of internal iterations (Dual time Method). */
400399
long Unst_RestartIter; /*!< \brief Iteration number to restart an unsteady simulation (Dual time Method). */
401400
long Unst_AdjointIter; /*!< \brief Iteration number to begin the reverse time integration in the direct solver for the unsteady adjoint. */
402401
long Iter_Avg_Objective; /*!< \brief Iteration the number of time steps to be averaged, counting from the back */
@@ -729,7 +728,6 @@ class CConfig {
729728
RefElemLength, /*!< \brief Reference element length for computing the slope limiting epsilon. */
730729
RefSharpEdges, /*!< \brief Reference coefficient for detecting sharp edges. */
731730
RefLength, /*!< \brief Reference length for moment computation. */
732-
*RefOriginMoment, /*!< \brief Origin for moment computation. */
733731
*RefOriginMoment_X, /*!< \brief X Origin for moment computation. */
734732
*RefOriginMoment_Y, /*!< \brief Y Origin for moment computation. */
735733
*RefOriginMoment_Z, /*!< \brief Z Origin for moment computation. */
@@ -1370,7 +1368,8 @@ class CConfig {
13701368
* \param[in] val_marker - the marker we are monitoring.
13711369
* \return Reference origin (in cartesians coordinates) for moment computation.
13721370
*/
1373-
su2double *GetRefOriginMoment(unsigned short val_marker) {
1371+
std::array<su2double,3> GetRefOriginMoment(unsigned short val_marker) const {
1372+
std::array<su2double,3> RefOriginMoment{{0.0}};
13741373
if(val_marker < nMarker_Monitoring) {
13751374
RefOriginMoment[0] = RefOriginMoment_X[val_marker];
13761375
RefOriginMoment[1] = RefOriginMoment_Y[val_marker];
@@ -2937,12 +2936,6 @@ class CConfig {
29372936
*/
29382937
void SetnMarker_All(unsigned short val_nmarker) { nMarker_All = val_nmarker; }
29392938

2940-
/*!
2941-
* \brief Get the number of internal iterations.
2942-
* \return Number of internal iterations.
2943-
*/
2944-
unsigned long GetUnst_nIntIter(void) const { return Unst_nIntIter; }
2945-
29462939
/*!
29472940
* \brief Get the starting direct iteration number for the unsteady adjoint (reverse time integration).
29482941
* \return Starting direct iteration number for the unsteady adjoint.
@@ -5388,20 +5381,14 @@ class CConfig {
53885381
*/
53895382
string GetVolume_FileName(void) const { return Volume_FileName; }
53905383

5391-
/*!
5392-
* \brief Get the name of the restart file for the heat variables.
5393-
* \return Name of the restart file for the flow variables.
5394-
*/
5395-
string GetRestart_HeatFileName(void);
5396-
53975384
/*!
53985385
* \brief Add any numbers necessary to the filename (iteration number, zone ID ...)
53995386
* \param[in] config - Definition of the particular problem.
54005387
* \param[in] filename - the base filename.
54015388
* \param[in] ext - the extension to be added.
54025389
* \return The new filename
54035390
*/
5404-
string GetFilename(string filename, string ext, unsigned long Iter);
5391+
string GetFilename(string filename, string ext, unsigned long Iter) const;
54055392

54065393
/*!
54075394
* \brief Append the zone index to the restart or the solution files.
@@ -5419,13 +5406,13 @@ class CConfig {
54195406
* \brief Append the instance index to the restart or the solution files.
54205407
* \return Name of the restart file for the flow variables.
54215408
*/
5422-
string GetMultiInstance_FileName(string val_filename, int val_iInst, string ext);
5409+
string GetMultiInstance_FileName(string val_filename, int val_iInst, string ext) const;
54235410

54245411
/*!
54255412
* \brief Append the instance index to the restart or the solution files.
54265413
* \return Name of the restart file for the flow variables.
54275414
*/
5428-
string GetMultiInstance_HistoryFileName(string val_filename, int val_iInst);
5415+
string GetMultiInstance_HistoryFileName(string val_filename, int val_iInst) const;
54295416

54305417
/*!
54315418
* \brief Get the name of the restart file for the flow variables.
@@ -5494,7 +5481,7 @@ class CConfig {
54945481
* \param[in] val_filename - String value of the base filename.
54955482
* \return Name of the file with the appropriate objective function extension.
54965483
*/
5497-
string GetObjFunc_Extension(string val_filename);
5484+
string GetObjFunc_Extension(string val_filename) const;
54985485

54995486
/*!
55005487
* \brief Get the criteria for structural residual (relative/absolute).
@@ -6566,7 +6553,7 @@ class CConfig {
65666553
* \param[in] val_index - Index corresponding to the inlet boundary.
65676554
* \return The flow direction vector.
65686555
*/
6569-
su2double* GetInlet_FlowDir(string val_index);
6556+
const su2double* GetInlet_FlowDir(string val_index) const;
65706557

65716558
/*!
65726559
* \brief Get the back pressure (static) at an outlet boundary.
@@ -8367,14 +8354,14 @@ class CConfig {
83678354
* \brief Start the timer for profiling subroutines.
83688355
* \param[in] val_start_time - the value of the start time.
83698356
*/
8370-
void GEMM_Tick(double *val_start_time);
8357+
void GEMM_Tick(double *val_start_time) const;
83718358

83728359
/*!
83738360
* \brief Stop the timer for the GEMM profiling and store results.
83748361
* \param[in] val_start_time - The value of the start time.
83758362
* \param[in] M, N, K - Matrix size of the GEMM call.
83768363
*/
8377-
void GEMM_Tock(double val_start_time, int M, int N, int K);
8364+
void GEMM_Tock(double val_start_time, int M, int N, int K) const;
83788365

83798366
/*!
83808367
* \brief Write a CSV file containing the results of the profiling.

Common/include/blas_structure.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929

3030
#pragma once
3131

32-
#include "CConfig.hpp"
33-
3432
/* LIBXSMM include files, if supported. */
3533
#ifdef HAVE_LIBXSMM
3634
#include "libxsmm.h"
3735
#endif
3836

37+
class CConfig;
38+
3939
/*!
4040
* \class CBlasStructure
4141
* \brief Class, which serves as an interface to the BLAS functionalities needed.
@@ -66,7 +66,7 @@ class CBlasStructure {
6666
*/
6767
void gemm(const int M, const int N, const int K,
6868
const su2double *A, const su2double *B, su2double *C,
69-
CConfig *config);
69+
const CConfig *config);
7070

7171
/*!
7272
* \brief Function, which carries out a dense matrix vector product

Common/include/mpi_structure.hpp

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,16 @@
5050
#include <medi/medi.hpp>
5151
using namespace medi;
5252

53+
#include <codi/externals/codiMpiTypes.hpp>
54+
5355
class CMediMPIWrapper;
5456
typedef CMediMPIWrapper SU2_MPI;
5557

56-
#if defined CODI_REVERSE_TYPE
57-
#include <codi/externals/codiMediPackTypes.hpp>
58-
#if CODI_PRIMAL_INDEX_TAPE
59-
typedef CoDiPackToolPrimalRestore<su2double> MediTool;
60-
#else
61-
typedef CoDiPackTool<su2double> MediTool;
62-
#endif // defined CODI_REVERSE_TYPE
63-
#elif defined CODI_FORWARD_TYPE
64-
#include <codi/externals/codiForwardMediPackTypes.hpp>
65-
typedef CoDiPackForwardTool<su2double> MediTool;
66-
#endif // defined CODI_FORWARD_TYPE
67-
#define AMPI_ADOUBLE ((medi::MpiTypeInterface*)MediTool::MPI_TYPE)
58+
typedef CoDiMpiTypes<su2double> MediTypes;
59+
typedef MediTypes::Tool MediTool;
60+
61+
extern MediTypes* mediTypes;
62+
#define AMPI_ADOUBLE ((medi::MpiTypeInterface*)mediTypes->MPI_TYPE)
6863

6964
#else
7065
class CBaseMPIWrapper;

Common/include/mpi_structure.inl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ inline passivedouble CBaseMPIWrapper::Wtime(void) {
286286

287287
inline void CMediMPIWrapper::Init(int *argc, char ***argv) {
288288
AMPI_Init(argc,argv);
289-
MediTool::init();
289+
mediTypes = new MediTypes();
290290
AMPI_Comm_rank(convertComm(currentComm), &Rank);
291291
AMPI_Comm_size(convertComm(currentComm), &Size);
292292

@@ -298,7 +298,7 @@ inline void CMediMPIWrapper::Init(int *argc, char ***argv) {
298298

299299
inline void CMediMPIWrapper::Init_thread(int *argc, char ***argv, int required, int* provided) {
300300
AMPI_Init_thread(argc,argv,required,provided);
301-
MediTool::init();
301+
mediTypes = new MediTypes();
302302
AMPI_Comm_rank(convertComm(currentComm), &Rank);
303303
AMPI_Comm_size(convertComm(currentComm), &Size);
304304

@@ -310,7 +310,7 @@ inline void CMediMPIWrapper::Init_thread(int *argc, char ***argv, int required,
310310

311311
inline void CMediMPIWrapper::Init_AMPI(void) {
312312
AMPI_Init_common();
313-
MediTool::init();
313+
mediTypes = new MediTypes();
314314
}
315315

316316
inline void CMediMPIWrapper::SetComm(Comm newComm){
@@ -391,6 +391,8 @@ inline void CMediMPIWrapper::Comm_size(Comm comm, int *size){
391391

392392
inline void CMediMPIWrapper::Finalize(){
393393
if( winMinRankErrorInUse ) MPI_Win_free(&winMinRankError);
394+
395+
delete mediTypes;
394396
AMPI_Finalize();
395397
}
396398

Common/include/omp_structure.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#pragma once
4040

4141
#include <type_traits>
42+
#include <cstdlib>
4243

4344
#if defined(_MSC_VER)
4445
#define PRAGMIZE(X) __pragma(X)

Common/include/toolboxes/geometry_toolbox.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
#pragma once
2828

29+
#include <cmath>
30+
2931
namespace GeometryToolbox {
3032

3133
/*! \return ||a-b||^2 */

Common/src/CConfig.cpp

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,6 @@ void CConfig::SetPointersNull(void) {
911911
Velocity_FreeStream = nullptr;
912912
Inc_Velocity_Init = nullptr;
913913

914-
RefOriginMoment = nullptr;
915914
CFL_AdaptParam = nullptr;
916915
CFL = nullptr;
917916
HTP_Axis = nullptr;
@@ -3856,10 +3855,6 @@ void CConfig::SetPostprocessing(unsigned short val_software, unsigned short val_
38563855
}*/
38573856

38583857

3859-
/*--- Initialize the RefOriginMoment Pointer ---*/
3860-
3861-
RefOriginMoment = new su2double[3]();
3862-
38633858
/*--- In case the moment origin coordinates have not been declared in the
38643859
config file, set them equal to zero for safety. Also check to make sure
38653860
that for each marker, a value has been declared for the moment origin.
@@ -6210,28 +6205,28 @@ void CConfig::SetOutput(unsigned short val_software, unsigned short val_izone) {
62106205
case TIME_STEPPING:
62116206
cout << "Unsteady simulation using a time stepping strategy."<< endl;
62126207
if (Unst_CFL != 0.0) {
6213-
cout << "Time step computed by the code. Unsteady CFL number: " << Unst_CFL <<"."<< endl;
6214-
if (Delta_UnstTime != 0.0) {
6215-
cout << "Synchronization time provided by the user (s): "<< Delta_UnstTime << "." << endl;
6216-
}
6217-
}
6208+
cout << "Time step computed by the code. Unsteady CFL number: " << Unst_CFL <<"."<< endl;
6209+
if (Delta_UnstTime != 0.0) {
6210+
cout << "Synchronization time provided by the user (s): "<< Delta_UnstTime << "." << endl;
6211+
}
6212+
}
62186213
else cout << "Unsteady time step provided by the user (s): "<< Delta_UnstTime << "." << endl;
62196214
break;
62206215
case DT_STEPPING_1ST: case DT_STEPPING_2ND:
62216216
if (TimeMarching == DT_STEPPING_1ST) cout << "Unsteady simulation, dual time stepping strategy (first order in time)."<< endl;
62226217
if (TimeMarching == DT_STEPPING_2ND) cout << "Unsteady simulation, dual time stepping strategy (second order in time)."<< endl;
62236218
if (Unst_CFL != 0.0) cout << "Time step computed by the code. Unsteady CFL number: " << Unst_CFL <<"."<< endl;
62246219
else cout << "Unsteady time step provided by the user (s): "<< Delta_UnstTime << "." << endl;
6225-
cout << "Total number of internal Dual Time iterations: "<< Unst_nIntIter <<"." << endl;
6220+
cout << "Total number of internal Dual Time iterations: "<< InnerIter <<"." << endl;
62266221
break;
62276222
}
62286223
}
62296224
else {
62306225
if (Time_Domain) {
6231-
cout << "Dynamic structural analysis."<< endl;
6232-
cout << "Time step provided by the user for the dynamic analysis(s): "<< Delta_DynTime << "." << endl;
6233-
} else {
6234-
cout << "Static structural analysis." << endl;
6226+
cout << "Dynamic structural analysis."<< endl;
6227+
cout << "Time step provided by the user for the dynamic analysis(s): "<< Delta_DynTime << "." << endl;
6228+
} else {
6229+
cout << "Static structural analysis." << endl;
62356230
}
62366231
}
62376232

@@ -7290,7 +7285,6 @@ CConfig::~CConfig(void) {
72907285

72917286
/*--- reference origin for moments ---*/
72927287

7293-
delete [] RefOriginMoment;
72947288
delete [] RefOriginMoment_X;
72957289
delete [] RefOriginMoment_Y;
72967290
delete [] RefOriginMoment_Z;
@@ -7661,7 +7655,7 @@ CConfig::~CConfig(void) {
76617655

76627656
}
76637657

7664-
string CConfig::GetFilename(string filename, string ext, unsigned long Iter){
7658+
string CConfig::GetFilename(string filename, string ext, unsigned long Iter) const {
76657659

76667660
/*--- Remove any extension --- */
76677661

@@ -7749,33 +7743,33 @@ string CConfig::GetMultizone_HistoryFileName(string val_filename, int val_iZone,
77497743
return multizone_filename;
77507744
}
77517745

7752-
string CConfig::GetMultiInstance_FileName(string val_filename, int val_iInst, string ext) {
7746+
string CConfig::GetMultiInstance_FileName(string val_filename, int val_iInst, string ext) const {
77537747

7754-
string multizone_filename = val_filename;
7755-
char buffer[50];
7748+
string multizone_filename = val_filename;
7749+
char buffer[50];
77567750

7757-
unsigned short lastindex = multizone_filename.find_last_of(".");
7758-
multizone_filename = multizone_filename.substr(0, lastindex);
7759-
SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iInst));
7760-
multizone_filename.append(string(buffer));
7761-
multizone_filename += ext;
7762-
return multizone_filename;
7751+
unsigned short lastindex = multizone_filename.find_last_of(".");
7752+
multizone_filename = multizone_filename.substr(0, lastindex);
7753+
SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iInst));
7754+
multizone_filename.append(string(buffer));
7755+
multizone_filename += ext;
7756+
return multizone_filename;
77637757
}
77647758

7765-
string CConfig::GetMultiInstance_HistoryFileName(string val_filename, int val_iInst) {
7759+
string CConfig::GetMultiInstance_HistoryFileName(string val_filename, int val_iInst) const {
77667760

7767-
string multizone_filename = val_filename;
7768-
char buffer[50];
7761+
string multizone_filename = val_filename;
7762+
char buffer[50];
77697763

7770-
unsigned short lastindex = multizone_filename.find_last_of(".");
7771-
multizone_filename = multizone_filename.substr(0, lastindex);
7772-
SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iInst));
7773-
multizone_filename.append(string(buffer));
7764+
unsigned short lastindex = multizone_filename.find_last_of(".");
7765+
multizone_filename = multizone_filename.substr(0, lastindex);
7766+
SPRINTF (buffer, "_%d", SU2_TYPE::Int(val_iInst));
7767+
multizone_filename.append(string(buffer));
77747768

7775-
return multizone_filename;
7769+
return multizone_filename;
77767770
}
77777771

7778-
string CConfig::GetObjFunc_Extension(string val_filename) {
7772+
string CConfig::GetObjFunc_Extension(string val_filename) const {
77797773

77807774
string AdjExt, Filename = val_filename;
77817775

@@ -8353,7 +8347,7 @@ void CConfig::SetInlet_Ptotal(su2double val_pressure, string val_marker) {
83538347
Inlet_Ptotal[iMarker_Inlet] = val_pressure;
83548348
}
83558349

8356-
su2double* CConfig::GetInlet_FlowDir(string val_marker) {
8350+
const su2double* CConfig::GetInlet_FlowDir(string val_marker) const {
83578351
unsigned short iMarker_Inlet;
83588352
for (iMarker_Inlet = 0; iMarker_Inlet < nMarker_Inlet; iMarker_Inlet++)
83598353
if (Marker_Inlet[iMarker_Inlet] == val_marker) break;
@@ -9257,7 +9251,7 @@ void CConfig::SetProfilingCSV(void) {
92579251

92589252
}
92599253

9260-
void CConfig::GEMM_Tick(double *val_start_time) {
9254+
void CConfig::GEMM_Tick(double *val_start_time) const {
92619255

92629256
#ifdef PROFILE
92639257

@@ -9271,7 +9265,7 @@ void CConfig::GEMM_Tick(double *val_start_time) {
92719265

92729266
}
92739267

9274-
void CConfig::GEMM_Tock(double val_start_time, int M, int N, int K) {
9268+
void CConfig::GEMM_Tock(double val_start_time, int M, int N, int K) const {
92759269

92769270
#ifdef PROFILE
92779271

0 commit comments

Comments
 (0)