#ifndef HEAT_DIAMOND_ALGORITHM2_HPP #define HEAT_DIAMOND_ALGORITHM2_HPP #include <language/utils/FunctionSymbolId.hpp> #include <mesh/IMesh.hpp> #include <scheme/IBoundaryConditionDescriptor.hpp> #include <memory> #include <variant> #include <vector> template <size_t Dimension> class HeatDiamondScheme2 { private: class DirichletBoundaryCondition; class FourierBoundaryCondition; class NeumannBoundaryCondition; class SymmetryBoundaryCondition; public: HeatDiamondScheme2(std::shared_ptr<const IMesh> i_mesh, const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list, const FunctionSymbolId& T_id, const FunctionSymbolId& kappa_id, const FunctionSymbolId& f_id); }; #endif // HEAT_DIAMOND_ALGORITHM2_HPP