Skip to content

Commit 295485c

Browse files
authored
Merge pull request #1302 from su2code/fix_fixed_cl
Fix fixed CL mode when sideslip is not 0
2 parents d42c8b7 + fce7de1 commit 295485c

22 files changed

Lines changed: 127 additions & 290 deletions

Common/src/grid_movement/CVolumetricMovement.cpp

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -356,68 +356,8 @@ void CVolumetricMovement::ComputenNonconvexElements(CGeometry *geometry, bool Sc
356356
nNonconvexElements++;
357357
}
358358
}
359-
} else if (false) {
360-
361-
/*--- 3D elements ---*/
362-
unsigned short iNode, iFace, nFaceNodes;
363-
364-
for (iElem = 0; iElem < geometry->GetnElem(); iElem++){
365-
for (iFace = 0; iFace < geometry->elem[iElem]->GetnFaces(); iFace++){
366-
nFaceNodes = geometry->elem[iElem]->GetnNodesFace(iFace);
367-
368-
su2double minCrossProductLength = 1.e6, maxCrossProductLength = -1.e6;
369-
for (iNode = 0; iNode < nFaceNodes; iNode++) {
370-
su2double crossProductLength = 0.0;
371-
372-
/*--- Get coords of node face_point_i and its adjacent nodes in the face ---*/
373-
unsigned long face_point_i, face_point_j, face_point_k;
374-
375-
face_point_i = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, iNode));
376-
377-
/// TODO: Faces may have up to 4 nodes, not all posibilities are covered
378-
379-
if (iNode == 0) {
380-
face_point_j = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, nFaceNodes-1));
381-
face_point_k = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, iNode+1));
382-
} else if (iNode == nFaceNodes-1) {
383-
face_point_j = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, iNode-1));
384-
face_point_k = geometry->elem[iElem]->GetNode(geometry->elem[iElem]->GetFaces(iFace, 0));
385-
}
386-
387-
const auto Coords_i = geometry->nodes->GetCoord(face_point_i);
388-
const auto Coords_j = geometry->nodes->GetCoord(face_point_j);
389-
const auto Coords_k = geometry->nodes->GetCoord(face_point_k);
390-
391-
/*--- Get edge vectors from point k to i and point j to i ---*/
392-
su2double edgeVector_i[3], edgeVector_j[3];
393-
GeometryToolbox::Distance(nDim, Coords_k, Coords_i, edgeVector_i);
394-
GeometryToolbox::Distance(nDim, Coords_j, Coords_i, edgeVector_j);
395-
396-
/*--- Calculate cross product of edge vectors and its length---*/
397-
su2double crossProduct[3];
398-
GeometryToolbox::CrossProduct(edgeVector_i, edgeVector_j, crossProduct);
399-
400-
/// TODO: This logic is incorrect, the norm will never be less than 0
401-
402-
crossProductLength = GeometryToolbox::Norm(nDim, crossProduct);
403-
404-
/*--- Check if length is minimum or maximum ---*/
405-
if (crossProductLength < minCrossProductLength) {
406-
minCrossProductLength = crossProductLength;
407-
} else if (crossProductLength > maxCrossProductLength) {
408-
maxCrossProductLength = crossProductLength;
409-
}
410-
}
411-
412-
/*--- If minimum cross product length is smaller than 0,
413-
face (and therefore element) is not convex ---*/
414-
if (minCrossProductLength < 0) {
415-
nNonconvexElements++;
416-
break;
417-
}
418-
419-
}
420-
}
359+
} else if (rank == MASTER_NODE) {
360+
cout << "\nWARNING: Convexity is not checked for 3D elements (issue #1171).\n" << endl;
421361
}
422362

423363
unsigned long nNonconvexElements_Local = nNonconvexElements; nNonconvexElements = 0;

SU2_CFD/include/output/CAdjFlowCompOutput.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,6 @@ class CAdjFlowCompOutput final: public COutput {
9797
* \param[in] config - Definition of the particular problem.
9898
* \return <TRUE> if the residuals should be initialized.
9999
*/
100-
bool SetInit_Residuals(CConfig *config) override;
100+
bool SetInit_Residuals(const CConfig *config) override;
101101

102102
};

SU2_CFD/include/output/CAdjFlowIncOutput.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,6 @@ class CAdjFlowIncOutput final: public COutput {
100100
* \param[in] config - Definition of the particular problem.
101101
* \return <TRUE> if the residuals should be initialized.
102102
*/
103-
bool SetInit_Residuals(CConfig *config) override;
103+
bool SetInit_Residuals(const CConfig *config) override;
104104

105105
};

SU2_CFD/include/output/CElasticityOutput.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,6 @@ class CElasticityOutput final: public COutput {
8787
* \param[in] config - Definition of the particular problem.
8888
* \return <TRUE> if the residuals should be initialized.
8989
*/
90-
bool SetInit_Residuals(CConfig *config) override;
90+
bool SetInit_Residuals(const CConfig *config) override;
9191

9292
};

SU2_CFD/include/output/CFlowCompFEMOutput.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,6 @@ class CFlowCompFEMOutput final: public CFlowOutput {
101101
* \param[in] config - Definition of the particular problem.
102102
* \return <TRUE> if the residuals should be initialized.
103103
*/
104-
bool SetInit_Residuals(CConfig *config) override;
104+
bool SetInit_Residuals(const CConfig *config) override;
105105

106106
};

SU2_CFD/include/output/CFlowCompOutput.hpp

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class CFlowCompOutput final: public CFlowOutput {
4040
private:
4141

4242
unsigned short turb_model; //!< Kind of turbulence model
43-
unsigned long lastInnerIter;
4443

4544
public:
4645

@@ -50,12 +49,6 @@ class CFlowCompOutput final: public CFlowOutput {
5049
*/
5150
CFlowCompOutput(CConfig *config, unsigned short nDim);
5251

53-
/*!
54-
* \brief Destructor of the class.
55-
*/
56-
~CFlowCompOutput(void) override;
57-
58-
5952
/*!
6053
* \brief Load the history output field values
6154
* \param[in] config - Definition of the particular problem.
@@ -100,23 +93,17 @@ class CFlowCompOutput final: public CFlowOutput {
10093
* \param[in] config - Definition of the particular problem.
10194
* \return <TRUE> if the residuals should be initialized.
10295
*/
103-
bool SetInit_Residuals(CConfig *config) override;
96+
bool SetInit_Residuals(const CConfig *config) override;
10497

10598
/*!
10699
* \brief Write any additional output defined for the current solver.
107100
* \param[in] config - Definition of the particular problem per zone.
108101
*/
109-
void SetAdditionalScreenOutput(CConfig *config) override;
110-
111-
/*!
112-
* \brief Write additional output for fixed CL mode.
113-
* \param[in] config - Definition of the particular problem per zone.
114-
*/
115-
void SetFixedCLScreenOutput(CConfig *config);
102+
void SetAdditionalScreenOutput(const CConfig *config) override;
116103

117104
/*!
118105
* \brief Determines if the history file output.
119106
* \param[in] config - Definition of the particular problem.
120107
*/
121-
bool WriteHistoryFile_Output(CConfig *config) override;
108+
bool WriteHistoryFile_Output(const CConfig *config) override;
122109
};

SU2_CFD/include/output/CFlowIncOutput.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,6 @@ class CFlowIncOutput final: public CFlowOutput {
102102
* \param[in] config - Definition of the particular problem.
103103
* \return <TRUE> if the residuals should be initialized.
104104
*/
105-
bool SetInit_Residuals(CConfig *config) override;
105+
bool SetInit_Residuals(const CConfig *config) override;
106106

107107
};

SU2_CFD/include/output/CFlowOutput.hpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,15 @@
3131
#include "../variables/CVariable.hpp"
3232

3333
class CFlowOutput : public CFVMOutput{
34-
public:
34+
protected:
35+
unsigned long lastInnerIter;
36+
3537
/*!
3638
* \brief Constructor of the class
3739
* \param[in] config - Definition of the particular problem.
3840
*/
3941
CFlowOutput(CConfig *config, unsigned short nDim, bool femOutput);
4042

41-
/*!
42-
* \brief Destructor of the class.
43-
*/
44-
~CFlowOutput(void) override;
45-
46-
protected:
4743
/*!
4844
* \brief Add flow surface output fields
4945
* \param[in] config - Definition of the particular problem.
@@ -104,7 +100,7 @@ class CFlowOutput : public CFVMOutput{
104100
* \brief Write information to meta data file
105101
* \param[in] config - Definition of the particular problem per zone.
106102
*/
107-
void WriteMetaData(CConfig *config);
103+
void WriteMetaData(const CConfig *config);
108104

109105
/*!
110106
* \brief Write any additional files defined for the current solver.
@@ -142,4 +138,10 @@ class CFlowOutput : public CFVMOutput{
142138
*/
143139
void LoadTimeAveragedData(unsigned long iPoint, CVariable *node_flow);
144140

141+
/*!
142+
* \brief Write additional output for fixed CL mode.
143+
* \param[in] config - Definition of the particular problem per zone.
144+
*/
145+
void SetFixedCLScreenOutput(const CConfig *config);
146+
145147
};

SU2_CFD/include/output/CMultizoneOutput.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,17 @@ class CMultizoneOutput final: public COutput {
8686
* \brief Determines if the history file output.
8787
* \param[in] config - Definition of the particular problem.
8888
*/
89-
bool WriteHistoryFile_Output(CConfig *config) override;
89+
bool WriteHistoryFile_Output(const CConfig *config) override;
9090

9191
/*!
9292
* \brief Determines if the screen header should be written.
9393
* \param[in] config - Definition of the particular problem.
9494
*/
95-
bool WriteScreen_Header(CConfig *config) override;
95+
bool WriteScreen_Header(const CConfig *config) override;
9696

9797
/*!
9898
* \brief Determines if the screen header should be written.
9999
* \param[in] config - Definition of the particular problem.
100100
*/
101-
bool WriteScreen_Output(CConfig *config) override;
101+
bool WriteScreen_Output(const CConfig *config) override;
102102
};

SU2_CFD/include/output/CNEMOCompOutput.hpp

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ class CNEMOCompOutput final: public CFlowOutput {
4141
unsigned short turb_model, /*!< \brief Kind of turbulence model */
4242
iSpecies, /*!< \brief Species index */
4343
nSpecies; /*!< \brief Number of species */
44-
unsigned long lastInnerIter;
45-
4644
public:
4745

4846
/*!
@@ -51,12 +49,6 @@ class CNEMOCompOutput final: public CFlowOutput {
5149
*/
5250
CNEMOCompOutput(CConfig *config, unsigned short nDim);
5351

54-
/*!
55-
* \brief Destructor of the class.
56-
*/
57-
~CNEMOCompOutput(void) override;
58-
59-
6052
/*!
6153
* \brief Load the history output field values
6254
* \param[in] config - Definition of the particular problem.
@@ -101,23 +93,17 @@ class CNEMOCompOutput final: public CFlowOutput {
10193
* \param[in] config - Definition of the particular problem.
10294
* \return <TRUE> if the residuals should be initialized.
10395
*/
104-
bool SetInit_Residuals(CConfig *config) override;
96+
bool SetInit_Residuals(const CConfig *config) override;
10597

10698
/*!
10799
* \brief Write any additional output defined for the current solver.
108100
* \param[in] config - Definition of the particular problem per zone.
109101
*/
110-
void SetAdditionalScreenOutput(CConfig *config) override;
111-
112-
/*!
113-
* \brief Write additional output for fixed CL mode.
114-
* \param[in] config - Definition of the particular problem per zone.
115-
*/
116-
void SetFixedCLScreenOutput(CConfig *config);
102+
void SetAdditionalScreenOutput(const CConfig *config) override;
117103

118104
/*!
119105
* \brief Determines if the history file output.
120106
* \param[in] config - Definition of the particular problem.
121107
*/
122-
bool WriteHistoryFile_Output(CConfig *config) override;
108+
bool WriteHistoryFile_Output(const CConfig *config) override;
123109
};

0 commit comments

Comments
 (0)