TugJulia/include/tug/Simulation.hpp
2023-07-19 11:19:00 +02:00

78 lines
1.3 KiB
C++

#include "Boundary.hpp"
enum APPROACH {
FTCS_APPROACH,
BTCS_APPROACH
};
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 approach);
/**
* @brief
*
* @param csv_output
*/
void setOutputCSV(CSV_OUTPUT csv_output);
/**
* @brief Set the Timestep object
*
* @param timetstep
*/
void setTimestep(double timetstep);
/**
* @brief Get the Timestep object
*
*/
auto getTimestep();
/**
* @brief Set the Iterations object
*
* @param iterations
*/
void setIterations(int iterations);
/**
* @brief Get the Iterations object
*
* @return auto
*/
auto getIterations();
/**
* @brief
*
* @return auto
*/
void run();
private:
double timestep;
int iterations;
CSV_OUTPUT csv_output;
Grid grid;
Boundary bc;
APPROACH approach;
};