twoPhaseVoFSolver.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::solvers::twoPhaseVoFSolver
26 
27 Description
28  Solver module base-class for 2 immiscible fluids using a VOF (volume
29  of fluid) phase-fraction based interface capturing approach, with optional
30  mesh motion and mesh topology changes including adaptive re-meshing.
31 
32  The momentum and other fluid properties are of the "mixture" and a single
33  momentum equation is solved.
34 
35  Either mixture or two-phase transport modelling may be selected. In the
36  mixture approach a single laminar, RAS or LES model is selected to model the
37  momentum stress. In the Euler-Euler two-phase approach separate laminar,
38  RAS or LES selected models are selected for each of the phases.
39 
40  Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
41  pseudo-transient and steady simulations.
42 
43  Optional fvModels and fvConstraints are provided to enhance the simulation
44  in many ways including adding various sources, Lagrangian
45  particles, surface film etc. and constraining or limiting the solution.
46 
47 SourceFiles
48  twoPhaseVoFSolver.C
49 
50 See also
51  Foam::solvers::fluidSolver
52 
53 \*---------------------------------------------------------------------------*/
54 
55 #ifndef twoPhaseVoFSolver_H
56 #define twoPhaseVoFSolver_H
57 
58 #include "twoPhaseSolver.H"
59 #include "interfaceProperties.H"
60 
61 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62 
63 namespace Foam
64 {
65 namespace solvers
66 {
67 
68 /*---------------------------------------------------------------------------*\
69  Class twoPhaseVoFSolver Declaration
70 \*---------------------------------------------------------------------------*/
71 
73 :
74  public twoPhaseSolver
75 {
76 
77 protected:
78 
79  // Interface properties
80 
82 
83 
84 private:
85 
86  // Private Member Functions
87 
88  //- Correct the cached Courant numbers
89  virtual void correctCoNum();
90 
91 
92 protected:
93 
94  // Protected Member Functions
95 
96  //- Adjust the rDeltaT in the vicinity of the interface
97  virtual void setInterfaceRDeltaT(volScalarField& rDeltaT);
98 
99  //- Correct the interface properties following mesh-change
100  // and phase-fraction update
101  virtual void correctInterface();
102 
103  //- Return the interface surface tension force for the momentum equation
105 
106 
107 public:
108 
109  //- Runtime type information
110  TypeName("twoPhaseVoFSolver");
111 
112 
113  // Constructors
114 
115  //- Construct from region mesh
117 
118  //- Disallow default bitwise copy construction
119  twoPhaseVoFSolver(const twoPhaseVoFSolver&) = delete;
120 
121 
122  //- Destructor
123  virtual ~twoPhaseVoFSolver();
124 
125 
126  // Member Functions
127 
128 
129  // Member Operators
130 
131  //- Disallow default bitwise assignment
132  void operator=(const twoPhaseVoFSolver&) = delete;
133 };
134 
135 
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 
138 } // End namespace solvers
139 } // End namespace Foam
140 
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 
143 #endif
144 
145 // ************************************************************************* //
Generic GeometricField class.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:99
Contains the interface properties. Surface tension, interface curvature, and functionality to correct...
const fvMesh & mesh
Region mesh.
Definition: solver.H:101
Solver module base-class for 2 immiscible fluids, with optional mesh motion and mesh topology changes...
Solver module base-class for 2 immiscible fluids using a VOF (volume of fluid) phase-fraction based i...
twoPhaseVoFSolver(fvMesh &mesh, autoPtr< twoPhaseVoFMixture >)
Construct from region mesh.
virtual tmp< surfaceScalarField > surfaceTensionForce() const
Return the interface surface tension force for the momentum equation.
TypeName("twoPhaseVoFSolver")
Runtime type information.
void operator=(const twoPhaseVoFSolver &)=delete
Disallow default bitwise assignment.
virtual void setInterfaceRDeltaT(volScalarField &rDeltaT)
Adjust the rDeltaT in the vicinity of the interface.
virtual void correctInterface()
Correct the interface properties following mesh-change.
virtual ~twoPhaseVoFSolver()
Destructor.
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.