From 32d7f01872ce1a45f5cab078cfbf32b9c0d8ffb1 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Mon, 16 Oct 2023 11:05:01 +0200 Subject: [PATCH] StabilizationUtils: remove pointless bool return values use return values instead of out-params --- Apps/Common/StabilizationUtils.C | 51 +++++++++++------------ Apps/Common/StabilizationUtils.h | 31 ++++++-------- Apps/Common/Test/TestStabilizationUtils.C | 4 +- 3 files changed, 39 insertions(+), 47 deletions(-) diff --git a/Apps/Common/StabilizationUtils.C b/Apps/Common/StabilizationUtils.C index 82a9cc08..d6ee94fc 100644 --- a/Apps/Common/StabilizationUtils.C +++ b/Apps/Common/StabilizationUtils.C @@ -43,51 +43,48 @@ double getTauPt (double dt, double mu, const Vector& U, { double Gnorm2 = G.norm2(); Gnorm2 *= Gnorm2; - return 1.0/ sqrt(Ct/pow(dt,2) + U.dot(G*U) + Cl*mu*mu*Gnorm2); + return 1.0 / sqrt(Ct/pow(dt,2) + U.dot(G*U) + Cl*mu*mu*Gnorm2); } -bool getTauNSPt (double dt, double mu, const Vector& U, - const Matrix& G, double &tauM, double& tauC, - const double Ct, const double Cl) +std::pair +getTauNSPt (double dt, double mu, const Vector& U, + const Matrix& G, const double Ct, const double Cl) { - tauM = getTauPt(dt,mu,U,G,Ct,Cl); - tauC = 1.0/(tauM*G.trace()); - return true; + double tauM = getTauPt(dt,mu,U,G,Ct,Cl); + double tauC = 1.0 / (tauM*G.trace()); + + return {tauM, tauC}; } -bool getTauNSALEPt (double dt, double mu, const Vector& U, - const Matrix& G, double & tauM, double& tauC, - const double Ct, const double Cl) +std::pair +getTauNSALEPt (double dt, double mu, const Vector& U, + const Matrix& G, + const double Ct, const double Cl) { - tauM = getTauPt(dt,mu,U,G,Ct,Cl); + double tauM = getTauPt(dt,mu,U,G,Ct,Cl); + double tauC = tauM*(U.dot(U)); - tauC = tauM*(U.dot(U)); - - return true; + return {tauM, tauC}; } -bool getTauPtJac (const Vector& U, const Matrix& G, - const double tauM, Vector& tauMjac) +Vector getTauPtJac (const Vector& U, const Matrix& G, + const double tauM) { - tauMjac = -pow(tauM,3)*G*U; - - return true; + return -pow(tauM,3)*G*U; } -bool getTauNSPtJac (const Vector& U, const Matrix& G, - const double tauM, const double& tauC, - Vector& tauMjac, Vector& tauCjac) +std::pair +getTauNSPtJac (const Vector& U, const Matrix& G, + const double tauM, const double& tauC) { - if (!getTauPtJac(U, G, tauM, tauMjac)) - return false; + Vector tauMjac = getTauPtJac(U, G, tauM); + Vector tauCjac = (-tauC/tauM) * tauMjac; - tauCjac = (-tauC/tauM) * tauMjac; - - return true; + return {tauMjac, tauCjac}; } } diff --git a/Apps/Common/StabilizationUtils.h b/Apps/Common/StabilizationUtils.h index 188003ba..99ed33be 100644 --- a/Apps/Common/StabilizationUtils.h +++ b/Apps/Common/StabilizationUtils.h @@ -40,45 +40,40 @@ namespace StabilizationUtils { //! \param[in] mu Diffusion/viscosity parameter //! \param[in] U Velocity vector //! \param[in] G The G matrix - //! \param[out] tauM Stabilization parameter for momentum - //! \param[out] tauC Stabilization parameter for continuity //! \param[in] Ct VMS parameter //! \param[in] Cl VMS parameter - //! \details Stabilization parameters in integration point - bool getTauNSPt(double dt, double mu, const Vector& U, const Matrix& G, - double& tauM, double& tauC, - const double Ct = 2.0, const double Cl = 36.0); + //! \return Stabilization parameters in integration point + std::pair + getTauNSPt(double dt, double mu, const Vector& U, const Matrix& G, + const double Ct = 2.0, const double Cl = 36.0); //! \brief Computes stabilization parameters for Navier-Stokes equations. //! \param[in] dt The timestep size //! \param[in] mu Diffusion/viscosity parameter //! \param[in] U Velocity vector //! \param[in] G The G matrix - //! \param[out] tauM Stabilization parameter for momentum - //! \param[out] tauC Stabilization parameter for continuity //! \param[in] Ct VMS parameter //! \param[in] Cl VMS parameter - //! \details Stabilization parameters in integration point - bool getTauNSALEPt(double dt, double mu, const Vector& U, const Matrix& G, - double& tauM, double& tauC, - const double Ct = 2.0, const double Cl = 36.0); + //! \return Stabilization parameters in integration point + std::pair + getTauNSALEPt(double dt, double mu, const Vector& U, const Matrix& G, + const double Ct = 2.0, const double Cl = 36.0); //! \brief Computes variation of stability parameters with respect to velocity. //! \param[in] U Velocity vector //! \param[in] G The G matrix //! \param[in] tauM Stabilization parameter for momentum - //! \param[out] tauMjac Variation of tauM with respect to U - bool getTauPtJac(const Vector& U, const Matrix& G, const double tauM, Vector& tauMjac); + Vector getTauPtJac(const Vector& U, const Matrix& G, + const double tauM); //! \brief Computes variation of stability parameters with respect to velocity. //! \param[in] U Velocity vector //! \param[in] G The G matrix //! \param[in] tauM Stabilization parameter for momentum //! \param[in] tauC Stabilization parameter for continuity - //! \param[out] tauMjac Variation of tauM with respect to U - //! \param[out] tauCjac Variation of tauC with respect to U - bool getTauNSPtJac(const Vector& U, const Matrix& G, const double tauM, - const double& tauC, Vector& tauMjac, Vector& tauCjac); + std::pair + getTauNSPtJac(const Vector& U, const Matrix& G, + const double tauM, const double& tauC); } #endif diff --git a/Apps/Common/Test/TestStabilizationUtils.C b/Apps/Common/Test/TestStabilizationUtils.C index d2af1a02..32de1bdc 100644 --- a/Apps/Common/Test/TestStabilizationUtils.C +++ b/Apps/Common/Test/TestStabilizationUtils.C @@ -67,7 +67,7 @@ TEST(TestStabilizationUtils, GetTauNSPt) utl::getGmat(J, &du[0], G); double tauM, tauC; - ASSERT_TRUE(StabilizationUtils::getTauNSPt(0.1, 0.3, U, G, tauM, tauC)); + std::tie(tauM,tauC) = StabilizationUtils::getTauNSPt(0.1, 0.3, U, G); ASSERT_FLOAT_EQ(tauM, 0.016634906); ASSERT_FLOAT_EQ(tauC, 1.87858); } @@ -85,7 +85,7 @@ TEST(TestStabilizationUtils, GetTauNSALEPt) utl::getGmat(J, &du[0], G); double tauM, tauC; - ASSERT_TRUE(StabilizationUtils::getTauNSALEPt(0.1, 0.3, U, G, tauM, tauC)); + std::tie(tauM,tauC) = StabilizationUtils::getTauNSALEPt(0.1, 0.3, U, G); ASSERT_FLOAT_EQ(tauM, 0.016634906); ASSERT_FLOAT_EQ(tauC, 0.049904719); }