VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
ResultsImp.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 "ResultsImp.h"
34
35#include <cmath>
36#include <iostream>
37
38void logInvalidSimulationData(const std::string &quantity)
39{
40 std::cout << "done." << std::endl;
41 std::cout << "Invalid quantity: " << quantity << std::endl;
42 std::cout << "Simulation Result Data contains failure data." << std::endl;
43 std::cout << "Testing not possible." << std::endl;
44}
45
46bool isValid(const double quantity, const std::string &quantityName)
47{
48 if (std::isnan(quantity)) {
50 return false;
51 }
52 return true;
53}
54
59
60std::vector<std::vector<double>> ResultsImp::getVx()
61{
62 return vx;
63}
64
65std::vector<std::vector<double>> ResultsImp::getVy()
66{
67 return vy;
68}
69
70std::vector<std::vector<double>> ResultsImp::getVz()
71{
72 return vz;
73}
74
76{
77 return xNodes;
78}
79
81{
82 return yNodes;
83}
84
86{
87 return zNodes;
88}
89
90std::vector<std::vector<double>> ResultsImp::getXNodes()
91{
92 return x;
93}
94
95std::vector<std::vector<double>> ResultsImp::getYNodes()
96{
97 return y;
98}
99
100std::vector<std::vector<double>> ResultsImp::getZNodes()
101{
102 return z;
103}
104
109
110std::vector<unsigned int> ResultsImp::getTimeSteps()
111{
112 return timeStep;
113}
114
115std::vector<int> ResultsImp::getTime()
116{
117 return time;
118}
119
120std::vector<std::vector<unsigned int>> ResultsImp::getLevels()
121{
122 return level;
123}
124
125std::vector<std::vector<double>> ResultsImp::getPress()
126{
127 return press;
128}
129
130std::vector<std::vector<double>> ResultsImp::getRho()
131{
132 return rho;
133}
134
136{
137 return l0;
138}
139
141{
142 std::cout << "checking Simulation Results Data...";
143 for (int i = 0; i < vx.size(); i++) {
144 for (int j = 0; j < vx.at(i).size(); j++) {
145 bool valid = isValid(vx.at(i).at(j), "Vx") && isValid(vy.at(i).at(j), "Vy") &&
146 isValid(vz.at(i).at(j), "Vz") && isValid(rho.at(i).at(j), "Rho") &&
147 isValid(press.at(i).at(j), "Pressure");
148
149 if (!valid)
150 return false;
151 }
152 }
153 std::cout << "done." << std::endl;
154 std::cout << "Simulation Result Data contains no failure data." << std::endl;
155 return true;
156}
157
159{
160 this->l0 = l0;
161}
162
unsigned int numberOfTimeSteps
Definition ResultsImp.h:65
unsigned int timeStepLength
Definition ResultsImp.h:66
std::vector< std::vector< double > > z
Definition ResultsImp.h:72
unsigned int yNodes
Definition ResultsImp.h:67
std::vector< std::vector< double > > rho
Definition ResultsImp.h:75
std::vector< std::vector< unsigned int > > level
Definition ResultsImp.h:76
std::vector< std::vector< double > > vy
Definition ResultsImp.h:73
std::vector< std::vector< double > > y
Definition ResultsImp.h:72
std::vector< int > time
Definition ResultsImp.h:71
std::vector< std::vector< double > > vz
Definition ResultsImp.h:73
std::vector< std::vector< double > > x
Definition ResultsImp.h:72
unsigned int xNodes
Definition ResultsImp.h:67
std::vector< std::vector< double > > vx
Definition ResultsImp.h:73
unsigned int zNodes
Definition ResultsImp.h:67
std::vector< std::vector< double > > press
Definition ResultsImp.h:74
ResultsImp()=default
std::vector< unsigned int > timeStep
Definition ResultsImp.h:70
int getNumberOfYNodes()
std::vector< std::vector< unsigned int > > getLevels()
bool checkYourData()
std::vector< int > getTime()
void logInvalidSimulationData(const std::string &quantity)
std::vector< std::vector< double > > getVz()
int getNumberOfXNodes()
std::vector< std::vector< double > > getVy()
std::vector< std::vector< double > > getXNodes()
int getNumberOfZNodes()
std::vector< std::vector< double > > getPress()
std::vector< std::vector< double > > getRho()
int getTimeStepLength()
int getNumberOfTimeSteps()
std::vector< std::vector< double > > getYNodes()
bool isValid(const double quantity, const std::string &quantityName)
std::vector< unsigned int > getTimeSteps()
std::vector< std::vector< double > > getVx()
std::vector< std::vector< double > > getZNodes()
std::shared_ptr< T > SPtr