diff --git a/include/tug/Simulation.hpp b/include/tug/Simulation.hpp index 139597f..468777c 100644 --- a/include/tug/Simulation.hpp +++ b/include/tug/Simulation.hpp @@ -1,2 +1,78 @@ +#include "Boundary.hpp" +#include "Grid.hpp" +enum APPROACH { + FTCS, + BTCS +}; +enum CSV_OUTPUT { + CSV_OUTPUT_OFF, + CSV_OUTPUT_ON, + CSV_OUTPUT_VERBOSE +}; + +class Simulation { + public: + + /** + * @brief Construct a new Simulation object + * + * @param grid + * @param bc + * @param aproach + */ + Simulation(Grid grid, Boundary bc, APPROACH aproach); + + /** + * @brief + * + * @param csv_output + */ + void outputCSV(CSV_OUTPUT csv_output); + + /** + * @brief Set the Timestep object + * + * @param timetstep + */ + void setTimestep(double timetstep); + + /** + * @brief Get the Timestep object + * + */ + void getTimestep(); + + /** + * @brief Set the Iterations object + * + * @param iterations + */ + void setIterations(int iterations); + + /** + * @brief Get the Iterations object + * + * @return auto + */ + auto getIterations(); + + /** + * @brief + * + * @return auto + */ + auto run(); + + private: + + double timestep; + int iterations; + CSV_OUTPUT csv_output; + + Grid grid; + Boundary bc; + APPROACH approach; + +}; diff --git a/src/Boundary.cpp b/src/Boundary.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/FTCS.cpp b/src/FTCS.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/Grid.cpp b/src/Grid.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/Simulation.cpp b/src/Simulation.cpp new file mode 100644 index 0000000..e69de29