VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
Block3DVisitor.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//
33//=======================================================================================
34
35#ifndef Block3DVisitor_h
36#define Block3DVisitor_h
37
39
40class Block3D;
41class Grid3D;
42
45{
46public:
47 Block3DVisitor() = default;
48
49 Block3DVisitor(int startLevel, int stopLevel) : startLevel(startLevel), stopLevel(stopLevel) {}
50
51 virtual ~Block3DVisitor() = default;
52
53 virtual void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) = 0;
54
55 int getStartLevel() const;
56 int getStopLevel() const;
57 void setStartLevel(int level);
58 void setStopLevel(int level);
59
60private:
61 int startLevel{ -1 };
62 int stopLevel{ -1 };
63};
65inline int Block3DVisitor::getStartLevel() const { return this->startLevel; }
67inline int Block3DVisitor::getStopLevel() const { return this->stopLevel; }
69inline void Block3DVisitor::setStartLevel(int level) { this->startLevel = level; }
71inline void Block3DVisitor::setStopLevel(int level) { this->stopLevel = level; }
72
73#endif
74
A class implements a block structure.
Definition Block3D.h:49
Abstract class provides interface for visitor design pettern.
virtual ~Block3DVisitor()=default
Block3DVisitor(int startLevel, int stopLevel)
Block3DVisitor()=default
virtual void visit(SPtr< Grid3D > grid, SPtr< Block3D > block)=0
A class implements block grid.
Definition Grid3D.h:60
std::shared_ptr< T > SPtr
int getStartLevel() const
int getStopLevel() const
void setStopLevel(int level)
void setStartLevel(int level)