/** * Runs the simulation until i_tEnd is reached. * * @param i_tStart time when the simulation starts * @param i_tEnd time when the simulation should end * @return time we reached after the last update step, in general a bit later than i_tEnd */ float SWE_WavePropagationBlock::simulate(float i_tStart,float i_tEnd) { float t = i_tStart; do { //set values in ghost cells setGhostLayer(); // compute net updates for every edge computeNumericalFluxes(); //execute a wave propagation time step updateUnknowns(maxTimestep); t += maxTimestep; std::cout << "Simulation at time " << t << std::endl << std::flush; } while(t < i_tEnd); return t; }
/** * Executes a single timestep. * * compute net updates for every edge * * update cell values with the net updates * * @param dt time step width of the update */ void SWE_WavePropagationBlock::simulateTimestep (float dt) { computeNumericalFluxes (); updateUnknowns (dt); }