From 52a59b99bd0c590668e50c0763e5401efdb37b0b Mon Sep 17 00:00:00 2001 From: maxime <roussel.maxime012@gmail.com> Date: Wed, 28 Aug 2024 16:07:12 +0200 Subject: [PATCH] essaie rate de CFL o2 --- src/language/modules/SchemeModule.cpp | 9 +++++---- src/scheme/ImplicitAcousticO2SolverModified.cpp | 13 +++++++++---- src/scheme/ImplicitAcousticO2SolverModified.hpp | 3 ++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/language/modules/SchemeModule.cpp b/src/language/modules/SchemeModule.cpp index db42fb35f..504033a1f 100644 --- a/src/language/modules/SchemeModule.cpp +++ b/src/language/modules/SchemeModule.cpp @@ -635,10 +635,11 @@ SchemeModule::SchemeModule() const std::shared_ptr<const DiscreteFunctionVariant>& entropy, const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list, - const double& dt) -> std::tuple<std::shared_ptr<const MeshVariant>, - std::shared_ptr<const DiscreteFunctionVariant>, - std::shared_ptr<const DiscreteFunctionVariant>, - std::shared_ptr<const DiscreteFunctionVariant>> { + const double& dt) + -> std::tuple< + std::shared_ptr<const MeshVariant>, std::shared_ptr<const DiscreteFunctionVariant>, + std::shared_ptr<const DiscreteFunctionVariant>, + std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const double>> { return ImplicitAcousticO2SolverHandlerModified{ImplicitAcousticO2SolverHandlerModified:: SolverType::Glace2States, rho, diff --git a/src/scheme/ImplicitAcousticO2SolverModified.cpp b/src/scheme/ImplicitAcousticO2SolverModified.cpp index 113c860ff..c1674e2ac 100644 --- a/src/scheme/ImplicitAcousticO2SolverModified.cpp +++ b/src/scheme/ImplicitAcousticO2SolverModified.cpp @@ -1626,10 +1626,12 @@ class ImplicitAcousticO2SolverHandlerModified::ImplicitAcousticO2Solver final } public: + double dt_f = 0; std::tuple<std::shared_ptr<const MeshVariant>, std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>, - std::shared_ptr<const DiscreteFunctionVariant>> + std::shared_ptr<const DiscreteFunctionVariant>, + std::shared_ptr<const double>> apply(const double& dt, const std::shared_ptr<const MeshType>& mesh, const DiscreteScalarFunction& rho, @@ -1954,7 +1956,8 @@ class ImplicitAcousticO2SolverHandlerModified::ImplicitAcousticO2Solver final if (minder) { throw NormalError("Negative volume"); }; - CFL = true; + dt_f = dt_interm; + CFL = true; } else { dt_interm = 0.5 * dt_interm; } @@ -1970,13 +1973,15 @@ class ImplicitAcousticO2SolverHandlerModified::ImplicitAcousticO2Solver final return {std::make_shared<MeshVariant>(new_mesh), std::make_shared<DiscreteFunctionVariant>(DiscreteScalarFunction{new_mesh, new_rho}), std::make_shared<DiscreteFunctionVariant>(DiscreteVectorFunction{new_mesh, new_u}), - std::make_shared<DiscreteFunctionVariant>(DiscreteScalarFunction{new_mesh, new_E})}; + std::make_shared<DiscreteFunctionVariant>(DiscreteScalarFunction{new_mesh, new_E}), + std::make_shared<double>(dt_f)}; } std::tuple<std::shared_ptr<const MeshVariant>, std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>, - std::shared_ptr<const DiscreteFunctionVariant>> + std::shared_ptr<const DiscreteFunctionVariant>, + std::shared_ptr<const double>> apply(const double& dt, const std::shared_ptr<const DiscreteFunctionVariant>& rho, const std::shared_ptr<const DiscreteFunctionVariant>& u, diff --git a/src/scheme/ImplicitAcousticO2SolverModified.hpp b/src/scheme/ImplicitAcousticO2SolverModified.hpp index 9b2cb10fe..070472b85 100644 --- a/src/scheme/ImplicitAcousticO2SolverModified.hpp +++ b/src/scheme/ImplicitAcousticO2SolverModified.hpp @@ -30,7 +30,8 @@ class ImplicitAcousticO2SolverHandlerModified virtual std::tuple<std::shared_ptr<const MeshVariant>, std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>, - std::shared_ptr<const DiscreteFunctionVariant>> + std::shared_ptr<const DiscreteFunctionVariant>, + std::shared_ptr<const double>> apply(const double& dt, const std::shared_ptr<const DiscreteFunctionVariant>& rho, const std::shared_ptr<const DiscreteFunctionVariant>& u, -- GitLab