Alsvinn  0.5.3
The fast FVM simulator with UQ support
VolumePair.hpp
Go to the documentation of this file.
1 /* Copyright (c) 2018 ETH Zurich, Kjetil Olsen Lye
2  * This program is free software: you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation, either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program. If not, see <http://www.gnu.org/licenses/>.
14  */
15 
16 #pragma once
17 #include "alsfvm/volume/Volume.hpp"
18 #include <vector>
19 
20 namespace alsfvm {
21 namespace volume {
22 
24 class VolumePair {
25 public:
27  typedef std::vector<std::shared_ptr<volume::Volume>>::iterator IteratorType;
28  typedef std::vector<std::shared_ptr<volume::Volume>>::const_iterator
30 
31  VolumePair(std::shared_ptr<volume::Volume> conservedVolume,
32  std::shared_ptr<volume::Volume> extraVolume);
33 
34 
35  VolumePair(std::shared_ptr<volume::Volume> conservedVolume);
36 
37  std::shared_ptr<volume::Volume> getConservedVolume();
38  std::shared_ptr<volume::Volume> getExtraVolume();
39 
40  IteratorType begin();
41  IteratorType end();
42 
43 
44  ConstIteratorType begin() const;
45  ConstIteratorType end() const;
46 private:
47  std::vector<std::shared_ptr<volume::Volume>> volumes;
48 
49 };
50 } // namespace volume
51 } // namespace alsfvm
VolumePair()
Definition: VolumePair.hpp:26
Easy reference to the combination of conserved volume and extra volume.
Definition: VolumePair.hpp:24
std::vector< std::shared_ptr< volume::Volume > >::iterator IteratorType
Definition: VolumePair.hpp:27
std::shared_ptr< volume::Volume > getConservedVolume()
Definition: VolumePair.cpp:32
std::vector< std::shared_ptr< volume::Volume > >::const_iterator ConstIteratorType
Definition: VolumePair.hpp:29
IteratorType end()
Definition: VolumePair.cpp:44
IteratorType begin()
Definition: VolumePair.cpp:40
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
std::shared_ptr< volume::Volume > getExtraVolume()
Definition: VolumePair.cpp:36