78 lines
1.3 KiB
C++
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;
|
|
|
|
};
|