33 #ifdef ALSVINN_USE_MPI 73 alsfvm::shared_ptr<grid::Grid>& grid,
81 alsfvm::shared_ptr<DeviceConfiguration>& deviceConfiguration,
82 std::string& equationName,
83 alsfvm::shared_ptr<alsfvm::diffusion::DiffusionOperator> diffusionOperator,
84 const std::string& name
94 bool atEnd()
override;
110 void addWriter(alsfvm::shared_ptr<io::Writer> writer)
override;
150 void setInitialValue(alsfvm::shared_ptr<init::InitialData>& initialData);
152 const std::shared_ptr<grid::Grid>&
getGrid()
const override;
153 std::shared_ptr<grid::Grid>&
getGrid()
override;
157 #ifdef ALSVINN_USE_MPI 166 void checkConstraints();
167 void incrementSolution();
173 alsfvm::shared_ptr<grid::Grid> grid;
174 alsfvm::shared_ptr<numflux::NumericalFlux> numericalFlux;
175 alsfvm::shared_ptr<integrator::System> system;
176 alsfvm::shared_ptr<integrator::Integrator> integrator;
177 alsfvm::shared_ptr<boundary::Boundary> boundary;
178 std::vector<alsfvm::shared_ptr<volume::Volume> > conservedVolumes;
179 alsfvm::shared_ptr<equation::CellComputer> cellComputer;
181 alsfvm::shared_ptr<alsfvm::diffusion::DiffusionOperator> diffusionOperator;
182 std::vector<alsfvm::shared_ptr<io::Writer> > writers;
183 alsfvm::shared_ptr<init::InitialData> initialData;
185 const real cflNumber;
187 const std::string equationName;
188 const std::string platformName;
189 alsfvm::shared_ptr<DeviceConfiguration> deviceConfiguration;
191 #ifdef ALSVINN_USE_MPI 195 const std::string name;
std::string getName() const
Definition: Simulator.cpp:219
void callWriters() override
Definition: Simulator.cpp:172
alsfvm::shared_ptr< memory::MemoryFactory > memoryFactory
Definition: VolumeFactory.cpp:86
void addTimestepAdjuster(alsfvm::shared_ptr< integrator::TimestepAdjuster > &adjuster) override
Definition: Simulator.cpp:91
const std::shared_ptr< grid::Grid > & getGrid() const override
Gets the current grid that is being used.
Definition: Simulator.cpp:164
alsfvm::shared_ptr< CellExchanger > CellExchangerPtr
Definition: CellExchanger.hpp:43
bool atEnd() override
Definition: Simulator.cpp:77
Definition: VolumeFactory.hpp:29
The Volume class represents a volume (a collection of cells with values for each cell (eg...
Definition: Volume.hpp:30
Definition: NumericalFluxFactory.hpp:27
void finalize() override
Finalizes the computation, should be called at the end.
Definition: Simulator.cpp:70
void setSimulationState(const volume::Volume &conservedVolume)
Definition: Simulator.cpp:104
double real
Definition: types.hpp:65
real getEndTime() const override
Definition: Simulator.cpp:100
The Simulator class contains all the neccesary tools for running the whole simulation.
Definition: Simulator.hpp:54
~Simulator()
Definition: Simulator.cpp:66
Simulator(const SimulatorParameters &simulatorParameters, alsfvm::shared_ptr< grid::Grid > &grid, volume::VolumeFactory &volumeFactory, integrator::IntegratorFactory &integratorFactory, boundary::BoundaryFactory &boundaryFactory, numflux::NumericalFluxFactory &numericalFluxFactory, equation::CellComputerFactory &cellComputerFactory, alsfvm::shared_ptr< memory::MemoryFactory > &memoryFactory, real endTime, alsfvm::shared_ptr< DeviceConfiguration > &deviceConfiguration, std::string &equationName, alsfvm::shared_ptr< alsfvm::diffusion::DiffusionOperator > diffusionOperator, const std::string &name)
Simulator.
Definition: Simulator.cpp:26
real getCurrentTime() const override
Definition: Simulator.cpp:96
void performStep() override
Definition: Simulator.cpp:81
Definition: IntegratorFactory.hpp:24
void setInitialValue(alsfvm::shared_ptr< init::InitialData > &initialData)
Definition: Simulator.cpp:117
std::string getEquationName() const
Definition: Simulator.cpp:113
The CellComputerFactory class is used to create new cell computers.
Definition: CellComputerFactory.hpp:28
Definition: AbstractSimulator.hpp:36
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
std::string getPlatformName() const
Definition: Simulator.cpp:109
Definition: BoundaryFactory.hpp:23
Definition: SimulatorParameters.hpp:22
void addWriter(alsfvm::shared_ptr< io::Writer > writer) override
addWriter adds a writer, this will be called every time callWriter is called
Definition: Simulator.cpp:87