-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdynamicWaveMakerFvMesh.H
executable file
·151 lines (101 loc) · 4.22 KB
/
dynamicWaveMakerFvMesh.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dynamicWaveMakerFvMesh
Description
Mesh motion for wave maker with prescribed positions of the left
wall (in the X-direction) to make the wall mimic 3D wave maker piston
motion.
Based on dynamicInkJetFvMesh.
SourceFiles
dynamicWaveMakerFvMesh.C
Author
Johan Roenby, DHI. All rights reserved.
\*---------------------------------------------------------------------------*/
#ifndef dynamicWaveMakerFvMesh_H
#define dynamicWaveMakerFvMesh_H
#include "dynamicFvMesh.H"
#include "dictionary.H"
#include "pointIOField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class dynamicWaveMakerFvMesh Declaration
\*---------------------------------------------------------------------------*/
class dynamicWaveMakerFvMesh
:
public dynamicFvMesh
{
// Private data
//- Dictionary to hold contents from <case>/constant/dynamicMeshDict
dictionary dynamicMeshCoeffs_;
//- Array of times
scalarField times_;
//- Array of piston positions corresponding to times_
List<scalarField> pistonPositions_;
//- Number of pistons
int nPistons_;
//- Left bound of region with extracting/contracting cells
scalar xl_;
//- Right bound of region with extracting/contracting cells
scalar xr_;
//- Number of times to repeat tabulated piston motion (default = 1)
scalar repetitions_;
//- Interpolation method for piston positions between listed times (default = spline)
word timeInterpolation_;
//- Interpolation method for positions between listed piston positions (default = linear)
word spaceInterpolation_;
//- Y coordinate of piston centres
scalarField yPistonCentres_;
//- Number of moving mesh points
int nMovingPoints_;
//- Indices of moving points in points file
labelList movingPoints_;
//- Original x-coordinates of moving points
scalarField xOriginal_;
//- y-coordinate of moving points
scalarField yOriginal_;
//- Should piston positions be written to log (default: no)
bool writePositionsToLogFile_;
//- Optional factor multiplied on piston positions to amplify aor attenuate them
scalar amplificationFactor_;
// Private Member Functions
//- Disallow default bitwise copy construct
dynamicWaveMakerFvMesh(const dynamicWaveMakerFvMesh&);
//- Disallow default bitwise assignment
void operator=(const dynamicWaveMakerFvMesh&);
public:
//- Runtime type information
TypeName("dynamicWaveMakerFvMesh");
// Constructors
//- Construct from IOobject
dynamicWaveMakerFvMesh(const IOobject& io);
//- Destructor
~dynamicWaveMakerFvMesh();
// Member Functions
//- Update the mesh for both mesh motion and topology change
virtual bool update();
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //