Skip to content
Snippets Groups Projects
Commit addeecf1 authored by Alexandre Gangloff's avatar Alexandre Gangloff
Browse files

Add second order in time for acoustic solver

Add second order in time for local dt acoustic solver
parent 54c577ad
No related branches found
No related tags found
No related merge requests found
...@@ -495,6 +495,39 @@ SchemeModule::SchemeModule() ...@@ -495,6 +495,39 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("local_dt_eucclhyd_solver_order2",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& c1,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list1,
const double& dt1, const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& c2,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list2)
-> std::tuple<
std::shared_ptr<const IMesh>, std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>> {
return LocalDtAcousticSolverHandler{getCommonMesh({rho1, u1, E1, c1, p1}),
getCommonMesh({rho2, u2, E2, c2, p2})}
.solver()
.applyOrder2(LocalDtAcousticSolverHandler::SolverType::Eucclhyd, dt1, rho1, rho2, u1, u2,
E1, E2, c1, c2, p1, p2, bc_descriptor_list1, bc_descriptor_list2);
}
));
this->_addBuiltinFunction("local_dt_glace_solver", this->_addBuiltinFunction("local_dt_glace_solver",
std::function( std::function(
...@@ -529,6 +562,39 @@ SchemeModule::SchemeModule() ...@@ -529,6 +562,39 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("local_dt_glace_solver",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& c1,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list1,
const double& dt1, const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& c2,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list2)
-> std::tuple<
std::shared_ptr<const IMesh>, std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>> {
return LocalDtAcousticSolverHandler{getCommonMesh({rho1, u1, E1, c1, p1}),
getCommonMesh({rho2, u2, E2, c2, p2})}
.solver()
.apply(LocalDtAcousticSolverHandler::SolverType::Glace, dt1,rho1, rho2, u1, u2,
E1, E2, c1, c2, p1, p2, bc_descriptor_list1, bc_descriptor_list2);
}
));
this->_addBuiltinFunction("local_dt_eucclhyd_solver", this->_addBuiltinFunction("local_dt_eucclhyd_solver",
std::function( std::function(
...@@ -563,6 +629,39 @@ SchemeModule::SchemeModule() ...@@ -563,6 +629,39 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("local_dt_eucclhyd_solver",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& c1,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list1,
const double& dt1, const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& c2,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list2)
-> std::tuple<
std::shared_ptr<const IMesh>, std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>> {
return LocalDtAcousticSolverHandler{getCommonMesh({rho1, u1, E1, c1, p1}),
getCommonMesh({rho2, u2, E2, c2, p2})}
.solver()
.apply(LocalDtAcousticSolverHandler::SolverType::Eucclhyd, dt1,rho1, rho2, u1, u2,
E1, E2, c1, c2, p1, p2, bc_descriptor_list1, bc_descriptor_list2);
}
));
this->_addBuiltinFunction("apply_acoustic_fluxes", this->_addBuiltinFunction("apply_acoustic_fluxes",
std::function( std::function(
......
This diff is collapsed.
...@@ -33,6 +33,29 @@ class LocalDtAcousticSolverHandler ...@@ -33,6 +33,29 @@ class LocalDtAcousticSolverHandler
const std::shared_ptr<const DiscreteFunctionVariant>& p, const std::shared_ptr<const DiscreteFunctionVariant>& p,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list) const = 0; const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list) const = 0;
virtual std::tuple<std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>>
applyOrder2(const SolverType& solver_type,
const double& dt1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& c1,
const std::shared_ptr<const DiscreteFunctionVariant>& c2,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2) const = 0;
virtual std::tuple<std::shared_ptr<const IMesh>, virtual std::tuple<std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>, std::shared_ptr<const DiscreteFunctionVariant>,
...@@ -68,6 +91,29 @@ class LocalDtAcousticSolverHandler ...@@ -68,6 +91,29 @@ class LocalDtAcousticSolverHandler
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1, const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2) const = 0; const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2) const = 0;
virtual std::tuple<std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const IMesh>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>>
apply(const SolverType& solver_type,
const double& dt1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho1,
const std::shared_ptr<const DiscreteFunctionVariant>& rho2,
const std::shared_ptr<const DiscreteFunctionVariant>& u1,
const std::shared_ptr<const DiscreteFunctionVariant>& u2,
const std::shared_ptr<const DiscreteFunctionVariant>& E1,
const std::shared_ptr<const DiscreteFunctionVariant>& E2,
const std::shared_ptr<const DiscreteFunctionVariant>& c1,
const std::shared_ptr<const DiscreteFunctionVariant>& c2,
const std::shared_ptr<const DiscreteFunctionVariant>& p1,
const std::shared_ptr<const DiscreteFunctionVariant>& p2,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list1,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list2) const = 0;
ILocalDtAcousticSolver() = default; ILocalDtAcousticSolver() = default;
ILocalDtAcousticSolver(ILocalDtAcousticSolver&&) = default; ILocalDtAcousticSolver(ILocalDtAcousticSolver&&) = default;
ILocalDtAcousticSolver& operator=(ILocalDtAcousticSolver&&) = default; ILocalDtAcousticSolver& operator=(ILocalDtAcousticSolver&&) = default;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment