#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" #include "nufi/poisson_problem.h" using namespace dealii; class NuFISolver { public: NuFISolver(); void run(); 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(unsigned int, std::vector &x, double 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; private: unsigned int Nt = std::floor(Parameters::TMAX / Parameters::DT); unsigned int Nx = Parameters::CALC_NX; double Lx = Parameters::LX; double x_min = Parameters::X_DOMAIN_LEFT; double x_max = Parameters::X_DOMAIN_RIGHT; std::vector rho; unsigned int order; PoissonProblem<1> poisson; }; #endif