VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
TestSimulationImp.h
Go to the documentation of this file.
1//=======================================================================================
2// ____ ____ __ ______ __________ __ __ __ __
3// \ \ | | | | | _ \ |___ ___| | | | | / \ | |
4// \ \ | | | | | |_) | | | | | | | / \ | |
5// \ \ | | | | | _ / | | | | | | / /\ \ | |
6// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____
7// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______|
8// \ \ | | ________________________________________________________________
9// \ \ | | | ______________________________________________________________|
10// \ \| | | | __ __ __ __ ______ _______
11// \ | | |_____ | | | | | | | | | _ \ / _____)
12// \ | | _____| | | | | | | | | | | \ \ \_______
13// \ | | | | |_____ | \_/ | | | | |_/ / _____ |
14// \ _____| |__| |________| \_______/ |__| |______/ (_______/
15//
16// This file is part of VirtualFluids. VirtualFluids is free software: you can
17// redistribute it and/or modify it under the terms of the GNU General Public
18// License as published by the Free Software Foundation, either version 3 of
19// the License, or (at your option) any later version.
20//
21// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
22// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24// for more details.
25//
26// SPDX-License-Identifier: GPL-3.0-or-later
27// SPDX-FileCopyrightText: Copyright © VirtualFluids Project contributors, see AUTHORS.md in root folder
28//
32//=======================================================================================
33#ifndef TEST_SIMULATION_IMP_H
34#define TEST_SIMULATION_IMP_H
35
36#include "TestSimulation.h"
38
39#include <functional>
40#include <ctime>
41#include <vector>
42
43class ToVectorWriter;
45class SimulationInfo;
49class TimeTracking;
50
52
54{
55public:
56 TestSimulationImp(std::function<void()> runSimulation, std::shared_ptr<TestSimulationDataStruct> testSimData,
57 std::shared_ptr<SimulationResults> simResult, std::shared_ptr<TimeTracking> timeTracking,
58 std::shared_ptr<ToVectorWriter> toVectorWriter,
59 std::shared_ptr<AnalyticalResults2DToVTKWriter> anaResultWriter,
60 std::shared_ptr<ColorConsoleOutput> colorOutput);
61 void run() override;
62
63 std::shared_ptr<SimulationParameter> getSimulationParameter() override;
64 std::shared_ptr<SimulationInfo> getSimulationInfo();
65 std::shared_ptr<TimeTracking> getTimeTracking() override;
66
68
69 void makeSimulationHeadOutput() override;
70 void startPostProcessing() override;
71
72 void setParameter(std::shared_ptr<vf::gpu::Parameter> para) override;
73
74 std::shared_ptr<SimulationResults> getSimulationResults();
75 std::shared_ptr<AnalyticalResults> getAnalyticalResults();
76 void registerSimulationObserver(std::shared_ptr<SimulationObserver> simObserver) override;
77 std::vector<std::string> getDataToCalcTests();
78
79private:
80 void notifyObserver();
81
82 void writeAnalyticalResultsToVTK();
83 void checkSimulationResults();
84
85 std::shared_ptr<SimulationParameter> simPara;
86 std::shared_ptr<ToVectorWriter> toVectorWriter;
87 std::shared_ptr<InitialCondition> initialCondition;
88 std::shared_ptr<SimulationInfo> simInfo;
89 std::shared_ptr<SimulationResults> simResult;
90 std::shared_ptr<TimeTracking> timeTracking;
91
92 std::shared_ptr<AnalyticalResults> analyticalResult;
93
94 std::shared_ptr<ColorConsoleOutput> colorOutput;
95 std::shared_ptr<AnalyticalResults2DToVTKWriter> anaResultWriter;
96 std::shared_ptr<vf::gpu::Parameter> para;
97 std::vector<std::shared_ptr<SimulationObserver>> simObserver;
98
99 std::vector<std::string> dataToCalcTests;
100 SimulationStatus status;
101
102 std::function<void()> runSimulation;
103};
104#endif
std::shared_ptr< SimulationInfo > getSimulationInfo()
void registerSimulationObserver(std::shared_ptr< SimulationObserver > simObserver) override
std::shared_ptr< AnalyticalResults > getAnalyticalResults()
std::vector< std::string > getDataToCalcTests()
std::shared_ptr< TimeTracking > getTimeTracking() override
std::shared_ptr< SimulationParameter > getSimulationParameter() override
void startPostProcessing() override
SimulationStatus getSimulationStatus() override
void setParameter(std::shared_ptr< vf::gpu::Parameter > para) override
void makeSimulationHeadOutput() override
std::shared_ptr< SimulationResults > getSimulationResults()
std::shared_ptr< T > SPtr