Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
fvMotionSolver
fvMotionSolvers
fvMotionSolver
fvMotionSolver.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 | Copyright (C) 1991-2010 OpenCFD Ltd.
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::fvMotionSolver
26
27
Description
28
Virtual base class for finite volume mesh motion solvers.
29
30
The boundary motion is set as a boundary condition on the motion velocity
31
variable motionU.
32
33
SourceFiles
34
fvMotionSolver.C
35
36
\*---------------------------------------------------------------------------*/
37
38
#ifndef fvMotionSolver_H
39
#define fvMotionSolver_H
40
41
#include <
dynamicMesh/motionSolver.H
>
42
#include <
OpenFOAM/pointFieldsFwd.H
>
43
44
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46
namespace
Foam
47
{
48
49
class
fvMesh;
50
class
mapPolyMesh;
51
52
/*---------------------------------------------------------------------------*\
53
Class fvMotionSolver Declaration
54
\*---------------------------------------------------------------------------*/
55
56
class
fvMotionSolver
57
:
58
public
motionSolver
59
{
60
61
protected
:
62
63
// Protected data
64
65
//- The fvMesh to be moved
66
const
fvMesh
&
fvMesh_
;
67
68
69
// Protected member functions
70
71
//- Create the corresponding patch types for cellMotion from those
72
// of the given pointMotion
73
template
<
class
Type>
74
wordList
cellMotionBoundaryTypes
75
(
76
const
typename
GeometricField<Type, pointPatchField, pointMesh>
::
77
GeometricBoundaryField& pmUbf
78
)
const
;
79
80
81
public
:
82
83
//- Runtime type information
84
TypeName
(
"fvMotionSolver"
);
85
86
87
// Constructors
88
89
//- Construct from polyMesh
90
fvMotionSolver
(
const
polyMesh
&
mesh
);
91
92
93
// Destructor
94
95
virtual
~fvMotionSolver
();
96
97
98
// Member Functions
99
100
//- Return reference to the fvMesh to be moved
101
const
fvMesh
&
mesh
()
const
102
{
103
return
fvMesh_
;
104
}
105
106
//- Return point location obtained from the current motion field
107
virtual
tmp<pointField>
curPoints
()
const
= 0;
108
109
//- Solve for motion
110
virtual
void
solve
() = 0;
111
112
//- Update the pointMesh corresponding to the new points
113
void
movePoints
(
const
pointField
&);
114
115
//- Update the mesh corresponding to given map
116
virtual
void
updateMesh
(
const
mapPolyMesh
&);
117
};
118
119
120
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121
122
}
// End namespace Foam
123
124
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125
126
#ifdef NoRepository
127
# include "
fvMotionSolverTemplates.C
"
128
#endif
129
130
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131
132
#endif
133
134
// ************************ vim: set sw=4 sts=4 et: ************************ //