forked from johannesgerer/jburkardt-f
-
Notifications
You must be signed in to change notification settings - Fork 2
/
mass.html
331 lines (295 loc) · 8.98 KB
/
mass.html
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<html>
<head>
<title>
MASS - Mass Matrix Verification
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
MASS <br> Mass Matrix Verification
</h1>
<hr>
<p>
<b>MASS</b>
is a FORTRAN90 program which
checks the mass matrix computation for a finite
element fluid flow computation.
</p>
<p>
The code was created by starting with routines extracted from the
POD_BASIS program. The new code computes, factors, and uses
the mass matrix.
</p>
<p>
This was a tricky process, because the original mass matrix
is computed in another executable program, not controlled by
me but by Professor Hyung-Chun Lee. Thus, an appalling number
of choices must match, including conventions about the ordering of nodes,
the quadrature rule, and so on. (We discovered our disagreements
one by one, and decided how to resolve them!)
</p>
<p>
After running this program many times, we finally
worked out the set of parameters to be used. We were satisfied
with the results in July 2003.
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../datasets/case1_flow/case1_flow.html">
CASE1_FLOW</a>,
a dataset directory which
contains solutions to a flow problem.
</p>
<p>
<a href = "../../datasets/cavity_flow/cavity_flow.html">
CAVITY_FLOW</a>,
a dataset directory which
contains solutions to flow in a cavity.
</p>
<p>
<a href = "../../f_src/cvt_basis_flow/cvt_basis_flow.html">
CVT_BASIS_FLOW</a>,
a FORTRAN90 program which
can be used to analyze this data, and compute
a small set of "basis vectors" using CVT techniques.
</p>
<p>
<a href = "../../f77_src/hcell/hcell.html">
HCELL</a>,
a FORTRAN77 program which
solves the Navier Stokes equations in the H-Cell region.
</p>
<p>
<a href = "../../f77_src/inout/inout.html">
INOUT</a>,
a FORTRAN77 program which
solves the Navier Stokes equations in the "In-Out" region.
</p>
<p>
<a href = "../../datasets/inout_flow/inout_flow.html">
INOUT_FLOW</a>,
a dataset directory which
contains solutions to flow in the "inout" region.
</p>
<p>
<a href = "../../datasets/inout_flow2/inout_flow2.html">
INOUT_FLOW2</a>,
a dataset directory which
contains solutions to flow in the "inout" region.
</p>
<p>
<a href = "../../f_src/pod_basis_flow/pod_basis_flow.html">
POD_BASIS_FLOW</a>,
a FORTRAN90 program which
can be used to analyze flow data, and compute
a small set of "basis vectors" using POD techniques.
</p>
<p>
<a href = "../../datasets/tcell_flow/tcell_flow.html">
TCELL_FLOW</a>,
a dataset directory which
contains solutions to flow in
the T-cell region.
</p>
<p>
<a href = "../../f77_src/tcell_mass/tcell_mass.html">
TCELL_MASS</a>,
a FORTRAN77 program which
computes the mass matrix for the T-Cell problem.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
Max Gunzburger,<br>
Finite Element Methods for Viscous Incompressible Flows,<br>
A Guide to Theory, Practice, and Algorithms,<br>
Academic Press, 1989,<br>
ISBN: 0-12-307350-2,<br>
LC: TA357.G86.
</li>
<li>
John Burkardt, Max Gunzburger, Hyung-Chun Lee,<br>
Centroidal Voronoi Tessellation-Based Reduced-Order
Modelling of Complex Systems,<br>
SIAM Journal on Scientific Computing,<br>
Volume 28, Number 2, 2006, pages 459-484.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "mass.f90">mass.f90</a>, the source code.
</li>
<li>
<a href = "mass.sh">mass.sh</a>,
commands to compile the source code.
</li>
</ul>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<b>MASS_05</b> is a run of the program which uses the 500 solutions
associated with the INOUT_FLOW dataset.
<ul>
<li>
<a href = "mass_05_input.txt">mass_05_input.txt</a>,
the input file.
</li>
<li>
<a href = "mass_05_output.txt">mass_05_output.txt</a>,
the output file.
</li>
</ul>
</p>
<h3 align = "center">
List of Routines:
</h3>
<p>
<ul>
<li>
<b>MAIN</b> is the main program for MASS.
</li>
<li>
<b>BANDWIDTH_DETERMINE</b> computes the lower bandwidth of a finite element matrix.
</li>
<li>
<b>BASIS_WRITE</b> writes a basis vector to a file.
</li>
<li>
<b>CH_CAP</b> capitalizes a single character.
</li>
<li>
<b>CH_EQI</b> is a case insensitive comparison of two characters for equality.
</li>
<li>
<b>CH_IS_DIGIT</b> returns .TRUE. if a character is a decimal digit.
</li>
<li>
<b>CH_TO_DIGIT</b> returns the integer value of a base 10 digit.
</li>
<li>
<b>DATA_I4VEC_READ</b> reads an dataset of integer vectors stored in a file.
</li>
<li>
<b>DATA_R82_READ</b> reads a data set of pairs of R8 numbers stored in a file.
</li>
<li>
<b>DATA_R82_WRITE</b> writes a data set of pairs of real*8 numbers into a file.
</li>
<li>
<b>DATA_SIZE</b> counts the size of a data set stored in a file.
</li>
<li>
<b>DIGIT_INC</b> increments a decimal digit.
</li>
<li>
<b>DIGIT_TO_CH</b> returns the character representation of a decimal digit.
</li>
<li>
<b>FILE_EXIST</b> reports whether a file exists.
</li>
<li>
<b>FILE_NAME_INC</b> generates the next filename in a series.
</li>
<li>
<b>GET_UNIT</b> returns a free FORTRAN unit number.
</li>
<li>
<b>I4_INPUT</b> prints a prompt string and reads an integer from the user.
</li>
<li>
<b>I4_RANGE_INPUT</b> reads a pair of integers from the user, representing a range.
</li>
<li>
<b>MASS_MATRIX</b> computes the mass matrix.
</li>
<li>
<b>NODE_T6</b> returns the basis nodes for a 6 node triangle.
</li>
<li>
<b>R8BLT_CHECK</b> checks the dimensions of a banded lower triangular matrix.
</li>
<li>
<b>R8BLT_PRINT</b> prints a band lower triangular matrix.
</li>
<li>
<b>R8BLT_PRINT_SOME</b> prints some of a band lower triangular matrix.
</li>
<li>
<b>REFQBF</b> evaluates a reference element quadratic basis function.
</li>
<li>
<b>R8VEC_PRINT</b> prints an R8VEC.
</li>
<li>
<b>S_EQI</b> is a case insensitive comparison of two strings for equality.
</li>
<li>
<b>S_INPUT</b> prints a prompt string and reads a string from the user.
</li>
<li>
<b>S_OF_I4</b> converts an integer to a left-justified string.
</li>
<li>
<b>S_REP_CH</b> replaces all occurrences of one character by another.
</li>
<li>
<b>S_TO_I4</b> reads an integer value from a string.
</li>
<li>
<b>S_TO_R8</b> reads an R8 value from a string.
</li>
<li>
<b>S_WORD_COUNT</b> counts the number of "words" in a string.
</li>
<li>
<b>SINGULAR_VECTORS</b> computes the desired singular values.
</li>
<li>
<b>R8PBL_CHECK</b> checks the dimensions of a positive definite symmetric band matrix.
</li>
<li>
<b>R8PBL_WRITE</b> writes a symmetric banded matrix to a file.
</li>
<li>
<b>TIMESTAMP</b> prints the current YMDHMS date as a time stamp.
</li>
<li>
<b>TIMESTRING</b> writes the current YMDHMS date into a string.
</li>
<li>
<b>TRIANGLE_UNIT_SET</b> sets a quadrature rule in the unit triangle.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../f_src.html">
the FORTRAN90 source codes</a>.
</p>
<hr>
<i>
Last revised on 01 May 2008.
</i>
<!-- John Burkardt -->
</body>
<!-- Initial HTML skeleton created by HTMLINDEX. -->
</html>