#ifndef NUFI_SOLVER_H #define NUFI_SOLVER_H #include #include #include #include #include #include #include "nufi/fields.h" // dont remove #include "nufi/grids.h" #include "nufi/parameters.h" using namespace dealii; class NuFISolver { public: NuFISolver(); std::vector eval_rho(unsigned int n, std::vector &x, const std::vector> &grid_struct, const std::vector> &phi_history, const unsigned int Nv = Parameters::NV) const; std::vector eval_ftilda_batch(unsigned int n, std::vector X, std::vector U, const std::vector> &grid_struct, const std::vector> &phi_history) const; std::vector eval_f(unsigned int n, std::vector x, double u, const std::vector> &grid_struct, const std::vector> &phi_history) const; std::vector eval_rho_points(unsigned int n, const std::vector> &points, const std::vector> &grid_struct, const std::vector> &phi_history, const unsigned int Nv) const; private: unsigned int Nt = std::floor(Parameters::TMAX / Parameters::DT); double Lx = Parameters::LX; double x_min = Parameters::X_DOMAIN_LEFT; double x_max = Parameters::X_DOMAIN_RIGHT; unsigned int order; }; #endif