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

Add a space order 2 br computation function

parent a21f0b20
No related branches found
No related tags found
No related merge requests found
...@@ -14,6 +14,7 @@ add_library( ...@@ -14,6 +14,7 @@ add_library(
FluxingAdvectionSolver.cpp FluxingAdvectionSolver.cpp
HyperelasticSolver.cpp HyperelasticSolver.cpp
PolynomialReconstruction.cpp PolynomialReconstruction.cpp
Order2AcousticSolver.cpp
) )
target_link_libraries( target_link_libraries(
......
This diff is collapsed.
#ifndef ORDER2_ACOUSTIC_SOLVER_HPP
#define ORDER2_ACOUSTIC_SOLVER_HPP
#include <mesh/MeshTraits.hpp>
#include <memory>
#include <tuple>
#include <vector>
class DiscreteFunctionVariant;
class IBoundaryConditionDescriptor;
class MeshVariant;
class ItemValueVariant;
class SubItemValuePerItemVariant;
class Order2AcousticSolverHandler
{
public:
enum class SolverType
{
Glace,
Eucclhyd
};
private:
struct IOrder2AcousticSolver
{
virtual std::tuple<const std::shared_ptr<const ItemValueVariant>,
const std::shared_ptr<const SubItemValuePerItemVariant>>
compute_fluxes(
const SolverType& solver_type,
const std::shared_ptr<const DiscreteFunctionVariant>& rho,
const std::shared_ptr<const DiscreteFunctionVariant>& c,
const std::shared_ptr<const DiscreteFunctionVariant>& u,
const std::shared_ptr<const DiscreteFunctionVariant>& p,
const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list) const = 0;
virtual std::tuple<std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>>
apply_fluxes(const double& dt,
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 = 0;
virtual std::tuple<std::shared_ptr<const MeshVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>,
std::shared_ptr<const DiscreteFunctionVariant>>
apply(const SolverType& solver_type,
const double& dt,
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 = 0;
IOrder2AcousticSolver() = default;
IOrder2AcousticSolver(IOrder2AcousticSolver&&) = default;
IOrder2AcousticSolver& operator=(IOrder2AcousticSolver&&) = default;
virtual ~IOrder2AcousticSolver() = default;
};
template <MeshConcept MeshType>
class Order2AcousticSolver;
std::unique_ptr<IOrder2AcousticSolver> m_acoustic_solver;
public:
const IOrder2AcousticSolver&
solver() const
{
return *m_acoustic_solver;
}
Order2AcousticSolverHandler(const std::shared_ptr<const MeshVariant>& mesh_v);
};
#endif // ACOUSTIC_SOLVER_HPP
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment