openPSTD  2.0
Open source simulation for sound propagation in urban environments
Boundary.h
1 // This file is part of openPSTD. //
3 // //
4 // openPSTD is free software: you can redistribute it and/or modify //
5 // it under the terms of the GNU General Public License as published by //
6 // the Free Software Foundation, either version 3 of the License, or //
7 // (at your option) any later version. //
8 // //
9 // openPSTD is distributed in the hope that it will be useful, //
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
12 // GNU General Public License for more details. //
13 // //
14 // You should have received a copy of the GNU General Public License //
15 // along with openPSTD. If not, see <http://www.gnu.org/licenses/>. //
16 // //
18 
20 //
21 // Date: 17-9-15
22 //
23 //
24 // Authors: 0mar Richardson
25 //
26 //
27 // Purpose: Modelling boundaries between domains.
28 //
29 //
31 #ifndef OPENPSTD_BOUNDARY_H
32 #define OPENPSTD_BOUNDARY_H
33 
34 #include <string>
35 
36 #include "Domain.h"
37 
38 namespace OpenPSTD
39 {
40  namespace Kernel
41  {
48  class Boundary
49  {
50  public:
52  std::shared_ptr<Domain> domain1;
53 
55  std::shared_ptr<Domain> domain2;
56 
59 
69  Boundary(std::shared_ptr<Domain> domain1, std::shared_ptr<Domain> domain2, CalcDirection type);
70 
71  };
72  }
73 }
74 
75 #endif //OPENPSTD_BOUNDARY_H
This is the general namespace of the OpenPSTD application.
Definition: Boundary.cpp:33
CalcDirection
Helper enums - used to distinguish horizontal boundaries from vertical boundaries.
Definition: kernel_functions.h:71
std::shared_ptr< Domain > domain2
Second of the domains separated by the boundary.
Definition: Boundary.h:55
Models a boundary between two domains.
Definition: Boundary.h:48
CalcDirection type
Whether the boundary is used for horizontal or vertical computations.
Definition: Boundary.h:58
std::shared_ptr< Domain > domain1
First of the domains separated by the boundary.
Definition: Boundary.h:52
Boundary(std::shared_ptr< Domain > domain1, std::shared_ptr< Domain > domain2, CalcDirection type)
Creates a boundary of given type between the given domains, together with its orientation.
Definition: Boundary.cpp:36