forked from johannesgerer/jburkardt-f
-
Notifications
You must be signed in to change notification settings - Fork 1
/
burgers_solution.html
232 lines (200 loc) · 6.53 KB
/
burgers_solution.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
<html>
<head>
<title>
BURGERS_SOLUTION - Exact Solution of Time Dependent 1D Viscous Burgers Equation
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
BURGERS_SOLUTION <br> Exact Solution of Time Dependent 1D Viscous Burgers Equation
</h1>
<hr>
<p>
<b>BURGERS_SOLUTION</b>
is a FORTRAN90 library which
evaluates an exact solution of the time-dependent 1D viscous Burgers equation.
</p>
<p>
The form of the Burgers equation considered here is:
<pre>
du du d^2 u
-- + u * -- = nu * -----
dt dx dx^2
</pre>
for -1.0 < x < +1.0, and 0.0 < t.
</p>
<p>
Initial conditions are u(x,0) = - sin(pi*x). Boundary conditions
are u(-1,t) = u(+1,t) = 0. The viscosity parameter nu is taken
to be 0.01 / pi, although this is not essential.
</p>
<p>
The authors note an integral representation for the solution u(x,t),
and present a better version of the formula that is amenable to
approximation using Hermite quadrature.
</p>
<p>
This program library does little more than evaluate the exact solution
at a user-specified set of points, using the quadrature rule.
Internally, the order of this quadrature rule is set to 8, but the
user can easily modify this value if greater accuracy is desired.
</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">
Languages:
</h3>
<p>
<b>BURGERS_SOLUTION</b> is available in
<a href = "../../c_src/burgers_solution/burgers_solution.html">a C version</a> and
<a href = "../../cpp_src/burgers_solution/burgers_solution.html">a C++ version</a> and
<a href = "../../f77_src/burgers_solution/burgers_solution.html">a FORTRAN77 version</a> and
<a href = "../../f_src/burgers_solution/burgers_solution.html">a FORTRAN90 version</a> and
<a href = "../../m_src/burgers_solution/burgers_solution.html">a MATLAB version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../datasets/burgers/burgers.html">
BURGERS</a>,
a dataset directory which
contains 40 solutions of the Burgers equation in one space dimension and time,
at equally spaced times from 0 to 1, with values
at 41 equally spaced nodes in [0,1];
</p>
<p>
<a href = "../../f_src/fd1d_burgers_lax/fd1d_burgers_lax.html">
FD1D_BURGERS_LAX</a>,
a FORTRAN90 program which
applies the finite difference method and the Lax-Wendroff method
to solve the non-viscous Burgers equation
in one spatial dimension and time.
</p>
<p>
<a href = "../../f_src/fd1d_burgers_leap/fd1d_burgers_leap.html">
FD1D_BURGERS_LEAP</a>,
a FORTRAN90 program which
applies the finite difference method and the leapfrog approach
to solve the non-viscous Burgers equation in one spatial dimension and time.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
Claude Basdevant, Michel Deville, Pierre Haldenwang, J Lacroix,
J Ouazzani, Roger Peyret, Paolo Orlandi, Anthony Patera,<br>
Spectral and finite difference solutions of the Burgers equation,<br>
Computers and Fluids,<br>
Volume 14, Number 1, 1986, pages 23-41.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "burgers_solution.f90">burgers_solution.f90</a>, the source code.
</li>
<li>
<a href = "burgers_solution.sh">burgers_solution.sh</a>,
BASH commands to compile the source code.
</li>
</ul>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<ul>
<li>
<a href = "burgers_solution_prb.f90">burgers_solution_prb.f90</a>,
a sample calling program.
</li>
<li>
<a href = "burgers_solution_prb.sh">burgers_solution_prb.sh</a>,
BASH commands to compile and run the sample program.
</li>
<li>
<a href = "burgers_solution_prb_output.txt">burgers_solution_prb_output.txt</a>,
the output file.
</li>
<li>
<a href = "burgers_test01.txt">burgers_test01.txt</a>,
a data file of solution values for -1 <= x <= +1,
0 <= t <= 3/pi, using 11 grid points in x and in t.
</li>
<li>
<a href = "burgers_test02.txt">burgers_test02.txt</a>,
a data file of solution values for -1 <= x <= +1,
0 <= t <= 3/pi, using 41 grid points in x and in t.
</li>
<li>
<a href = "burgers_test02.png">burgers_test01.png</a>,
an image of U(X,T) for the burgers_test02 data,
produced by MATLAB's surf() command.
</li>
</ul>
</p>
<h3 align = "center">
List of Routines:
</h3>
<p>
<ul>
<li>
<b>BURGERS_SOLUTION</b> evaluates a solution to the Burgers equation.
</li>
<li>
<b>GET_UNIT</b> returns a free FORTRAN unit number.
</li>
<li>
<b>HERMITE_EK_COMPUTE</b> computes a Gauss-Hermite quadrature rule.
</li>
<li>
<b>IMTQLX</b> diagonalizes a symmetric tridiagonal matrix.
</li>
<li>
<b>R8_GAMMA</b> evaluates Gamma(X) for a real argument.
</li>
<li>
<b>R8MAT_PRINT</b> prints an R8MAT.
</li>
<li>
<b>R8MAT_PRINT_SOME</b> prints some of an R8MAT.
</li>
<li>
<b>R8MAT_WRITE</b> writes an R8MAT file.
</li>
<li>
<b>R8VEC_EVEN</b> returns an R8VEC of evenly spaced values.
</li>
<li>
<b>R8VEC_PRINT</b> prints an R8VEC.
</li>
<li>
<b>TIMESTAMP</b> prints the current YMDHMS date as a time stamp.
</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 16 November 2011.
</i>
<!-- John Burkardt -->
</body>
<!-- Initial HTML skeleton created by HTMLINDEX. -->
</html>