VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
ConfigFileReaderNT.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//=======================================================================================
33#include "ConfigFileReaderNT.h"
34
37
38#include <memory>
39#include <fstream>
40#include <string>
41
42#define VAL(str) #str
43#define TOSTRING(str) VAL(str)
44
45using ConfigFilePtr = std::shared_ptr<vf::basics::ConfigurationFile>;
46using ConfigDataPtr = std::shared_ptr<ConfigDataStruct>;
47
48
49std::ifstream openConfigFile(const std::string aFilePath)
50{
51 std::ifstream stream;
52 stream.open(aFilePath.c_str(), std::ios::in);
53 if (stream.fail())
54 throw "can not open config file!\n";
55
56 return stream;
57}
58
60{
61 std::vector<double> u0TGVux = StringUtil::toDoubleVector(input->getValue<std::string>("ux_TGV_Ux"));
62 std::vector<double> amplitudeTGVux = StringUtil::toDoubleVector(input->getValue<std::string>("Amplitude_TGV_Ux"));
63 std::vector<int> basisTimeStepLengthTGVux = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_TGV_Ux"));
64
65 std::vector<double> v0TGVuz = StringUtil::toDoubleVector(input->getValue<std::string>("uz_TGV_Uz"));
66 std::vector<double> amplitudeTGVuz = StringUtil::toDoubleVector(input->getValue<std::string>("Amplitude_TGV_Uz"));
67 std::vector<int> basisTimeStepLengthTGVuz = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_TGV_Uz"));
68
69 std::vector<double> v0SW = StringUtil::toDoubleVector(input->getValue<std::string>("v0_SW"));
70 std::vector<double> u0SW = StringUtil::toDoubleVector(input->getValue<std::string>("u0_SW"));
71 std::vector<int> basisTimeStepLengthSW = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_SW"));
72
73 if (u0TGVux.size() != amplitudeTGVux.size() || u0TGVux.size() != basisTimeStepLengthTGVux.size()) {
74 std::cout << "Length u0_TGV_U0 is unequal to Lenght Amplitude_TGV_U0 or BasisTimeStepLength_TGV_U0!"
75 << std::endl
76 << std::flush;
77 return false;
78 } else if (v0TGVuz.size() != amplitudeTGVuz.size() || v0TGVuz.size() != basisTimeStepLengthTGVuz.size()) {
79 std::cout << "Length v0_TGV_V0 is unequal to Lenght Amplitude_TGV_V0 or BasisTimeStepLength_TGV_V0!"
80 << std::endl
81 << std::flush;
82 return false;
83 } else if (u0SW.size() != v0SW.size() || u0SW.size() != basisTimeStepLengthSW.size()) {
84 std::cout << "Length u0_SW is unequal to Lenght v0_SW!" << std::endl << std::flush;
85 return false;
86 } else {
87 return true;
88 }
89}
90
91std::shared_ptr<BasicSimulationParameterStruct>
93{
94 std::shared_ptr<BasicSimulationParameterStruct> basicSimPara =
95 std::shared_ptr<BasicSimulationParameterStruct>(new BasicSimulationParameterStruct);
96
97 basicSimPara->numberOfTimeSteps = StringUtil::toInt(input->getValue<std::string>("NumberOfTimeSteps"));
98 basicSimPara->devices = StringUtil::toUintVector(input->getValue<std::string>("Devices"));
99 return basicSimPara;
100}
101
102std::vector<std::shared_ptr<TaylorGreenVortexUxParameterStruct>>
105 std::shared_ptr<BasicSimulationParameterStruct> basicSimParameter)
106{
107 std::vector<int> basisTimeStepLength = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_TGV_Ux"));
108 std::vector<double> amplitude = StringUtil::toDoubleVector(input->getValue<std::string>("Amplitude_TGV_Ux"));
109 std::vector<double> u0 = StringUtil::toDoubleVector(input->getValue<std::string>("ux_TGV_Ux"));
110 int l0 = StringUtil::toInt(input->getValue<std::string>("l0_TGV_Ux"));
111 basicSimParameter->l0 = l0;
112
113 std::vector<std::shared_ptr<TaylorGreenVortexUxParameterStruct>> parameter;
114 for (int i = 0; i < u0.size(); i++) {
115 std::shared_ptr<TaylorGreenVortexUxParameterStruct> aParameter =
116 std::shared_ptr<TaylorGreenVortexUxParameterStruct>(new TaylorGreenVortexUxParameterStruct);
117 aParameter->basicSimulationParameter = basicSimParameter;
118
119 aParameter->ux = u0.at(i);
120 aParameter->amplitude = amplitude.at(i);
121 aParameter->basicTimeStepLength = basisTimeStepLength.at(i);
122 aParameter->l0 = l0;
123 aParameter->rho0 = StringUtil::toDouble(input->getValue<std::string>("Rho0"));
124 aParameter->vtkFilePath = pathNumericalTests + input->getValue<std::string>("FolderForVTKFileWriting");
125 aParameter->dataToCalcTests = StringUtil::toStringVector(input->getValue<std::string>("DataToCalcTests_TGV_Ux"));
126 parameter.push_back(aParameter);
127 }
128 return parameter;
129}
130
131std::vector<std::shared_ptr<TaylorGreenVortexUzParameterStruct>>
134 std::shared_ptr<BasicSimulationParameterStruct> basicSimParameter)
135{
136 std::vector<int> basisTimeStepLength = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_TGV_Uz"));
137 std::vector<double> amplitude = StringUtil::toDoubleVector(input->getValue<std::string>("Amplitude_TGV_Uz"));
138 std::vector<double> uz = StringUtil::toDoubleVector(input->getValue<std::string>("uz_TGV_Uz"));
139 int l0 = StringUtil::toInt(input->getValue<std::string>("l0_TGV_Uz"));
140 basicSimParameter->l0 = l0;
141
142 std::vector<std::shared_ptr<TaylorGreenVortexUzParameterStruct>> parameter;
143 for (int i = 0; i < uz.size(); i++) {
144 std::shared_ptr<TaylorGreenVortexUzParameterStruct> aParameter =
145 std::shared_ptr<TaylorGreenVortexUzParameterStruct>(new TaylorGreenVortexUzParameterStruct);
146 aParameter->basicSimulationParameter = basicSimParameter;
147 aParameter->uz = uz.at(i);
148 aParameter->amplitude = amplitude.at(i);
149 aParameter->basicTimeStepLength = basisTimeStepLength.at(i);
150 aParameter->l0 = l0;
151 aParameter->rho0 = StringUtil::toDouble(input->getValue<std::string>("Rho0"));
152 aParameter->vtkFilePath = pathNumericalTests + input->getValue<std::string>("FolderForVTKFileWriting");
153 aParameter->dataToCalcTests = StringUtil::toStringVector(input->getValue<std::string>("DataToCalcTests_TGV_Uz"));
154 parameter.push_back(aParameter);
155 }
156 return parameter;
157}
158std::vector<std::shared_ptr<ShearWaveParameterStruct>>
161 std::shared_ptr<BasicSimulationParameterStruct> basicSimParameter)
162{
163 std::vector<int> basisTimeStepLength = StringUtil::toIntVector(input->getValue<std::string>("BasisTimeStepLength_SW"));
164 std::vector<double> uz = StringUtil::toDoubleVector(input->getValue<std::string>("v0_SW"));
165 std::vector<double> ux = StringUtil::toDoubleVector(input->getValue<std::string>("u0_SW"));
166 int l0 = StringUtil::toInt(input->getValue<std::string>("l0_SW"));
167 basicSimParameter->l0 = l0;
168
169 std::vector<std::shared_ptr<ShearWaveParameterStruct>> parameter;
170 for (int i = 0; i < uz.size(); i++) {
171 std::shared_ptr<ShearWaveParameterStruct> aParameter =
172 std::shared_ptr<ShearWaveParameterStruct>(new ShearWaveParameterStruct);
173 aParameter->basicSimulationParameter = basicSimParameter;
174 aParameter->uz = uz.at(i);
175 aParameter->ux = ux.at(i);
176 aParameter->basicTimeStepLength = basisTimeStepLength.at(i);
177 aParameter->l0 = l0;
178 aParameter->rho0 = StringUtil::toDouble(input->getValue<std::string>("Rho0"));
179 aParameter->vtkFilePath = pathNumericalTests + input->getValue<std::string>("FolderForVTKFileWriting");
180 aParameter->dataToCalcTests = StringUtil::toStringVector(input->getValue<std::string>("DataToCalcTests_SW"));
181 parameter.push_back(aParameter);
182 }
183 return parameter;
184}
185
186std::shared_ptr<NyTestParameterStruct> makeNyTestParameter(ConfigFilePtr input)
187{
188 std::shared_ptr<BasicTestParameterStruct> basicTestParameter =
189 std::shared_ptr<BasicTestParameterStruct>(new BasicTestParameterStruct);
190 basicTestParameter->runTest = StringUtil::toBool(input->getValue<std::string>("NyTest"));
191 basicTestParameter->ySliceForCalculation = StringUtil::toInt(input->getValue<std::string>("ySliceForCalculation"));
192
193 std::shared_ptr<NyTestParameterStruct> testParameter =
194 std::shared_ptr<NyTestParameterStruct>(new NyTestParameterStruct);
195 testParameter->basicTestParameter = basicTestParameter;
196 testParameter->endTimeStepCalculation = StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_Ny"));
197 testParameter->minOrderOfAccuracy = StringUtil::toDouble(input->getValue<std::string>("MinOrderOfAccuracy_Ny"));
198 testParameter->startTimeStepCalculation = StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_Ny"));
199
200 return testParameter;
201}
202
203std::shared_ptr<PhiTestParameterStruct> makePhiTestParameter(ConfigFilePtr input)
204{
205 std::shared_ptr<BasicTestParameterStruct> basicTestParameter =
206 std::shared_ptr<BasicTestParameterStruct>(new BasicTestParameterStruct);
207 basicTestParameter->runTest = StringUtil::toBool(input->getValue<std::string>("PhiTest"));
208 basicTestParameter->ySliceForCalculation = StringUtil::toInt(input->getValue<std::string>("ySliceForCalculation"));
209
210 std::shared_ptr<PhiTestParameterStruct> testParameter =
211 std::shared_ptr<PhiTestParameterStruct>(new PhiTestParameterStruct);
212 testParameter->basicTestParameter = basicTestParameter;
213 testParameter->endTimeStepCalculation = StringUtil::toInt(input->getValue<std::string>("EndTimeStepCalculation_Phi"));
214 testParameter->minOrderOfAccuracy = StringUtil::toDouble(input->getValue<std::string>("MinOrderOfAccuracy_Phi"));
215 testParameter->startTimeStepCalculation = StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_Phi"));
216
217 return testParameter;
218}
219
220std::shared_ptr<L2NormTestParameterStruct>
222{
223 std::shared_ptr<BasicTestParameterStruct> basicTestParameter =
224 std::shared_ptr<BasicTestParameterStruct>(new BasicTestParameterStruct);
225 basicTestParameter->runTest = StringUtil::toBool(input->getValue<std::string>("L2NormTest"));
226 basicTestParameter->ySliceForCalculation = StringUtil::toInt(input->getValue<std::string>("ySliceForCalculation"));
227
228 std::shared_ptr<L2NormTestParameterStruct> testParameter =
229 std::shared_ptr<L2NormTestParameterStruct>(new L2NormTestParameterStruct);
230 testParameter->basicTestParameter = basicTestParameter;
231 testParameter->basicTimeStep = StringUtil::toInt(input->getValue<std::string>("BasicTimeStep_L2"));
232 testParameter->divergentTimeStep = StringUtil::toInt(input->getValue<std::string>("DivergentTimeStep_L2"));
233 testParameter->normalizeData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeData_L2Norm"));
234 testParameter->maxDiff = StringUtil::toDoubleVector(input->getValue<std::string>("MaxL2NormDiff"));
235
236 return testParameter;
237}
238
239std::vector<std::string> readKernelList(ConfigFilePtr input)
240{
241 if (StringUtil::toBool(input->getValue<std::string>("L2NormBetweenKernelsTest"))) {
242 std::vector<std::string> kernelList = StringUtil::toStringVector(input->getValue<std::string>("KernelsToTest"));
243 std::string beginKernel = input->getValue<std::string>("BasicKernel_L2NormBetweenKernels");
244 bool basicKernelInKernelList = false;
245 for (int i = 0; i < kernelList.size(); i++) {
246 if (kernelList.at(i) == beginKernel)
248 }
250 kernelList.push_back(beginKernel);
251
252 std::vector<std::string> kernelNames = kernelList;
253
254 while (kernelNames.at(0) != beginKernel) {
255 kernelNames.push_back(kernelNames.at(0));
256 std::vector<std::string>::iterator it = kernelNames.begin();
257 kernelNames.erase(it);
258 }
259 std::vector<std::string> kernels;
260 for (int i = 0; i < kernelNames.size(); i++)
261 kernels.push_back(kernelNames.at(i));
262 return kernels;
263 } else {
264 std::vector<std::string> kernelList = StringUtil::toStringVector(input->getValue<std::string>("KernelsToTest"));
265 std::vector<std::string> kernels;
266 for (int i = 0; i < kernelList.size(); i++)
267 kernels.push_back(kernelList.at(i));
268
269 return kernels;
270 }
271}
272
273std::shared_ptr<L2NormTestBetweenKernelsParameterStruct>
275{
276 std::shared_ptr<BasicTestParameterStruct> basicTestParameter =
277 std::shared_ptr<BasicTestParameterStruct>(new BasicTestParameterStruct);
278 basicTestParameter->runTest = StringUtil::toBool(input->getValue<std::string>("L2NormBetweenKernelsTest"));
279 basicTestParameter->ySliceForCalculation = StringUtil::toInt(input->getValue<std::string>("ySliceForCalculation"));
280
281 std::shared_ptr<L2NormTestBetweenKernelsParameterStruct> testParameter =
282 std::shared_ptr<L2NormTestBetweenKernelsParameterStruct>(new L2NormTestBetweenKernelsParameterStruct);
283 testParameter->basicTestParameter = basicTestParameter;
284 testParameter->basicKernel = input->getValue<std::string>("BasicKernel_L2NormBetweenKernels");
285 testParameter->kernelsToTest = readKernelList(input);
286 testParameter->timeSteps = StringUtil::toIntVector(input->getValue<std::string>("Timesteps_L2NormBetweenKernels"));
287 testParameter->normalizeData = StringUtil::toStringVector(input->getValue<std::string>("NormalizeData_L2Norm"));
288
289 bool correct = false;
290 for (int i = 0; i < testParameter->normalizeData.size(); i++)
291 if (testParameter->normalizeData.at(i) == "Amplitude" || testParameter->normalizeData.at(i) == "BasicData")
292 correct = true;
293
294 if (!correct) {
295 std::cout << "invalid input in ConfigFile." << std::endl
296 << "possible data for NormalizeWith Parameter in L2-Norm Test Between Kernels Parameter:" << std::endl
297 << "Amplitude, BasicData" << std::endl
298 << std::endl;
299 exit(1);
300 }
301
302 return testParameter;
303}
304
305std::vector<std::shared_ptr<GridInformationStruct>>
306makeGridInformation(const std::string pathNumericalTests, ConfigFilePtr input, std::string simName)
307{
308 int number = 32;
309 std::vector<std::string> valueNames;
310 std::vector<std::string> gridPaths;
311 for (int i = 1; i <= 5; i++) {
312 std::string aValueName = simName;
313 aValueName += std::to_string(number);
314 valueNames.push_back(aValueName);
315 std::string aGridpath = "GridPath";
316 aGridpath += std::to_string(number);
317 gridPaths.push_back(aGridpath);
318 number *= 2;
319 }
320
321 std::vector<double> lx;
322 std::vector<double> lz;
323 std::vector<std::string> gridPath;
324
325 double nextNumber = 32.0;
326
327 for (int i = 0; i < valueNames.size(); i++) {
328 if (StringUtil::toBool(input->getValue<std::string>(valueNames.at(i)))) {
329 lx.push_back(nextNumber);
330 lz.push_back(nextNumber * 3.0 / 2.0);
331 gridPath.push_back(pathNumericalTests + input->getValue<std::string>(gridPaths.at(i)));
332 nextNumber *= 2;
333 }
334 }
335
336 std::vector<std::shared_ptr<GridInformationStruct>> gridInformation;
337 for (int i = 0; i < lx.size(); i++) {
338 std::shared_ptr<GridInformationStruct> aGridInformation =
339 std::shared_ptr<GridInformationStruct>(new GridInformationStruct);
340 aGridInformation->numberOfGridLevels = StringUtil::toInt(input->getValue<std::string>("NumberOfGridLevels"));
341 aGridInformation->maxLevel = aGridInformation->numberOfGridLevels - 1;
342 aGridInformation->gridPath = gridPath.at(i);
343 aGridInformation->lx = lx.at(i);
344 aGridInformation->lz = lz.at(i);
346 }
347 return gridInformation;
348}
349
351{
352 std::vector<unsigned int> startStepsTests;
353 startStepsTests.push_back(StringUtil::toInt(input->getValue<std::string>("BasicTimeStep_L2")));
354 startStepsTests.push_back(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_Ny")));
355 startStepsTests.push_back(StringUtil::toInt(input->getValue<std::string>("StartTimeStepCalculation_Phi")));
356 std::sort(startStepsTests.begin(), startStepsTests.end());
357
358 return startStepsTests.at(0);
359}
360
361std::shared_ptr<VectorWriterInformationStruct>
363{
364 std::shared_ptr<VectorWriterInformationStruct> vectorWriter =
365 std::shared_ptr<VectorWriterInformationStruct>(new VectorWriterInformationStruct);
366 vectorWriter->startTimeVectorWriter = calcStartStepForToVectorWriter(input);
367 vectorWriter->startTimeVTKDataWriter = StringUtil::toInt(input->getValue<std::string>("StartStepFileWriter"));
368 vectorWriter->writeVTKFiles = StringUtil::toBool(input->getValue<std::string>("WriteVTKFiles"));
369
370 return vectorWriter;
371}
372
373std::shared_ptr<LogFileParameterStruct> makeLogFilePara(ConfigFilePtr input)
374{
375 std::shared_ptr<LogFileParameterStruct> logFilePara =
376 std::shared_ptr<LogFileParameterStruct>(new LogFileParameterStruct);
377 logFilePara->devices = StringUtil::toIntVector(input->getValue<std::string>("Devices"));
378 logFilePara->numberOfTimeSteps = StringUtil::toInt(input->getValue<std::string>("NumberOfTimeSteps"));
379 logFilePara->writeAnalyticalToVTK = StringUtil::toBool(input->getValue<std::string>("WriteAnalyResultsToVTK"));
380
381 return logFilePara;
382}
383
385{
386 int counter = 0;
387 int number = 32;
388 std::vector<std::string> valueNames;
389 for (int i = 1; i <= 5; i++) {
390 std::string aValueName = simName;
391 aValueName += std::to_string(number);
392 valueNames.push_back(aValueName);
393 number *= 2;
394 }
395 for (int i = 0; i < valueNames.size(); i++) {
396 if (StringUtil::toBool(input->getValue<std::string>(valueNames.at(i))))
397 counter++;
398 }
399 return counter;
400}
401
403{
404 int counter = 0;
405
406 int tgvCounterU0 = calcNumberOfSimulationGroup(input, "TaylorGreenVortexUx");
407 tgvCounterU0 *= int(StringUtil::toDoubleVector(input->getValue<std::string>("ux_TGV_Ux")).size());
408 counter += tgvCounterU0;
409
410 int tgvCounterV0 = calcNumberOfSimulationGroup(input, "TaylorGreenVortexUz");
411 ;
412 tgvCounterV0 *= int(StringUtil::toDoubleVector(input->getValue<std::string>("uz_TGV_Uz")).size());
413 counter += tgvCounterV0;
414
415 int swCounter = calcNumberOfSimulationGroup(input, "ShearWave");
416 ;
417 swCounter *= int(StringUtil::toDoubleVector(input->getValue<std::string>("u0_SW")).size());
418 counter += swCounter;
419
420 counter *= int(StringUtil::toDoubleVector(input->getValue<std::string>("Viscosity")).size());
421 counter *= int(configData->kernelsToTest.size());
422
423 return counter;
424}
425
427{
428 auto configData = std::make_shared<ConfigDataStruct>();
429 auto input = std::make_shared<vf::basics::ConfigurationFile>();
430 input->load(aFilePath);
431
433 exit(1);
434
435 std::cout << pathNumericalTests << "\n";
436
437 configData->viscosity = StringUtil::toDoubleVector(input->getValue<std::string>("Viscosity"));
438 configData->kernelsToTest = readKernelList(input);
439 configData->writeAnalyticalToVTK = StringUtil::toBool(input->getValue<std::string>("WriteAnalyResultsToVTK"));
440 configData->ySliceForCalculation = StringUtil::toInt(input->getValue<std::string>("ySliceForCalculation"));
441
442 configData->logFilePath = pathNumericalTests + input->getValue<std::string>("FolderLogFile");
443 configData->numberOfSimulations = calcNumberOfSimulations(input, configData);
444
446
448 configData->taylorGreenVortexUxGridInformation = makeGridInformation(pathNumericalTests, input, "TaylorGreenVortexUx");
449
451 configData->taylorGreenVortexUzGridInformation = makeGridInformation(pathNumericalTests, input, "TaylorGreenVortexUz");
452
454 configData->shearWaveGridInformation = makeGridInformation(pathNumericalTests, input, "ShearWave");
455
456 configData->phiTestParameter = makePhiTestParameter(input);
457 configData->nyTestParameter = makeNyTestParameter(input);
458 configData->l2NormTestParameter = makeL2NormTestParameter(input);
459 configData->l2NormTestBetweenKernelsParameter = makeL2NormTestBetweenKernelsParameter(input);
460
462
463 configData->logFilePara = makeLogFilePara(input);
464
465 return configData;
466}
int calcNumberOfSimulationGroup(ConfigFilePtr input, std::string simName)
std::shared_ptr< ConfigDataStruct > ConfigDataPtr
unsigned int calcStartStepForToVectorWriter(ConfigFilePtr input)
std::ifstream openConfigFile(const std::string aFilePath)
std::shared_ptr< VectorWriterInformationStruct > makeVectorWriterInformationStruct(ConfigFilePtr input)
std::vector< std::shared_ptr< ShearWaveParameterStruct > > makeShearWaveParameter(const std::string pathNumericalTests, ConfigFilePtr input, std::shared_ptr< BasicSimulationParameterStruct > basicSimParameter)
std::shared_ptr< LogFileParameterStruct > makeLogFilePara(ConfigFilePtr input)
std::vector< std::string > readKernelList(ConfigFilePtr input)
std::shared_ptr< vf::basics::ConfigurationFile > ConfigFilePtr
std::shared_ptr< NyTestParameterStruct > makeNyTestParameter(ConfigFilePtr input)
std::shared_ptr< L2NormTestParameterStruct > makeL2NormTestParameter(ConfigFilePtr input)
bool checkConfigFile(ConfigFilePtr input)
std::vector< std::shared_ptr< TaylorGreenVortexUxParameterStruct > > makeTaylorGreenVortexUxParameter(const std::string pathNumericalTests, ConfigFilePtr input, std::shared_ptr< BasicSimulationParameterStruct > basicSimParameter)
int calcNumberOfSimulations(ConfigFilePtr input, ConfigDataPtr configData)
std::vector< std::shared_ptr< GridInformationStruct > > makeGridInformation(const std::string pathNumericalTests, ConfigFilePtr input, std::string simName)
std::vector< std::shared_ptr< TaylorGreenVortexUzParameterStruct > > makeTaylorGreenVortexUzParameter(const std::string pathNumericalTests, ConfigFilePtr input, std::shared_ptr< BasicSimulationParameterStruct > basicSimParameter)
std::shared_ptr< PhiTestParameterStruct > makePhiTestParameter(ConfigFilePtr input)
std::shared_ptr< BasicSimulationParameterStruct > makeBasicSimulationParameter(ConfigFilePtr input)
std::shared_ptr< L2NormTestBetweenKernelsParameterStruct > makeL2NormTestBetweenKernelsParameter(ConfigFilePtr input)
static std::vector< double > toDoubleVector(const std::string &s)
static std::vector< int > toIntVector(const std::string &s)
static std::vector< unsigned int > toUintVector(const std::string &s)
static int toInt(const std::string &input)
static bool toBool(const std::string &input)
static double toDouble(const std::string &input)
static std::vector< std::string > toStringVector(const std::string &s)
std::shared_ptr< T > SPtr
std::shared_ptr< ConfigDataStruct > readConfigFile(const std::string aFilePath, const std::string &pathNumericalTests)