betaMaxDarcy.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2020-2023 PCOpt/NTUA
9  Copyright (C) 2020-2023 FOSS GP
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 
28 Class
29  Foam::betaMaxDarcy
30 
31 Description
32  Compute betaMax through the definition of the Darcy number, quantifying
33  the viscous-to-porous forces ratio
34  Da = nu/betaMax/L/L
35  where nu is the bulk viscosity and L is a characteristic length.
36  The latter is either supplied directly or computed as the
37  - 2D: area of the inlet patches divided by the span in the empty direction
38  - 3D: the hydraulic diameter of the inlet patches
39 
40  Reference:
41  \verbatim
42  Olesen, L. H., Okkels, F., & Bruus H. (2006).
43  A high-level programming-language implementation of topology
44  optimization applied to steady-state Navier–Stokes flow.
45  International Journal for Numerical Methods in Engineering,
46  65(7), 975-1001.
47  https://doi.org/10.1002/nme.1468
48  \endverbatim
49 
50 SourceFiles
51  betaMaxDarcy.C
52 
53 \*---------------------------------------------------------------------------*/
54 
55 #ifndef betaMaxDarcy_H
56 #define betaMaxDarcy_H
57 
58 #include "betaMax.H"
59 
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 
62 namespace Foam
63 {
64 
65 /*---------------------------------------------------------------------------*\
66  Class betaMaxDarcy Declaration
67 \*---------------------------------------------------------------------------*/
68 
69 class betaMaxDarcy
70 :
71  public betaMax
72 {
73 
74 private:
75 
76  // Private Member Functions
77 
78  //- No copy construct
79  betaMaxDarcy(const betaMaxDarcy&) = delete;
80 
81  //- No copy assignment
82  void operator=(const betaMaxDarcy&) = delete;
83 
84 
85 protected:
86 
87  // Protected Data
88 
89  //- The Darcy number expressing the ratio of viscous to porous forces
90  scalar DarcyNumber_;
91 
92  //- Characteristic length of the case
93  // Either supplied directly or computed as the hydraulic diameter of
94  // the inlet
95  scalar length_;
96 
97 
98 public:
99 
100  //- Runtime type information
101  TypeName("Darcy");
102 
103 
104  // Constructors
105 
106  //- Construct from components
108  (
109  const fvMesh& mesh,
110  const dictionary& dict
111  );
112 
113 
114  //- Destructor
115  virtual ~betaMaxDarcy() = default;
116 };
117 
118 
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 
121 } // End namespace Foam
122 
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124 
125 #endif
126 
127 // ************************************************************************* //
dictionary dict
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
scalar length_
Characteristic length of the case.
Definition: betaMaxDarcy.H:99
scalar DarcyNumber_
The Darcy number expressing the ratio of viscous to porous forces.
Definition: betaMaxDarcy.H:91
dynamicFvMesh & mesh
Compute betaMax through the definition of the Darcy number, quantifying the viscous-to-porous forces ...
Definition: betaMaxDarcy.H:64
Base class for selecting the betaMax value, i.e. the value multiplying the Brinkman penalisation term...
Definition: betaMax.H:49
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
virtual ~betaMaxDarcy()=default
Destructor.
TypeName("Darcy")
Runtime type information.
Namespace for OpenFOAM.