diff --git a/Common/include/code_config.hpp b/Common/include/code_config.hpp index 2585283d34d7..929cc2eb2544 100644 --- a/Common/include/code_config.hpp +++ b/Common/include/code_config.hpp @@ -139,11 +139,20 @@ using su2double = double; using passivedouble = double; /*--- Define a type for potentially lower precision operations. ---*/ +#ifndef CODI_FORWARD_TYPE #ifdef USE_MIXED_PRECISION using su2mixedfloat = float; #else using su2mixedfloat = passivedouble; #endif +#else +/*--- There is no lower precision for forward AD so undefine the macro to simplify + * the logic needed to deal with the multiple type configurations. ---*/ +#ifdef USE_MIXED_PRECISION +#undef USE_MIXED_PRECISION +#endif +using su2mixedfloat = su2double; +#endif /*--- Detect if OpDiLib has to be used. ---*/ #if defined(HAVE_OMP) && defined(CODI_REVERSE_TYPE) diff --git a/Common/include/geometry/CGeometry.hpp b/Common/include/geometry/CGeometry.hpp index 62600b089588..0b4055500d5a 100644 --- a/Common/include/geometry/CGeometry.hpp +++ b/Common/include/geometry/CGeometry.hpp @@ -284,11 +284,23 @@ class CGeometry { in point-to-point comms. */ su2double* bufD_P2PRecv{nullptr}; /*!< \brief Data structure for su2double point-to-point receive. */ su2double* bufD_P2PSend{nullptr}; /*!< \brief Data structure for su2double point-to-point send. */ +#ifdef CODI_REVERSE_TYPE + passivedouble* bufPD_P2PRecv{nullptr}; /*!< \brief Data structure for passivedouble point-to-point receive. */ + passivedouble* bufPD_P2PSend{nullptr}; /*!< \brief Data structure for passivedouble point-to-point send. */ +#endif +#ifdef USE_MIXED_PRECISION + su2mixedfloat* bufF_P2PRecv{nullptr}; /*!< \brief Data structure for su2mixedfloat point-to-point receive. */ + su2mixedfloat* bufF_P2PSend{nullptr}; /*!< \brief Data structure for su2mixedfloat point-to-point send. */ +#endif unsigned short* bufS_P2PRecv{nullptr}; /*!< \brief Data structure for unsigned long point-to-point receive. */ unsigned short* bufS_P2PSend{nullptr}; /*!< \brief Data structure for unsigned long point-to-point send. */ SU2_MPI::Request* req_P2PSend{nullptr}; /*!< \brief Data structure for point-to-point send requests. */ SU2_MPI::Request* req_P2PRecv{nullptr}; /*!< \brief Data structure for point-to-point recv requests. */ + using PassiveRequest = typename SelectMPIWrapper::W::Request; + PassiveRequest* reqP_P2PSend{nullptr}; /*!< \brief Data structure for point-to-point send requests. */ + PassiveRequest* reqP_P2PRecv{nullptr}; /*!< \brief Data structure for point-to-point recv requests. */ + /*--- Data structures for periodic communications. ---*/ int maxCountPerPeriodicPoint{0}; /*!< \brief Maximum number of pieces of data sent per vertex in periodic comms. */ @@ -370,7 +382,7 @@ class CGeometry { * \param[in] countPerPoint - Number of variables per point. * \param[in] val_reverse - Boolean controlling forward or reverse communication between neighbors. */ - void PostP2PRecvs(CGeometry* geometry, const CConfig* config, unsigned short commType, unsigned short countPerPoint, + void PostP2PRecvs(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPoint, bool val_reverse) const; /*! @@ -383,9 +395,98 @@ class CGeometry { * \param[in] val_iMessage - Index of the message in the order they are stored. * \param[in] val_reverse - Boolean controlling forward or reverse communication between neighbors. */ - void PostP2PSends(CGeometry* geometry, const CConfig* config, unsigned short commType, unsigned short countPerPoint, + void PostP2PSends(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPoint, int val_iMessage, bool val_reverse) const; + /*! + * \brief Returns the COMM_TYPE enum for a given data type. + */ + template + COMM_TYPE GetCommType() const { + if constexpr (std::is_same_v) { + return COMM_TYPE::DOUBLE; + } else if constexpr (std::is_same_v) { + return COMM_TYPE::PASSIVE_DOUBLE; + } else if constexpr (std::is_same_v) { + return COMM_TYPE::FLOAT; + } else { + static_assert(std::is_same_v); + return COMM_TYPE::UNSIGNED_SHORT; + } + } + + /*! + * \brief Returns the send buffer for a given data type. + */ + template + auto* GetP2PSendBuf() const { + if constexpr (std::is_same_v) { + return bufD_P2PSend; +#ifdef CODI_REVERSE_TYPE + } else if constexpr (std::is_same_v) { + return bufPD_P2PSend; +#endif +#ifdef USE_MIXED_PRECISION + } else if constexpr (std::is_same_v) { + return bufF_P2PSend; +#endif + } else { + static_assert(std::is_same_v); + return bufS_P2PSend; + } + } + + /*! + * \brief Returns the receive buffer for a given data type. + */ + template + auto* GetP2PRecvBuf() const { + if constexpr (std::is_same_v) { + return bufD_P2PRecv; +#ifdef CODI_REVERSE_TYPE + } else if constexpr (std::is_same_v) { + return bufPD_P2PRecv; +#endif +#ifdef USE_MIXED_PRECISION + } else if constexpr (std::is_same_v) { + return bufF_P2PRecv; +#endif + } else { + static_assert(std::is_same_v); + return bufS_P2PRecv; + } + } + + /*! + * \brief Returns the send requests for a given data type. + */ + template + auto* GetP2PSendReq() const { + if constexpr (std::is_same_v) { + return req_P2PSend; + } else if constexpr (std::is_same_v || std::is_same_v) { + return reqP_P2PSend; + } else { + static_assert(std::is_same_v); + return req_P2PSend; + } + } + + /*! + * \brief Returns the receive requests for a given data type. + */ + template + auto* GetP2PRecvReq() const { + if constexpr (std::is_same_v) { + return req_P2PRecv; + } else if constexpr (std::is_same_v || std::is_same_v) { + return reqP_P2PRecv; + } else { + static_assert(std::is_same_v); + return req_P2PRecv; + } + } + /*! * \brief Routine to set up persistent data structures for periodic communications. * \param[in] geometry - Geometrical definition of the problem. @@ -408,7 +509,7 @@ class CGeometry { * \param[in] commType - Enumerated type for the quantity to be communicated. * \param[in] countPerPeriodicPoint - Number of variables per point. */ - void PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, unsigned short commType, + void PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPeriodicPoint); /*! @@ -420,7 +521,7 @@ class CGeometry { * \param[in] countPerPeriodicPoint - Number of variables per point. * \param[in] val_iMessage - Index of the message in the order they are stored. */ - void PostPeriodicSends(CGeometry* geometry, const CConfig* config, unsigned short commType, + void PostPeriodicSends(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPeriodicPoint, int val_iMessage) const; /*! @@ -431,7 +532,7 @@ class CGeometry { * \param[out] MPI_TYPE - Enumerated type for the datatype of the quantity to be communicated. */ void GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short& COUNT_PER_POINT, - unsigned short& MPI_TYPE) const; + COMM_TYPE& MPI_TYPE) const; /*! * \brief Routine to load a geometric quantity into the data structures for MPI point-to-point communication and to diff --git a/Common/include/geometry/CPhysicalGeometry.hpp b/Common/include/geometry/CPhysicalGeometry.hpp index 89176d996033..c34e6fc8ab46 100644 --- a/Common/include/geometry/CPhysicalGeometry.hpp +++ b/Common/include/geometry/CPhysicalGeometry.hpp @@ -220,7 +220,7 @@ class CPhysicalGeometry final : public CGeometry { */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, - unsigned short commType); + COMM_TYPE commType); /*! * \brief Routine to complete the set of non-blocking communications launched with InitiateComms() with MPI_Waitany(). diff --git a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp index 77da960f9416..5bd136793e83 100644 --- a/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp +++ b/Common/include/geometry/meshreader/CCGNSMeshReaderFVM.hpp @@ -76,7 +76,7 @@ class CCGNSMeshReaderFVM final : public CCGNSMeshReaderBase { */ void InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, - unsigned short commType); + COMM_TYPE commType); /*! * \brief Routine to complete the set of non-blocking communications launched with InitiateComms() with MPI_Waitany(). diff --git a/Common/include/grid_movement/CLinearElasticity.hpp b/Common/include/grid_movement/CLinearElasticity.hpp index 46d1b12d2ee4..eec816399c20 100644 --- a/Common/include/grid_movement/CLinearElasticity.hpp +++ b/Common/include/grid_movement/CLinearElasticity.hpp @@ -45,13 +45,8 @@ class CLinearElasticity final : public CVolumetricMovement { unsigned long nIterMesh; /*!< \brief Number of iterations in the mesh update. +*/ -#ifndef CODI_FORWARD_TYPE CSysMatrix StiffMatrix; /*!< \brief Stiffness matrix of the elasticity problem. */ CSysSolve System; /*!< \brief Linear solver/smoother. */ -#else - CSysMatrix StiffMatrix; - CSysSolve System; -#endif CSysVector LinSysSol; CSysVector LinSysRes; diff --git a/Common/include/linear_algebra/CSysSolve.hpp b/Common/include/linear_algebra/CSysSolve.hpp index 9abe78396783..943a2e49b394 100644 --- a/Common/include/linear_algebra/CSysSolve.hpp +++ b/Common/include/linear_algebra/CSysSolve.hpp @@ -425,8 +425,17 @@ class CSysSolve { * \param[in] config - Definition of the particular problem. * \param[in] directCall - If this method is called directly, or in AD context. */ - unsigned long Solve_b(MatrixType& Jacobian, const CSysVector& LinSysRes, CSysVector& LinSysSol, - CGeometry* geometry, const CConfig* config, bool directCall = true); + unsigned long Solve_b(MatrixType& Jacobian, const VectorType& LinSysRes, VectorType& LinSysSol, CGeometry* geometry, + const CConfig* config, bool directCall = true); + + template > = 0> + unsigned long Solve_b(MatrixType& Jacobian, const CSysVector& LinSysRes, CSysVector& LinSysSol, + CGeometry* geometry, const CConfig* config, bool directCall = true) { + HandleTemporariesIn(LinSysRes, LinSysSol); + auto iter = Solve_b(Jacobian, *LinSysRes_ptr, *LinSysSol_ptr, geometry, config, directCall); + HandleTemporariesOut(LinSysSol); + return iter; + } /*! * \brief Get the number of iterations. diff --git a/Common/include/option_structure.hpp b/Common/include/option_structure.hpp index b3d2478cf5f2..38d984c4ea9c 100644 --- a/Common/include/option_structure.hpp +++ b/Common/include/option_structure.hpp @@ -113,13 +113,17 @@ const int MASTER_NODE = 0; /*!< \brief Master node for MPI parallelization. const int SINGLE_NODE = 1; /*!< \brief There is only a node in the MPI parallelization. */ const int SINGLE_ZONE = 1; /*!< \brief There is only a zone. */ -const unsigned short COMM_TYPE_UNSIGNED_LONG = 1; /*!< \brief Communication type for unsigned long. */ -const unsigned short COMM_TYPE_LONG = 2; /*!< \brief Communication type for long. */ -const unsigned short COMM_TYPE_UNSIGNED_SHORT = 3; /*!< \brief Communication type for unsigned short. */ -const unsigned short COMM_TYPE_DOUBLE = 4; /*!< \brief Communication type for double. */ -const unsigned short COMM_TYPE_CHAR = 5; /*!< \brief Communication type for char. */ -const unsigned short COMM_TYPE_SHORT = 6; /*!< \brief Communication type for short. */ -const unsigned short COMM_TYPE_INT = 7; /*!< \brief Communication type for int. */ +enum class COMM_TYPE { + UNSIGNED_LONG, /*!< \brief Communication type for unsigned long. */ + LONG, /*!< \brief Communication type for long. */ + UNSIGNED_SHORT, /*!< \brief Communication type for unsigned short. */ + FLOAT, /*!< \brief Communication type for su2mixedfloat. */ + DOUBLE, /*!< \brief Communication type for double. */ + PASSIVE_DOUBLE, /*!< \brief Communication type for passivedouble. */ + CHAR, /*!< \brief Communication type for char. */ + SHORT, /*!< \brief Communication type for short. */ + INT, /*!< \brief Communication type for int. */ +}; /*! * \brief Types of geometric entities based on VTK nomenclature diff --git a/Common/include/parallelization/mpi_structure.hpp b/Common/include/parallelization/mpi_structure.hpp index d19cfe8c2372..adca71a89a9d 100644 --- a/Common/include/parallelization/mpi_structure.hpp +++ b/Common/include/parallelization/mpi_structure.hpp @@ -81,7 +81,7 @@ extern MediTypes* mediTypes; #else class CBaseMPIWrapper; -typedef CBaseMPIWrapper SU2_MPI; +using SU2_MPI = CBaseMPIWrapper; #endif // defined CODI_REVERSE_TYPE || defined CODI_FORWARD_TYPE /*! @@ -632,7 +632,7 @@ struct SelectMPIWrapper { #endif /*--- Specialize for the low precision type. ---*/ -#if defined USE_MIXED_PRECISION +#if defined(USE_MIXED_PRECISION) template <> struct SelectMPIWrapper { #if defined HAVE_MPI diff --git a/Common/src/geometry/CGeometry.cpp b/Common/src/geometry/CGeometry.cpp index 2b8dfe3c6361..b99ef022752f 100644 --- a/Common/src/geometry/CGeometry.cpp +++ b/Common/src/geometry/CGeometry.cpp @@ -96,13 +96,23 @@ CGeometry::~CGeometry() { delete[] bufD_P2PRecv; delete[] bufD_P2PSend; - +#ifdef CODI_REVERSE_TYPE + delete[] bufPD_P2PRecv; + delete[] bufPD_P2PSend; +#endif +#ifdef USE_MIXED_PRECISION + delete[] bufF_P2PRecv; + delete[] bufF_P2PSend; +#endif delete[] bufS_P2PRecv; delete[] bufS_P2PSend; delete[] req_P2PSend; delete[] req_P2PRecv; + delete[] reqP_P2PSend; + delete[] reqP_P2PRecv; + delete[] nPoint_P2PRecv; delete[] nPoint_P2PSend; @@ -279,12 +289,11 @@ void CGeometry::PreprocessP2PComms(CGeometry* geometry, CConfig* config) { /*--- Allocate memory for the MPI requests if we need to communicate. ---*/ - if (nP2PSend > 0) { - req_P2PSend = new SU2_MPI::Request[nP2PSend]; - } - if (nP2PRecv > 0) { - req_P2PRecv = new SU2_MPI::Request[nP2PRecv]; - } + if (nP2PSend > 0) req_P2PSend = new SU2_MPI::Request[nP2PSend]; + if (nP2PRecv > 0) req_P2PRecv = new SU2_MPI::Request[nP2PRecv]; + + if (nP2PSend > 0) reqP_P2PSend = new PassiveRequest[nP2PSend]; + if (nP2PRecv > 0) reqP_P2PRecv = new PassiveRequest[nP2PRecv]; /*--- Build lists of local index values for send. ---*/ @@ -345,25 +354,30 @@ void CGeometry::AllocateP2PComms(unsigned short countPerPoint) { /*--- Store the larger packet size to the class data. ---*/ maxCountPerPoint = countPerPoint; + const auto send_size = maxCountPerPoint * nPoint_P2PSend[nP2PSend]; + const auto recv_size = maxCountPerPoint * nPoint_P2PRecv[nP2PSend]; /*-- Deallocate and reallocate our su2double cummunication memory. ---*/ - - delete[] bufD_P2PSend; - bufD_P2PSend = new su2double[maxCountPerPoint * nPoint_P2PSend[nP2PSend]](); - - delete[] bufD_P2PRecv; - bufD_P2PRecv = new su2double[maxCountPerPoint * nPoint_P2PRecv[nP2PRecv]](); - - delete[] bufS_P2PSend; - bufS_P2PSend = new unsigned short[maxCountPerPoint * nPoint_P2PSend[nP2PSend]](); - - delete[] bufS_P2PRecv; - bufS_P2PRecv = new unsigned short[maxCountPerPoint * nPoint_P2PRecv[nP2PRecv]](); +#define SU2_ALLOC_COMM_BUFFERS(SEND, RECV, TYPE) \ + delete[] SEND; \ + SEND = new TYPE[send_size](); \ + delete[] RECV; \ + RECV = new TYPE[recv_size](); + + SU2_ALLOC_COMM_BUFFERS(bufD_P2PSend, bufD_P2PRecv, su2double) + SU2_ALLOC_COMM_BUFFERS(bufS_P2PSend, bufS_P2PRecv, unsigned short) +#ifdef CODI_REVERSE_TYPE + SU2_ALLOC_COMM_BUFFERS(bufPD_P2PSend, bufPD_P2PRecv, passivedouble) +#endif +#ifdef USE_MIXED_PRECISION + SU2_ALLOC_COMM_BUFFERS(bufF_P2PSend, bufF_P2PRecv, su2mixedfloat) +#endif +#undef SU2_ALLOC_COMM_BUFFERS } END_SU2_OMP_SAFE_GLOBAL_ACCESS } -void CGeometry::PostP2PRecvs(CGeometry* geometry, const CConfig* config, unsigned short commType, +void CGeometry::PostP2PRecvs(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPoint, bool val_reverse) const { /*--- Launch the non-blocking recv's first. Note that we have stored the counts and sources, so we can launch these before we even load @@ -404,11 +418,23 @@ void CGeometry::PostP2PRecvs(CGeometry* geometry, const CConfig* config, unsigne are the correct size. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Irecv(&(bufD_P2PSend[offset]), count, MPI_DOUBLE, source, tag, SU2_MPI::GetComm(), &(req_P2PRecv[iRecv])); break; - case COMM_TYPE_UNSIGNED_SHORT: +#ifdef CODI_REVERSE_TYPE + case COMM_TYPE::PASSIVE_DOUBLE: + SelectMPIWrapper::W::Irecv(&(bufPD_P2PSend[offset]), count, MPI_DOUBLE, source, tag, + SU2_MPI::GetComm(), &GetP2PRecvReq()[iRecv]); + break; +#endif +#ifdef USE_MIXED_PRECISION + case COMM_TYPE::FLOAT: + SelectMPIWrapper::W::Irecv(&(bufF_P2PSend[offset]), count, MPI_FLOAT, source, tag, + SU2_MPI::GetComm(), &GetP2PRecvReq()[iRecv]); + break; +#endif + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Irecv(&(bufS_P2PSend[offset]), count, MPI_UNSIGNED_SHORT, source, tag, SU2_MPI::GetComm(), &(req_P2PRecv[iRecv])); break; @@ -439,11 +465,23 @@ void CGeometry::PostP2PRecvs(CGeometry* geometry, const CConfig* config, unsigne /*--- Post non-blocking recv for this proc. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Irecv(&(bufD_P2PRecv[offset]), count, MPI_DOUBLE, source, tag, SU2_MPI::GetComm(), &(req_P2PRecv[iMessage])); break; - case COMM_TYPE_UNSIGNED_SHORT: +#ifdef CODI_REVERSE_TYPE + case COMM_TYPE::PASSIVE_DOUBLE: + SelectMPIWrapper::W::Irecv(&(bufPD_P2PRecv[offset]), count, MPI_DOUBLE, source, tag, + SU2_MPI::GetComm(), &GetP2PRecvReq()[iMessage]); + break; +#endif +#ifdef USE_MIXED_PRECISION + case COMM_TYPE::FLOAT: + SelectMPIWrapper::W::Irecv(&(bufF_P2PRecv[offset]), count, MPI_FLOAT, source, tag, + SU2_MPI::GetComm(), &GetP2PRecvReq()[iMessage]); + break; +#endif + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Irecv(&(bufS_P2PRecv[offset]), count, MPI_UNSIGNED_SHORT, source, tag, SU2_MPI::GetComm(), &(req_P2PRecv[iMessage])); break; @@ -456,7 +494,7 @@ void CGeometry::PostP2PRecvs(CGeometry* geometry, const CConfig* config, unsigne END_SU2_OMP_MASTER } -void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, unsigned short commType, +void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPoint, int val_iSend, bool val_reverse) const { /*--- Post the non-blocking send as soon as the buffer is loaded. ---*/ @@ -492,11 +530,23 @@ void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, unsigne are the correct size. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Isend(&(bufD_P2PRecv[offset]), count, MPI_DOUBLE, dest, tag, SU2_MPI::GetComm(), &(req_P2PSend[val_iSend])); break; - case COMM_TYPE_UNSIGNED_SHORT: +#ifdef CODI_REVERSE_TYPE + case COMM_TYPE::PASSIVE_DOUBLE: + SelectMPIWrapper::W::Isend(&(bufPD_P2PRecv[offset]), count, MPI_DOUBLE, dest, tag, + SU2_MPI::GetComm(), &GetP2PSendReq()[val_iSend]); + break; +#endif +#ifdef USE_MIXED_PRECISION + case COMM_TYPE::FLOAT: + SelectMPIWrapper::W::Isend(&(bufF_P2PRecv[offset]), count, MPI_FLOAT, dest, tag, + SU2_MPI::GetComm(), &GetP2PSendReq()[val_iSend]); + break; +#endif + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Isend(&(bufS_P2PRecv[offset]), count, MPI_UNSIGNED_SHORT, dest, tag, SU2_MPI::GetComm(), &(req_P2PSend[val_iSend])); break; @@ -527,11 +577,23 @@ void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, unsigne /*--- Post non-blocking send for this proc. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Isend(&(bufD_P2PSend[offset]), count, MPI_DOUBLE, dest, tag, SU2_MPI::GetComm(), &(req_P2PSend[val_iSend])); break; - case COMM_TYPE_UNSIGNED_SHORT: +#ifdef CODI_REVERSE_TYPE + case COMM_TYPE::PASSIVE_DOUBLE: + SelectMPIWrapper::W::Isend(&(bufPD_P2PSend[offset]), count, MPI_DOUBLE, dest, tag, + SU2_MPI::GetComm(), &GetP2PSendReq()[val_iSend]); + break; +#endif +#ifdef USE_MIXED_PRECISION + case COMM_TYPE::FLOAT: + SelectMPIWrapper::W::Isend(&(bufF_P2PSend[offset]), count, MPI_FLOAT, dest, tag, + SU2_MPI::GetComm(), &GetP2PSendReq()[val_iSend]); + break; +#endif + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Isend(&(bufS_P2PSend[offset]), count, MPI_UNSIGNED_SHORT, dest, tag, SU2_MPI::GetComm(), &(req_P2PSend[val_iSend])); break; @@ -544,30 +606,30 @@ void CGeometry::PostP2PSends(CGeometry* geometry, const CConfig* config, unsigne } void CGeometry::GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short& COUNT_PER_POINT, - unsigned short& MPI_TYPE) const { + COMM_TYPE& MPI_TYPE) const { switch (commType) { case MPI_QUANTITIES::COORDINATES: COUNT_PER_POINT = nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::GRID_VELOCITY: COUNT_PER_POINT = nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::COORDINATES_OLD: if (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND) COUNT_PER_POINT = nDim * 2; else COUNT_PER_POINT = nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::MAX_LENGTH: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::NEIGHBORS: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_UNSIGNED_SHORT; + MPI_TYPE = COMM_TYPE::UNSIGNED_SHORT; break; default: SU2_MPI::Error("Unrecognized quantity for point-to-point MPI comms.", CURRENT_FUNCTION); @@ -582,7 +644,7 @@ void CGeometry::InitiateComms(CGeometry* geometry, const CConfig* config, MPI_QU unsigned short iDim; unsigned short COUNT_PER_POINT = 0; - unsigned short MPI_TYPE = 0; + COMM_TYPE MPI_TYPE{}; unsigned long iPoint, msg_offset, buf_offset; @@ -677,7 +739,8 @@ void CGeometry::CompleteComms(CGeometry* geometry, const CConfig* config, MPI_QU /*--- Local variables ---*/ - unsigned short iDim, COUNT_PER_POINT = 0, MPI_TYPE = 0; + unsigned short iDim, COUNT_PER_POINT = 0; + COMM_TYPE MPI_TYPE{}; unsigned long iPoint, iRecv, nRecv, msg_offset, buf_offset; int ind, source, iMessage, jRecv; @@ -1465,7 +1528,7 @@ void CGeometry::AllocatePeriodicComms(unsigned short countPerPeriodicPoint) { END_SU2_OMP_SAFE_GLOBAL_ACCESS } -void CGeometry::PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, unsigned short commType, +void CGeometry::PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPeriodicPoint) { /*--- In parallel, communicate the data with non-blocking send/recv. ---*/ @@ -1498,11 +1561,11 @@ void CGeometry::PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, un /*--- Post non-blocking recv for this proc. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Irecv(&(static_cast(bufD_PeriodicRecv)[offset]), count, MPI_DOUBLE, source, tag, SU2_MPI::GetComm(), &(req_PeriodicRecv[iRecv])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Irecv(&(static_cast(bufS_PeriodicRecv)[offset]), count, MPI_UNSIGNED_SHORT, source, tag, SU2_MPI::GetComm(), &(req_PeriodicRecv[iRecv])); break; @@ -1516,7 +1579,7 @@ void CGeometry::PostPeriodicRecvs(CGeometry* geometry, const CConfig* config, un #endif } -void CGeometry::PostPeriodicSends(CGeometry* geometry, const CConfig* config, unsigned short commType, +void CGeometry::PostPeriodicSends(CGeometry* geometry, const CConfig* config, COMM_TYPE commType, unsigned short countPerPeriodicPoint, int val_iSend) const { /*--- In parallel, communicate the data with non-blocking send/recv. ---*/ @@ -1545,11 +1608,11 @@ void CGeometry::PostPeriodicSends(CGeometry* geometry, const CConfig* config, un /*--- Post non-blocking send for this proc. ---*/ switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Isend(&(static_cast(bufD_PeriodicSend)[offset]), count, MPI_DOUBLE, dest, tag, SU2_MPI::GetComm(), &(req_PeriodicSend[val_iSend])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Isend(&(static_cast(bufS_PeriodicSend)[offset]), count, MPI_UNSIGNED_SHORT, dest, tag, SU2_MPI::GetComm(), &(req_PeriodicSend[val_iSend])); break; @@ -1570,10 +1633,10 @@ void CGeometry::PostPeriodicSends(CGeometry* geometry, const CConfig* config, un myFinal = nPoint_PeriodicSend[val_iSend + 1] * countPerPeriodicPoint; switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: parallelCopy(myFinal - myStart, &bufD_PeriodicSend[myStart], &bufD_PeriodicRecv[iRecv]); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: parallelCopy(myFinal - myStart, &bufS_PeriodicSend[myStart], &bufS_PeriodicRecv[iRecv]); break; default: diff --git a/Common/src/geometry/CPhysicalGeometry.cpp b/Common/src/geometry/CPhysicalGeometry.cpp index 8ed3f5c6103e..0d3c0d70001a 100644 --- a/Common/src/geometry/CPhysicalGeometry.cpp +++ b/Common/src/geometry/CPhysicalGeometry.cpp @@ -652,9 +652,9 @@ void CPhysicalGeometry::DistributeColoring(const CConfig* config, CGeometry* geo /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(colorSend, nPoint_Send, colorSendReq, colorRecv, nPoint_Recv, colorRecvReq, 1, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(idSend, nPoint_Send, idSendReq, idRecv, nPoint_Recv, idRecvReq, 1, COMM_TYPE_UNSIGNED_LONG); + InitiateCommsAll(idSend, nPoint_Send, idSendReq, idRecv, nPoint_Recv, idRecvReq, 1, COMM_TYPE::UNSIGNED_LONG); /*--- Copy my own rank's data into the recv buffer directly. ---*/ @@ -904,9 +904,9 @@ void CPhysicalGeometry::DistributeVolumeConnectivity(const CConfig* config, CGeo /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(connSend, nElem_Send, connSendReq, connRecv, nElem_Recv, connRecvReq, NODES_PER_ELEMENT, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE_UNSIGNED_LONG); + InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE::UNSIGNED_LONG); /*--- Copy my own rank's data into the recv buffer directly. ---*/ @@ -1199,11 +1199,11 @@ void CPhysicalGeometry::DistributePoints(const CConfig* config, CGeometry* geome /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(colorSend, nPoint_Send, colorSendReq, colorRecv, nPoint_Recv, colorRecvReq, 1, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(idSend, nPoint_Send, idSendReq, idRecv, nPoint_Recv, idRecvReq, 1, COMM_TYPE_UNSIGNED_LONG); + InitiateCommsAll(idSend, nPoint_Send, idSendReq, idRecv, nPoint_Recv, idRecvReq, 1, COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(coordSend, nPoint_Send, coordSendReq, coordRecv, nPoint_Recv, coordRecvReq, nDim, COMM_TYPE_DOUBLE); + InitiateCommsAll(coordSend, nPoint_Send, coordSendReq, coordRecv, nPoint_Recv, coordRecvReq, nDim, COMM_TYPE::DOUBLE); /*--- Copy my own rank's data into the recv buffer directly. ---*/ @@ -1506,12 +1506,12 @@ void CPhysicalGeometry::PartitionSurfaceConnectivity(CConfig* config, CGeometry* /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(connSend, nElem_Send, connSendReq, connRecv, nElem_Recv, connRecvReq, NODES_PER_ELEMENT, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); InitiateCommsAll(markerSend, nElem_Send, markerSendReq, markerRecv, nElem_Recv, markerRecvReq, 1, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE_UNSIGNED_LONG); + InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE::UNSIGNED_LONG); /*--- Copy my own rank's data into the recv buffer directly. ---*/ @@ -1845,12 +1845,12 @@ void CPhysicalGeometry::DistributeSurfaceConnectivity(CConfig* config, CGeometry /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(connSend, nElem_Send, connSendReq, connRecv, nElem_Recv, connRecvReq, NODES_PER_ELEMENT, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); InitiateCommsAll(markerSend, nElem_Send, markerSendReq, markerRecv, nElem_Recv, markerRecvReq, 1, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); - InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE_UNSIGNED_LONG); + InitiateCommsAll(idSend, nElem_Send, idSendReq, idRecv, nElem_Recv, idRecvReq, 1, COMM_TYPE::UNSIGNED_LONG); /*--- Copy my own rank's data into the recv buffer directly. ---*/ @@ -2682,7 +2682,7 @@ void CPhysicalGeometry::LoadSurfaceElements(CConfig* config, CGeometry* geometry void CPhysicalGeometry::InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, - unsigned short commType) { + COMM_TYPE commType) { /*--- Local variables ---*/ int iMessage, iProc, offset, nElem, count, source, dest, tag; @@ -2715,31 +2715,31 @@ void CPhysicalGeometry::InitiateCommsAll(void* bufSend, const int* nElemSend, SU tag = iProc + 1; switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_DOUBLE, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_LONG: + case COMM_TYPE::UNSIGNED_LONG: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_UNSIGNED_LONG, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_LONG: + case COMM_TYPE::LONG: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_LONG, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_UNSIGNED_SHORT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_CHAR: + case COMM_TYPE::CHAR: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_CHAR, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_SHORT: + case COMM_TYPE::SHORT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_SHORT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_INT: + case COMM_TYPE::INT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_INT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; @@ -2781,31 +2781,31 @@ void CPhysicalGeometry::InitiateCommsAll(void* bufSend, const int* nElemSend, SU tag = rank + 1; switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_DOUBLE, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_LONG: + case COMM_TYPE::UNSIGNED_LONG: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_UNSIGNED_LONG, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_LONG: + case COMM_TYPE::LONG: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_LONG, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_UNSIGNED_SHORT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_CHAR: + case COMM_TYPE::CHAR: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_CHAR, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_SHORT: + case COMM_TYPE::SHORT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_SHORT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_INT: + case COMM_TYPE::INT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_INT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; diff --git a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp index bd21c3976953..92969580f753 100644 --- a/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp +++ b/Common/src/geometry/meshreader/CCGNSMeshReaderFVM.cpp @@ -410,7 +410,7 @@ void CCGNSMeshReaderFVM::ReadCGNSVolumeSection(int val_section) { /*--- Launch the non-blocking sends and receives. ---*/ InitiateCommsAll(connSend, nElem_Send, connSendReq, connRecv, nElem_Recv, connRecvReq, SU2_CONN_SIZE, - COMM_TYPE_UNSIGNED_LONG); + COMM_TYPE::UNSIGNED_LONG); /*--- Copy the current rank's data into the recv buffer directly. ---*/ @@ -657,7 +657,7 @@ void CCGNSMeshReaderFVM::ReformatCGNSSurfaceConnectivity() { void CCGNSMeshReaderFVM::InitiateCommsAll(void* bufSend, const int* nElemSend, SU2_MPI::Request* sendReq, void* bufRecv, const int* nElemRecv, SU2_MPI::Request* recvReq, unsigned short countPerElem, - unsigned short commType) { + COMM_TYPE commType) { /*--- Local variables ---*/ int iMessage, iProc, offset, nElem, count, source, dest, tag; @@ -690,31 +690,31 @@ void CCGNSMeshReaderFVM::InitiateCommsAll(void* bufSend, const int* nElemSend, S tag = iProc + 1; switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_DOUBLE, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_LONG: + case COMM_TYPE::UNSIGNED_LONG: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_UNSIGNED_LONG, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_LONG: + case COMM_TYPE::LONG: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_LONG, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_UNSIGNED_SHORT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_CHAR: + case COMM_TYPE::CHAR: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_CHAR, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_SHORT: + case COMM_TYPE::SHORT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_SHORT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; - case COMM_TYPE_INT: + case COMM_TYPE::INT: SU2_MPI::Irecv(&(static_cast(bufRecv)[offset]), count, MPI_INT, source, tag, SU2_MPI::GetComm(), &(recvReq[iMessage])); break; @@ -756,31 +756,31 @@ void CCGNSMeshReaderFVM::InitiateCommsAll(void* bufSend, const int* nElemSend, S tag = rank + 1; switch (commType) { - case COMM_TYPE_DOUBLE: + case COMM_TYPE::DOUBLE: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_DOUBLE, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_LONG: + case COMM_TYPE::UNSIGNED_LONG: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_UNSIGNED_LONG, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_LONG: + case COMM_TYPE::LONG: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_LONG, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_UNSIGNED_SHORT: + case COMM_TYPE::UNSIGNED_SHORT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_UNSIGNED_SHORT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_CHAR: + case COMM_TYPE::CHAR: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_CHAR, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_SHORT: + case COMM_TYPE::SHORT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_SHORT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; - case COMM_TYPE_INT: + case COMM_TYPE::INT: SU2_MPI::Isend(&(static_cast(bufSend)[offset]), count, MPI_INT, dest, tag, SU2_MPI::GetComm(), &(sendReq[iMessage])); break; diff --git a/Common/src/linear_algebra/CSysMatrix.cpp b/Common/src/linear_algebra/CSysMatrix.cpp index 5552f6fc801b..21c49d6f715d 100644 --- a/Common/src/linear_algebra/CSysMatrix.cpp +++ b/Common/src/linear_algebra/CSysMatrix.cpp @@ -261,7 +261,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons /*--- Local variables ---*/ const unsigned short COUNT_PER_POINT = x.GetNVar(); - const unsigned short MPI_TYPE = COMM_TYPE_DOUBLE; + const auto MPI_TYPE = geometry->GetCommType(); /*--- Create a boolean for reversing the order of comms. ---*/ @@ -295,7 +295,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons for (auto iMessage = 0; iMessage < geometry->nP2PSend; iMessage++) { switch (commType) { case MPI_QUANTITIES::SOLUTION_MATRIX: { - su2double* bufDSend = geometry->bufD_P2PSend; + auto* bufDSend = geometry->GetP2PSendBuf(); /*--- Get the offset for the start of this message. ---*/ @@ -327,8 +327,7 @@ void CSysMatrixComms::Initiate(const CSysVector& x, CGeometry* geometry, cons /*--- We are going to communicate in reverse, so we use the recv buffer for the send instead. Also, all of the offsets and counts are derived from the recv data structures. ---*/ - - su2double* bufDSend = geometry->bufD_P2PRecv; + auto* bufDSend = geometry->GetP2PRecvBuf(); /*--- Get the offset for the start of this message. ---*/ @@ -379,7 +378,7 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon const unsigned short COUNT_PER_POINT = x.GetNVar(); /*--- Global status so all threads can see the result of Waitany. ---*/ - static SU2_MPI::Status status; + static typename SelectMPIWrapper::W::Status status; int ind; /*--- Store the data that was communicated into the appropriate @@ -389,7 +388,8 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon /*--- For efficiency, recv the messages dynamically based on the order they arrive. ---*/ - SU2_OMP_SAFE_GLOBAL_ACCESS(SU2_MPI::Waitany(geometry->nP2PRecv, geometry->req_P2PRecv, &ind, &status);) + SU2_OMP_SAFE_GLOBAL_ACCESS( + SelectMPIWrapper::W::Waitany(geometry->nP2PRecv, geometry->GetP2PRecvReq(), &ind, &status);) /*--- Once we have recv'd a message, get the source rank. ---*/ @@ -397,7 +397,7 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon switch (commType) { case MPI_QUANTITIES::SOLUTION_MATRIX: { - const su2double* bufDRecv = geometry->bufD_P2PRecv; + const auto* bufDRecv = geometry->GetP2PRecvBuf(); /*--- We know the offsets based on the source rank. ---*/ @@ -435,7 +435,7 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon send buffer for the recv instead. Also, all of the offsets and counts are derived from the send data structures. ---*/ - const su2double* bufDRecv = geometry->bufD_P2PSend; + const auto* bufDRecv = geometry->GetP2PSendBuf(); /*--- We know the offsets based on the source rank. ---*/ @@ -479,7 +479,8 @@ void CSysMatrixComms::Complete(CSysVector& x, CGeometry* geometry, const CCon data in the loop above at this point. ---*/ #ifdef HAVE_MPI - SU2_OMP_SAFE_GLOBAL_ACCESS(SU2_MPI::Waitall(geometry->nP2PSend, geometry->req_P2PSend, MPI_STATUS_IGNORE);) + SU2_OMP_SAFE_GLOBAL_ACCESS( + SelectMPIWrapper::W::Waitall(geometry->nP2PSend, geometry->GetP2PSendReq(), MPI_STATUS_IGNORE);) #endif } @@ -1305,17 +1306,11 @@ void CSysMatrix::ComputePastixPreconditioner(const CSysVector::EnforceZeroProjection(unsigned long, const su2double*, CSysVector&); \ INSTANTIATE_COMMS(TYPE) -#ifdef CODI_FORWARD_TYPE -/*--- In forward AD only the active type is used. ---*/ -INSTANTIATE_MATRIX(su2double) -#else -/*--- Base and reverse AD, matrix is passive. ---*/ INSTANTIATE_MATRIX(su2mixedfloat) -/*--- If using mixed precision (float) instantiate also a version for doubles, and allow cross communications. ---*/ + #ifdef USE_MIXED_PRECISION INSTANTIATE_MATRIX(passivedouble) #endif #ifdef CODI_REVERSE_TYPE INSTANTIATE_COMMS(su2double) #endif -#endif // CODI_FORWARD_TYPE diff --git a/Common/src/linear_algebra/CSysSolve.cpp b/Common/src/linear_algebra/CSysSolve.cpp index d4e1bc95289c..58725f845629 100644 --- a/Common/src/linear_algebra/CSysSolve.cpp +++ b/Common/src/linear_algebra/CSysSolve.cpp @@ -1469,8 +1469,8 @@ unsigned long CSysSolve::Solve(CSysMatrix& Jacobian, con BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { AD::SetExtFuncIn(&LinSysRes[0], LinSysRes.GetLocSize()); AD::SetExtFuncOut(&LinSysSol[0], LinSysSol.GetLocSize()); - AD::FuncHelper.addUserData(&LinSysRes); - AD::FuncHelper.addUserData(&LinSysSol); + AD::FuncHelper.addUserData(&LinSysRes_tmp); + AD::FuncHelper.addUserData(&LinSysSol_tmp); AD::FuncHelper.addUserData(&Jacobian); AD::FuncHelper.addUserData(geometry); AD::FuncHelper.addUserData(config); @@ -1620,8 +1620,8 @@ unsigned long CSysSolve::Solve(CSysMatrix& Jacobian, con } template -unsigned long CSysSolve::Solve_b(CSysMatrix& Jacobian, const CSysVector& LinSysRes, - CSysVector& LinSysSol, CGeometry* geometry, +unsigned long CSysSolve::Solve_b(CSysMatrix& Jacobian, const CSysVector& LinSysRes, + CSysVector& LinSysSol, CGeometry* geometry, const CConfig* config, const bool directCall) { SU2_ZONE_SCOPED @@ -1700,37 +1700,35 @@ unsigned long CSysSolve::Solve_b(CSysMatrix& Jacobian, c /*--- Local variable to prevent all threads from writing to a shared location (this->Residual). ---*/ ScalarType residual = 0.0; - HandleTemporariesIn(LinSysRes, LinSysSol); - switch (KindSolver) { case FGMRES: - IterLinSol = FGMRES_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, - ScreenOutput, config); + IterLinSol = + FGMRES_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case FGCRODR: - IterLinSol = FGCRODR_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, + IterLinSol = FGCRODR_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case RESTARTED_FGMRES: - IterLinSol = RFGMRES_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, + IterLinSol = RFGMRES_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case BCGSTAB: - IterLinSol = BCGSTAB_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, + IterLinSol = BCGSTAB_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case CONJUGATE_GRADIENT: - IterLinSol = CG_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, - ScreenOutput, config); + IterLinSol = + CG_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case SMOOTHER: - IterLinSol = Smoother_LinSolver(*LinSysRes_ptr, *LinSysSol_ptr, mat_vec, *precond, SolverTol, MaxIter, residual, + IterLinSol = Smoother_LinSolver(LinSysRes, LinSysSol, mat_vec, *precond, SolverTol, MaxIter, residual, ScreenOutput, config); break; case PASTIX_LDLT: case PASTIX_LU: if (directCall) Jacobian.BuildPastixPreconditioner(geometry, config, KindSolver); - Jacobian.ComputePastixPreconditioner(*LinSysRes_ptr, *LinSysSol_ptr, geometry, config); + Jacobian.ComputePastixPreconditioner(LinSysRes, LinSysSol, geometry, config); IterLinSol = 1; residual = 1e-20; break; @@ -1739,8 +1737,6 @@ unsigned long CSysSolve::Solve_b(CSysMatrix& Jacobian, c break; } - HandleTemporariesOut(LinSysSol); - delete normal_prec; delete nested_prec; @@ -1755,11 +1751,7 @@ unsigned long CSysSolve::Solve_b(CSysMatrix& Jacobian, c /*--- Explicit instantiations ---*/ -#ifdef CODI_FORWARD_TYPE -template class CSysSolve; -#else template class CSysSolve; #ifdef USE_MIXED_PRECISION template class CSysSolve; #endif -#endif diff --git a/Common/src/linear_algebra/CSysSolve_b.cpp b/Common/src/linear_algebra/CSysSolve_b.cpp index b16e87fe4aa2..21819fac8d7f 100644 --- a/Common/src/linear_algebra/CSysSolve_b.cpp +++ b/Common/src/linear_algebra/CSysSolve_b.cpp @@ -35,10 +35,10 @@ template void CSysSolve_b::Solve_b(const su2double::Real* x, su2double::Real* x_b, size_t m, const su2double::Real* y, const su2double::Real* y_b, size_t n, codi::ExternalFunctionUserData* d) { - CSysVector* LinSysRes_b = nullptr; + CSysVector* LinSysRes_b = nullptr; d->getDataByIndex(LinSysRes_b, 0); - CSysVector* LinSysSol_b = nullptr; + CSysVector* LinSysSol_b = nullptr; d->getDataByIndex(LinSysSol_b, 1); CSysMatrix* Jacobian = nullptr; @@ -65,6 +65,7 @@ void CSysSolve_b::Solve_b(const su2double::Real* x, su2double::Real* solver->Solve_b(*Jacobian, *LinSysRes_b, *LinSysSol_b, geometry, config, false); + SU2_OMP_BARRIER SU2_OMP_FOR_STAT(roundUpDiv(n, omp_get_num_threads())) for (unsigned long i = 0; i < n; i++) { x_b[i] = SU2_TYPE::GetValue((*LinSysSol_b)[i]); diff --git a/Common/src/linear_algebra/CSysVector.cpp b/Common/src/linear_algebra/CSysVector.cpp index 2a31026a232a..a8031b398802 100644 --- a/Common/src/linear_algebra/CSysVector.cpp +++ b/Common/src/linear_algebra/CSysVector.cpp @@ -143,12 +143,10 @@ CSysVector::~CSysVector() { } /*--- Explicit instantiations ---*/ -/*--- We allways need su2double (regardless if it is passive or active). ---*/ -template class CSysVector; -#ifdef USE_MIXED_PRECISION -/*--- In reverse AD (or with mixed precision) we will also have passive (or float) vectors. ---*/ template class CSysVector; +#ifdef USE_MIXED_PRECISION +template class CSysVector; #endif #ifdef CODI_REVERSE_TYPE -template class CSysVector; +template class CSysVector; #endif diff --git a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp index 74b240707153..c597f2e12a61 100644 --- a/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp +++ b/SU2_CFD/include/solvers/CFVMFlowSolverBase.hpp @@ -303,12 +303,10 @@ class CFVMFlowSolverBase : public CSolver { /*--- Warning message about non-physical reconstructions. ---*/ if ((MGLevel == MESH_0) && (config->GetComm_Level() == COMM_FULL)) { /*--- Add counter results for all threads. ---*/ - SU2_OMP_ATOMIC - ErrorCounter += localCounter; + atomicAdd(localCounter, ErrorCounter); /*--- Add counter results for all ranks. ---*/ - BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS - { + BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { localCounter = ErrorCounter; SU2_MPI::Reduce(&localCounter, &ErrorCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, MASTER_NODE, SU2_MPI::GetComm()); config->SetNonphysical_Reconstr(ErrorCounter); diff --git a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp index 5a00b340abcc..34fc64741b02 100644 --- a/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp +++ b/SU2_CFD/include/solvers/CGradientSmoothingSolver.hpp @@ -38,28 +38,14 @@ * \ingroup GradSmooth */ class CGradientSmoothingSolver final : public CFEASolverBase { -public: - -/** Introduction of a new alias for the data type to allow compilation with forward mode. - * - * This is done for compatibility to the treatment of Jacobian and System in CSolver.hpp. - * Note that the computations done here are always 'passive', i.e. not intended to be differentiated. - * We only need to define functions depending on this once. - */ -#ifndef CODI_FORWARD_TYPE - typedef su2mixedfloat su2matvecscalar; -#else - typedef su2double su2matvecscalar; -#endif - private: unsigned int curDim; /*!< \brief If we separate dimensions this tells us in what dimension we currently are. */ CSysVector activeCoord; /*!< \brief Auxiliar vector to keep the indeces of geometry->vertex->Coord */ - CSysVector helperVecIn; /*!< \brief Helper vectors for projection and matrix vector product (must be su2mixedfloat) */ - CSysVector helperVecOut; /*!< \brief Helper vectors for projection and matrix vector product (must be su2mixedfloat) */ - CSysVector helperVecAux; /*!< \brief Helper vectors for matrix vector product if working on surface (smaller dim) */ + CSysVector helperVecIn; /*!< \brief Helper vectors for projection and matrix vector product (must be su2mixedfloat) */ + CSysVector helperVecOut; /*!< \brief Helper vectors for projection and matrix vector product (must be su2mixedfloat) */ + CSysVector helperVecAux; /*!< \brief Helper vectors for matrix vector product if working on surface (smaller dim) */ std::vector deltaP; /*!< \brief The smoothed gradient with respect to the design variables. */ @@ -201,7 +187,7 @@ class CGradientSmoothingSolver final : public CFEASolverBase { */ void ProjectDVtoMesh(CGeometry *geometry, std::vector& seeding, - CSysVector& result, + CSysVector& result, CSysVector& registeredCoord, CConfig *config); @@ -209,7 +195,7 @@ class CGradientSmoothingSolver final : public CFEASolverBase { * \brief Reverse evaluate parameterization Jacobian. */ void ProjectMeshToDV(CGeometry *geometry, - CSysVector& sensitivity, + CSysVector& sensitivity, std::vector& output, CSysVector ®isteredCoord, CConfig *config); diff --git a/SU2_CFD/include/solvers/CScalarSolver.hpp b/SU2_CFD/include/solvers/CScalarSolver.hpp index 8afeb67adba5..332424e89b8e 100644 --- a/SU2_CFD/include/solvers/CScalarSolver.hpp +++ b/SU2_CFD/include/solvers/CScalarSolver.hpp @@ -188,7 +188,7 @@ class CScalarSolver : public CSolver { const su2double* normal = geometry->edges->GetNormal(iEdge); auto residual_ij = ComputeFlux(iPoint, jPoint, normal); - JacobianScalarType *Block_ii = nullptr, *Block_ij = nullptr, *Block_ji = nullptr, *Block_jj = nullptr; + su2mixedfloat *Block_ii = nullptr, *Block_ij = nullptr, *Block_ji = nullptr, *Block_jj = nullptr; if (implicit) { Jacobian.GetBlocks(iEdge, iPoint, jPoint, Block_ii, Block_ij, Block_ji, Block_jj); } diff --git a/SU2_CFD/include/solvers/CSolver.hpp b/SU2_CFD/include/solvers/CSolver.hpp index 3cee6ee0cca7..01df1d3ee277 100644 --- a/SU2_CFD/include/solvers/CSolver.hpp +++ b/SU2_CFD/include/solvers/CSolver.hpp @@ -191,13 +191,8 @@ class CSolver { CSysVector LinSysSol; /*!< \brief vector to store iterative solution of implicit linear system. */ CSysVector LinSysRes; /*!< \brief vector to store iterative residual of implicit linear system. */ -#ifndef CODI_FORWARD_TYPE - using JacobianScalarType = su2mixedfloat; -#else - using JacobianScalarType = su2double; -#endif - CSysMatrix Jacobian; /*!< \brief Complete sparse Jacobian structure for implicit computations. */ - CSysSolve System; /*!< \brief Linear solver/smoother. */ + CSysMatrix Jacobian; /*!< \brief Complete sparse Jacobian structure for implicit computations. */ + CSysSolve System; /*!< \brief Linear solver/smoother. */ CSysVector OutputVariables; /*!< \brief vector to store the extra variables to be written. */ string* OutputHeadingNames; /*!< \brief vector of strings to store the headings for the exra variables */ @@ -243,7 +238,7 @@ class CSolver { void GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, - unsigned short &MPI_TYPE) const; + COMM_TYPE &MPI_TYPE) const; /*! * \brief Routine to load a solver quantity into the data structures for MPI point-to-point communication and to launch non-blocking sends and recvs. @@ -277,7 +272,7 @@ class CSolver { void GetPeriodicCommCountAndType(const CConfig* config, unsigned short commType, unsigned short &COUNT_PER_POINT, - unsigned short &MPI_TYPE, + COMM_TYPE &MPI_TYPE, unsigned short &ICOUNT, unsigned short &JCOUNT) const; diff --git a/SU2_CFD/src/fluid/CIdealGas.cpp b/SU2_CFD/src/fluid/CIdealGas.cpp index 5f04dd6cdc98..4ec9e6c8ff90 100644 --- a/SU2_CFD/src/fluid/CIdealGas.cpp +++ b/SU2_CFD/src/fluid/CIdealGas.cpp @@ -34,21 +34,22 @@ CIdealGas::CIdealGas(su2double gamma, su2double R, bool CompEntropy) : CFluidMod Cp = Gamma / Gamma_Minus_One * Gas_Constant; Cv = Cp - R; + dTdrho_e = 0.0; + dTde_rho = Gamma_Minus_One / Gas_Constant; + ComputeEntropy = CompEntropy; } void CIdealGas::SetTDState_rhoe(su2double rho, su2double e) { Density = rho; StaticEnergy = e; - Pressure = Gamma_Minus_One * Density * StaticEnergy; - Temperature = Gamma_Minus_One * StaticEnergy / Gas_Constant; - SoundSpeed2 = Gamma * Pressure / Density; dPdrho_e = Gamma_Minus_One * StaticEnergy; dPde_rho = Gamma_Minus_One * Density; - dTdrho_e = 0.0; - dTde_rho = Gamma_Minus_One / Gas_Constant; + Pressure = dPde_rho * StaticEnergy; + Temperature = dTde_rho * StaticEnergy; + SoundSpeed2 = Gamma * Gas_Constant * Temperature; - if (ComputeEntropy) Entropy = (1.0 / Gamma_Minus_One * log(Temperature) + log(1.0 / Density)) * Gas_Constant; + if (ComputeEntropy) Entropy = Cv * log(Temperature) - Gas_Constant * log(Density); } void CIdealGas::SetTDState_PT(su2double P, su2double T) { diff --git a/SU2_CFD/src/iteration/CFEAIteration.cpp b/SU2_CFD/src/iteration/CFEAIteration.cpp index 03280fdd4b95..73ac3842be99 100644 --- a/SU2_CFD/src/iteration/CFEAIteration.cpp +++ b/SU2_CFD/src/iteration/CFEAIteration.cpp @@ -125,12 +125,10 @@ void CFEAIteration::Iterate(COutput* output, CIntegration**** integration, CGeom break; } /*--- Linear elasticity without thermal effects and double precision only needs one iteration. ---*/ -#ifndef USE_MIXED_PRECISION - if (linear && !heat) { + if (!std::is_same_v && linear && !heat) { output->SetConvergence(true); break; } -#endif /*--- Normal stopping criteria. ---*/ if (StopCalc && IntIter > 0) break; } diff --git a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp index 84d0315a0885..16d9ce70e045 100644 --- a/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp +++ b/SU2_CFD/src/solvers/CGradientSmoothingSolver.cpp @@ -37,8 +37,8 @@ */ namespace CGradientSmoothingSolverDetails { -template -void WriteVectorToGeometry(CGeometry* geometry, const CSysVector& vector) { +template +void WriteVectorToGeometry(CGeometry* geometry, const CSysVector& vector) { for (auto iPoint = 0ul; iPoint < geometry->GetnPoint(); iPoint++) { for (auto iDim = 0u; iDim < geometry->GetnDim(); iDim++) { geometry->SetSensitivity(iPoint,iDim, vector(iPoint, iDim)); @@ -46,8 +46,8 @@ void WriteVectorToGeometry(CGeometry* geometry, const CSysVector -void ReadVectorToGeometry(const CGeometry* geometry, CSysVector& vector) { +template +void ReadVectorToGeometry(const CGeometry* geometry, CSysVector& vector) { for (auto iPoint = 0ul; iPoint < geometry->GetnPoint(); iPoint++) { for (auto iDim = 0u; iDim < geometry->GetnDim(); iDim++) { vector(iPoint, iDim) = SU2_TYPE::GetValue(geometry->GetSensitivity(iPoint,iDim)); @@ -272,7 +272,7 @@ void CGradientSmoothingSolver::ApplyGradientSmoothingDV(CGeometry* geometry, CNu /*--- Compute the full Sobolev Hessian approximation column by column. ---*/ if (rank == MASTER_NODE) cout << " computing the system matrix line by line" << endl; - auto mat_vec = GetStiffnessMatrixVectorProduct(geometry, numerics, config); + auto mat_vec = GetStiffnessMatrixVectorProduct(geometry, numerics, config); for (column=0; column(geometry, helperVecIn); + CGradientSmoothingSolverDetails::WriteVectorToGeometry(geometry, helperVecIn); grid_movement->SetVolume_Deformation(geometry, config, false, true, true); - CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecIn); + CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecIn); CSysMatrixComms::Initiate(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); CSysMatrixComms::Complete(helperVecIn, geometry, config, MPI_QUANTITIES::SOLUTION_MATRIX); @@ -324,9 +324,9 @@ void CGradientSmoothingSolver::ApplyGradientSmoothingDV(CGeometry* geometry, CNu } /*--- Forward evaluation of the mesh deformation ---*/ - CGradientSmoothingSolverDetails::WriteVectorToGeometry(geometry, helperVecOut); + CGradientSmoothingSolverDetails::WriteVectorToGeometry(geometry, helperVecOut); grid_movement->SetVolume_Deformation(geometry, config, false, true, false); - CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecOut); + CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecOut); } @@ -684,8 +684,8 @@ void CGradientSmoothingSolver::Solve_Linear_System(CGeometry* geometry, const CC END_SU2_OMP_PARALLEL } -template -CSysMatrixVectorProduct CGradientSmoothingSolver::GetStiffnessMatrixVectorProduct(CGeometry* geometry, +template +CSysMatrixVectorProduct CGradientSmoothingSolver::GetStiffnessMatrixVectorProduct(CGeometry* geometry, CNumerics* numerics, const CConfig* config) { SU2_ZONE_SCOPED @@ -702,7 +702,7 @@ CSysMatrixVectorProduct CGradientSmoothingSolver::GetStiffnessMatri Compute_StiffMatrix(geometry, numerics, config); } - return CSysMatrixVectorProduct(Jacobian, geometry, config); + return CSysMatrixVectorProduct(Jacobian, geometry, config); } void CGradientSmoothingSolver::CalculateOriginalGradient(CGeometry *geometry, CVolumetricMovement *grid_movement, CConfig *config, su2double** Gradient) { @@ -716,7 +716,7 @@ void CGradientSmoothingSolver::CalculateOriginalGradient(CGeometry *geometry, CV grid_movement->SetVolume_Deformation(geometry, config, false, true); - CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecOut); + CGradientSmoothingSolverDetails::ReadVectorToGeometry(geometry, helperVecOut); ProjectMeshToDV(geometry, helperVecOut, deltaP, activeCoord, config); @@ -820,7 +820,7 @@ void CGradientSmoothingSolver::RecordParameterizationJacobian(CGeometry *geometr } -void CGradientSmoothingSolver::ProjectDVtoMesh(CGeometry *geometry, std::vector& seeding, CSysVector& result, CSysVector& registeredCoord, CConfig *config) { +void CGradientSmoothingSolver::ProjectDVtoMesh(CGeometry *geometry, std::vector& seeding, CSysVector& result, CSysVector& registeredCoord, CConfig *config) { SU2_ZONE_SCOPED unsigned int nDim, nMarker, nDV, nDV_Value, nVertex; @@ -860,7 +860,7 @@ void CGradientSmoothingSolver::ProjectDVtoMesh(CGeometry *geometry, std::vector< } -void CGradientSmoothingSolver::ProjectMeshToDV(CGeometry *geometry, CSysVector& sensitivity, std::vector& output, CSysVector& registeredCoord, CConfig *config) { +void CGradientSmoothingSolver::ProjectMeshToDV(CGeometry *geometry, CSysVector& sensitivity, std::vector& output, CSysVector& registeredCoord, CConfig *config) { SU2_ZONE_SCOPED /*--- adjoint surface deformation ---*/ diff --git a/SU2_CFD/src/solvers/CIncNSSolver.cpp b/SU2_CFD/src/solvers/CIncNSSolver.cpp index 92a5ba01ba4a..1e153f66a1b0 100644 --- a/SU2_CFD/src/solvers/CIncNSSolver.cpp +++ b/SU2_CFD/src/solvers/CIncNSSolver.cpp @@ -894,11 +894,8 @@ void CIncNSSolver::SetTau_Wall_WF(CGeometry *geometry, CSolver **solver_containe ompMasterAssignBarrier(globalCounter1,0, globalCounter2,0); - SU2_OMP_ATOMIC - globalCounter1 += notConvergedCounter; - - SU2_OMP_ATOMIC - globalCounter2 += smallYPlusCounter; + atomicAdd(notConvergedCounter, globalCounter1); + atomicAdd(smallYPlusCounter, globalCounter2); BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { SU2_MPI::Allreduce(&globalCounter1, ¬ConvergedCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm()); diff --git a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp index 35ced04d3faa..12f6d7dbec14 100644 --- a/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp +++ b/SU2_CFD/src/solvers/CNEMOEulerSolver.cpp @@ -633,8 +633,7 @@ void CNEMOEulerSolver::Upwind_Residual(CGeometry *geometry, CSolver **solver_con /*--- Warning message about non-physical reconstructions. ---*/ if ((iMesh == MESH_0) && (config->GetComm_Level() == COMM_FULL)) { /*--- Add counter results for all threads. ---*/ - SU2_OMP_ATOMIC - ErrorCounter += counter_local; + atomicAdd(counter_local, ErrorCounter); /*--- Add counter results for all ranks. ---*/ BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS diff --git a/SU2_CFD/src/solvers/CNSSolver.cpp b/SU2_CFD/src/solvers/CNSSolver.cpp index 92669da60501..724c52c2e332 100644 --- a/SU2_CFD/src/solvers/CNSSolver.cpp +++ b/SU2_CFD/src/solvers/CNSSolver.cpp @@ -1033,11 +1033,8 @@ void CNSSolver::SetTau_Wall_WF(CGeometry *geometry, CSolver **solver_container, ompMasterAssignBarrier(globalCounter1,0, globalCounter2,0); - SU2_OMP_ATOMIC - globalCounter1 += notConvergedCounter; - - SU2_OMP_ATOMIC - globalCounter2 += smallYPlusCounter; + atomicAdd(notConvergedCounter, globalCounter1); + atomicAdd(smallYPlusCounter, globalCounter2); BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS { SU2_MPI::Allreduce(&globalCounter1, ¬ConvergedCounter, 1, MPI_UNSIGNED_LONG, MPI_SUM, SU2_MPI::GetComm()); diff --git a/SU2_CFD/src/solvers/CSolver.cpp b/SU2_CFD/src/solvers/CSolver.cpp index 5a5bf0caaffb..6edbc8f3b8a4 100644 --- a/SU2_CFD/src/solvers/CSolver.cpp +++ b/SU2_CFD/src/solvers/CSolver.cpp @@ -193,50 +193,50 @@ CSolver::~CSolver() { void CSolver::GetPeriodicCommCountAndType(const CConfig* config, unsigned short commType, unsigned short &COUNT_PER_POINT, - unsigned short &MPI_TYPE, + COMM_TYPE &MPI_TYPE, unsigned short &ICOUNT, unsigned short &JCOUNT) const { SU2_ZONE_SCOPED switch (commType) { case PERIODIC_VOLUME: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_NEIGHBORS: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_UNSIGNED_SHORT; + MPI_TYPE = COMM_TYPE::UNSIGNED_SHORT; break; case PERIODIC_RESIDUAL: COUNT_PER_POINT = nVar + nVar*nVar + 1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_IMPLICIT: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_LAPLACIAN: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_MAX_EIG: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_SENSOR: COUNT_PER_POINT = 2; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case PERIODIC_SOL_GG: case PERIODIC_SOL_GG_R: COUNT_PER_POINT = nVar*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nVar; JCOUNT = nDim; break; case PERIODIC_PRIM_GG: case PERIODIC_PRIM_GG_R: COUNT_PER_POINT = nPrimVarGrad*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nPrimVarGrad; JCOUNT = nDim; break; @@ -245,7 +245,7 @@ void CSolver::GetPeriodicCommCountAndType(const CConfig* config, case PERIODIC_SOL_LS_R: case PERIODIC_SOL_ULS_R: COUNT_PER_POINT = nDim*nDim + nVar*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nVar; JCOUNT = nDim; break; @@ -254,28 +254,28 @@ void CSolver::GetPeriodicCommCountAndType(const CConfig* config, case PERIODIC_PRIM_LS_R: case PERIODIC_PRIM_ULS_R: COUNT_PER_POINT = nDim*nDim + nPrimVarGrad*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nPrimVarGrad; JCOUNT = nDim; break; case PERIODIC_LIM_PRIM_1: COUNT_PER_POINT = nPrimVarGrad*2; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nPrimVarGrad; break; case PERIODIC_LIM_PRIM_2: COUNT_PER_POINT = nPrimVarGrad; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nPrimVarGrad; break; case PERIODIC_LIM_SOL_1: COUNT_PER_POINT = nVar*2; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nVar; break; case PERIODIC_LIM_SOL_2: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; ICOUNT = nVar; break; default: @@ -357,7 +357,7 @@ void CSolver::InitiatePeriodicComms(CGeometry *geometry, unsigned short iVar, jVar, iDim; unsigned short nNeighbor = 0; unsigned short COUNT_PER_POINT = 0; - unsigned short MPI_TYPE = 0; + COMM_TYPE MPI_TYPE{}; unsigned short ICOUNT = nVar; unsigned short JCOUNT = nVar; @@ -1011,7 +1011,8 @@ void CSolver::CompletePeriodicComms(CGeometry *geometry, /*--- Set the size of the data packet and type depending on quantity. ---*/ - unsigned short COUNT_PER_POINT = 0, MPI_TYPE = 0, ICOUNT = 0, JCOUNT = 0; + unsigned short COUNT_PER_POINT = 0, ICOUNT = 0, JCOUNT = 0; + COMM_TYPE MPI_TYPE{}; GetPeriodicCommCountAndType(config, commType, COUNT_PER_POINT, MPI_TYPE, ICOUNT, JCOUNT); /*--- Local variables ---*/ @@ -1335,7 +1336,7 @@ void CSolver::CompletePeriodicComms(CGeometry *geometry, void CSolver::GetCommCountAndType(const CConfig* config, MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, - unsigned short &MPI_TYPE) const { + COMM_TYPE &MPI_TYPE) const { SU2_ZONE_SCOPED switch (commType) { case MPI_QUANTITIES::SOLUTION: @@ -1343,53 +1344,53 @@ void CSolver::GetCommCountAndType(const CConfig* config, case MPI_QUANTITIES::UNDIVIDED_LAPLACIAN: case MPI_QUANTITIES::SOLUTION_LIMITER: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::MAX_EIGENVALUE: case MPI_QUANTITIES::SENSOR: COUNT_PER_POINT = 1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::SOLUTION_GRADIENT: case MPI_QUANTITIES::SOLUTION_GRAD_REC: COUNT_PER_POINT = nVar*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::PRIMITIVE_GRADIENT: case MPI_QUANTITIES::PRIMITIVE_GRAD_REC: COUNT_PER_POINT = nPrimVarGrad*nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::PRIMITIVE_LIMITER: COUNT_PER_POINT = nPrimVarGrad; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::SOLUTION_EDDY: COUNT_PER_POINT = nVar+1; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::SOLUTION_FEA: if (config->GetTime_Domain()) COUNT_PER_POINT = nVar*3; else COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::AUXVAR_GRADIENT: COUNT_PER_POINT = nDim*base_nodes->GetnAuxVar(); - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::MESH_DISPLACEMENTS: COUNT_PER_POINT = nDim; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::SOLUTION_TIME_N: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; case MPI_QUANTITIES::SOLUTION_TIME_N1: COUNT_PER_POINT = nVar; - MPI_TYPE = COMM_TYPE_DOUBLE; + MPI_TYPE = COMM_TYPE::DOUBLE; break; default: SU2_MPI::Error("Unrecognized quantity for point-to-point MPI comms.", @@ -1424,7 +1425,7 @@ void CSolver::InitiateComms(CGeometry *geometry, unsigned short iVar, iDim; unsigned short COUNT_PER_POINT = 0; - unsigned short MPI_TYPE = 0; + COMM_TYPE MPI_TYPE{}; unsigned long iPoint, msg_offset, buf_offset; @@ -1568,7 +1569,7 @@ void CSolver::CompleteComms(CGeometry *geometry, unsigned short iDim, iVar; unsigned long iPoint, iRecv, nRecv, msg_offset, buf_offset; unsigned short COUNT_PER_POINT = 0; - unsigned short MPI_TYPE = 0; + COMM_TYPE MPI_TYPE{}; int ind, source, iMessage, jRecv; diff --git a/TestCases/TestCase.py b/TestCases/TestCase.py index 651193244522..d1d5568d400e 100644 --- a/TestCases/TestCase.py +++ b/TestCases/TestCase.py @@ -297,7 +297,7 @@ def run_test(self, with_tsan=False, with_asan=False, with_tapetests=False): print('ERROR: Execution timed out. timeout=%d'%self.timeout) if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol) + print(f'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL={self.tol}') if not start_solver and not with_tapetests: print('ERROR: The code was not able to get to the "Begin solver" section.') @@ -628,7 +628,7 @@ def run_opt(self, with_tsan=False, with_asan=False, with_tapetests=False): print('ERROR: Execution timed out. timeout=%d'%self.timeout) if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol) + print(f'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL={self.tol}') if not start_solver: print('ERROR: The code was not able to get to the "OBJFUN" section.') @@ -770,7 +770,7 @@ def run_geo(self, with_tsan=False, with_asan=False, with_tapetests=False): if not with_tsan and not with_asan: if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%f'%self.tol) + print(f'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL={self.tol}') if not start_solver: print('ERROR: The code was not able to get to the "OBJFUN" section.') @@ -901,7 +901,7 @@ def run_def(self, with_tsan=False, with_asan=False, with_tapetests=False): if not with_tsan and not with_asan: if exceed_tol: - print('ERROR: Difference between computed input and test_vals exceeded tolerance. TOL=%e'%self.tol) + print(f'ERROR: Difference between computed input and test_vals exceeded tolerance. TOL={self.tol}') if not start_solver: print('ERROR: The code was not able to get to the "Begin solver" section.') diff --git a/TestCases/hybrid_regression.py b/TestCases/hybrid_regression.py index b8e39bc9fbaa..013f6e277356 100644 --- a/TestCases/hybrid_regression.py +++ b/TestCases/hybrid_regression.py @@ -103,7 +103,7 @@ def main(): flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 100 - flatplate.test_vals = [-6.382489, -0.905413, 0.001313, 0.025294, 2.361500, -2.336200, 0.000000, 0.000000] + flatplate.test_vals = [-6.381351, -0.904240, 0.001313, 0.025285, 2.361500, -2.336300, 0, 0] test_list.append(flatplate) # Laminar cylinder (steady) @@ -197,7 +197,7 @@ def main(): turb_naca0012_sa.cfg_dir = "rans/naca0012" turb_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" turb_naca0012_sa.test_iter = 5 - turb_naca0012_sa.test_vals = [-12.038153, -16.332090, 1.080346, 0.018385, 20, -2.872824, 0, -14.250271, 0] + turb_naca0012_sa.test_vals = [-12.038104, -16.332090, 1.080346, 0.018385, 20, -2.873254, 0, -14.250271, 0] turb_naca0012_sa.test_vals_aarch64 = [-12.038091, -16.332090, 1.080346, 0.018385, 20.000000, -2.873236, 0.000000, -14.250271, 0.000000] test_list.append(turb_naca0012_sa) @@ -206,7 +206,7 @@ def main(): turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 - turb_naca0012_sst.test_vals = [-12.093892, -15.251078, -5.906327, 1.070413, 0.015775, -2.855348, 0] + turb_naca0012_sst.test_vals = [-12.093920, -15.251077, -5.906326, 1.070413, 0.015775, -2.855455, 0] turb_naca0012_sst.test_vals_aarch64 = [-12.075928, -15.246732, -5.861249, 1.070036, 0.015841, -2.835263, 0] test_list.append(turb_naca0012_sst) @@ -215,7 +215,7 @@ def main(): turb_naca0012_sst_sust.cfg_dir = "rans/naca0012" turb_naca0012_sst_sust.cfg_file = "turb_NACA0012_sst_sust.cfg" turb_naca0012_sst_sust.test_iter = 10 - turb_naca0012_sst_sust.test_vals = [-12.080757, -14.837176, -5.732917, 1.000893, 0.019109, -2.120437] + turb_naca0012_sst_sust.test_vals = [-12.080826, -14.837176, -5.732918, 1.000893, 0.019109, -2.120233] turb_naca0012_sst_sust.test_vals_aarch64 = [-12.073210, -14.836724, -5.732627, 1.000050, 0.019144, -2.629689] test_list.append(turb_naca0012_sst_sust) @@ -252,7 +252,7 @@ def main(): axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_restart.cfg_file = "air_nozzle_restart.cfg" axi_rans_air_nozzle_restart.test_iter = 10 - axi_rans_air_nozzle_restart.test_vals = [-12.066224, -7.425808, -8.815859, -3.732773, 0] + axi_rans_air_nozzle_restart.test_vals = [-12.066222, -7.425854, -8.815484, -3.732619, 0] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-14.140441, -9.154674, -10.886121, -5.806594, 0.000000] test_list.append(axi_rans_air_nozzle_restart) @@ -278,7 +278,7 @@ def main(): turb_naca0012_1c.cfg_dir = "rans_uq/naca0012" turb_naca0012_1c.cfg_file = "turb_NACA0012_uq_1c.cfg" turb_naca0012_1c.test_iter = 10 - turb_naca0012_1c.test_vals = [-4.976782, 1.343831, 0.443889, -0.029247] + turb_naca0012_1c.test_vals = [-4.980125, 1.343354, 0.443788, -0.029257] turb_naca0012_1c.test_vals_aarch64 = [-4.976620, 1.345983, 0.433171, -0.033685] test_list.append(turb_naca0012_1c) @@ -287,7 +287,7 @@ def main(): turb_naca0012_2c.cfg_dir = "rans_uq/naca0012" turb_naca0012_2c.cfg_file = "turb_NACA0012_uq_2c.cfg" turb_naca0012_2c.test_iter = 10 - turb_naca0012_2c.test_vals = [-5.482862, 1.260869, 0.405097, -0.040169] + turb_naca0012_2c.test_vals = [-5.482849, 1.260868, 0.404588, -0.040284] turb_naca0012_2c.test_vals_aarch64 = [-5.485484, 1.263406, 0.411442, -0.040859] test_list.append(turb_naca0012_2c) @@ -314,7 +314,7 @@ def main(): turb_naca0012_p1c2.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c2.cfg_file = "turb_NACA0012_uq_p1c2.cfg" turb_naca0012_p1c2.test_iter = 10 - turb_naca0012_p1c2.test_vals = [-5.553950, 1.234029, 0.424324, -0.033438] + turb_naca0012_p1c2.test_vals = [-5.553917, 1.234038, 0.424217, -0.033478] turb_naca0012_p1c2.test_vals_aarch64 = [-5.548245, 1.236384, 0.381821, -0.050337] test_list.append(turb_naca0012_p1c2) diff --git a/TestCases/parallel_regression.py b/TestCases/parallel_regression.py index 1c25e4942d22..dbadc0cb659f 100755 --- a/TestCases/parallel_regression.py +++ b/TestCases/parallel_regression.py @@ -298,8 +298,8 @@ def main(): ramp_msw.cfg_dir = "euler/ramp" ramp_msw.cfg_file = "inv_ramp_msw.cfg" ramp_msw.test_iter = 100 - ramp_msw.test_vals = [-7.5, -1.765, -0.077520, 0.054427] - ramp_msw.tol = [0.03, 0.03, 0.00001, 0.00001] + ramp_msw.test_vals = [-7.35, -1.6, -0.077520, 0.054427] + ramp_msw.tol = [0.2, 0.2, 0.00001, 0.00001] test_list.append(ramp_msw) # MFR_coupling @@ -371,6 +371,7 @@ def main(): poiseuille_profile.test_iter = 10 poiseuille_profile.test_vals = [-12.004334, -7.534404, -0.000000, 2.089953] poiseuille_profile.test_vals_aarch64 = [-12.007498, -7.226926, -0.000000, 2.089953] + poiseuille_profile.tol = [0.001, 0.001, 1e-5, 1e-5, 1e-5] test_list.append(poiseuille_profile) ########################## @@ -482,7 +483,7 @@ def main(): turb_naca0012_sa.cfg_dir = "rans/naca0012" turb_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" turb_naca0012_sa.test_iter = 5 - turb_naca0012_sa.test_vals = [-12.037476, -16.376950, 1.080346, 0.018385, 20, -1.564171, 20, -4.180937, 0] + turb_naca0012_sa.test_vals = [-12.037518, -16.376951, 1.080346, 0.018385, 20, -1.564108, 20, -4.180957, 0] turb_naca0012_sa.test_vals_aarch64 = [-12.037489, -16.376949, 1.080346, 0.018385, 20.000000, -1.564143, 20.000000, -4.180945, 0.000000] turb_naca0012_sa.timeout = 3200 test_list.append(turb_naca0012_sa) @@ -492,7 +493,7 @@ def main(): turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 - turb_naca0012_sst.test_vals = [-12.094714, -15.251093, -5.906365, 1.070413, 0.015775, -2.376111, 0] + turb_naca0012_sst.test_vals = [-12.094708, -15.251093, -5.906365, 1.070413, 0.015775, -2.376072, 0] turb_naca0012_sst.test_vals_aarch64 = [-12.075620, -15.246688, -5.861276, 1.070036, 0.015841, -1.991001, 0.000000] turb_naca0012_sst.timeout = 3200 test_list.append(turb_naca0012_sst) @@ -502,7 +503,7 @@ def main(): turb_naca0012_sst_sust.cfg_dir = "rans/naca0012" turb_naca0012_sst_sust.cfg_file = "turb_NACA0012_sst_sust.cfg" turb_naca0012_sst_sust.test_iter = 10 - turb_naca0012_sst_sust.test_vals = [-12.082149, -14.837177, -5.733436, 1.000893, 0.019109, -2.240949] + turb_naca0012_sst_sust.test_vals = [-12.082012, -14.837177, -5.733436, 1.000893, 0.019109, -2.241076] turb_naca0012_sst_sust.test_vals_aarch64 = [-12.073964, -14.836726, -5.732390, 1.000050, 0.019144, -2.229074] turb_naca0012_sst_sust.timeout = 3200 test_list.append(turb_naca0012_sst_sust) @@ -571,7 +572,7 @@ def main(): axi_rans_air_nozzle_restart.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_restart.cfg_file = "air_nozzle_restart.cfg" axi_rans_air_nozzle_restart.test_iter = 10 - axi_rans_air_nozzle_restart.test_vals = [-12.069349, -7.508309, -8.813361, -3.732852, 0] + axi_rans_air_nozzle_restart.test_vals = [-12.069351, -7.507867, -8.813423, -3.732860, 0] axi_rans_air_nozzle_restart.test_vals_aarch64 = [-14.143310, -9.163287, -10.858232, -5.787715, 0.000000] axi_rans_air_nozzle_restart.tol = 0.0001 test_list.append(axi_rans_air_nozzle_restart) @@ -782,7 +783,7 @@ def main(): turbmod_sa_neg_rae2822.cfg_dir = "turbulence_models/sa/rae2822" turbmod_sa_neg_rae2822.cfg_file = "turb_SA_NEG_RAE2822.cfg" turbmod_sa_neg_rae2822.test_iter = 10 - turbmod_sa_neg_rae2822.test_vals = [-1.345560, 1.448328, 1.208614, -0.846773, 1.277698, 0.499718, 0] + turbmod_sa_neg_rae2822.test_vals = [-1.345527, 1.448384, 1.208659, -0.846424, 1.271466, 0.497507, 0] turbmod_sa_neg_rae2822.test_vals_aarch64 = [-1.345593, 1.448310, 1.208721, -0.846597, 1.248410, 0.489117, 0.000000] test_list.append(turbmod_sa_neg_rae2822) @@ -932,7 +933,7 @@ def main(): turb_naca0012_1c.cfg_dir = "rans_uq/naca0012" turb_naca0012_1c.cfg_file = "turb_NACA0012_uq_1c.cfg" turb_naca0012_1c.test_iter = 10 - turb_naca0012_1c.test_vals = [-4.982630, 1.343638, 0.664182, 0.009490] + turb_naca0012_1c.test_vals = [-4.983993, 1.343552, 0.663881, 0.009383] turb_naca0012_1c.test_vals_aarch64 = [-4.981036, 1.345868, 0.673232, 0.010091] test_list.append(turb_naca0012_1c) @@ -941,7 +942,7 @@ def main(): turb_naca0012_2c.cfg_dir = "rans_uq/naca0012" turb_naca0012_2c.cfg_file = "turb_NACA0012_uq_2c.cfg" turb_naca0012_2c.test_iter = 10 - turb_naca0012_2c.test_vals = [-5.482693, 1.262634, 0.495712, -0.032734] + turb_naca0012_2c.test_vals = [-5.482691, 1.262640, 0.496012, -0.032672] turb_naca0012_2c.test_vals_aarch64 = [-5.484365, 1.264701, 0.501741, -0.033109] test_list.append(turb_naca0012_2c) @@ -958,7 +959,7 @@ def main(): turb_naca0012_p1c1.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c1.cfg_file = "turb_NACA0012_uq_p1c1.cfg" turb_naca0012_p1c1.test_iter = 10 - turb_naca0012_p1c1.test_vals = [-5.129475, 1.283940, 0.807012, 0.047519] + turb_naca0012_p1c1.test_vals = [-5.129493, 1.283950, 0.807032, 0.047516] turb_naca0012_p1c1.test_vals_aarch64 = [-5.122100, 1.284478, 0.608744, -0.008593] test_list.append(turb_naca0012_p1c1) @@ -967,7 +968,7 @@ def main(): turb_naca0012_p1c2.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c2.cfg_file = "turb_NACA0012_uq_p1c2.cfg" turb_naca0012_p1c2.test_iter = 10 - turb_naca0012_p1c2.test_vals = [-5.553963, 1.234481, 0.604361, -0.008431] + turb_naca0012_p1c2.test_vals = [-5.553947, 1.234508, 0.604076, -0.008513] test_list.append(turb_naca0012_p1c2) ###################################### @@ -1360,7 +1361,7 @@ def main(): dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 - dyn_fsi.test_vals = [-4.330741, -4.152826, 0, 97] + dyn_fsi.test_vals = [-4.330741, -4.152826, 0, 96] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) @@ -1459,7 +1460,7 @@ def main(): pywrapper_turb_naca0012_sst.cfg_dir = "rans/naca0012" pywrapper_turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" pywrapper_turb_naca0012_sst.test_iter = 10 - pywrapper_turb_naca0012_sst.test_vals = [-12.094714, -15.251093, -5.906365, 1.070413, 0.015775, -2.376111, 0] + pywrapper_turb_naca0012_sst.test_vals = [-12.094708, -15.251093, -5.906365, 1.070413, 0.015775, -2.376072, 0] pywrapper_turb_naca0012_sst.test_vals_aarch64 = [-12.075620, -15.246688, -5.861276, 1.070036, 0.015841, -1.991001, 0.000000] pywrapper_turb_naca0012_sst.command = TestCase.Command("mpirun -np 2", "SU2_CFD.py", "--parallel -f") pywrapper_turb_naca0012_sst.timeout = 3200 diff --git a/TestCases/parallel_regression_AD.py b/TestCases/parallel_regression_AD.py index 2c2369c6e9e4..afe71d30b9d4 100644 --- a/TestCases/parallel_regression_AD.py +++ b/TestCases/parallel_regression_AD.py @@ -286,7 +286,7 @@ def main(): discadj_fsi2.cfg_dir = "disc_adj_fsi/Airfoil_2d" discadj_fsi2.cfg_file = "config.cfg" discadj_fsi2.test_iter = 8 - discadj_fsi2.test_vals = [-3.824870, 1.979160, -3.863368, 0.295450, 3.839800] + discadj_fsi2.test_vals = [-3.824565, 1.979651, -3.863368, 0.295450, 3.839800] discadj_fsi2.test_vals_aarch64 = [-3.824870, 1.979160, -3.863368, 0.295450, 3.839800] discadj_fsi2.tol = 0.00001 test_list.append(discadj_fsi2) diff --git a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref index 782f0d2d8060..f2dd6431130f 100644 --- a/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref +++ b/TestCases/py_wrapper/translating_NACA0012/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -0.88, -0.00, 0.00 -0, -2.74, 18.87, 0.00 -1, -4.00, 27.56, 0.00 -2, -4.94, 34.10, 0.00 -3, -5.93, 41.01, 0.00 -4, -6.68, 46.33, 0.00 -5, -7.33, 51.03, 0.00 -6, -7.86, 54.95, 0.00 -7, -8.30, 58.28, 0.00 -8, -8.60, 60.75, 0.00 -9, -8.85, 62.89, 0.00 -10, -8.96, 64.06, 0.00 -11, -9.01, 64.88, 0.00 -12, -8.93, 64.80, 0.00 -13, -8.77, 64.14, 0.00 -14, -8.51, 62.83, 0.00 -15, -8.19, 61.03, 0.00 -16, -7.81, 58.73, 0.00 -17, -7.52, 57.17, 0.00 -18, -6.97, 53.51, 0.00 -19, -6.23, 48.37, 0.00 -20, -5.59, 43.91, 0.00 -21, -4.89, 38.89, 0.00 -22, -4.16, 33.52, 0.00 -23, -3.27, 26.73, 0.00 -24, -2.44, 20.19, 0.00 -25, -1.23, 10.28, 0.00 -26, -0.37, 3.17, 0.00 -27, 0.97, -8.37, 0.00 -28, 1.86, -16.27, 0.00 -29, 3.20, -28.55, 0.00 -30, 3.94, -35.67, 0.00 -31, 5.22, -48.09, 0.00 -32, 6.02, -56.52, 0.00 -33, 7.59, -72.59, 0.00 -34, 8.24, -80.30, 0.00 -35, 9.39, -93.40, 0.00 -36, 9.92, -100.86, 0.00 -37, 10.54, -109.58, 0.00 -38, 11.01, -117.21, 0.00 -39, 10.95, -119.48, 0.00 -40, 11.48, -128.65, 0.00 -41, 10.97, -126.35, 0.00 -42, 11.91, -141.43, 0.00 -43, 12.30, -150.90, 0.00 -44, 13.37, -169.77, 0.00 -45, 14.68, -193.53, 0.00 -46, 15.80, -217.03, 0.00 -47, 19.25, -276.51, 0.00 -48, 19.53, -294.59, 0.00 -49, 22.26, -354.30, 0.00 -50, 20.96, -354.19, 0.00 -51, 20.16, -364.14, 0.00 -52, 18.40, -358.18, 0.00 -53, 16.69, -353.80, 0.00 -54, 15.07, -352.32, 0.00 -55, 12.98, -340.39, 0.00 -56, 11.19, -336.20, 0.00 -57, 8.60, -304.96, 0.00 -58, 7.16, -313.01, 0.00 -59, 6.01, -347.70, 0.00 -60, 4.70, -412.79, 0.00 -61, 2.33, -445.52, 0.00 -62, -0.55, -443.29, 0.00 -63, -3.42, -427.14, 0.00 -64, -6.31, -417.03, 0.00 -65, -8.94, -395.68, 0.00 -66, -11.64, -382.49, 0.00 -67, -14.13, -365.39, 0.00 -68, -16.51, -348.88, 0.00 -69, -18.69, -331.14, 0.00 -70, -20.72, -313.74, 0.00 -71, -22.32, -293.09, 0.00 -72, -23.72, -273.12, 0.00 -73, -24.63, -251.02, 0.00 -74, -25.83, -234.51, 0.00 -75, -26.33, -214.23, 0.00 -76, -26.92, -197.22, 0.00 -77, -26.80, -177.38, 0.00 -78, -26.94, -161.54, 0.00 -79, -26.13, -142.24, 0.00 -80, -25.19, -124.64, 0.00 -81, -22.82, -102.67, 0.00 -82, -21.57, -88.23, 0.00 -83, -19.26, -71.61, 0.00 -84, -17.97, -60.61, 0.00 -85, -15.93, -48.61, 0.00 -86, -12.97, -35.71, 0.00 -87, -8.42, -20.82, 0.00 -88, -5.98, -13.21, 0.00 -89, -8.03, -15.71, 0.00 -90, 4.80, 8.23, 0.00 -91, 4.36, 6.47, 0.00 -92, 11.84, 14.99, 0.00 -93, 0.32, 0.34, 0.00 -94, 11.38, 9.67, 0.00 -95, 45.23, 29.46, 0.00 -96, 48.26, 22.12, 0.00 -97, -197.68, -53.50, 0.00 -98, -125.90, -16.89, 0.00 -99, 14.92, -0.00, 0.00 -100, 79.73, -10.70, 0.00 -101, 186.44, -50.46, 0.00 -102, 187.22, -85.81, 0.00 -103, 135.06, -87.97, 0.00 -104, 119.91, -101.86, 0.00 -105, 79.10, -83.40, 0.00 -106, 59.63, -75.52, 0.00 -107, 30.90, -45.94, 0.00 -108, 22.56, -38.71, 0.00 -109, -4.56, 8.92, 0.00 -110, -9.71, 21.43, 0.00 -111, -21.99, 54.38, 0.00 -112, -24.51, 67.48, 0.00 -113, -34.81, 106.26, 0.00 -114, -39.06, 131.73, 0.00 -115, -43.87, 163.08, 0.00 -116, -44.80, 183.28, 0.00 -117, -47.81, 215.10, 0.00 -118, -48.21, 238.52, 0.00 -119, -49.89, 271.53, 0.00 -120, -49.93, 299.38, 0.00 -121, -49.00, 324.32, 0.00 -122, -47.34, 346.82, 0.00 -123, -45.93, 373.77, 0.00 -124, -43.73, 397.06, 0.00 -125, -41.62, 424.09, 0.00 -126, -38.87, 447.69, 0.00 -127, -36.04, 473.29, 0.00 -128, -32.71, 495.38, 0.00 -129, -29.18, 517.04, 0.00 -130, -25.50, 538.64, 0.00 -131, -21.67, 560.11, 0.00 -132, -17.65, 579.80, 0.00 -133, -13.60, 601.56, 0.00 -134, -9.38, 619.71, 0.00 -135, -5.13, 640.08, 0.00 -136, -0.81, 656.70, 0.00 -137, 3.53, 674.34, 0.00 -138, 7.85, 688.58, 0.00 -139, 12.18, 704.99, 0.00 -140, 16.41, 717.64, 0.00 -141, 20.57, 729.02, 0.00 -142, 24.63, 739.65, 0.00 -143, 28.56, 748.77, 0.00 -144, 32.40, 757.51, 0.00 -145, 36.12, 765.59, 0.00 -146, 39.66, 772.06, 0.00 -147, 43.13, 778.88, 0.00 -148, 46.36, 783.25, 0.00 -149, 49.60, 789.39, 0.00 -150, 52.48, 791.53, 0.00 -151, 55.47, 796.64, 0.00 -152, 57.83, 794.45, 0.00 -153, 57.34, 756.10, 0.00 -154, 59.99, 761.83, 0.00 -155, 69.07, 847.19, 0.00 -156, 69.33, 823.32, 0.00 -157, 53.10, 611.85, 0.00 -158, 40.29, 451.37, 0.00 -159, 43.59, 475.55, 0.00 -160, 49.17, 523.27, 0.00 -161, 18.54, 192.66, 0.00 -162, 14.94, 151.89, 0.00 -163, 8.48, 84.34, 0.00 -164, 7.58, 73.94, 0.00 -165, 3.72, 35.56, 0.00 -166, 2.83, 26.52, 0.00 -167, 1.26, 11.65, 0.00 -168, 0.55, 5.03, 0.00 -169, -0.64, -5.72, 0.00 -170, -1.47, -12.88, 0.00 -171, -2.41, -20.82, 0.00 -172, -3.12, -26.59, 0.00 -173, -3.82, -32.02, 0.00 -174, -4.48, -37.03, 0.00 -175, -5.61, -45.76, 0.00 -176, -6.31, -50.81, 0.00 -177, -6.84, -54.39, 0.00 -178, -7.42, -58.32, 0.00 -179, -7.79, -60.51, 0.00 -180, -8.26, -63.45, 0.00 -181, -8.73, -66.31, 0.00 -182, -9.08, -68.30, 0.00 -183, -9.46, -70.51, 0.00 -184, -9.69, -71.54, 0.00 -185, -9.74, -71.24, 0.00 -186, -9.78, -70.95, 0.00 -187, -9.85, -70.97, 0.00 -188, -9.79, -70.04, 0.00 -189, -9.43, -66.99, 0.00 -190, -9.12, -64.44, 0.00 -191, -8.61, -60.49, 0.00 -192, -8.09, -56.58, 0.00 -193, -7.41, -51.57, 0.00 -194, -6.72, -46.59, 0.00 -195, -5.79, -40.06, 0.00 -196, -4.88, -33.67, 0.00 -197, -3.73, -25.71, 0.00 -198, -2.60, -17.88, 0.00 +199, -0.99, -0.00, 0.00 +0, -2.92, 20.12, 0.00 +1, -4.31, 29.70, 0.00 +2, -5.43, 37.46, 0.00 +3, -6.47, 44.73, 0.00 +4, -7.32, 50.81, 0.00 +5, -8.06, 56.11, 0.00 +6, -8.66, 60.52, 0.00 +7, -9.15, 64.25, 0.00 +8, -9.50, 67.10, 0.00 +9, -9.76, 69.35, 0.00 +10, -9.88, 70.62, 0.00 +11, -9.90, 71.32, 0.00 +12, -9.83, 71.37, 0.00 +13, -9.67, 70.75, 0.00 +14, -9.38, 69.23, 0.00 +15, -8.97, 66.84, 0.00 +16, -8.56, 64.36, 0.00 +17, -8.07, 61.36, 0.00 +18, -7.43, 57.05, 0.00 +19, -6.55, 50.89, 0.00 +20, -5.88, 46.24, 0.00 +21, -5.03, 39.99, 0.00 +22, -4.23, 34.09, 0.00 +23, -3.15, 25.71, 0.00 +24, -2.24, 18.52, 0.00 +25, -0.76, 6.34, 0.00 +26, 0.13, -1.12, 0.00 +27, 1.54, -13.29, 0.00 +28, 2.43, -21.28, 0.00 +29, 3.83, -34.14, 0.00 +30, 4.54, -41.18, 0.00 +31, 5.74, -52.89, 0.00 +32, 6.43, -60.39, 0.00 +33, 7.57, -72.41, 0.00 +34, 8.11, -79.07, 0.00 +35, 8.85, -88.08, 0.00 +36, 9.26, -94.15, 0.00 +37, 9.66, -100.41, 0.00 +38, 9.93, -105.71, 0.00 +39, 9.93, -108.29, 0.00 +40, 10.18, -114.04, 0.00 +41, 9.56, -110.13, 0.00 +42, 9.54, -113.32, 0.00 +43, 8.43, -103.37, 0.00 +44, 8.66, -109.93, 0.00 +45, 7.21, -95.09, 0.00 +46, 7.50, -103.00, 0.00 +47, 6.34, -90.99, 0.00 +48, 6.94, -104.63, 0.00 +49, 6.11, -97.26, 0.00 +50, 7.39, -124.87, 0.00 +51, 9.54, -172.27, 0.00 +52, 10.89, -211.99, 0.00 +53, 13.37, -283.48, 0.00 +54, 12.59, -294.41, 0.00 +55, 12.32, -322.91, 0.00 +56, 10.14, -304.62, 0.00 +57, 8.20, -290.56, 0.00 +58, 7.08, -309.37, 0.00 +59, 6.52, -377.30, 0.00 +60, 4.92, -431.39, 0.00 +61, 2.29, -437.47, 0.00 +62, -0.53, -427.92, 0.00 +63, -3.33, -415.08, 0.00 +64, -6.10, -403.02, 0.00 +65, -8.77, -387.96, 0.00 +66, -11.43, -375.49, 0.00 +67, -13.89, -358.97, 0.00 +68, -16.29, -344.21, 0.00 +69, -18.44, -326.73, 0.00 +70, -20.60, -311.98, 0.00 +71, -22.14, -290.79, 0.00 +72, -23.87, -274.86, 0.00 +73, -24.70, -251.68, 0.00 +74, -25.74, -233.74, 0.00 +75, -26.19, -213.08, 0.00 +76, -26.25, -192.28, 0.00 +77, -26.79, -177.30, 0.00 +78, -26.15, -156.81, 0.00 +79, -25.69, -139.81, 0.00 +80, -23.81, -117.77, 0.00 +81, -22.70, -102.13, 0.00 +82, -19.68, -80.52, 0.00 +83, -13.83, -51.42, 0.00 +84, -9.73, -32.80, 0.00 +85, -3.72, -11.35, 0.00 +86, 3.57, 9.84, 0.00 +87, 13.64, 33.73, 0.00 +88, 14.81, 32.69, 0.00 +89, 19.31, 37.76, 0.00 +90, 26.59, 45.61, 0.00 +91, 54.59, 81.15, 0.00 +92, 61.48, 77.85, 0.00 +93, 80.89, 85.29, 0.00 +94, 95.46, 81.09, 0.00 +95, 167.62, 109.18, 0.00 +96, 181.85, 83.35, 0.00 +97, 229.42, 62.09, 0.00 +98, 107.00, 14.36, 0.00 +99, 110.56, -0.00, 0.00 +100, 160.54, -21.54, 0.00 +101, 158.23, -42.83, 0.00 +102, 123.70, -56.70, 0.00 +103, 69.54, -45.30, 0.00 +104, 63.32, -53.79, 0.00 +105, 33.87, -35.72, 0.00 +106, 1.63, -2.06, 0.00 +107, -4.97, 7.39, 0.00 +108, -22.53, 38.66, 0.00 +109, -31.48, 61.57, 0.00 +110, -38.84, 85.73, 0.00 +111, -39.54, 97.76, 0.00 +112, -41.11, 113.18, 0.00 +113, -45.40, 138.59, 0.00 +114, -48.21, 162.60, 0.00 +115, -50.15, 186.45, 0.00 +116, -51.10, 209.06, 0.00 +117, -52.10, 234.42, 0.00 +118, -52.15, 257.98, 0.00 +119, -51.87, 282.32, 0.00 +120, -50.94, 305.45, 0.00 +121, -49.71, 328.98, 0.00 +122, -48.26, 353.54, 0.00 +123, -46.53, 378.59, 0.00 +124, -44.36, 402.83, 0.00 +125, -41.89, 426.89, 0.00 +126, -39.12, 450.47, 0.00 +127, -36.00, 472.81, 0.00 +128, -32.66, 494.65, 0.00 +129, -29.09, 515.33, 0.00 +130, -25.39, 536.37, 0.00 +131, -21.54, 556.80, 0.00 +132, -17.55, 576.45, 0.00 +133, -13.46, 595.31, 0.00 +134, -9.29, 613.80, 0.00 +135, -5.06, 631.12, 0.00 +136, -0.80, 648.19, 0.00 +137, 3.47, 663.59, 0.00 +138, 7.73, 678.32, 0.00 +139, 11.96, 692.42, 0.00 +140, 16.14, 705.78, 0.00 +141, 20.25, 717.74, 0.00 +142, 24.26, 728.69, 0.00 +143, 28.19, 739.06, 0.00 +144, 31.99, 747.91, 0.00 +145, 35.62, 755.06, 0.00 +146, 39.14, 761.82, 0.00 +147, 42.53, 768.05, 0.00 +148, 45.75, 772.99, 0.00 +149, 48.91, 778.40, 0.00 +150, 51.71, 779.86, 0.00 +151, 54.03, 776.05, 0.00 +152, 56.28, 773.10, 0.00 +153, 58.38, 769.86, 0.00 +154, 61.98, 787.20, 0.00 +155, 64.09, 786.07, 0.00 +156, 66.67, 791.77, 0.00 +157, 52.82, 608.62, 0.00 +158, 5.31, 59.44, 0.00 +159, -15.53, -169.46, 0.00 +160, -4.44, -47.26, 0.00 +161, 3.79, 39.41, 0.00 +162, 7.00, 71.16, 0.00 +163, 3.42, 33.99, 0.00 +164, 2.69, 26.18, 0.00 +165, -0.19, -1.79, 0.00 +166, -0.79, -7.38, 0.00 +167, -0.72, -6.67, 0.00 +168, -1.02, -9.29, 0.00 +169, -1.46, -13.04, 0.00 +170, -1.89, -16.59, 0.00 +171, -2.57, -22.21, 0.00 +172, -3.11, -26.44, 0.00 +173, -3.77, -31.62, 0.00 +174, -4.23, -35.02, 0.00 +175, -5.09, -41.57, 0.00 +176, -5.74, -46.25, 0.00 +177, -6.51, -51.82, 0.00 +178, -7.08, -55.65, 0.00 +179, -7.65, -59.46, 0.00 +180, -8.12, -62.39, 0.00 +181, -8.63, -65.59, 0.00 +182, -8.99, -67.65, 0.00 +183, -9.37, -69.80, 0.00 +184, -9.61, -70.92, 0.00 +185, -9.84, -72.03, 0.00 +186, -9.84, -71.43, 0.00 +187, -10.03, -72.22, 0.00 +188, -10.02, -71.68, 0.00 +189, -9.85, -69.96, 0.00 +190, -9.57, -67.57, 0.00 +191, -9.14, -64.18, 0.00 +192, -8.62, -60.27, 0.00 +193, -8.01, -55.75, 0.00 +194, -7.28, -50.54, 0.00 +195, -6.41, -44.35, 0.00 +196, -5.40, -37.24, 0.00 +197, -4.25, -29.31, 0.00 +198, -2.90, -19.98, 0.00 diff --git a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref index 1e7ab436b72a..968e1c570c4f 100644 --- a/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref +++ b/TestCases/py_wrapper/updated_moving_frame_NACA12/forces_0.csv.ref @@ -1,200 +1,200 @@ -199, -0.92, -0.00, 0.00 -0, -2.82, 19.44, 0.00 -1, -3.96, 27.26, 0.00 -2, -4.94, 34.13, 0.00 -3, -5.83, 40.30, 0.00 -4, -6.56, 45.50, 0.00 -5, -7.20, 50.13, 0.00 -6, -7.69, 53.74, 0.00 -7, -8.11, 56.96, 0.00 -8, -8.36, 59.03, 0.00 -9, -8.58, 60.93, 0.00 -10, -8.62, 61.61, 0.00 -11, -8.64, 62.26, 0.00 -12, -8.50, 61.68, 0.00 -13, -8.38, 61.34, 0.00 -14, -8.07, 59.56, 0.00 -15, -7.78, 57.97, 0.00 -16, -7.34, 55.18, 0.00 -17, -6.93, 52.67, 0.00 -18, -6.35, 48.76, 0.00 -19, -5.80, 45.05, 0.00 -20, -5.13, 40.31, 0.00 -21, -4.50, 35.79, 0.00 -22, -3.74, 30.16, 0.00 -23, -2.98, 24.34, 0.00 -24, -2.17, 17.93, 0.00 -25, -1.32, 11.04, 0.00 -26, -0.49, 4.21, 0.00 -27, 0.41, -3.51, 0.00 -28, 1.27, -11.10, 0.00 -29, 2.10, -18.72, 0.00 -30, 2.92, -26.44, 0.00 -31, 3.77, -34.73, 0.00 -32, 4.60, -43.16, 0.00 -33, 5.42, -51.86, 0.00 -34, 6.20, -60.46, 0.00 -35, 6.96, -69.21, 0.00 -36, 7.70, -78.27, 0.00 -37, 8.36, -86.87, 0.00 -38, 9.02, -96.02, 0.00 -39, 9.56, -104.28, 0.00 -40, 10.12, -113.40, 0.00 -41, 10.55, -121.56, 0.00 -42, 10.95, -130.05, 0.00 -43, 11.05, -135.56, 0.00 -44, 11.34, -144.01, 0.00 -45, 11.40, -150.32, 0.00 -46, 11.65, -160.10, 0.00 -47, 12.24, -175.82, 0.00 -48, 11.59, -174.80, 0.00 -49, 10.49, -166.97, 0.00 -50, 8.68, -146.70, 0.00 -51, 4.59, -82.88, 0.00 -52, 7.31, -142.21, 0.00 -53, 21.25, -450.45, 0.00 -54, 25.14, -587.71, 0.00 -55, 21.48, -563.18, 0.00 -56, 17.96, -539.23, 0.00 -57, 15.76, -558.72, 0.00 -58, 12.71, -555.72, 0.00 -59, 9.40, -544.46, 0.00 -60, 6.08, -533.76, 0.00 -61, 2.72, -520.75, 0.00 -62, -0.63, -508.27, 0.00 -63, -3.95, -492.77, 0.00 -64, -7.24, -478.52, 0.00 -65, -10.39, -459.48, 0.00 -66, -13.50, -443.36, 0.00 -67, -16.41, -424.23, 0.00 -68, -19.24, -406.47, 0.00 -69, -21.77, -385.65, 0.00 -70, -24.22, -366.85, 0.00 -71, -26.21, -344.18, 0.00 -72, -28.12, -323.80, 0.00 -73, -29.28, -298.39, 0.00 -74, -30.70, -278.72, 0.00 -75, -31.20, -253.86, 0.00 -76, -31.79, -232.87, 0.00 -77, -31.78, -210.36, 0.00 -78, -31.81, -190.72, 0.00 -79, -29.96, -163.09, 0.00 -80, -28.81, -142.51, 0.00 -81, -25.70, -115.63, 0.00 -82, -23.36, -95.56, 0.00 -83, -17.92, -66.64, 0.00 -84, -15.19, -51.24, 0.00 -85, -4.65, -14.18, 0.00 -86, -0.26, -0.71, 0.00 -87, 9.41, 23.25, 0.00 -88, 14.47, 31.93, 0.00 -89, 23.43, 45.83, 0.00 -90, 37.69, 64.67, 0.00 -91, 42.67, 63.43, 0.00 -92, 56.09, 71.03, 0.00 -93, 53.23, 56.12, 0.00 -94, 77.35, 65.70, 0.00 -95, 42.42, 27.63, 0.00 -96, 10.74, 4.92, 0.00 -97, 47.56, 12.87, 0.00 -98, 75.03, 10.07, 0.00 -99, 0.36, -0.00, 0.00 -100, 97.48, -13.08, 0.00 -101, 172.16, -46.60, 0.00 -102, 148.56, -68.09, 0.00 -103, 130.04, -84.70, 0.00 -104, 110.88, -94.19, 0.00 -105, 98.92, -104.31, 0.00 -106, 84.16, -106.58, 0.00 -107, 53.49, -79.51, 0.00 -108, 45.94, -78.83, 0.00 -109, 17.03, -33.31, 0.00 -110, 11.56, -25.52, 0.00 -111, -7.53, 18.62, 0.00 -112, -14.11, 38.85, 0.00 -113, -26.43, 80.67, 0.00 -114, -31.15, 105.06, 0.00 -115, -36.24, 134.73, 0.00 -116, -38.44, 157.29, 0.00 -117, -41.50, 186.70, 0.00 -118, -42.29, 209.23, 0.00 -119, -43.71, 237.89, 0.00 -120, -43.36, 259.97, 0.00 -121, -43.38, 287.09, 0.00 -122, -42.21, 309.23, 0.00 -123, -41.30, 336.04, 0.00 -124, -39.47, 358.43, 0.00 -125, -37.83, 385.46, 0.00 -126, -35.45, 408.28, 0.00 -127, -32.92, 432.34, 0.00 -128, -29.95, 453.52, 0.00 -129, -26.87, 476.13, 0.00 -130, -23.51, 496.73, 0.00 -131, -20.04, 517.96, 0.00 -132, -16.35, 536.89, 0.00 -133, -12.60, 557.35, 0.00 -134, -8.70, 574.79, 0.00 -135, -4.75, 592.92, 0.00 -136, -0.75, 609.08, 0.00 -137, 3.27, 625.75, 0.00 -138, 7.29, 639.56, 0.00 -139, 11.30, 654.52, 0.00 -140, 15.25, 666.62, 0.00 -141, 19.14, 678.33, 0.00 -142, 22.92, 688.27, 0.00 -143, 26.63, 698.04, 0.00 -144, 30.19, 705.88, 0.00 -145, 33.68, 713.98, 0.00 -146, 36.96, 719.54, 0.00 -147, 40.03, 723.00, 0.00 -148, 42.96, 725.82, 0.00 -149, 45.50, 724.25, 0.00 -150, 48.43, 730.47, 0.00 -151, 51.10, 733.97, 0.00 -152, 53.48, 734.72, 0.00 -153, 39.59, 522.09, 0.00 -154, -0.60, -7.66, 0.00 -155, -3.05, -37.45, 0.00 -156, 5.42, 64.40, 0.00 -157, 6.68, 76.94, 0.00 -158, 6.61, 74.08, 0.00 -159, 5.30, 57.82, 0.00 -160, 5.37, 57.13, 0.00 -161, 4.93, 51.25, 0.00 -162, 4.64, 47.15, 0.00 -163, 4.21, 41.93, 0.00 -164, 3.81, 37.17, 0.00 -165, 3.32, 31.75, 0.00 -166, 2.81, 26.41, 0.00 -167, 2.22, 20.44, 0.00 -168, 1.62, 14.65, 0.00 -169, 0.93, 8.33, 0.00 -170, 0.25, 2.23, 0.00 -171, -0.51, -4.42, 0.00 -172, -1.24, -10.52, 0.00 -173, -1.95, -16.35, 0.00 -174, -2.66, -22.04, 0.00 -175, -3.38, -27.60, 0.00 -176, -4.10, -33.06, 0.00 -177, -4.70, -37.37, 0.00 -178, -5.35, -42.05, 0.00 -179, -5.86, -45.51, 0.00 -180, -6.43, -49.40, 0.00 -181, -6.84, -51.98, 0.00 -182, -7.31, -55.02, 0.00 -183, -7.65, -57.00, 0.00 -184, -8.01, -59.13, 0.00 -185, -8.18, -59.86, 0.00 -186, -8.41, -61.04, 0.00 -187, -8.44, -60.78, 0.00 -188, -8.49, -60.71, 0.00 -189, -8.38, -59.56, 0.00 -190, -8.23, -58.15, 0.00 -191, -7.93, -55.68, 0.00 -192, -7.56, -52.84, 0.00 -193, -7.02, -48.89, 0.00 -194, -6.43, -44.64, 0.00 -195, -5.67, -39.23, 0.00 -196, -4.82, -33.30, 0.00 -197, -3.83, -26.41, 0.00 -198, -2.73, -18.78, 0.00 +199, -0.93, -0.00, 0.00 +0, -2.82, 19.40, 0.00 +1, -3.92, 27.02, 0.00 +2, -4.88, 33.72, 0.00 +3, -5.72, 39.56, 0.00 +4, -6.44, 44.71, 0.00 +5, -7.02, 48.89, 0.00 +6, -7.51, 52.48, 0.00 +7, -7.87, 55.30, 0.00 +8, -8.13, 57.42, 0.00 +9, -8.30, 58.97, 0.00 +10, -8.36, 59.79, 0.00 +11, -8.37, 60.26, 0.00 +12, -8.25, 59.87, 0.00 +13, -8.09, 59.19, 0.00 +14, -7.81, 57.68, 0.00 +15, -7.51, 55.96, 0.00 +16, -7.11, 53.47, 0.00 +17, -6.69, 50.85, 0.00 +18, -6.18, 47.44, 0.00 +19, -5.71, 44.32, 0.00 +20, -5.09, 40.02, 0.00 +21, -4.57, 36.32, 0.00 +22, -3.89, 31.32, 0.00 +23, -3.31, 27.04, 0.00 +24, -2.58, 21.30, 0.00 +25, -1.98, 16.65, 0.00 +26, -1.21, 10.26, 0.00 +27, -0.62, 5.33, 0.00 +28, 0.18, -1.55, 0.00 +29, 0.67, -6.01, 0.00 +30, 1.52, -13.78, 0.00 +31, 2.01, -18.57, 0.00 +32, 2.90, -27.18, 0.00 +33, 3.42, -32.69, 0.00 +34, 4.40, -42.92, 0.00 +35, 5.17, -51.39, 0.00 +36, 6.18, -62.79, 0.00 +37, 7.12, -73.99, 0.00 +38, 8.09, -86.13, 0.00 +39, 9.14, -99.76, 0.00 +40, 9.97, -111.72, 0.00 +41, 11.14, -128.38, 0.00 +42, 11.88, -141.03, 0.00 +43, 12.85, -157.59, 0.00 +44, 13.21, -167.77, 0.00 +45, 13.77, -181.54, 0.00 +46, 13.74, -188.78, 0.00 +47, 13.65, -196.06, 0.00 +48, 13.29, -200.42, 0.00 +49, 13.44, -213.89, 0.00 +50, 13.22, -223.33, 0.00 +51, 11.93, -215.52, 0.00 +52, 7.52, -146.34, 0.00 +53, 8.42, -178.53, 0.00 +54, 20.41, -477.30, 0.00 +55, 22.27, -583.66, 0.00 +56, 18.81, -564.85, 0.00 +57, 15.35, -544.23, 0.00 +58, 12.24, -535.25, 0.00 +59, 9.08, -525.86, 0.00 +60, 5.87, -515.48, 0.00 +61, 2.63, -503.38, 0.00 +62, -0.61, -490.62, 0.00 +63, -3.81, -475.68, 0.00 +64, -6.98, -460.89, 0.00 +65, -10.04, -444.16, 0.00 +66, -13.02, -427.64, 0.00 +67, -15.86, -409.93, 0.00 +68, -18.56, -392.00, 0.00 +69, -21.06, -373.16, 0.00 +70, -23.39, -354.15, 0.00 +71, -25.40, -333.59, 0.00 +72, -27.20, -313.20, 0.00 +73, -28.67, -292.19, 0.00 +74, -29.86, -271.15, 0.00 +75, -30.55, -248.58, 0.00 +76, -30.89, -226.28, 0.00 +77, -30.79, -203.80, 0.00 +78, -30.34, -181.93, 0.00 +79, -29.53, -160.74, 0.00 +80, -28.13, -139.16, 0.00 +81, -26.90, -121.01, 0.00 +82, -24.39, -99.78, 0.00 +83, -21.49, -79.88, 0.00 +84, -17.59, -59.33, 0.00 +85, -13.17, -40.20, 0.00 +86, -7.32, -20.15, 0.00 +87, -1.81, -4.47, 0.00 +88, 6.92, 15.28, 0.00 +89, 14.29, 27.95, 0.00 +90, 32.10, 55.07, 0.00 +91, 49.31, 73.31, 0.00 +92, 88.81, 112.47, 0.00 +93, 124.48, 131.25, 0.00 +94, 123.67, 105.06, 0.00 +95, 104.62, 68.15, 0.00 +96, 72.18, 33.08, 0.00 +97, -25.27, -6.84, 0.00 +98, -25.34, -3.40, 0.00 +99, -17.47, 0.00, 0.00 +100, -28.57, 3.83, 0.00 +101, 50.08, -13.55, 0.00 +102, 82.69, -37.90, 0.00 +103, 88.30, -57.51, 0.00 +104, 82.75, -70.30, 0.00 +105, 58.48, -61.66, 0.00 +106, 55.42, -70.19, 0.00 +107, 43.78, -65.08, 0.00 +108, 33.72, -57.85, 0.00 +109, 21.75, -42.54, 0.00 +110, 9.57, -21.12, 0.00 +111, -3.75, 9.28, 0.00 +112, -12.82, 35.29, 0.00 +113, -22.12, 67.51, 0.00 +114, -28.06, 94.63, 0.00 +115, -31.07, 115.49, 0.00 +116, -33.29, 136.22, 0.00 +117, -36.82, 165.66, 0.00 +118, -38.04, 188.20, 0.00 +119, -39.49, 214.93, 0.00 +120, -39.62, 237.58, 0.00 +121, -40.07, 265.19, 0.00 +122, -39.70, 290.85, 0.00 +123, -38.90, 316.55, 0.00 +124, -37.45, 340.05, 0.00 +125, -35.61, 362.84, 0.00 +126, -33.56, 386.52, 0.00 +127, -31.16, 409.15, 0.00 +128, -28.44, 430.68, 0.00 +129, -25.51, 452.03, 0.00 +130, -22.43, 473.81, 0.00 +131, -19.12, 494.36, 0.00 +132, -15.65, 514.12, 0.00 +133, -12.07, 533.98, 0.00 +134, -8.37, 553.04, 0.00 +135, -4.58, 571.17, 0.00 +136, -0.73, 588.35, 0.00 +137, 3.16, 604.93, 0.00 +138, 7.06, 619.62, 0.00 +139, 10.96, 634.43, 0.00 +140, 14.81, 647.41, 0.00 +141, 18.61, 659.64, 0.00 +142, 22.31, 670.10, 0.00 +143, 25.96, 680.56, 0.00 +144, 29.46, 688.92, 0.00 +145, 32.90, 697.36, 0.00 +146, 36.16, 703.92, 0.00 +147, 39.34, 710.52, 0.00 +148, 42.21, 713.11, 0.00 +149, 44.50, 708.22, 0.00 +150, 46.80, 705.83, 0.00 +151, 49.96, 717.59, 0.00 +152, 55.47, 762.02, 0.00 +153, 36.27, 478.33, 0.00 +154, 6.21, 78.85, 0.00 +155, 2.62, 32.19, 0.00 +156, 1.80, 21.41, 0.00 +157, 1.03, 11.88, 0.00 +158, 1.62, 18.17, 0.00 +159, 2.87, 31.36, 0.00 +160, 2.92, 31.05, 0.00 +161, 2.95, 30.70, 0.00 +162, 2.68, 27.25, 0.00 +163, 2.40, 23.87, 0.00 +164, 1.89, 18.41, 0.00 +165, 1.53, 14.66, 0.00 +166, 0.94, 8.84, 0.00 +167, 0.55, 5.06, 0.00 +168, -0.07, -0.67, 0.00 +169, -0.54, -4.82, 0.00 +170, -1.20, -10.56, 0.00 +171, -1.65, -14.27, 0.00 +172, -2.29, -19.51, 0.00 +173, -2.87, -24.03, 0.00 +174, -3.55, -29.33, 0.00 +175, -4.13, -33.67, 0.00 +176, -4.77, -38.40, 0.00 +177, -5.25, -41.76, 0.00 +178, -5.83, -45.79, 0.00 +179, -6.32, -49.11, 0.00 +180, -6.83, -52.48, 0.00 +181, -7.26, -55.15, 0.00 +182, -7.68, -57.75, 0.00 +183, -8.01, -59.70, 0.00 +184, -8.32, -61.43, 0.00 +185, -8.51, -62.24, 0.00 +186, -8.65, -62.80, 0.00 +187, -8.70, -62.69, 0.00 +188, -8.69, -62.14, 0.00 +189, -8.56, -60.80, 0.00 +190, -8.37, -59.08, 0.00 +191, -8.05, -56.54, 0.00 +192, -7.65, -53.45, 0.00 +193, -7.11, -49.48, 0.00 +194, -6.49, -45.03, 0.00 +195, -5.72, -39.59, 0.00 +196, -4.85, -33.47, 0.00 +197, -3.86, -26.60, 0.00 +198, -2.72, -18.72, 0.00 diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 9d7c6b857b14..7faa5792ab12 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -198,7 +198,7 @@ def main(): poiseuille_profile.cfg_dir = "navierstokes/poiseuille" poiseuille_profile.cfg_file = "profile_poiseuille.cfg" poiseuille_profile.test_iter = 10 - poiseuille_profile.test_vals = [-12.004412, -7.544478, -0.000000, 2.089953] + poiseuille_profile.test_vals = [-12.004416, -7.543897, -0.000000, 2.089953] poiseuille_profile.test_vals_aarch64 = [-12.009012, -7.262299, -0.000000, 2.089953] #last 4 columns test_list.append(poiseuille_profile) @@ -283,7 +283,7 @@ def main(): turb_naca0012_sa.cfg_dir = "rans/naca0012" turb_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" turb_naca0012_sa.test_iter = 5 - turb_naca0012_sa.test_vals = [-12.037240, -16.384159, 1.080346, 0.018385, 20, -3.455187, 20, -4.641267, 0] + turb_naca0012_sa.test_vals = [-12.037342, -16.384159, 1.080346, 0.018385, 20, -3.455793, 20, -4.641247, 0] turb_naca0012_sa.test_vals_aarch64 = [-12.037297, -16.384158, 1.080346, 0.018385, 20.000000, -3.455886, 20.000000, -4.641247, 0.000000] turb_naca0012_sa.timeout = 3200 test_list.append(turb_naca0012_sa) @@ -293,7 +293,7 @@ def main(): turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 - turb_naca0012_sst.test_vals = [-12.094475, -15.251083, -5.906366, 1.070413, 0.015775, -3.178930, 0] + turb_naca0012_sst.test_vals = [-12.094382, -15.251082, -5.906366, 1.070413, 0.015775, -3.178797, 0] turb_naca0012_sst.test_vals_aarch64 = [-12.076068, -15.246740, -5.861280, 1.070036, 0.015841, -3.297854, 0.000000] turb_naca0012_sst.timeout = 3200 test_list.append(turb_naca0012_sst) @@ -312,7 +312,7 @@ def main(): turb_naca0012_sst_sust_restart.cfg_dir = "rans/naca0012" turb_naca0012_sst_sust_restart.cfg_file = "turb_NACA0012_sst_sust.cfg" turb_naca0012_sst_sust_restart.test_iter = 10 - turb_naca0012_sst_sust_restart.test_vals = [-12.080392, -14.837169, -5.733461, 1.000893, 0.019109, -2.634226] + turb_naca0012_sst_sust_restart.test_vals = [-12.080556, -14.837169, -5.733461, 1.000893, 0.019109, -2.633984] turb_naca0012_sst_sust_restart.test_vals_aarch64 = [-12.074189, -14.836725, -5.732398, 1.000050, 0.019144, -3.315560] turb_naca0012_sst_sust_restart.timeout = 3200 test_list.append(turb_naca0012_sst_sust_restart) @@ -686,7 +686,7 @@ def main(): turb_naca0012_1c.cfg_dir = "rans_uq/naca0012" turb_naca0012_1c.cfg_file = "turb_NACA0012_uq_1c.cfg" turb_naca0012_1c.test_iter = 10 - turb_naca0012_1c.test_vals = [-4.979967, 1.343850, 0.597508, 0.017311] + turb_naca0012_1c.test_vals = [-4.981677, 1.343534, 0.597773, 0.017412] turb_naca0012_1c.test_vals_aarch64 = [-4.992791, 1.342873, 0.557941, 0.003269] test_list.append(turb_naca0012_1c) @@ -695,7 +695,7 @@ def main(): turb_naca0012_2c.cfg_dir = "rans_uq/naca0012" turb_naca0012_2c.cfg_file = "turb_NACA0012_uq_2c.cfg" turb_naca0012_2c.test_iter = 10 - turb_naca0012_2c.test_vals = [-5.482898, 1.261918, 0.440874, -0.029636] + turb_naca0012_2c.test_vals = [-5.482890, 1.261920, 0.441122, -0.029557] test_list.append(turb_naca0012_2c) # NACA0012 3c @@ -711,7 +711,7 @@ def main(): turb_naca0012_p1c1.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c1.cfg_file = "turb_NACA0012_uq_p1c1.cfg" turb_naca0012_p1c1.test_iter = 10 - turb_naca0012_p1c1.test_vals = [-5.127708, 1.284871, 0.779462, 0.086168] + turb_naca0012_p1c1.test_vals = [-5.127673, 1.284889, 0.779305, 0.086111] turb_naca0012_p1c1.test_vals_aarch64 = [-5.119942, 1.283920, 0.486264, -0.021518] test_list.append(turb_naca0012_p1c1) @@ -720,7 +720,7 @@ def main(): turb_naca0012_p1c2.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c2.cfg_file = "turb_NACA0012_uq_p1c2.cfg" turb_naca0012_p1c2.test_iter = 10 - turb_naca0012_p1c2.test_vals = [-5.554059, 1.235065, 0.521498, -0.004382] + turb_naca0012_p1c2.test_vals = [-5.553903, 1.235087, 0.521251, -0.004471] test_list.append(turb_naca0012_p1c2) ###################################### @@ -945,7 +945,7 @@ def main(): uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 2 - uniform_flow.test_vals = [2.000000, 0.000000, -0.230641, -13.250662] + uniform_flow.test_vals = [2.000000, 0.000000, -0.230641, -13.250620] uniform_flow.test_vals_aarch64 = [2.000000, 0.000000, -0.230641, -13.249000] uniform_flow.tol = 0.000001 uniform_flow.unsteady = True @@ -1565,7 +1565,7 @@ def main(): pywrapper_turb_naca0012_sst.cfg_dir = "rans/naca0012" pywrapper_turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" pywrapper_turb_naca0012_sst.test_iter = 10 - pywrapper_turb_naca0012_sst.test_vals = [-12.094475, -15.251083, -5.906366, 1.070413, 0.015775, -3.178930, 0] + pywrapper_turb_naca0012_sst.test_vals = [-12.094382, -15.251082, -5.906366, 1.070413, 0.015775, -3.178797, 0] pywrapper_turb_naca0012_sst.test_vals_aarch64 = [-12.076068, -15.246740, -5.861280, 1.070036, 0.015841, -3.297854, 0.000000] pywrapper_turb_naca0012_sst.command = TestCase.Command(exec = "SU2_CFD.py", param = "-f") pywrapper_turb_naca0012_sst.timeout = 3200 diff --git a/TestCases/serial_regression_AD.py b/TestCases/serial_regression_AD.py index f673baabd18b..c8962aa3a189 100644 --- a/TestCases/serial_regression_AD.py +++ b/TestCases/serial_regression_AD.py @@ -206,7 +206,7 @@ def main(): discadj_fsi.cfg_dir = "disc_adj_fsi" discadj_fsi.cfg_file = "config.cfg" discadj_fsi.test_iter = 6 - discadj_fsi.test_vals = [6, -8.929655, -10.097091, 3.0939e-11, -1.7573e-06] + discadj_fsi.test_vals = [6, -8.928909, -10.114567, 3.0938e-11, -1.7573e-06] discadj_fsi.test_vals_aarch64 = [6, -8.928820, -10.067497, 3.0979e-11, -1.7585e-06] test_list.append(discadj_fsi) diff --git a/TestCases/tutorials.py b/TestCases/tutorials.py index bef1f3c1fdeb..32fdfc7d41f5 100644 --- a/TestCases/tutorials.py +++ b/TestCases/tutorials.py @@ -237,7 +237,7 @@ def main(): tutorial_trans_flatplate_T3A.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A" tutorial_trans_flatplate_T3A.cfg_file = "transitional_LM_model_ConfigFile.cfg" tutorial_trans_flatplate_T3A.test_iter = 20 - tutorial_trans_flatplate_T3A.test_vals = [-5.790137, -2.054834, -3.894661, -0.255074, -1.747007, 5.119341, -3.493237, 0.393262] + tutorial_trans_flatplate_T3A.test_vals = [-5.790137, -2.054834, -3.894661, -0.255075, -1.747052, 5.119341, -3.493237, 0.393262] tutorial_trans_flatplate_T3A.test_vals_aarch64 = [-5.808996, -2.070606, -3.969765, -0.277943, -1.953289, 1.708472, -3.514943, 0.357411] tutorial_trans_flatplate_T3A.no_restart = True test_list.append(tutorial_trans_flatplate_T3A) @@ -247,7 +247,7 @@ def main(): tutorial_trans_flatplate_T3Am.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate/Langtry_and_Menter/T3A-" tutorial_trans_flatplate_T3Am.cfg_file = "transitional_LM_model_ConfigFile.cfg" tutorial_trans_flatplate_T3Am.test_iter = 20 - tutorial_trans_flatplate_T3Am.test_vals = [-5.591088, -1.700867, -3.100341, -0.106090, -3.750523, 3.287643, -2.394576, 1.119623] + tutorial_trans_flatplate_T3Am.test_vals = [-5.590179, -1.700867, -3.098472, -0.105296, -3.750523, 3.287643, -2.394576, 1.119623] tutorial_trans_flatplate_T3Am.test_vals_aarch64 = [-5.540938, -1.681627, -2.878831, -0.058224, -3.695533, 3.413628, -2.385345, 1.103633] tutorial_trans_flatplate_T3Am.no_restart = True test_list.append(tutorial_trans_flatplate_T3Am) @@ -302,7 +302,7 @@ def main(): tutorial_unst_naca0012.cfg_dir = "../Tutorials/compressible_flow/Unsteady_NACA0012" tutorial_unst_naca0012.cfg_file = "unsteady_naca0012.cfg" tutorial_unst_naca0012.test_iter = 520 - tutorial_unst_naca0012.test_vals = [520, 0, -5.293168, 0, 0.301651, 0.772998, 0.002171, 0.012763] + tutorial_unst_naca0012.test_vals = [520, 0, -5.298841, 0, 0.307206, 0.773318, 0.002447, 0.014242] tutorial_unst_naca0012.test_vals_aarch64 = [520, 0, -5.292359, 0, 0.284720, 0.766329, 0.000954, 0.007565] tutorial_unst_naca0012.unsteady = True test_list.append(tutorial_unst_naca0012) diff --git a/TestCases/vandv.py b/TestCases/vandv.py index ea6855b661d0..0236cd5ec953 100644 --- a/TestCases/vandv.py +++ b/TestCases/vandv.py @@ -63,7 +63,7 @@ def main(): flatplate_sst1994m.cfg_dir = "vandv/rans/flatplate" flatplate_sst1994m.cfg_file = "turb_flatplate_sst.cfg" flatplate_sst1994m.test_iter = 5 - flatplate_sst1994m.test_vals = [-13.040613, -10.136941, -10.940824, -7.982363, -10.323879, -4.732619, 0.002801] + flatplate_sst1994m.test_vals = [-13.040446, -10.136636, -10.945108, -7.983081, -10.323877, -4.733046, 0.002801] flatplate_sst1994m.test_vals_aarch64 = [-13.021715, -9.534786, -10.401912, -7.501836, -9.750800, -4.850665, 0.002807] test_list.append(flatplate_sst1994m) @@ -72,7 +72,7 @@ def main(): bump_sst1994m.cfg_dir = "vandv/rans/bump_in_channel" bump_sst1994m.cfg_file = "turb_bump_sst.cfg" bump_sst1994m.test_iter = 5 - bump_sst1994m.test_vals = [-11.928363, -10.095978, -9.513649, -6.445700, -11.773659, -6.990340, 0.004931] + bump_sst1994m.test_vals = [-11.928190, -10.095673, -9.512453, -6.445471, -11.773665, -6.998333, 0.004931] bump_sst1994m.test_vals_aarch64 = [-13.042689, -10.812982, -10.604523, -7.655547, -10.816257, -5.308083, 0.004911] test_list.append(bump_sst1994m) @@ -99,7 +99,7 @@ def main(): dsma661_sa.cfg_dir = "vandv/rans/dsma661" dsma661_sa.cfg_file = "dsma661_sa_config.cfg" dsma661_sa.test_iter = 5 - dsma661_sa.test_vals = [-11.230865, -8.242970, -8.982056, -5.877960, -10.737687, 0.155687, 0.024232] + dsma661_sa.test_vals = [-11.266227, -8.243175, -9.037538, -5.941643, -10.737679, 0.155687, 0.024232] dsma661_sa.test_vals_aarch64 = [-11.293183, -8.241775, -9.083761, -6.011398, -10.737680, 0.155687, 0.024232] test_list.append(dsma661_sa) @@ -108,7 +108,7 @@ def main(): dsma661_sst.cfg_dir = "vandv/rans/dsma661" dsma661_sst.cfg_file = "dsma661_sst_config.cfg" dsma661_sst.test_iter = 5 - dsma661_sst.test_vals = [-11.017110, -8.156868, -9.048400, -5.895204, -10.649930, -7.839740, 0.155882, 0.023344] + dsma661_sst.test_vals = [-11.020377, -8.157152, -8.998182, -5.917729, -10.650155, -7.856100, 0.155882, 0.023344] dsma661_sst.test_vals_aarch64 = [-10.977195, -8.403731, -8.747068, -5.808899, -10.522786, -7.369851, 0.155875, 0.023353] test_list.append(dsma661_sst)