Skip to content

Commit 0f211b5

Browse files
authored
Merge pull request #2212 from su2code/fix_addresssanitizer_findings
Fix bugs detected by the address sanitizer
2 parents d65b4b8 + 150d1b3 commit 0f211b5

33 files changed

+139
-137
lines changed

Common/include/CConfig.hpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,10 @@ class CConfig {
183183
nMarker_NearFieldBound, /*!< \brief Number of near field boundary markers. */
184184
nMarker_ActDiskInlet, /*!< \brief Number of actuator disk inlet markers. */
185185
nMarker_ActDiskOutlet, /*!< \brief Number of actuator disk outlet markers. */
186-
nMarker_ActDiskBemInlet, /*!< \brief Number of actuator disk BEM inlet markers. */
187-
nMarker_ActDiskBemOutlet, /*!< \brief Number of actuator disk BEM outlet markers. */
186+
nMarker_ActDiskBemInlet_CG, /*!< \brief Number of actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_CG. */
187+
nMarker_ActDiskBemOutlet_CG, /*!< \brief Number of actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_CG. */
188+
nMarker_ActDiskBemInlet_Axis, /*!< \brief Number of actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_AXIS. */
189+
nMarker_ActDiskBemOutlet_Axis, /*!< \brief Number of actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_AXIS. */
188190
nMarker_Deform_Mesh_Sym_Plane, /*!< \brief Number of markers with symmetric deformation */
189191
nMarker_Deform_Mesh, /*!< \brief Number of deformable markers at the boundary. */
190192
nMarker_Fluid_Load, /*!< \brief Number of markers in which the flow load is computed/employed. */
@@ -241,8 +243,10 @@ class CConfig {
241243
*Marker_CHTInterface, /*!< \brief Conjugate heat transfer interface markers. */
242244
*Marker_ActDiskInlet, /*!< \brief Actuator disk inlet markers. */
243245
*Marker_ActDiskOutlet, /*!< \brief Actuator disk outlet markers. */
244-
*Marker_ActDiskBemInlet, /*!< \brief Actuator disk BEM inlet markers. */
245-
*Marker_ActDiskBemOutlet, /*!< \brief Actuator disk BEM outlet markers. */
246+
*Marker_ActDiskBemInlet_CG, /*!< \brief Actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_CG. */
247+
*Marker_ActDiskBemOutlet_CG, /*!< \brief Actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_CG. */
248+
*Marker_ActDiskBemInlet_Axis, /*!< \brief Actuator disk BEM inlet markers passed to MARKER_ACTDISK_BEM_AXIS. */
249+
*Marker_ActDiskBemOutlet_Axis, /*!< \brief Actuator disk BEM outlet markers passed to MARKER_ACTDISK_BEM_AXIS. */
246250
*Marker_Inlet, /*!< \brief Inlet flow markers. */
247251
*Marker_Inlet_Species, /*!< \brief Inlet species markers. */
248252
*Marker_Inlet_Turb, /*!< \brief Inlet turbulent markers. */

Common/include/geometry/meshreader/CBoxMeshReaderFVM.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,5 @@ class CBoxMeshReaderFVM : public CMeshReaderFVM {
7676
/*!
7777
* \brief Destructor of the CBoxMeshReaderFVM class.
7878
*/
79-
~CBoxMeshReaderFVM(void);
79+
~CBoxMeshReaderFVM(void) override;
8080
};

Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,5 @@ class CCGNSMeshReaderFVM : public CMeshReaderFVM {
148148
/*!
149149
* \brief Destructor of the CCGNSMeshReaderFVM class.
150150
*/
151-
~CCGNSMeshReaderFVM(void);
151+
~CCGNSMeshReaderFVM(void) override;
152152
};

Common/include/geometry/meshreader/CMeshReaderFVM.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ class CMeshReaderFVM {
7676
*/
7777
CMeshReaderFVM(const CConfig* val_config, unsigned short val_iZone, unsigned short val_nZone);
7878

79+
virtual ~CMeshReaderFVM() = default;
80+
7981
/*!
8082
* \brief Get the physical dimension of the problem (2 or 3).
8183
* \returns Physical dimension of the problem.

Common/include/option_structure.inl

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1696,7 +1696,22 @@ class COptionActDisk : public COptionBase {
16961696
this->name = name;
16971697
}
16981698

1699-
~COptionActDisk() override{};
1699+
~COptionActDisk() override {
1700+
for (int i = 0; i < this->inlet_size; i++) {
1701+
if (this->press_jump) delete[] this->press_jump[i];
1702+
if (this->temp_jump) delete[] this->temp_jump[i];
1703+
if (this->omega) delete[] this->omega[i];
1704+
}
1705+
delete[] press_jump;
1706+
delete[] temp_jump;
1707+
delete[] omega;
1708+
1709+
delete[] marker_inlet;
1710+
delete[] marker_outlet;
1711+
1712+
SetDefault();
1713+
}
1714+
17001715
string SetValue(const vector<string>& option_value) override {
17011716
COptionBase::SetValue(option_value);
17021717
const int mod_num = 8;

Common/src/CConfig.cpp

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,12 +1535,12 @@ void CConfig::SetConfig_Options() {
15351535

15361536
/*!\brief MARKER_ACTDISK_BEM_CG\n DESCRIPTION: Actuator disk CG for blade element momentum (BEM) method. \ingroup Config*/
15371537
addActDiskBemOption("MARKER_ACTDISK_BEM_CG",
1538-
nMarker_ActDiskBemInlet, nMarker_ActDiskBemOutlet, Marker_ActDiskBemInlet, Marker_ActDiskBemOutlet,
1538+
nMarker_ActDiskBemInlet_CG, nMarker_ActDiskBemOutlet_CG, Marker_ActDiskBemInlet_CG, Marker_ActDiskBemOutlet_CG,
15391539
ActDiskBem_CG[0], ActDiskBem_CG[1], ActDiskBem_CG[2]);
15401540

15411541
/*!\brief MARKER_ACTDISK_BEM_AXIS\n DESCRIPTION: Actuator disk axis for blade element momentum (BEM) method. \ingroup Config*/
15421542
addActDiskBemOption("MARKER_ACTDISK_BEM_AXIS",
1543-
nMarker_ActDiskBemInlet, nMarker_ActDiskBemOutlet, Marker_ActDiskBemInlet, Marker_ActDiskBemOutlet,
1543+
nMarker_ActDiskBemInlet_Axis, nMarker_ActDiskBemOutlet_Axis, Marker_ActDiskBemInlet_Axis, Marker_ActDiskBemOutlet_Axis,
15441544
ActDiskBem_Axis[0], ActDiskBem_Axis[1], ActDiskBem_Axis[2]);
15451545

15461546
/*!\brief ACTDISK_FILENAME \n DESCRIPTION: Input file for a specified actuator disk (w/ extension) \n DEFAULT: actdiskinput.dat \ingroup Config*/
@@ -3589,6 +3589,28 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
35893589
|| (Kind_ActDisk == POWER))
35903590
ActDisk_Jump = RATIO;
35913591

3592+
if(Marker_ActDiskBemInlet_CG && Marker_ActDiskBemInlet_Axis){
3593+
if(nMarker_ActDiskBemInlet_CG != nMarker_ActDiskBemInlet_Axis){
3594+
SU2_MPI::Error("Marker lists supplied to MARKER_ACTDISK_BEM_CG and MARKER_ACTDISK_BEM_AXIS must be identical.", CURRENT_FUNCTION);
3595+
}
3596+
for(iMarker=0; iMarker<nMarker_ActDiskBemInlet_CG; iMarker++){
3597+
if(Marker_ActDiskBemInlet_CG[iMarker]!=Marker_ActDiskBemInlet_Axis[iMarker]){
3598+
SU2_MPI::Error("Marker lists supplied to MARKER_ACTDISK_BEM_CG and MARKER_ACTDISK_BEM_AXIS must be identical.", CURRENT_FUNCTION);
3599+
}
3600+
}
3601+
}
3602+
3603+
if(Marker_ActDiskBemOutlet_CG && Marker_ActDiskBemOutlet_Axis){
3604+
if(nMarker_ActDiskBemOutlet_CG != nMarker_ActDiskBemOutlet_Axis){
3605+
SU2_MPI::Error("Marker lists supplied to MARKER_ACTDISK_BEM_CG and MARKER_ACTDISK_BEM_AXIS must be identical.", CURRENT_FUNCTION);
3606+
}
3607+
for(iMarker=0; iMarker<nMarker_ActDiskBemOutlet_CG; iMarker++){
3608+
if(Marker_ActDiskBemOutlet_CG[iMarker]!=Marker_ActDiskBemOutlet_Axis[iMarker]){
3609+
SU2_MPI::Error("Marker lists supplied to MARKER_ACTDISK_BEM_CG and MARKER_ACTDISK_BEM_AXIS must be identical.", CURRENT_FUNCTION);
3610+
}
3611+
}
3612+
}
3613+
35923614
/*--- Error-catching and automatic array adjustments for objective, marker, and weights arrays --- */
35933615

35943616
/*--- If Kind_Obj has not been specified, these arrays need to take a default --*/
@@ -5559,7 +5581,7 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) {
55595581
nMarker_Custom + nMarker_Damper + nMarker_Fluid_Load +
55605582
nMarker_Clamped + nMarker_Load_Dir + nMarker_Disp_Dir +
55615583
nMarker_ActDiskInlet + nMarker_ActDiskOutlet +
5562-
nMarker_ActDiskBemInlet + nMarker_ActDiskBemOutlet +
5584+
nMarker_ActDiskBemInlet_CG + nMarker_ActDiskBemOutlet_CG +
55635585
nMarker_ZoneInterface;
55645586

55655587
/*--- Add the possible send/receive domains ---*/
@@ -8693,17 +8715,17 @@ su2double CConfig::GetActDisk_Omega(const string& val_marker, unsigned short val
86938715

86948716
su2double CConfig::GetActDiskBem_CG(unsigned short iDim, string val_marker, unsigned short val_value) const {
86958717
unsigned short iMarker_ActDisk;
8696-
for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDiskBemInlet; iMarker_ActDisk++)
8697-
if ((Marker_ActDiskBemInlet[iMarker_ActDisk] == val_marker) ||
8698-
(Marker_ActDiskBemOutlet[iMarker_ActDisk] == val_marker)) break;
8718+
for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDiskBemInlet_CG; iMarker_ActDisk++)
8719+
if ((Marker_ActDiskBemInlet_CG[iMarker_ActDisk] == val_marker) ||
8720+
(Marker_ActDiskBemOutlet_CG[iMarker_ActDisk] == val_marker)) break;
86998721
return ActDiskBem_CG[iDim][iMarker_ActDisk][val_value];
87008722
}
87018723

87028724
su2double CConfig::GetActDiskBem_Axis(unsigned short iDim, string val_marker, unsigned short val_value) const {
87038725
unsigned short iMarker_ActDisk;
8704-
for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDiskBemInlet; iMarker_ActDisk++)
8705-
if ((Marker_ActDiskBemInlet[iMarker_ActDisk] == val_marker) ||
8706-
(Marker_ActDiskBemOutlet[iMarker_ActDisk] == val_marker)) break;
8726+
for (iMarker_ActDisk = 0; iMarker_ActDisk < nMarker_ActDiskBemInlet_Axis; iMarker_ActDisk++)
8727+
if ((Marker_ActDiskBemInlet_Axis[iMarker_ActDisk] == val_marker) ||
8728+
(Marker_ActDiskBemOutlet_Axis[iMarker_ActDisk] == val_marker)) break;
87078729
return ActDiskBem_Axis[iDim][iMarker_ActDisk][val_value];
87088730
}
87098731

Common/src/basic_types/ad_structure.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,6 @@ void Initialize() {
5757
#endif
5858
}
5959

60-
void Finalize() {}
60+
void Finalize() { AD::Reset(); }
61+
6162
} // namespace AD

SU2_CFD/include/iteration/CDiscAdjFEAIteration.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class CFEAIteration;
4040
*/
4141
class CDiscAdjFEAIteration final : public CIteration {
4242
private:
43-
CFEAIteration* fem_iteration; /*!< \brief Pointer to the primal iteration class. */
4443
unsigned short CurrentRecording; /*!< \brief Stores the current status of the recording. */
4544

4645
/*!

SU2_CFD/include/iteration/CIteration.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class CIteration {
6161
StopTime{0.0}, UsedTime{0.0};
6262

6363
std::shared_ptr<CTurboOutput> TurbomachineryPerformance; /*!< \brief turbo performance calculator. */
64-
CTurbomachineryStagePerformance* TurbomachineryStagePerformance; /*!< \brief turbo stage performance calculator. */
64+
std::shared_ptr<CTurbomachineryStagePerformance> TurbomachineryStagePerformance; /*!< \brief turbo stage performance calculator. */
6565

6666
public:
6767
/*!

SU2_CFD/include/output/CFlowCompOutput.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,15 @@ class CFlowCompOutput final: public CFlowOutput {
109109
* \param[in] TurboPerf - Turboperformance class
110110
* \param[in] config - Definition of the particular problem
111111
*/
112-
void SetTurboMultiZonePerformance_Output(CTurbomachineryStagePerformance* TurboStagePerf, std::shared_ptr<CTurboOutput> TurboPerf, CConfig *config) override;
112+
void SetTurboMultiZonePerformance_Output(std::shared_ptr<CTurbomachineryStagePerformance> TurboStagePerf, std::shared_ptr<CTurboOutput> TurboPerf, CConfig *config) override;
113113

114114
/*!
115115
* \brief Loads the turboperformacne history data
116116
* \param[in] TurboStagePerf - Stage turboperformance class
117117
* \param[in] TurboPerf - Turboperformance class
118118
* \param[in] config - Definition of the particular problem
119119
*/
120-
void LoadTurboHistoryData(CTurbomachineryStagePerformance* TurboStagePerf, std::shared_ptr<CTurboOutput> TurboPerf, CConfig *config) override;
120+
void LoadTurboHistoryData(std::shared_ptr<CTurbomachineryStagePerformance> TurboStagePerf, std::shared_ptr<CTurboOutput> TurboPerf, CConfig *config) override;
121121

122122
/*!
123123
* \brief Write the kinematic and thermodynamic variables at each spanwise division

0 commit comments

Comments
 (0)