Skip to content
Snippets Groups Projects
Commit d9e5d9bd authored by Philippe Hoch's avatar Philippe Hoch
Browse files

Rajout Composite Acoustic Solver dans SchemeModule

parent 5f4b5471
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <mesh/MeshSmoother.hpp> #include <mesh/MeshSmoother.hpp>
#include <mesh/MeshTraits.hpp> #include <mesh/MeshTraits.hpp>
#include <scheme/AcousticSolver.hpp> #include <scheme/AcousticSolver.hpp>
#include <scheme/AcousticCompositeSolver.hpp>
#include <scheme/AxisBoundaryConditionDescriptor.hpp> #include <scheme/AxisBoundaryConditionDescriptor.hpp>
#include <scheme/DirichletBoundaryConditionDescriptor.hpp> #include <scheme/DirichletBoundaryConditionDescriptor.hpp>
#include <scheme/DiscreteFunctionDescriptorP0.hpp> #include <scheme/DiscreteFunctionDescriptorP0.hpp>
...@@ -420,6 +421,29 @@ SchemeModule::SchemeModule() ...@@ -420,6 +421,29 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("composite_glace_fluxes", std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
const std::shared_ptr<const DiscreteFunctionVariant>& u,
const std::shared_ptr<const DiscreteFunctionVariant>& c,
const std::shared_ptr<const DiscreteFunctionVariant>& p,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list)
-> std::tuple<std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>,
std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>,
std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>
> {
return AcousticCompositeSolverHandler{getCommonMesh({rho, c, u, p})}
.solver()
.compute_fluxes(AcousticCompositeSolverHandler::SolverType::GlaceComposite, rho, c, u,
p, bc_descriptor_list);
}
));
this->_addBuiltinFunction("glace_solver", this->_addBuiltinFunction("glace_solver",
std::function( std::function(
...@@ -442,6 +466,31 @@ SchemeModule::SchemeModule() ...@@ -442,6 +466,31 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("composite_glace_solver",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
const std::shared_ptr<const DiscreteFunctionVariant>& u,
const std::shared_ptr<const DiscreteFunctionVariant>& E,
const std::shared_ptr<const DiscreteFunctionVariant>& c,
const std::shared_ptr<const DiscreteFunctionVariant>& p,
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>> {
return AcousticCompositeSolverHandler{getCommonMesh({rho, u, E, c, p})}
.solver()
.apply(AcousticCompositeSolverHandler::SolverType::GlaceComposite, dt, rho, u, E, c, p,
bc_descriptor_list);
}
));
this->_addBuiltinFunction("eucclhyd_fluxes", this->_addBuiltinFunction("eucclhyd_fluxes",
std::function( std::function(
...@@ -461,6 +510,32 @@ SchemeModule::SchemeModule() ...@@ -461,6 +510,32 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("composite_eucclhyd_fluxes",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
const std::shared_ptr<const DiscreteFunctionVariant>& u,
const std::shared_ptr<const DiscreteFunctionVariant>& c,
const std::shared_ptr<const DiscreteFunctionVariant>& p,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
bc_descriptor_list)
-> std::tuple<std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>,
std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>,
std::shared_ptr<const ItemValueVariant>,
std::shared_ptr<const SubItemValuePerItemVariant>
> {
return AcousticCompositeSolverHandler{getCommonMesh({rho, c, u, p})}
.solver()
.compute_fluxes(AcousticCompositeSolverHandler::SolverType::EucclhydComposite, rho, c, u, p,
bc_descriptor_list);
}
));
this->_addBuiltinFunction("eucclhyd_solver", this->_addBuiltinFunction("eucclhyd_solver",
std::function( std::function(
...@@ -483,6 +558,29 @@ SchemeModule::SchemeModule() ...@@ -483,6 +558,29 @@ SchemeModule::SchemeModule()
)); ));
this->_addBuiltinFunction("composite_eucclhyd_solver",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
const std::shared_ptr<const DiscreteFunctionVariant>& u,
const std::shared_ptr<const DiscreteFunctionVariant>& E,
const std::shared_ptr<const DiscreteFunctionVariant>& c,
const std::shared_ptr<const DiscreteFunctionVariant>& p,
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>> {
return AcousticCompositeSolverHandler{getCommonMesh({rho, u, E, c, p})}
.solver()
.apply(AcousticCompositeSolverHandler::SolverType::EucclhydComposite, dt, rho, u, E, c, p,
bc_descriptor_list);
}
));
this->_addBuiltinFunction("apply_acoustic_fluxes", this->_addBuiltinFunction("apply_acoustic_fluxes",
std::function( std::function(
...@@ -500,6 +598,28 @@ SchemeModule::SchemeModule() ...@@ -500,6 +598,28 @@ SchemeModule::SchemeModule()
.apply_fluxes(dt, rho, u, E, ur, Fjr); .apply_fluxes(dt, rho, u, E, ur, Fjr);
} }
));
this->_addBuiltinFunction("apply_acoustic_composite_fluxes",
std::function(
[](const std::shared_ptr<const DiscreteFunctionVariant>& rho, //
const std::shared_ptr<const DiscreteFunctionVariant>& u, //
const std::shared_ptr<const DiscreteFunctionVariant>& E, //
const std::shared_ptr<const ItemValueVariant>& ur, //
const std::shared_ptr<const SubItemValuePerItemVariant>& Fjr, //
const std::shared_ptr<const ItemValueVariant>& ue, //
const std::shared_ptr<const SubItemValuePerItemVariant>& Fje, //
const std::shared_ptr<const ItemValueVariant>& uf, //
const std::shared_ptr<const SubItemValuePerItemVariant>& Fjf, //
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>> {
return AcousticCompositeSolverHandler{getCommonMesh({rho, u, E})} //
.solver()
.apply_fluxes(dt, rho, u, E, ur, Fjr, ue, Fje, uf, Fjf);
}
)); ));
this->_addBuiltinFunction("hyperelastic_eucclhyd_fluxes", this->_addBuiltinFunction("hyperelastic_eucclhyd_fluxes",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment