TugJulia/include/tug/Simulation.hpp

79 lines
1.3 KiB
C++

#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;
};