Line data Source code
1 : // Copyright (C) 2015 Technische Universitaet Muenchen 2 : // This file is part of the Mamico project. For conditions of distribution 3 : // and use, please see the copyright notice in Mamico's main folder, or at 4 : // www5.in.tum.de/mamico 5 : #ifndef _MAMICO_COUPLING_SCENARIO_SCENARIO_H_ 6 : #define _MAMICO_COUPLING_SCENARIO_SCENARIO_H_ 7 : 8 : class Scenario; 9 : 10 : #include "coupling/CouplingMDDefinitions.h" 11 : #include "coupling/solvers/CouetteSolver.h" 12 : #include <iostream> 13 : #include <string> 14 : 15 : class Scenario { 16 : public: 17 : Scenario(std::string scenarioname) : _scenarioname(scenarioname) { std::cout << "Run " << scenarioname << "..." << std::endl; } 18 : virtual ~Scenario() { std::cout << "Shut down " << _scenarioname << std::endl; } 19 : 20 : virtual void run() = 0; 21 : virtual void init() = 0; 22 : virtual void runOneCouplingCycle(int cycle) = 0; 23 : 24 : virtual coupling::solvers::AbstractCouetteSolver<3>* getSolver() = 0; 25 0 : const coupling::services::ParallelTimeIntegrationService<3>* getTimeIntegrationService() const { return _timeIntegrationService.get(); } 26 : 27 : protected: 28 : std::unique_ptr<coupling::services::ParallelTimeIntegrationService<3>> _timeIntegrationService; 29 : 30 : private: 31 : const std::string _scenarioname; 32 : }; 33 : 34 : #endif // _MAMICO_COUPLING_SCENARIO_SCENARIO_H_