VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
Cp.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//
33//=======================================================================================
34#include "Cp.h"
35
36#include <cuda_runtime.h>
37#include <helper_cuda.h>
38
39#include <cassert>
40#include <cstdio>
41#include <fstream>
42#include <sstream>
43
45
46using namespace std;
47
48namespace vf::gpu {
49
50void calcCp(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev)
51{
53 //copy to host
54 cudaMemoryManager->cudaCopyCpTop(lev);
55 cudaMemoryManager->cudaCopyCpBottom(lev);
56 cudaMemoryManager->cudaCopyCpBottom2(lev);
58 //Parameter
59 double rhoSI = 1.204; // kg/m^3
60 double veloSI = (double)para->getVelocity() * (double)para->getVelocityRatio(); // m/s
61 double pressSI;
62 double cp;
63 std::vector< double > cpTopRow;
64 std::vector< double > cpBottomRow;
65 std::vector< double > cpBottom2Row;
67 //calc cp top
68 for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++)
69 {
70 pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio());
71 cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI));
72 cpTopRow.push_back(cp);
73 }
74 para->getParH((int)lev)->cpTop.push_back(cpTopRow);
76 //calc cp bottom
77 for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom; it++)
78 {
79 pressSI = (double)(para->getParH((int)lev)->cpPressBottom[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio());
80 cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI));
81 cpBottomRow.push_back(cp);
82 }
83 para->getParH((int)lev)->cpBottom.push_back(cpBottomRow);
85 //calc cp bottom 2
86 for (uint it = 0; it < para->getParH((int)lev)->numberOfPointsCpBottom2; it++)
87 {
88 pressSI = (double)(para->getParH((int)lev)->cpPressBottom2[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio());
89 cp = (double) (pressSI / (0.5 * rhoSI * veloSI * veloSI));
90 cpBottom2Row.push_back(cp);
91 }
92 para->getParH((int)lev)->cpBottom2.push_back(cpBottom2Row);
94}
95
96
97
98void printCpTopIntermediateStep(Parameter* para, unsigned int t, int lev)
99{
101 //set filename
102 std::string ffname = para->getFName() + StringUtil::toString<int>(para->getMyProcessID()) + "_" + StringUtil::toString<int>(t) + "_cp_top.txt";
103 const char* fname = ffname.c_str();
105 //set ofstream
106 std::ofstream ostr;
108 //open file
109 ostr.open(fname);
111 //fill file with data
112 for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin(); i != para->getParH((int)lev)->cpTop.end(); ++i)
113 {
114 for (vector<double>::const_iterator j = i->begin(); j != i->end(); ++j)
115 {
116 ostr << *j << " ";
117 }
118 ostr << endl;
119 }
121 //close file
122 ostr.close();
124 para->getParH((int)lev)->cpTop.clear();
126}
127
128
129
130void printCpTop(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev)
131{
133 //set filename
134 std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_top.txt";
135 const char* fname = ffname.c_str();
137 //set ofstream
140 //open file
141 ostr.open(fname);
143 //fill file with data
144 for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpTop.begin() ; i != para->getParH((int)lev)->cpTop.end(); ++i)
145 {
146 for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j)
147 {
148 ostr << *j << " ";
149 }
150 ostr << endl;
151 }
153 //close file
154 ostr.close();
156 para->getParH((int)lev)->cpTop.clear();
157 cudaMemoryManager->cudaFreeCpTop(lev);
159}
160
161
162
163void printCpBottom(Parameter* para, CudaMemoryManager* cudaMemoryManager)
164{
166 //set level
167 int lev = para->getMaxLevel();
169 //set filename
170 std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom.txt";
171 const char* fname = ffname.c_str();
173 //set ofstream
176 //open file
177 ostr.open(fname);
179 //fill file with data
180 for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom.begin() ; i != para->getParH((int)lev)->cpBottom.end(); ++i)
181 {
182 for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j)
183 {
184 ostr << *j << " ";
185 }
186 ostr << endl;
187 }
189 //close file
190 ostr.close();
192 para->getParH((int)lev)->cpBottom.clear();
193 cudaMemoryManager->cudaFreeCpBottom(lev);
195}
196
197
198
199void printCpBottom2(Parameter* para, CudaMemoryManager* cudaMemoryManager)
200{
202 //set level
203 int lev = para->getMaxLevel();
205 //set filename
206 std::string ffname = para->getFName()+StringUtil::toString<int>(para->getMyProcessID())+"_cp_bottom2.txt";
207 const char* fname = ffname.c_str();
209 //set ofstream
212 //open file
213 ostr.open(fname);
215 //fill file with data
216 for (vector< vector<double> >::const_iterator i = para->getParH((int)lev)->cpBottom2.begin() ; i != para->getParH((int)lev)->cpBottom2.end(); ++i)
217 {
218 for (vector<double>::const_iterator j=i->begin(); j!=i->end(); ++j)
219 {
220 ostr << *j << " ";
221 }
222 ostr << endl;
223 }
225 //close file
226 ostr.close();
228 para->getParH((int)lev)->cpBottom2.clear();
229 cudaMemoryManager->cudaFreeCpBottom2(lev);
231}
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
255{
256 bool tempBool = true;
257 para->getParH((int)lev)->numberOfPointsPressWindow = 0;
258 para->getParH(lev + 1)->numberOfPointsPressWindow = 0;
260 //define bool vector for nodes outside the interface
261 for (unsigned int it = 0; it < para->getParH(lev + 1)->numberOfPointsCpTop; it++)
262 {
263 for (unsigned int ifit = 0; ifit < para->getParH((int)lev)->coarseToFine.numberOfCells; ifit++)
264 {
265 if ((para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]) ||
266 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) ||
267 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) ||
268 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]) ||
269 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) ||
270 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) ||
271 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]) ||
272 (para->getParH(lev + 1)->cpTopIndex[it] == (int)para->getParH(lev + 1)->neighborZ[para->getParH(lev + 1)->neighborY[para->getParH(lev + 1)->neighborX[para->getParH((int)lev)->coarseToFine.fineCellIndices[ifit]]]]))
273 {
274 para->getParH(lev + 1)->isOutsideInterface.push_back(false);
275 tempBool = false;
276 break;
277 }
278 }
279 if (tempBool == true)
280 {
281 para->getParH(lev + 1)->isOutsideInterface.push_back(true);
282 para->getParH(lev + 1)->numberOfPointsPressWindow++;
283 }
284 tempBool = true;
285 }
287 for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++)
288 {
289 for (unsigned int ifit = 0; ifit < para->getParH((int)lev)->fineToCoarse.numberOfCells; ifit++)
290 {
291 if (para->getParH((int)lev)->cpTopIndex[it] == (int)para->getParH((int)lev)->fineToCoarse.coarseCellIndices[ifit])
292 {
293 para->getParH((int)lev)->isOutsideInterface.push_back(false);
294 tempBool = false;
295 break;
296 }
297 }
298 if (tempBool == true)
299 {
300 para->getParH((int)lev)->isOutsideInterface.push_back(true);
301 para->getParH((int)lev)->numberOfPointsPressWindow++;
302 }
303 tempBool = true;
304 }
306 std::cout << "number of nodes cp top level 7:" << para->getParH((int)lev)->numberOfPointsCpTop << endl;
307 std::cout << "number of nodes bool level 7:" << para->getParH((int)lev)->isOutsideInterface.size() << endl;
308 std::cout << "number of nodes press window level 7:" << para->getParH((int)lev)->numberOfPointsPressWindow << endl;
309 std::cout << "number of nodes cp top level 8:" << para->getParH(lev + 1)->numberOfPointsCpTop << endl;
310 std::cout << "number of nodes bool level 8:" << para->getParH(lev + 1)->isOutsideInterface.size() << endl;
311 std::cout << "number of nodes press window level 8:" << para->getParH(lev + 1)->numberOfPointsPressWindow << endl;
312}
313
314
315
316void calcPressForMirror(Parameter* para, CudaMemoryManager* cudaMemoryManager, int lev)
317{
319 //copy to host
320 cudaMemoryManager->cudaCopyCpTop(lev);
322 //Parameter
323 double pressSI;
325 //calc press
326 for (unsigned int it = 0; it < para->getParH((int)lev)->numberOfPointsCpTop; it++)
327 {
328 if (para->getParH((int)lev)->isOutsideInterface[it])
329 {
330 pressSI = (double)(para->getParH((int)lev)->cpPressTop[it] / (double)3.0 * (double)para->getDensityRatio() * (double)para->getVelocityRatio() * (double)para->getVelocityRatio());
331 para->getParH((int)lev)->pressMirror.push_back(pressSI);
332 }
333 }
335 //std::cout << "number of nodes press mirror:" << para->getParH((int)lev)->pressMirror.size() << ", at level: " << lev << endl;
336}
337
338
339
340//Ensight Gold
342{
344 double deltaXcoarse = 0.256; // [m]
345 double deltat = (para->getVelocity() * deltaXcoarse) / (para->getVelocity() * para->getVelocityRatio());
346 unsigned int numberOfSteps = (unsigned int)((para->getTimestepEnd() - para->getTimestepStartOut()) * pow(2,5) );
347 //cout << "number of nodes:" << numberOfSteps << endl;
349 //set filename
350 std::string ffname = para->getFName() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".case";
351 const char* fname = ffname.c_str();
353 //set filename geo
354 std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".geo";
355 const char* fnameGeo = ffnameGeo.c_str();
357 //set filename scalar
358 std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID()) + ".*****.p";
359 const char* fnameScalar = ffnameScalar.c_str();
361 //set ofstream
364 //open file
365 ostr.open(fname);
367 //fill file with data
368 ostr << "###########################################################" << std::endl;
369 ostr << "#### Casefile written by VirtualFluidsGPU" << std::endl;
370 ostr << "###########################################################" << std::endl << std::endl;
371
372 ostr << "FORMAT " << std::endl;
373 ostr << "type: ensight gold" << std::endl << std::endl;
374
375 ostr << "GEOMETRY " << std::endl;
376 ostr << "model: " << "Data/" << fnameGeo << std::endl << std::endl;
377
378 ostr << "VARIABLE " << std::endl;
379 ostr << "scalar per element: 1 Pressure \t" << "Data/" << fnameScalar << std::endl << std::endl;
380
381 ostr << "TIME " << std::endl;
382 ostr << "time set: 1" << std::endl;
383 ostr << "number of steps: " << numberOfSteps << "\n";
384 ostr << "filename start number: 0" << std::endl;
385 ostr << "filename increment: 1" << std::endl;
386 ostr << "time values:" << std::endl;
388 for (unsigned int t = 0; t < numberOfSteps; t++)
389 {
390 ostr << "\t" << t * deltat / (pow(2, 5)) << std::endl;
391 }
393 //close file
394 ostr.close();
396}
397
398
399
400
401
402
404{
406 //set filename geo
407 std::string ffnameGeo = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID());
408 const char* fnameGeo = ffnameGeo.c_str();
410 char fname[1024];
411 sprintf(fname, "%s/Data/%s.geo", para->getOutputPath().c_str(), fnameGeo);
413 size_t startlevel = para->getMaxLevel() - 1;
414 size_t endlevel = para->getMaxLevel();
416 unsigned int non = 0;
417 for (size_t lev = startlevel; lev <= endlevel; lev++)
418 {
419 non += para->getParH((int)lev)->numberOfPointsPressWindow;
420 }
422
423 if (!fileFormat) //ASCII
424 {
426 //set ofstream
428 std::ostringstream temp1;
429 std::ostringstream temp2;
430 std::ostringstream temp3;
432 //open file
433 ostr.open(fname);
435 ostr << "This geometry File was written by VirtualFluidsGPU\n";
436 ostr << "#### Casefile written by VirtualFluidsGPU\n";
438 ostr << "node id assign \n";
439 ostr << "element id assign \n";
441 ostr << "part \n \t 1 \n";
442 ostr << fnameGeo << "\n";
443 ostr << "coordinates \n \t" << non << "\n";
445 // X
446 for (size_t lev = startlevel; lev <= endlevel; lev++)
447 {
448 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
449 {
450 if (para->getParH((int)lev)->isOutsideInterface[i])
451 {
452 ostr << (para->getParH((int)lev)->coordinateX[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(0) + para->getTranslateLBMtoSI().at(0)) << std::endl;
453 }
454 }
455 }
457 // Y
458 for (size_t lev = startlevel; lev <= endlevel; lev++)
459 {
460 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
461 {
462 if (para->getParH((int)lev)->isOutsideInterface[i])
463 {
464 ostr << (para->getParH((int)lev)->coordinateY[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(1) + para->getTranslateLBMtoSI().at(1)) << std::endl;
465 }
466 }
467 }
469 // Z
470 for (size_t lev = startlevel; lev <= endlevel; lev++)
471 {
472 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
473 {
474 if (para->getParH((int)lev)->isOutsideInterface[i])
475 {
476 ostr << (para->getParH((int)lev)->coordinateZ[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(2) + para->getTranslateLBMtoSI().at(2)) << std::endl;
477 }
478 }
479 }
481 ostr << "point \n \t" << non << "\n";
483 unsigned int j = 0;
484 for (size_t lev = startlevel; lev <= endlevel; lev++)
485 {
486 for (size_t i = 0; i < para->getParH((int)lev)->numberOfPointsPressWindow; i++)
487 {
488 j++;
489 ostr << j << "\n";
490 }
491 }
492 ostr.close();
493 }
494 else //Binary:
495 {
497 std::ofstream ostr;
498 ostr.open(fname, std::ios::out | std::ios::binary);
499 assert(ostr.is_open());
501 float tempCoord = 0.0f;
503 writeStringToFile("C Binary", ostr);
504 writeStringToFile("This geometry File was written by VirtualFluidsGPU", ostr);
505 writeStringToFile("#### Casefile written by VirtualFluidsGPU", ostr);
506 writeStringToFile("node id assign", ostr);
507 writeStringToFile("element id assign", ostr);
508 writeStringToFile("part", ostr);
511 writeStringToFile("coordinates", ostr);
514 // X
515 for (size_t lev = startlevel; lev <= endlevel; lev++)
516 {
517 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
518 {
519 if (para->getParH((int)lev)->isOutsideInterface[i])
520 {
521 tempCoord = (para->getParH((int)lev)->coordinateX[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(0) + para->getTranslateLBMtoSI().at(0));
523 }
524 }
525 }
527 // Y
528 for (size_t lev = startlevel; lev <= endlevel; lev++)
529 {
530 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
531 {
532 if (para->getParH((int)lev)->isOutsideInterface[i])
533 {
534 tempCoord = (para->getParH((int)lev)->coordinateY[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(1) + para->getTranslateLBMtoSI().at(1));
536 }
537 }
538 }
540 // Z
541 for (size_t lev = startlevel; lev <= endlevel; lev++)
542 {
543 for (unsigned int i = 0; i < para->getParH((int)lev)->numberOfPointsCpTop; i++)
544 {
545 if (para->getParH((int)lev)->isOutsideInterface[i])
546 {
547 tempCoord = (para->getParH((int)lev)->coordinateZ[para->getParH((int)lev)->cpTopIndex[i]] * para->getScaleLBMtoSI().at(2) + para->getTranslateLBMtoSI().at(2));
549 }
550 }
551 }
553 writeStringToFile("point", ostr);
556 unsigned int j = 0;
557 for (size_t lev = startlevel; lev <= endlevel; lev++)
558 {
559 for (size_t i = 0; i < para->getParH((int)lev)->numberOfPointsPressWindow; i++)
560 {
561 j++;
563 }
564 //std::cout << "level: " << lev << ", numberOfPointsPressWindow:" << para->getParH((int)lev)->numberOfPointsPressWindow << endl;
565 }
566 ostr.close();
567 }
568}
569
570
571
572
573
574
576{
578 //set filename scalar
579 std::string ffnameScalar = para->getOutputPrefix() + "_" + StringUtil::toString<int>(para->getMyProcessID());
580 const char* fnameScalar = ffnameScalar.c_str();
582 char fname[1024];
583 sprintf(fname, "%s/Data/%s.%05u.p", para->getOutputPath().c_str(), fnameScalar, para->getStepEnsight());
584 para->setStepEnsight(para->getStepEnsight()+1);
586 size_t startlevel = para->getMaxLevel() - 1;
587 size_t endlevel = para->getMaxLevel();
589
590 if (!fileFormat) //ASCII
591 {
593 ostr.open(fname);
595 ostr << fnameScalar << " \n";
596 ostr << "part \n\t 1 \n";
597 ostr << "point\n";
599 //fill file with data
600 for (size_t lev = startlevel; lev <= endlevel; lev++)
601 {
602 for (vector<double>::const_iterator i = para->getParH((int)lev)->pressMirror.begin(); i != para->getParH((int)lev)->pressMirror.end(); ++i)
603 {
604 ostr << *i << "\n";
605 }
606 }
607 ostr.close();
609 for (size_t lev = startlevel; lev <= endlevel; lev++)
610 {
611 para->getParH((int)lev)->pressMirror.clear();
612 }
613 }
614 else //Binary:
615 {
616 std::ofstream ostr;
617 ostr.open(fname, std::ios::out | std::ios::binary);
618 assert(ostr.is_open());
621 writeStringToFile("part", ostr);
623 writeStringToFile("point", ostr);
625 //fill file with data
626 for (size_t lev = startlevel; lev <= endlevel; lev++)
627 {
628 for (vector<double>::const_iterator i = para->getParH((int)lev)->pressMirror.begin(); i != para->getParH((int)lev)->pressMirror.end(); ++i)
629 {
631 }
632 }
633 ostr.close();
635 for (size_t lev = startlevel; lev <= endlevel; lev++)
636 {
637 para->getParH((int)lev)->pressMirror.clear();
638 }
639 }
640}
641
642
643
644
645//functions to write binary files
646void writeIntToFile(const int &i, std::ofstream &ofile)
647{
648 ofile.write((char*)&i, sizeof(int));
649}
650
651void writeFloatToFile(const float &f, std::ofstream &ofile)
652{
653 ofile.write((char*)&f, sizeof(float));
654}
655
656void writeStringToFile(const std::string &s, std::ofstream &ofile)
657{
658 assert(s.size() <= 80);
659 char cbuffer[81];
660 // Terminate the buffer to avoid static analyzer warnings about strncpy not
661 // NUL-terminating its destination buffer in case the input is too long.
662 cbuffer[80] = '\0';
663 strncpy(cbuffer, s.c_str(), 80);
664 // Write a constant 80 bytes to the file.
665 ofile.write(cbuffer, 80);
666}
667
668}
669
Class for LBM-parameter management.
Definition Parameter.h:359
int getMyProcessID() const
unsigned int getTimestepStartOut()
std::vector< real > getTranslateLBMtoSI()
std::shared_ptr< LBMSimulationParameter > getParH(int level) const
Pointer to instance of LBMSimulationParameter - stored on Host System.
std::vector< real > getScaleLBMtoSI()
real getVelocityRatio() const
int getMaxLevel() const
std::string getOutputPrefix() const
real getDensityRatio() const
std::string getFName() const
void setStepEnsight(unsigned int step)
std::string getOutputPath()
unsigned int getStepEnsight()
unsigned int getTimestepEnd() const
real getVelocity() const
std::shared_ptr< T > SPtr
unsigned int uint
Definition DataTypes.h:47
void printCaseFile(Parameter *para)
Definition Cp.cpp:341
void printGeoFile(Parameter *para, bool fileFormat)
Definition Cp.cpp:403
void printScalars(Parameter *para, bool fileFormat)
Definition Cp.cpp:575
void printCpBottom2(Parameter *para, CudaMemoryManager *cudaMemoryManager)
Definition Cp.cpp:199
void writeFloatToFile(const float &f, std::ofstream &ofile)
Definition Cp.cpp:651
void printCpBottom(Parameter *para, CudaMemoryManager *cudaMemoryManager)
Definition Cp.cpp:163
void calcPressForMirror(Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
Definition Cp.cpp:316
void writeStringToFile(const std::string &s, std::ofstream &ofile)
Definition Cp.cpp:656
void calcCp(Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
Definition Cp.cpp:50
void printCpTopIntermediateStep(Parameter *para, unsigned int t, int lev)
Definition Cp.cpp:98
void printCpTop(Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
Definition Cp.cpp:130
void excludeGridInterfaceNodesForMirror(Parameter *para, int lev)
Definition Cp.cpp:254
void writeIntToFile(const int &i, std::ofstream &ofile)
Definition Cp.cpp:646