VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
main.cpp
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//=======================================================================================
34
44
47
48#include "basics/DataTypes.h"
49
50#include <memory>
51#include <cfloat>
52#include <cstdio>
53
54#include <iostream>
55#include <fstream>
56
57int main(int argc, char **argv)
58{
59 std::shared_ptr<PostProcessingConfigFileReader> reader = PostProcessingConfigFileReaderImp::getNewInstance();
60 std::shared_ptr<PostProcessingConfigData> configData = reader->readConfigFile(argv[1]);
61
62 std::shared_ptr<LogFileReader> logFileReader = LogFileReader::getInstance();
63 std::vector<std::shared_ptr<LogFileData> > logFileDataVector = logFileReader->readLogFilesInDirectoryToLogFileData(configData->getLogFilesPath());
64
65 std::shared_ptr<MathematicaFile> aMathmaticaFile = MathematicaFile::getNewInstance(configData->getMathematicaFilePath());
66
67 std::shared_ptr<LogFileDataAssistant> assistentLogFile = LogFileDataAssistantImp::getNewInstance();
68
69 std::shared_ptr<LogFileDataAssistantStrategyFactory> assistentStrategyFactory = LogFileDataAssistantStrategyFactoryImp::getNewInstance();
70
71
72 std::shared_ptr<MathematicaFunctionFactory> functionFactory = MathematicaFunctionFactoryImp::getNewInstance();
73 std::shared_ptr<MathematicaAssistantFactory> assistantFactory = MathematicaAssistantFactoryImp::getNewInstance();
74 std::vector<std::shared_ptr<MathematicaAssistant> > mathematicaAssistants = assistantFactory->makeMathematicaAssistants(configData->getAssistants(), functionFactory);
75
76 for (uint sim = 0; sim < configData->getSimulations().size(); sim++) {
77 for (uint comb = 0; comb < configData->getDataCombinations().size(); comb++) {
78 std::shared_ptr<LogFileDataAssistantStrategy> strategy = assistentStrategyFactory->makeLogFileDataAssistantStrategy(configData->getSimulations().at(sim));
79 std::vector<std::shared_ptr<LogFileDataGroup> > logFileDataSorted = assistentLogFile->findDataCombination(logFileDataVector, strategy, configData->getDataCombinations().at(comb));
80 for (uint i = 0; i < logFileDataSorted.size(); i++) {
81 for (uint j = 0; j < mathematicaAssistants.size(); j++)
82 mathematicaAssistants.at(j)->makeMathematicaOutput(logFileDataSorted.at(i), aMathmaticaFile);
83 }
84 }
85 }
86
87
88 aMathmaticaFile->finishFile();
89 return 0;
90}
91
static std::shared_ptr< MathematicaAssistantFactory > getNewInstance()
static std::shared_ptr< MathematicaFunctionFactory > getNewInstance()
int main(int argc, char **argv)
Definition main.cpp:57
static std::shared_ptr< LogFileReader > getInstance()
static std::shared_ptr< LogFileDataAssistant > getNewInstance()
static std::shared_ptr< PostProcessingConfigFileReader > getNewInstance()
static std::shared_ptr< MathematicaFile > getNewInstance(std::string filePath)
static std::shared_ptr< LogFileDataAssistantStrategyFactory > getNewInstance()
std::shared_ptr< T > SPtr
unsigned int uint
Definition DataTypes.h:47