Flow123d  build_with_4.0.3-01443f6
assembly_models.hh
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file assembly_models.hh
15  * @brief Functors of FieldModels used in Darcy flow module.
16  * @author David Flanderka
17  *
18  */
19 
20 #ifndef ASSEMBLY_MODELS_HH
21 #define ASSEMBLY_MODELS_HH
22 
23 #include <armadillo>
24 
25 using Sclr = double;
26 using Vect = arma::vec3;
27 
28 // Functor computing velocity (flux / cross_section)
30  inline Vect operator() (Vect flux, Sclr csec) {
31  return flux / csec;
32  }
33 };
34 
35 
36 // Functor computing piezo_head_p0
38  inline Sclr operator() (Vect gravity, Vect coords, Sclr pressure) {
39  return arma::dot((-1*gravity), coords) + pressure;
40  }
41 };
42 
43 #endif //ASSEMBLY_MODELS_HH
double Sclr
Sclr operator()(Vect gravity, Vect coords, Sclr pressure)
Vect operator()(Vect flux, Sclr csec)