OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
Solver.h
Go to the documentation of this file.
1#pragma once
2#include <vector>
3#include <string>
4
6#include "Ports/Port.h"
10
11class Solver
12{
13public:
14 Solver(unsigned int simulationSteps, std::vector<Port<float>*> ports, std::vector<ResultPipeline*> resultPipelines, FITTD3DLoop<float>* simulation, SolverSettings &settings)
15 :_simulationSteps(simulationSteps), _ports(ports), _resultPipelines(resultPipelines), _simulation(simulation), _settings(settings)
16 {};
17 Solver(Solver & other) = delete;
18 Solver & operator=(Solver & other) = delete;
19 ~Solver();
20
21 std::vector<ResultPipeline*> GetResultPipelines() const { return _resultPipelines; }
22
24 void ExecuteOneTimeStepNoParallelization(int currentTimestep);
25
26private:
27 std::vector<ResultPipeline*> _resultPipelines; //Könnte eine rP hinzufügen, welche den enthaltenen Energiewert berechnet. Diese wird in der Loop standardmäßig ausgeführt aber kann zu einer vorzeitigen abbruchbedingung führen.
28 std::vector<Port<float>*> _ports;
29 //Wenn DegreesOfFreedom eine abstrakte API (kein DoF3D) erhalten, dann kann das ganze auch FITTD anstelle FITTD3D nutzen.
30 FITTD3DLoop<float> * _simulation;
31 unsigned int _simulationSteps;
32
33 SolverSettings &_settings;
35
36};
Definition FITTD3DLoop.h:11
Definition Port.h:11
Definition Solver.h:12
Solver(Solver &other)=delete
void ExecuteOneTimeStepNoParallelization(int currentTimestep)
Definition Solver.cpp:50
Solver & operator=(Solver &other)=delete
~Solver()
Definition Solver.cpp:3
Solver(unsigned int simulationSteps, std::vector< Port< float > * > ports, std::vector< ResultPipeline * > resultPipelines, FITTD3DLoop< float > *simulation, SolverSettings &settings)
Definition Solver.h:14
void SimulateMultipleTimesteps()
Definition Solver.cpp:19
std::vector< ResultPipeline * > GetResultPipelines() const
Definition Solver.h:21
Definition SolverSettings.h:8
Definition SystemProperties.h:10
static const SystemProperties & GetInstance()
Definition SystemProperties.h:28