A Finite Element Solver for
3-D Compressible Viscous Flows
K. C. Reddy, J. N. Reddy and S. Nayanl
The University of Tennessee Space Institute
Tullahoma, Tennessee 37388
Final Report of Contract No. NAS8-36555
Submitted to
NASA/MSFC
Marshall Space Flight Center, AL 35812
by
The University of Tennessee Space Institute
Tullahoma, Tennessee 37388
January 1990
Table of Contents
1. Introduction .............................. 1
2. Locally Implicit Scheme for a Model Equation ............... 4
3. Locally Implicit Scheme for Navier-Stokes Equations ............ 8
3.1 Finite Element Approximations ................... 8
3.2 Locally Implicit Scheme ....................... 10
3.3 Surface Flux Computation ...................... 12
3.4 Artificial Dissipation ........................ 13
4. Test Calculations ............................ 14
4.1 Couette Flow ................... ........ 14
4.2 Laminar Boundary Layer Over a Flat Plate .............. 14
4.3 Flow Over an Airfoil ........................ 14
4.4 Flow in a Turn-around Duct ..................... 15
5. References ............................... 16
Figures ................................ 17
Appendix I .............................. 31
Appendix II .............................. 33
Appendix III ............................. 38
- ii -
1. Introduction"
Computation of the flow field inside a space shuttle main engine (SSME) requires
the application of the state-of-the-art CFD technology. Several computer codes are under
development to solve three dimensional Navier-Stokes equations for analyzing the SSME
internal flow, such as the flow through the hot gas manifold. The computational methods
used in the Navier-Stokes codes fall into two major categories: finite difference and finite
element methods. Some of the algorithms are designed to solve the unsteady compress-
ible Navier-Stokes equations, either by explicit or by implicit factorization methods, using
several hundred or thousands of time steps to reach a steady-state solution asymptotically.
Other algorithms attempt to solve the steady-state equations by relaxation methods. All
of them require body-fitting curvilinear grids with sufficient resolution. Grid requirements,
however, differ greatly with the region being modelled and the algorithm used. Implicit
factorization based on finite differences typically uses global numerical transformations
whereby the transformed grid in the computational space is uniform and rectilinear. This
requires the grid to have indices which are separable in the three directions for three di-
mensional problems, and also be reasonably smooth. However, such requirements may
introduce grid singularities when complicated domains are discretized. Flow solver algo-
rithm will have to deal with such grid singularities. Explicit schemes and finite element al-
gorithms have less stringent requirements on the grid structure. However, explicit schemes
are slow to converge because of the stability limitations on time step, particularly for large
scale viscous problems.
The finite element method is characterized by three basic features which are credited
for the enormous success the method has enjoyed in the solution of practical engineering
problems. The first feature is that every computational domain is viewed as a collection of
simple subdomains, called finite elements. This feature allows us to represent complicated
geometries as assemblages of simple parts. It is a desirable feature in the solution of flow
problems in complex configurations, not only to describe the complex geometry but also to
choose the most suitable computational grid for a particular flow. This feature also allows
us to place or remove any obstructions routinely into the flow field. The second feature is
that over each element the solution is represented by polynomials of desired degree. This
allows us to compute the solution as a continuous function of position instead of at selected
few points. The third feature is that the relationship (i.e., the algebraic equations) between
the solution and its dual variables is developed using a variational method, such as the
Galerkin method. The boundary conditions are then applied on the algebraic equations
directly before solving. The three features of the finite element method also allow the easy
development and interfacing of pre- and post-processors, and user-defined subroutines for
equations for state and turbulence models.
The Galerkin finite element method (i.e., the weight functions are the same as the
approximation functions) applied to flow problems always results in implicit schemes. The
-1-
weighted-residual (or Petrov-Galerkin) method, in which the weight functions are differ-
ent from the approximation functions,can be used in conjunction with explicitschemes
to obtain explicitfinalequations. For example, by selectingthe weight functions to be
orthogonal to the approximation functions, the mass matrix can be diagonalized. How-
ever, such considerations are entirely in the interest of obtaining explicit schemes and not
necessarily in the interest of accuracy or even computational efficiency. In the current
project an implicit finite element scheme with suitable dissipation terms for stability is
developed. A relaxation procedure, known as the locally implicit scheme is developed to
solve the coupled set of algebraic equations efficiently.
Allowing the possibility of unstructured grids is important for discretizing complex
flow domains efficiently and also for adding the features of solution-adaptive grids. For
grids with large numbers of nodes, direct solution procedures for the finite element equa-
tions become impractical. Thus w_.___ehave undertaken the development of a new iterative
algorithm for the solution of imp_cit finite element equations without assembling global
matrices. It is an efficient iteration scheme based on a modified non-linear Gauss-Seidel
iteration with symmetric sweeps. This algorithm is analyzed for a model equation and is
shown to be unconditionally stable. This analysis is reported in the next Section.
The locally implicit scheme is unconditionally stable based on local linearized anal-
ysis. However, for strongly convective flows there is a possibility of non-linear numerical
instabilities occurring in some parts of the flow domain and eventually destabilizing the
entire flow domain. We have added adaptive artificial dissipation terms of third order to
the finite element approximations similar to Jameson and others (1). These are designed
to suppress non-linear instabilities if they appear and at the same time be much smaller
than the real viscosity terms in viscous zones.
In numerical schemes for solving fluid flow equations, there is some degree of uncer-
tainty as to the imposition of boundary conditions on some of the variables at different
types of boundaries, particularly at the inflow and outflow boundaries. _e current fi-
nite element code we have developed special procedures to compute the required flux terms
at the boundary surfaces to the same degrees of accuracy as in the interior. We expect
that our technique of computing the required surface fluxes iteratively, together with the
interior flow variables, should _ze the uncertainties in the imposition of boundary
conditions.
The locally implicit scheme is tested on a variety of problems. It has been shown
to be efficient with multi-grid acceleration procedures for elliptic problems by Reddy and
Nayani (2) and for inviscid compressible flows from transonic to supersonic Mach numbers
by Reddy and Jacocks (3). Reddy, Reddy and Nayani (4) have developed this scheme for
viscous flow problems. We developed a 2-D test code for solving unsteady compressible
Navier-Stokes equations with finite volume approximation, which is a special case of the
finite element approximation. This code has been used to check various features of the
-2-
locally implicit solution algorithm. We have also added an algebraic turbulence model
developed by Baldwin and Lomax (5).
Results for a series of test problems are presented in this report. The finite element
code has been tested for Couette flow, described in Schlichting (6), which is a flow under a
pressure gradient between two parallel plates in relative motion. Another problem that has
been solved is viscous laminar flow over a flat plate. As a test case for the locally implicit
scheme, the 2-D finite volume code has been applied to compute subsonic and transonic
viscous flows over airfoils for both laminar and turbulent cases. The general 3-D finite
element code has been used to compute the flow in an axisymmetric turnaround duct at
low Mach numbers.
-3-
2. Locally Implicit Scheme for a Model Equation
Locally implicit scheme is a relaxation method for solving the non-linear finite element
equations approximating the Navier-Stokes equations. It is a point iteration method at
each time step. However, it is not necessary for the iteration to converge fully at each time
step if we are interested in computing the time asymptotic steady-state solutions. The
analysis of the consistency, stability and hence convergence of the scheme is presented for
a model equation for the Navier-Stokes equations.
Consider a one-dimensional eonvection-ditfamion equation,
au au #%=
Finite element approximation at a node j on a uniform mesh for equation (2.1) can bewritten as
ax
where di is a global test function corresponding to the node j. For a linear element
approximation, equation (2.2) gives
-_ _ttj--1 _-_Uj dr _tljq-1 "_- _ (Ui't'I--ttJ -1)
- _ (ui-l-2u i+ui+1 )=0
(2.3)
Implicit time integration gives
1 2 1 c, .+I .L+t)
. n+l_
(2.4)
where Au i = u_ +1. - Ujn
C = aAt/Az, R = vAt/Az 2
Equation (2.4), together with appropriate boundary conditions, gives a system of linear
equations which can be solved easily in one-dimeusion and this scheme is unconditionally
stable. However, the system of equations becomes too large in multi-dimensions and vari-
ous types of sparse matrix solvers are developed in the literature, but they are usable only
with a modest number of nodes. Alternately, we develop a relaxation scheme to solve (2.4)
approximately at each time step. The scheme is a modification of the symmetric Gauss-
Seidel iteration. The basic Gauss-Seidel iteration, even with symmetric sweeps, is unstable
-4-
for a whole range of Courant number C in equation (2.4). The present modification makes
it unconditionally stable. Rewrite the equation (2.4) in delta form as
1 2 1 C
_Aui_, + _ui + g_us+, + 7 (_-s+, - Aui_,)
- R (AuS_I - 2Au s + AuS+I) = Res_
(2.5)
A(O)u s = 0 (2.7)
1 Cdu s + "_dus+l + _du.i+l
- R (-2du s + dus+l ) = RHS
2__ (,.) 1__ (m)+ _zau_ + _zaus+ 1
where
RHS=Res'_- [1_ (,.+1)L_,,us_,
AuXin+l) ,, (m)= zau s + duj,
Left-to-right sweep yields
(2.8)
(2.9)
+_c k"u_+'t-(-) _ ,,us_,_(-+,)_/_ _ k,.,,_1/-(-+1)_ 2_u_-) + zxus+_)](-)
Now we approximate dui+l _- du i and replace C by its absolute value ]C I on the left side
of equation (2.8), to accommodate convection velocity direction either in or opposite to
the iteration sweep direction. This leads to an explicit expression for dus:
(6 + ? +'R) dui = RH, (2.10)
Right-to-left sweep is defined similarly. A symmetric iteration sweep consists of a left-to-
fight sweep followed by a right-to-left sweep. It may be noted that du s is the iterative
correction to the time change iterates -- (m)_U s and if the iteration process is convergent,
--5--
where
R¢._ = C un n-_ ( ,+, - us-,) + R (u;'_l- 2u_+ us+,) (2.6)
As Au s = u'_ +1 r,- u s ---, 0 as n ---, oo, we obtain the asymptotic steady-state solution as the
Res.i function is driven to zero. This process may be speeded up and made more robust
by choosing a value for R on the left side of equation (2.5) larger than the value of R on
the fight side of equation (2.5). To analyze this process we use the notation R for R on
the left side of equation (2.5). It may be noted that we can always obtain time accurate
solution, if that is required, by choosing R = R. We solve for Au s at each time step by a
modified Gauss-Seidel iteration:
RHS --* 0 and the equation (2.5) can be satisfied as accurately as we wish by carrying
out the necessary number of symmetric iteration sweeps. The approximations made in
the iteration do not affect the actual solution itself. Thus the iteration equations are
consistent with the basic equations. One or two symmetric sweeps per time step are usually
sufficient for obtaining steady-state solutions. Local stability analysis can be carded out
by computing the amplification factor of discrete Fourier modal solutions per time step.
In this analysis, we seek modal solutions of the equations (2.9) and (2.10) in the form
.°n
u i=v"e 'Jr, O<__.=aAx<_,r
A (m) ----Av(m)eijfuj m-- 0,1,...
U_ +1 --- un+leiJf
For a single symmetric sweep per time step (m = O, 1),
vn+l _ v n -{- AV(2) -- g(_)v n
where g(_) is known as the amplification factor from one time step to the next and is given
by
g(_)=l+_ 1+ , 0_<__<_"
r = --Ci sin _ + 2R(cos _ - 1)
h2 = b- "_ - _ + e -if +"R-
hs =b+eq (C-R+ 1)
5 Iclb=g+-g-+_
A necessary condition for stability is [g({)[ < 1. It can be shown that [g(_)[ is indeed < 1
unconditionally. It is also desirable to have Ig(_)l< 1 as much as possible for _ closer to ,r
which represents the range of high frequency modes of the solution. Figure I shows plots of
-fiIg(_)lversus _ for different Courant numbers for R = R = . Figure 2 shows plots of [g[
versus _ for C = 10, R = R and R takes different values. Figure3 shows the plots for C =
10, R = 2R and R takes different values. Numerical plots of Ig[ against _ confirm that the
scheme is unconditionally stable. However, very large Courant numbers are not necessarily
the best. Courant number C -_ 10 and R = 2R --, 4R seem desirable ranges. Amplification
factors corresponding to two or more symmetric modified Gauss-Seidel iterations have
similar behavior. Thus we establish unconditional stability for the modified Gauss-Seidel
iteration scheme for the convection-diffusion equation. Similar stability can be shown
-6-
when the diffusion term is replaced by a 4th difference term of the type that is used as
artificial viscosity term of third order for suppressing non-linear instabilities for convection
dominated flows. It is possible to use artificial viscosity terms which are smaller than the
truncation terms of the second order accurate finite element approximations. In the present
Navier-Stokes finite element code where we compute all terms to full second order accuracy,
artificial dissipation terms, which are an order of magnitude smaller then truncation error,
are included to suppress non-linear instabilities. Stability analysis of the model equation
indicates that the locally implicit scheme is unconditionally stable in a local linearized
sense.
-7-
3. Locally Implicit Scheme for Navier-Stokes Equations
Many algorithms designed to solvethe unsteady compressible Navier-Stokes equations
use eitherexplicitmethods or implicitfactorizationmethods. Finite element approxima-
tionsusually yield implicitequations. These are solved by explicittime integrationmeth-
ods after making additional approximations. Explicit methods may take thousands of
time steps to converge. Solving them implicitlywith Newton iterationispossible,but the
matrix storage requirements for the resultingalgebraicequations and the solution process
make itprohibitiveeven for modest sizethree dimensional flow problems. There are other
algorithms based on relaxationmethods. We have developed a locallyimplicitmethod for
solving the non-linear finiteelement approximations for 3-D Navier-Stokes equations at
each time step.
The method isbased on a relaxationprocedure forsolving the finiteelement equations
corresponding to each node iteratively.The equations for the elements surrounding a
particular node are evaluated based on the latestiteratesfor the flow variables at the
nodes around it and the solution is updated at that node by a modified Gauss-Seidel
iteration. This procedure does not require the assembly of a global matrix, in contrast
to the standard finiteelement algorithms. It does not require the solution of a system
of large number of equations. Thus it is a matrix-free implicit finiteelement algorithm.
An additional feature of the algorithm is that while it uses tri-linearapproximations for
the flow variablesin quadilateral (brick)elements, allthe non-linear fluxesin the Navier-
Stokes equations are evaluated without any further linearapproximation. The fluxes are
non-linear and are computed accordingly. This assures the second order spatialaccuracy
of the scheme even for unstructured grids.
3.1 Finite Element Approximations
as
The unsteady, compressible Navier-Stokes equations are written in conservation form
{u}= , = , =+ p)
p_
where
{_I} and {F_} represent the inviscid and viscous fluxes respectively.
equations are given in Appendix I.
Details of these
-8-
The variational form (weak form) of equation (3.1) over an element fie is written as
0= Le / {_}T {_U/- {¢_}T" {:v "_" :I}) dr'}"/s .{_}T{Fn}dS (3.2)
where {4,} are test functions. They are tri-linear functions for linear finite element ap-
proximation and piecewise constants for finite volume approximations. Fn "- (_v + _I).
where 6 is the outward drawn unit normal to the surface S e of the element _e. The con-
servation variables U = (Uo, c_ = 1,-.. 5) are approximated by the interpolation functions
_j asN
Ua - _-_U_q}j(z,y,z) _= {_'}{Uo} (3.3)jffil
where
{_}= {_,_2-.._N},{0o}= (_'_ ...U_)"N'T
0_ is the numerical value of the trth component of the conservation flow variable U at
jth localnode of the element f_. The interpolationfunctions _I'and test functions @ are
chosen to be the same for compressible flow equations. N = 8 for tri-linear approximations
on quadrilateral brick elements. These approximations axe done according to the standard
finite element approximations (Ref. 7).
Define the total nodal vector of the conservation variables at the nodes of an element as
{0} { }= . ;[_]'
×1 5×5N
{#}{0}
= {0}{0}{o}
{o} {o} {o} {o}]{_} {0} {0} {o}J{0} {_} {0} {o}{0} {0} {_} {o}{o} {0} {o} {_}
Then
{u} = u_. = [#]'{0}"
5xl Us
Now the variationalstatement (2) can be written as
(3.4)
(3.5)
It should be noted at this point that i_ and Fn are non-linear functions of U and thus
the integralsinvolving them can be expressed analyticallyin terms of the components
of U. These expressions are long but they can be programmed into the computer code
9
efficiently.
the Euler implicit scheme as follows:
where
The coupled non-linear differential equations (3.5) are discretized in time by
I[Mel{AU'} + {'Re} ''+1 = {0} (3.6)
_ (6,),,,+, _ ,.- time levelt
[Mt]- lfl (_I/]TI_I/]dV (3.7)
{7_.e } ..._ -- _fl [,_]T. ,{.t_}dV + _S.[_]T{F n }dS (3.8)
Details of the expression {_t} in equation (3.8) are given in Appendix II. In the standard
finite element algorithms, the element equations (3.6) are linearized, usually by Newton
method, and all the element equations are assembled to derive a global system of linear
equations which are solved by sparse matrix solvers. For large scale problems the matrices
involved become too big to be practical. Here we develop a matrix-free relaxation method
to solve the non-linear equations directly by a modified Gauss-Seidel iteration.
3.2 Locally Implicit Scheme
We wish to solve the non-linear finite element equations iteratively at a node i. We
assume the nodal values of the solution at all the surrounding nodes from their latest
iterates. The test function q'i, corresponding to the node i, in equation (3.6) gives the
contribution of element ftt to the node i in the finite element approximation. Adding
similar equations from all the elements surrounding a node ND yields the nodal finite
element equation. Thus the equations corresponding to a single node, ND are
t /ND
where U t is replaced by U t for convenience. Thus U t is the conservation variable vector
at all the nodes of the element e, and the summation in equation (3.9) is over all elements
e surrounding the node ND. Equation (3.9) represents 5 equations at ND corresponding
to each of the 5 conservation equations. The ath conservation equation at ND can be
written as
=0
(3.10)
- 10-
where _ND) = _ with i corresponding to the local index of the global node ND in element
e. For all interior nodes ND, the surface flux integral in equation (3.10) vanishes. This
equation couples U at all the nodes surrounding the node NO. We develop a modified
symmetric non-linear Gauss-Seidel iteration to solve the coupled system of non-linear
equations directly without linearization. This leads to a matrix-free algorithm for the
solution.
For a particular time step n, the iteration is carried out as follows. During the iteration
process, we assume that all U's in the ath equation other than Ua are known from the
previous step of the iteration. We solve for AU= at node ND approximately by a modified
Gauss-Seidel iteration.
zxu , = +dU., (3.11)
for allnodes j where (m + 1)th iteratesare not available.
at nodes where AU (re+l)isavailable.At other nodes where only AU (m) isavailable,
._a(n+l) ,_ .t_,W=(U n __ AU(m) + dU)
oP (3.13)
The Jacobian matrices _ have inviscifl and viscous parts OU ' OU respectively.
The inviscid part is approximated by the spectral radii of the Jacobian matrices multiplied
by identity matrices.
off ln vis
OU. (lul+., Ivl+ -, Iwl+ _)x -- sT_ (3.14)
where u, v, w are velocity components and a is the speed of sound. The viscous parts of
the Jacobian matrices axe not altered. For the iterative corrections dU's we make the
approximation,
dU=,j " dUa,(ND) (3.15)
for all the nodes j at which the latest iterates are not available, dU=,(ND) = dUa,i where
i is the local index corresponding to the global node ND. With this approximation, we
obtain explicit scalar expression for the iterative correction at the node ND, dUa,(ND).
- (.)C dUa,ND = --Z_e-_=,ND (3.16)
- 11-
where
(3.17)
The superscript (*) corresponds to the iteration level (m) or (m+ 1) which ever is available
at the nodes surrounding the node (ND).
• j
• ow, ]I
(3.1s)
( 1
I#D(j) = {t 0
, for nodes j at iteration level m
, for nodes j at iteration level m + 1
(3.19)
The absolute value sign I' I in the middle integral indicates the absolute values of each of its
components. In defining the coefficient C, contributions of surface integrals do not exist for
all interior nodes and they are ignored for boundary nodes for simplicity. Approximations
made in C to simplify the algorithm while preserving numerical stability for large Courant
numbers, do not afl'ect the solution which is obtained by driving Res function to zero. One
iteration sweep starting from the initial node to the final node followed by a reverse sweep
makes one symmetric sweep. Typically two symmetric sweeps per time step are sufilcient
for obtaining time asymptotic solutions.
3.3 Surface Flux Computation
Volume integrals over quadrilateral brick elements are computed by isoparametric
transformations to a standard cube and by the use of two point Gaussian integration in
each direction. The details of such computations are available in many books on finite
element methods. Surface flux computation, however, is less known and the basic idea is
outlined below.
Suppose _,r/,_ are the localcoordinates and z,ll,z are global coordinates and we wish
to compute the surface fluxon the surface _ - 1 of an element.
- 12-
Q
O(=,y,z)
dS ---- f=l
F (z(_,,1+ zx,7,d,
_(_,,7+ zx,s,_),,(_,_+ zx,7,¢))
_=,P .adS= _=,._.d# (3.20)
d#= adS= O'PxGO
= (z(A_',y(A_',z(A,_) x (z,IAr/,I/,TAr/,z,TAr/) (3.21)
_ (o(_,_)o(_,=)o(x,_'_d_d,7\a---_,,7)'a(_,_' a(¢,_))
_¢ F. d,_ can now be computed with Gaussian in andintegration directions, at C=1
= 1. The values of F and the surface Jacobians are evaluated at the Gaussian points
on the surfaces of the elements, in contrast to the interior evaluation of volume integral
computations.
3.4 Artificial Dissipation
Though the scheme is linearly stable, non-linear numerical instabilities could arise
in strongly convective flows. Various artificial dissipation terms have been developed in
the literature to suppress the numerical instabilities. The features we seek for artificial
dissipation terms are that they only suppress numerical instabilities, they be smaller than
the real viscous terms, they are of higher order than the truncation terms and finally they
should be implementable in the code without excessive computation. For this purpose, we
choose the adaptive artificial dissipation terms of third order similar to those developed
by Jameson (1) and others. These terms are included in the finite element code. A listing
of the code is given in Appendix III.
- 13-
4. Test Calculations
4.1 Couette Flow
The first test problem is the simulation of a one dimensional shear flow under pressure
gradient. It has been computed with a uniform mesh of 2 x 6 x 2 linear (eight-node)
elements with the following boundary conditions.
u--v--w--Oat
u=Uo, v=w=Oat
w=0at zf0and
v=0atx-0and
It = 0 plane
It = 6 plane
z = 2 plane
z = 2 plane
A favorable pressure gradient of 0p = -1 is imposed. Fig. 4 shows the computed so-0x
lution with wall velocity U0 = 3. This problem has a simple exact solution as given in
Schliching (6). The computed solution agrees with the exact solution and the two are indis-
tinguishable on the plot. For this simple problem, it takes very few time steps to reach a
steady state solution starting from uniform flow conditions. The table of global and local
correspondence of nodes, typical of finite element codes is also shown in Fig. 4.
4.2 Laminar Boundary Layer Over a Flat Plate
As another check case, laminar boundary layer over a flat plate has been computed
with a stretched mesh of 4 x 6 x 1 linear elements. In this problem the convective terms are
of the same order as some of the viscous terms. The finite element solution for a Reynolds
number of Re = 10 4, along with the boundary conditions and the mesh used are shown
in Fig. 5. The computed solution agrees qualitatively with the exact solution even with a
very coarse mesh. A converged solution can also be obtained for Re = 10 5.
4.3 Flow Over an Airfoil
The locally implicit scheme for two dimensional Navier-Stokes equations with finite
volume discretization is applied to compute airfoil flows. Calculations have been carried
out with the code and comparisons have been made with experimental results. High
Reynolds number viscous flows over an RAE 2822 airfoil have been computed from subsonic
to transonic Mach numbers. An algebraic turbulence model developed by Baldwin and
Lomax (5) has been incorporated into the code. A body conforming C-grid (128 x 32) for
an RAE 2822 airfoil is shown in Fig. 6. The mesh spacing normal to the airfoil is highly
stretched to resolve turbulent viscous layer. The spacing ranges from .00005 to 3 chord
lengths from inner to outer grid lines. Mach contours for turbulent flow at Mach number,
M = 0.6, angle of attack, _ = 2.57 and Reynolds number, Re = 6.3 × 106 are shown in
Fig. 7a. Fig. "/b shows the corresponding Cp plot where numerical results are compared
- 14 -
with experimental values published by Cook, McDonald and Firmin (s). The agreement of
numerical and experimental values for Up is reasonable for a relatively coarse grid. Similar
Math contour and Cp plots are presented for transonic flow case with M = 0.725, a = 2.92
and Re = 6.5 x 10 6 in Figs. 8a and 8b.
4.4 Flow in a Turn-around Duct
As a test for the 3-D finite element code, flow in an axisymmetric turnaround duct is
computed at Mach number = 0.1. The schematic sketch of the turnaround duct is shown
in Fig. 9. The geometry used corresponds to a test rig at Rockwell International which is
shown in Fig. 10. A relatively coarse grid of 8 x 15 x 2 dements are chosen. Since the
flow is axisymmetric, 3 sectional planes with 2 elements in the cirmmfferential direction
are chosen and flow is set to be the same in each of the planes in the boundary conditions.
The grid in one of the constant-angle planes and the computed velocity vectors are shown
in Fig. 11 and a more detailed view of the velocity vectors in the bend region are shown
in Fig. 12. The flow features are qualitatively correct. But a finer grid computation is
necessary for quantitative comparisons with experimental results and it will be carried out
later.
- 15-
5. References
o Jameson, A., Baker, T. J., Weatherill, N. P., "Calculation of Inviscid Transonic Flow
Over a Complete Aircraft", AIAA-86-0103, AIAA 24th Aerospace Sciences Meeting,
January 1986.
. Reddy, K. C., Nayaui, S. N., "A Locally Implicit Scheme for Elliptic Partial Differential
Equations", presented at the SSME/CFD Working Group Meeting, NASA Marshall
Space Flight Center, April 8-11, 1986.
. Reddy, K. C., Jacocks, J. L., "A Locally Implicit Scheme for the Euler Equations",
Proceedings of the AIAA 8th Computational Fluid Dynamics Conference, Honolulu,
June 1987.
. Reddy, K. C., Reddy, J. N., Nayani, S. N., "Finite Element Solver for 3-D Compress-
ible Viscous Flows", Interim Report of Contract No. NASA8-36555, September 1987,
submitted to NASA/MSFC, Marshall Space Flight Center, AL by The University of
Tennessee Space Institute, Tul]ahoma, TN.
5. Baldwin, B. S., Lomax, H., "Thin Layer Approximation and Algebraic Model for
Seperated Turbulent Flows", AIAA Paper 78-257, January 1978.
6. Schlichting, H., Boundary Layer Theory, Pergamon Press, 1955.
7. Reddy, J. N., An Introduction to the Finite Element Method, McGraw-Hill Book
Company, 1984.
8. Cook, P. H., McDonald, M. A., Firmin, M. C. P., "Airfoil RAE 2822 - Pressure Dis-
tributions, and Boundary Layer and Wake Measurements", AGARD-AR-138, 1979.
- 16-
Lgl
080.6 I
- o C=I
x 5
O. 4 /k 10
I 20- , 100
0.2
0.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Fig. 1 Amplification F_ctor for Different Courant Numbers (R = R = C/64)
- 17-
0.2--
oR=C
x 0/16
A 0/32
I C/64
, C/2ooo
10.0
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Fig. 2 Amplification Factor for Different
Dissipation Parameters (C = 10, R = R)
- 18 -
1.0 , /,
- -_ _ _ ._
oR=C
- x c/16c/32
0.2 I C'/64
* C/2000
0.0 I I I I I I I I I I I I I I I I I I I I I I i I I I I I
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Fig. 3 Amplification Factor for Different
Dissipation Parameters (C = I0, R = 2R)
- 19 -
Y20
ic.21
/
44 45 I 2
4O
61 IJ 62 63 /18 19II1159 60
58 t / 15 16!Ii 56 57
55 I / 12 13Ii 53 54I
52 I / _ i0I
49 I 50 51
I /_ 7I
I46 I 47 48 _ x
"" 7 4
, _4
z /43
Back panel
20
17
14
11
8
5
Y&
Element 1 e.
(local no.s) ,_._
/5 oz
Correspondence of nodes:
Local Global
1 12 2
3 54 4
5 22
6 23
7 26
8 25
21
Middle panel Front panel
40 41 42 61 62 63
37 38 58 59
34 35 55 56
31 32 52 53
28 29 49 ;50
25 26 _6 _7
3 22 23 24 43 44 45
5
I I ' I
0 1 2 3
Velocity, U(Xo,Y,Z o)
Fig. 4 Couette Flow
- 20 -
U
!|
i
o
i,
U0
Y
66 /_11 6
IIII
162
II15756 ,II
51 I 5_
46 #/
41 ,_
/36 37_z
32 33 34
/
Y1.0
0.6
63
58
53
Or4 o
0.2
38
64 65 /
59 60 /
54 55_
39 40
35
3O
25
_....v,0.'5 I,'0
_elocity, U(Xo,Y,Zo)
2O
15i05-.-_ x
Fig. 5 Flat Plate Boundary Layer Flow
- 21 -
.'-7--"----
I
m
m
im
Fig. 6 Computational Grid for Viscous Flows
RAE 2822 Airfoil - C grid (128 x 32)
- 22 -
2. 0_
Io
n
B
n
m
m
n
m
-1. _
I I
I
-2. O.f ,I,,,,I,,,,I
I
! i I I !
t_J
Fig. 7a Mach Number Contours for Viscous Flow
RAE 2822 Airfoil - Moo = 0.6, c_ = 2.57 °,
- 23 -
Re = 6.3 x 10 6
CP
0
OD
o
Oa
Oa
la
o Numerical
x Experimental
0. 0. 0. 800
0. 200 0. 500 1. 000
X
Fig. 7b Numerical and Experimental Pressure Coefllcients
RAE 2822 Airfoil - Moo = 0.6, a = 2.57 °, Re = 6.3 x l0 s
- 24 -
.°
2. 00_
I.00_
0_
-I. 00_
m
-2. 0! I
I
t_I
,1,,,,I
mI
! ! I I i ! ! I ! I
(M
Fig. 8a Maz3 Number Contours for Viscous Flow
RAE 2822 Airfoil - Moo = 0.7.25, a = 2.92 °, .Re = 6.5 x 106
- 25 -
CP
lo
6
Oa
0,
,
lm
o Numerical
x Experimental
0.000 0. 0.800
0,200 0.000 1.000X
Fig. 8b Numerical and Experimental Pressure Coefficients
RAE 2822 Airfoil - Moo = 0.725, a = 2.92 °, Re = 6.5 x l0 s
- 26 -
A iV
\
Fig. 9 Sketch of a Section of a Turnaround Duct
- 27 -
LO Lt. _
ag_
"_ ziI1.1.1__._
I 1.1.1_I-, I--
• _ u,.I.._._
/
o,:_.._._
.--I1_
¢.# la.INn.z-- z
I-- 1.1.1
f._ 0 I--
Fig. 10 Geometry of a Test Rig for a Turnaround Duct
- 28 -
8_
Z. 4Z
2Z
-_ 21 , , . . l .... I
d d d
Fig.11 Computational Grid and Velocity Vectors in a Cross Section of the Turnaround Duct
- 29 -
Fig. 12 Velocity Vectors in the Re Bend Region of the Tm'naround Duct
- 30 -
APPENDIX I
The details of the Unsteady Compressible Navier-Stokes equations, which are used in
the finite element code are given below. The equations are written in conservation form as
{0u}__ + ¢. {_,} + ¢. {,e,} = {o}
where
{v}= p_ , {P_}= , {_'}= p_+pIpw -r-v + l v-lpe + p) Jpc
2= -k_T, rij = --gp6ijetk + 2peij£
o
e v' w')]P = (7- 1) [pe- _ (u s + +
The viscous and inviscid fluxes are given by
1
eii = $ (uij + vi,_)
{000}rll rn na pu s+p puv
f_ = rsl rn ra3 , ,_I = pvu pv = + p
(5 x 3) ral ras ra3 (5 x 3) pwu pwvD, D2 D3 u(pe + p) v(p_ + p)
puw
pvw
pw s + P
w(pe + p)
p= (7- 1) [e- _(u°s + vs + ws)] (p = pRT), e = p_
• Sutherland's theory of viscosity:
P=PO
$1 = constant (= 110 °K for air)
T+SI )
• Properties of air at 20 '_C(= To) and atmospheric pressure (p, = 1 arm)
- 31 -
Po = 1.205Kg/m3
po = 0.101325 x 106N/m 2
_0
R=
/.L0 --
k = 2.5 x lO-2(W/m -
Pr = 0.72
ot = 0.208
-y = 1.402
20 *C = 293 OK
P0 = 287 _-g. _. or Sec£: oK
17.9 x 10-6(Pa - Sec)
°K)
AUXILIARY RELATIONS
p = Pressure (N/m 2)
T = Temperature (°K)
Cp = Specific heat at constant pressure
Cv = Specific heat at constant volume
R = Gas constant (N. m/Kg- °K)
k = Thermal conductivity (W/rn - °K)
p0 = Reference viscosity (Pa -Sec.)
To = Reference temperature (°K)
p0 = Reference density (Kg/m 3)
p = pRT
7R
'7-1
R
7-1
ktr = Thermal diffusitivity, =
pc,
Pr = Prandtl number = pCpk
UooMoo = Mach number =
Coo
- 32 -
APPENDIX II
Details of Finite Element Equations
The details of finite element equations which approximate the Navier-Stokes equations
are given below. In equation (3.8) the residual {_e} has two parts. One is a volume
integral, 7_v and the other is a surface integral, _,.
where
The components of {7_} for _I which corresponds to a node I are given by
where
f O_z U2 0'_i U3 O'_z U,'_ dVn_ = - fn. \-'_-_ + T_ + Tz )
f. { ) u_u,o_,r_ =- (u_ o_ u_u_o_ +. \U_ + p T= +'U_ oy u_
O_z
+'YF
+-Nf
+W
_.(_(_)_U2o(_,))]u,o(_,))]}
_Z
o(_))]+_
dV
• l_ u-T + \v. +'-/ --_+ u, o_
+T,U3_(_))]+-_f
- 33 -
where
g_=- ,I.O_ U_ + Ov U_
+_ -_o_w,/-"T" w,/J
+_Oz I_ _ ( O.Oz\U_/ ay \U_/
I $_w, +p)--m:++++=- 1,,Lv,- . _-":_,_ o :_'_ o__(v,_
-_+'__;_ Fa, \v,/- _ ku,/ a,
-_'_ a-7 a+\v,/ o+ \u,./j
v,_ [_ (u+,_+_+(u_.,'_t-_'_ Ov O_ \U;/ O+ \Ut/J
2 U_Oqz 2 \Ut)-Oz\Ut]-Oz\Ux]J
- _"_-_ (u,_- Vu, _ a, \v,./ _ \u,+/J
-_ O+ az \u+/ Ox \vl/J
"_ oz oz ov \u1/J
- -_v_ az \u,/- a, \ut/- _ \u:,+/j
flu J.-': +u_+u_,)1
For defining the components of {g.} we write
F.aS = ,_._dS= p. +t++
= p" \a(_.,,_)'a(_.,n)'0(¢,,o]
as derived in equation (11) of the last report (a), for a typical surface, say ( -- 1 of an
dement.
Denote
(a(v,_) o(_,,) o(,,v)_(v,, v:,v,) = k-_,_' _-_,_' a(_,_))
Now the components of {R,} for @I which corresponds to a node I, for a typical surface
( = 1 of an element can be written as
t
Jo n"
_=,= _, ku, +p v,+ T +Tv_u_+v.[+,(_,_(_)++(_)+_
v:o(_.))]+-[-,(_(_)++u+
where
;V:mv, (_ ) v'mv._'= n.L u, +ku, +p v:+T,
+v_[+.(+,(_)+_ +
_'= o.t v, + u, +ku, +p v3
- 35 -
where
le_.= (us + p)V_+ (us + p)V_ + _(v_fl"
-g'N N
. [o o(.)]
_ v2
2 u, [,a(u,) a(u,) a(v,)]
.. [a+_OQ o+, OQ O+, OQ] _+,d_d_-k L_ o_ + au % + o_ JJ
,[ ,, ]Q= E U+- TST(V_+ v#+ u_,)Components of {T_s} for other surfaces of an element can be written similarly.
The coefficient C of equation (3.13) has volume integrals of the derivatives of viscous flux
terms. The details of those integrals axe given below.
Denote
L 0_o V_. • (ND),j
Subscript (ND) corresponds to the local index i of the global node ND in element e. These
integrals can be written as
L °.,v_= _ . a= a= u,
where
a¢,a % + gv
_(._) ,-r_ .o,.,.,]N -N Lo_ -%'_ 5,, ' etc.,
- 36 -
t () ()[a+, a _ +4a+, a -_- + dv
j. ro....,(_) +o+.,(_) +,0+,_,(_)]_/, ( ):v&='_ r,_, a ._. + +
- 37-
APPENDIX III
- 38 -
C
C
C
FILE NAME: COMPR3D VERS3; DATE: FEB. 22, 1988; LINES: 2066
C
C
CC
t I
i FINITE-ELEMENT ANALYSIS OF FLOWS OF VISCOUS, COMPRESSIBLE iJ FLUIDS IN THREE-DIMENSIONALENCLOSURES. J
l iC
C
C
C
C
C
C
C
CC
C
C
C
C
C
CC
C
C
C
C
C
C
C
C
C
CC
C
C
C
C
C
C
C
CC
CC
C
C
C
C
C
C
CC
C
C
C
CC
C
C
C
C
C
CC
THIS PROGRAM IS DEVELOPED BY PROFESSORS J. N. REDDY OF
VIRGINIA POLYTECHNIC INSTITUTE AND K. C. REDDY OF THE
UNIVERSITY OF TENNESSEE SPACE INSTITUTE. THE PROGRAM IS
UNDER CONTINUOUS DEVELOPMENT DURING APRIL '86 TO PRESENT.
UNAUTHORIZED USE OF THE PROGRAM IS PROHIBITED.
DEVELOPED: APRIL 1986 - PRESENT
DESCRIPTION OF THE VARIABLES
CFL ......
ELXYZ ....IBNDC ....
IORDER...
ISTART...
KELSUR...
KNDSUR...
MEN......
MNE....,,
NDF ......
NDSURF...
NELEM ....
•THE COURANT-FRIEDRICHS-LEVY NUMBER
.ARRAY OF ELEMENT COORDINATES OF NODES
.ARRAY OF BOUNDARY NODES FOR DIFFERENT
VARIABLES
.ORDER OF THE EQUATIONS TO BE SOLVED
.RESTART INDEX (1-RESTART; 0-NEW START)
.A TWO-DIMENSIONAL ARRAY THAT CONTAINS ELEMENT
NUMBER AND LOCAL NUMBER OF ITS SURFACE THAT
REQUIRES FLUX COMPUTATION:
KELSUR(I, 1)-GLOBAL ELEMENT NUMBER OF THE
GLOBAL I-TH SURFACE
KELSUR (I, 2 )-LOCAL SURFACE NUMBER OF THEGLOBAL I-TH SURFACE
.A TWO-DIMENSIONAL (M BY 4) ARRAY WHICH CONTAINS
GLOBAL SURFACE NUMBERS SURROUNDING A NODE THAT
REQUIRES FLUX COMPUTATION. HERE M DENOTES THE
NUMBER OF NODES REQUIRING FLUX COMPUTATION:
KNDSUR(I,J)-GLOBAL NUMBER OF THE LOCAL J-THSURFACE ASSOCIATED WITH THE I-TH
BOUNDARY NODE THAT REQUIRES FLUXCOMPUTATION.
.MAXIMUM NUMBER OF ELEMENTS AT A NODE
.MAXIMUM NUMBER OF NODES PER ELEMENT
.NO. OF UNKNOWNS AT EACH NODE
.ARRAY CONTAINING THE SEQUENTIAL NUMBER OF THEBOUNDARY NODES WHICH REQUIRE FLUX COMPUTATIONOR CONTAINING ZERO:
NDSURF(I)-0, IF NO SURFACES AROUND THE I-TH
NODE REQUIRES FLUX COMPUTATION.
NDSURF(I)-J, IF THE I-TH NODE REQUIRES FLUX
COMPUTATION; HERE J DENOTES THE SEQUENTIALNUMBER OF NODE I IN THE LIST OF SURFACES THAT
REQUIRE FLUX COMPUTATION.
.CONNECTIVITY MATRIX RELATING GLOBAL NODE TO
C
C
C
C
C
CC
C
C
C
C
C
CC
C
C
C
C
CC
C
C
C
C
C
C
C
CC
C
CC
C
ELEMENTS AROUND THE NODE:
NELEM(I,M)-GLOBAL ELEMENT NUMBER CORRESPONDINGTO THE M-TH LOCAL ELEMENT SURROUNDING GLOBAL
NODE I (MAXIMUM VALUE OF M IS 8).
NEM ....... NUMBER OF ELEMENTS IN THE MESH
NGP ....... NUMBER OF GAUSSIAN POINTS
NMSH ...... INDICATOR FOR GENERATING MESH:
NMSH-0, MESH INFORMATION IS TO BE READ
NMSH>0, MESH IS GENERATED BY THE PROGRAM
(ONLY FOR PRISMATIC AND TAD DOMAINS)
NNM ....... NUMBER OF NODES IN THE MESH
NODES ..... BOOLEAN MATRIX RELATING LOCAL NODES TO GLOBALNODES OF ELEMENTS :
NODES (N, J)-GLOBAL NODE NUMBER CORRESPONDING TOTHE J-TH LOCAL NODE OF ELEMENT N.
NSURF ..... TOTAL NUMBER OF SURFACES THAT REQUIREFLUX COMPUTATION
NTMSTP .... NO. OF TIME STEPS
U ......... ARRAY OF FIVE PRIMARY UNKNOWNS:
RHO, RHO*U, RHO*V, RHO*W, RHO*E
X,Y,Z ..... GLOBAL COORDINATES OF THE NODES
C
CC
C
C
C
C
C
CC
C
C
C
C
C
C
C
C
CC
C
C
CC
C
C
C
C
C
C
C
SUBROUTINES USED
BCUPDT .... UPDATES THE BOUNDARY CONDITIONS AT THE END OF
EACH ITERATION OR TIME STEP.
BNDRY ..... GENERATES ARRAY 'KNDSUR', CONTAINING SURFACES
REQUIRING FLUX COMPUTATION.
COEFNT .... GENERATES THE COEFFICIENT VALUES OF EACH
VARIABLE AT EACH NODE OF THE MESH.
DISPTN .... COMPUTES THE DISSIPATION MODEL.
DSFSUR .... COMPUTES THE DERIVATIVES OF THE SHAPE FUNCTIONSAT GAUSS POINTS OF A SURFACE.
FLUXES .... COMPUTES FLUX FOR EACH VARIABLE AT EACHOF THE MESH.
GCSURF.
GMETRY.
INTIAL.
INVDET.
MATMUL.
NODE
...GENERATES ARRAY 'GC', WHICH CONTAINS THE
DERIVATIVE OF X(I) W.R.T. XI(J).
...GENERATES ARRAYS 'SF', 'CNST', 'GDSF' AND 'VOL'GLOBALLY.
...GENERATES INITIAL CONDITIONS ON BOUNDARY FACES.
...COMPUTES THE INVERSE OF THE JACOBIAN MATRIX.
...COMPUTES THE PRODUCT OF TWOMATRICES.
CCCCCCCC
CCCCCC
CCCCCC
SHAPEL .... EVALUATES THE SHAPE FUNCTIONS AND THEIR DERIVA-
TIVES AT THE GUASS POINTS.
SURFGM .... COMPUTES COMPONENTS OF THE UNIT NORMAL ATGAUSS POINTS OF EACH BOUNDARY SURFACE.
TADMSH .... GENERATES THE MESH ( X, Y AND Z COORDINATES AND
ARRAY 'NODES') FOR THE TURN-AROUND-DUCT (TAD).
1
DIMENS ION2
3
4
56
7
8
IMPLICIT REAL*8 (A-H,O-Z)
PARAMETER [NNM-432, NEM-240, MXE-8, NGP'2, NDIM-3, NPE-8, NDF'5,NBS'600)
X (NNM) ,Y (NNM) ,Z (NNM) ,TITLE (20) ,UOLD (NNM, 6) ,U (NNM, 6 ),
NODES (NEM, NPE) ,NELEM (NI%R4,MXE) ,ELXYZ (NPE, NDIM) ,E0 (NNM) ,IORDER (NDF), DIS4 (NI_4, 6 ), DC4 (NNM), DELU (NPE, 6), AM[] (NNM),
GDSF (MXE, NPE, NGP, NGP, NGP, NDIM) ,GNORM (NDIM, NBS, NGP, NGP) ,
SF (NPE, NGP, NGP, NGP), CNST (MXE, NGP, NGP, NGP) ,EMU (NPE),VOLND (NNM) ,VOL (MXE), DSURF (NDIM, NPE, 6, NGP, NGP) ,
ELU (NPE, 6), IEL (MXE), IBNDC (NNM, NDF) ,MINDX (NPE),
KELSUR (NBS, 2 ], KNDSUR (NBS, 4 ), NDSURF (NNM)
COMMON/GMT/SN22 (8, 8), SN33 (8,8), SN44 (8, 8), SN55 (8, 8)
COMMON/DTA/GAMA, AMU0, TEMPO, S i, R0, GPR, GAM1, CFL
DATA IORDER/1, 2, 3, 4, 5/DATA IN, IT/5, 6/
I I
I P R E P R O C E S S 0 R I
I I
READ (5,2000) TITLE
READ (5, *) ISTART,NMSH, ITER, NTMSTP,CFL, RLXOUT,RLXIN
READ(5, *) AMU0,TEMP0,S1,R0,GAMA, PR, AMACH,DNST0IF (NMSH. EQ. 0 )GOTO 5
CALL TADMSH (X, Y, Z, IBNDC, KELSUR, NODES, NSURF, NNM, NBS, NDF, NEM, NPE )
C
C
C
CC
C
C
C
GOTO I0
READ (5, *] [ (NODES (I, J), J-l, 8), I-1, NEM)
READ (5, *) ( (NELEM (I, J) ,J-l, MXE) ,I-1, NNM)
READ (5, *) (X (I), Y (I), Z (I), I-1, NNM)
READ (5, *) ( (U (I, J), J-l, NDF), I-1, NNM)READ (5, *) NSURF
IF (NSURF.EQ.0)GOTO 10
READ (5, *) ( (KELSUR (I, J) ,J-l, 2) , I-1, NSURF)
READ (5, *) ( (IBNDC (I, J) ,J'l, 5) , I-1, NNM)
E N D O F T H E I N P U T D A T A
OPEN THE OUTPUT FILE IN WHICH THE DATA IS TO BE STORED.
THE NAME OF THE FILE IS 'TEST' AND THE DATA IS STORED IN THE FORM
OF BINARY NUMBERS.
10 CONTINUE
IREC=30000
OPEN (UNIT-08, FILE-' TEST' ,STATUS'' NEW' ,ACCESS-' DIRECT' ,
# FORM'' UNFORMATTED' ,RECL'IREC, ACTION" READWRITE' )IF (ISTART. EQ. I) THEN
OPEN (UNIT=07, FILE-' RSTART' ,STATUS'' OLD' ,ACCESS-' DIRECT' ,# FORM-' UNFORMATTED' ,RECL-IREC, ACTION-' READWRITE' )
CCC
C
C
C
CC
C
C
ENDIF
GENERATE ARRAY 'NELEM' USING ARRAY 'NODES'
DO 40 I=I,NNM
DO 15 L=I,MXE
15 NELEM(I, L) =0
ICNT=0
DO 30 J=I,NEM
DO 20 K--I,8
JK=NODES (J, K)
IF (I .NE.JK) GOTO 20ICNT=ICNT+ 1
NELEM (I, ICNT)=JIF (ICNT.EQ.MXE) GOTO 40
GOTO 3020 CONTINUE
30 CONT INUE
40 CONTINUE
DEFINE FIXED PARAMETERS
NGP T--NGP*NGP *NGP
GAMI--GAMA- 1.0
GPR=GAMA/PR
INITIALIZE THE FLOW FIELD
NINIT=0
IF(ISTART .EQ. 0) THEN
C
CALL INTIAL (NDF, NNM, AMACH, AMU0, TEMP 0, S 1, R0, GAMA, PR, U, DNST0 )
CALL BCUPDT (NNM, GAMA, R0, TEMPO, U, DNST0 )
C
"w C
C
CC
50
741
70
80
90
ELSE
READ (07, REC=I) NINIT, UEND IF
NTMSTP = NTMSTP + NINITNINIT=NINIT+I
DO 50 II=l,6
DO 50 JJ=I,NNMUOLD (JJ, II) =U (JJ, II)
WRITE OUT INPUT DATA
WRITE (IT, 2600
WRITE (IT, 2500
WRITE (IT, 2600
WRITE (IT, 3000
WRITE (IT, 2100WRITE (IT, 2200
WRITE (IT, 741) AMACH
FORMAT(10X, 'FREE STREAM MACH NUMBER
WRITE (IT, 3500)
DO 70 I = i, NEM
WRITE(IT,4000) I, (NODES(I,J),J=I,8)
WRITE (IT, 4500)
DO 80 I = i, NNM
WRITE(IT,4000) I, (NELEM(I,J),J=I,MXE)
WRITE (IT, 5500)DO 90 I = I, NNM
WRITE (IT, 5000) I,X(I),Y(I) ,Z (I)
WRITE (IT, 6100)
DO i00 I=I,NNM
TITLE
AMU0,TEMP0,SI,R0,GAMA, PR, DNST0
ITER, NTMSTP,CFL, RLXOUT,RLXIN
=',El0.4)
CCCCCC
C
I00 WRITE(IT,6500)I, (U(I,J) ,J=l, 5)WRITE (IT, 6200)
DO 110 I=I,NNM110 WRITE(IT, 4000) I, (IBNDC(I,J),J=I,5)
WRITE (IT, 6300)
WRITE(IT, 4000) ((KELSUR (I, J), J=l, 2), I-l, NSURF)
FIND MAX. NO. OF NODES PER EACH ELEMENT, COMPUTE ELEMENTAL
VOLUMES, SHAPE FUNCTIONS AND THEIR GLOBAL DERIVATIVES, ANDTHE PRODUCT OF THE WEIGHTS AND THE DETERMINANT OF THE JACOBIAN
MATRIX FOR EACH GAUSS POINT OF EACH ELEMENT.
DO 155 ND=I,NNM
COMPUTE THE NUMBER OF ELEMENTS AROUND NODE 'ND'
DO 115 J=I,MXE
IF (NELEM (ND, J) .EQ. 0) GOTO 120115 CONTINUE
J=MXE+I
120 NUMEL=J- 1
140
INITIALIZE THE ARRAYS
VOLND (ND) =0.0
DC4 (ND) =7*NUMEL
COMPUTE ARRAY 'IEL' WHICH CONTAINS LOCAL NODE COP_ TO NODE ND
DO 150 N=I,NUMELNEL=NELEM (ND, N)
DO 140 I--I,NPE
NI=NODES (NEL, I)
IF (NI.EQ.ND) IEL (N) =I
ELXYZ (I, 1 )=X (NI)
ELXYZ (I, 2) =Y (NI)
ELXYZ (I, 3) ='Z (NI)
C
CALL GMETRY (NNM, NEM, MXE, N, NPE, NGP, ELXYZ, SF, GDSF, CNST, VOL,
1 NDIM, IEL (N))
150 VOLND (ND) -VOLND (ND) +VOL (N)
WRITE(08, REC=ND) ND, CNST, GDSF, VOL, NUMEL, IEL, SN22,SN33,1 SN44, SN55
* PRINT*, ND, CNST(I,I,I,I), GDSF (I, I, I, I, I, I) , VOL(1)
155 CONTINUE
C* WRITE(IT, 8000) (VOL (I), I=I,NEM)
C
CALL BNDRY (NBS, NEM, NNM, NPE, NSURF, NODES, KELSUR, ND SURF, KND SUR)
CALL DSFSUR (DSURF, NGP, NPE, NDIM)
WRITE (IT, I000)
WRITE (IT, 4000) ((KELSUR (I, J), J=l, 2), I=l, NSURF)
WRITE (IT, 4000) (NDSURI _ (I), I=l, 16)
WRITE (IT, 4000) ( (KNDSUR(I, J), J--l, 4), ImI,NSURF)
160
DO 180 NDS=I,NSURF
KE=KELSUR (NDS, I)KI=KELSUR (NDS, 2)
DO 160 I=I,NPE
NI=NODES (KE, I)
ELXYZ (I, I) =X (NI)
ELXYZ (I, 2) =Y (NI)ELXYZ (I, 3 )=Z (NI)
180 CALL SURFGM(KI,NDS,ELXYZ,DSURF, GNORM, NBS,NGP,NPE,NDIM)
CCCCCCCCC
190
I P R 0 C E S S O R II I
BEGIN THE DO-LOOP ON THE NUMBER OF TIME STEPS TO COMPUTE THE SOLN
ERROR=0.0
DO 800 ITMSTP=NINIT,NTMSTP
WRITE(IT,6000) ITMSTP
DO 190 I=I,NNM
TEMP=U(I,6)/R0/U(I,I)
AMU(I)=AMU0*((TEMP/TEMP0)**I.5)*((TEMP0+SI)/(TEMP+SI))
CALL SUBROUTINE 'DISPTN' TO COMPUTE GLOBAL ARTIFICIAL DISSIPATION
C
CALL DISPTN (NNM, NEM, MXE, X, Y, Z, U, DC4, NODES, NELEM, DIS 4, NPE,* E0, VOLND)
C
C
C
C
C
C
SYMMETRIC NONLINEAR GAUSS-SEIDEL ITERATION LOOP BEGINS HERE
ITMAX=2 * ITER
DO 700 ITR=I, ITMAX
IF (MOD (ITR, 2 ). EQ. 1 )THENNBEGIN=I
NEND =NNM
NINC=I
ELSE
NBEGIN=NNM
NEND=ININC=-I
ENDIF
WRITE (IT, 4007) ITR, ITMAX
BEGIN THE DO-LOOP ON THE NUMBER OF NODES TO COMPUTE THE SOLUTION
DO 600 ND=NBEGIN, NEND, NINC
WRITE(IT, 4006)NBEGIN, NEND,NINC, ND
COMPUTE THE NUMBER OF ELEMENTS (NUMEL) SURROUNDING A NODE
READ(08, REC=ND) ID, CNST, GDSF, VOL,NUMEL, IEL, SN22,SN33,
1 SN44, SN55
IF (ID.NE.ND) THEN
PRINT *, 'ERROR IN THE READ OF FILES'STOPENDIF
NS TART= 1
NLAST=5
INCR=I
DO 500 LOOP=l, 1
DO-LOOP ON THE NUMBER OF CONSERVATION EQUATIONS BEGINS HERE
DO 400 NEQ=NSTART,NLAST, INCR
WRITE (IT, 4004 )NSTART, NLAST, INCR, NEQ, LOOP
LEQ=IORDER (NEQ)
IF (IBNDC (ND, LEQ) .EQ. 0) GOTO 400
DO-LOOP ON NUMBER OF ELEMENTS SURROUNDING NODE 'ND' BEGINS HERE
CCC
260CCCC
GO.M=0.0GCKVlS=0.0C-CKINV=0.0
TCOEF=0.0
TRES=0.0
TFLX=0.0
DO 300 N=I,NUMELWRITE (IT, 4003) NUMEL, N
NEL=NELEM (ND, N)
TRANSFER GLOBAL INFORMATION TO ELEMENT 'NEL'
DO 260 I=I,NPE
MINDX (I )=0
NI=NODES (NEL, I)
EMU (I) =AMU (NI)IF (NINC.EQ. 1 .AND. NI.GE.ND)MINDX (I) =I
IF(NINC.EQ.-I .AND. NI.LE.ND)MINDX(I)=I
DO 260 II=l,6
DELU (I, II) =U (NI, II) -UOLD (NI, II)
ELU (I, II) =U (NI, II)
CALL SUBROUTINE 'COEFNT' TO COMPUTE THE COEFFICIENTS FOR THE EQN
C
CALL COEFNT (IEL (N), LEQ, N, NPE, NEM, NGP, ELU, SF, GDSF, CNST, VOL, RES,
CM, EMU, DELU, MINDX, CKINV, NDF, NDIM, NGPT, MXE)
GOTO (271,272,273,274,275) ,LEQ271 C-CKVIS=0.0
GOTO 276
272 DO 282 JI=I,NPE282 GCKVIS=GCKVIS+SN22 (N, Jl) *MINDX (Jl)
GOTO 276
273 DO 283 JI=I,NPE
283 GCKVIS=GCKVIS+SN33 (N, Jl) *MINDX (Jl)GOTO 276
274 DO 284 JI=I,NPE284 C-CKVIS=C-CKVIS+SN44 (N, Jl) *MINDX (Jl)
GOTO 276
275 DO 285 JI=I,NPE
285 C-CKVIS=GCKVIS+SN55 (N, Jl) *MINDX (Jl)276 CONTINUE
GCM--GCM+CM
GCKINV=GCKINV+CKINV300 TRES=TRES+RES
GCKINV=GCKINV* 8.0/NUMEL
GCKVIS--GCKVIS*AMU (ND)/U (ND, i)
IF (LEQ.EQ. 5) GCKVIS=GCKVIS*GPRTCOEF=GCM+DABS (GCKINV) +C-CKVIS
TCOEF=TCOEF+DC4 (ND)
IF (NDSURI _ (ND) .EQ. 0) GOTO 340
DO 335 J--l,4
KGI=KNDSUR (NDSURF (ND), J)
IF (KGI .EQ. 0) GOTO 340
KI=KELSUR (KGI, 2)
KL=KELSUR (KGI, I)
DO 310 II=I,NPEIF (NELEM (ND, II) .EQ.KL) THEN
NI.=IIGOTO 315
ENDIF
310 CONTINUE
315 DO 330 II=I,NPEEMU (Ii) =AMU (NODES (KL, I1) )
DO 320 JI=I,NDF
C
320 ELU(Ii, Jl) =U(NODES(KL,If), Jl)330 IF (NODES(KL,Ii) .EQ.ND)LI=II
C
5O0
*99996OO
CCC
CALLFLUXES(LI, LEQ,NI, NPE,NGP,ELU,SF,GDSF,GNORM,K1,KGI,FLX,I EMU,MXE,NBS,NDF,NDIM)
335 TFLX=TFLX+FLX340 CONTINUE
IF (LEQ.NE.2)GOTO350ERROR0=ERRORERROR=DMAXl(ERROR0,DABS(TRES+TFLX))IF (ERROR.GT.ERROR0)MAXND=ND
350 CONTINUEDIS4(ND,LEQ)=0.0DU=-(TRES+TFLX-DIS4(ND,LEQ))/TCOEFU(ND,LEQ)=U(ND,LEQ)+DU*RLXINU(ND,6)=GAMI* (U(ND,5)-0.5* (U(ND,2)*U(ND,2)+U(ND,3)*U(ND,3)+
• U(ND,4)*U(ND,4)) /U (ND, I) )
WRITE (IT, 7500) LEQ, ND, TRES, TFLX, TCOEF, U (ND, LEQ)400 CONTINUE
NTEMP=NSTART
NSTART=NLASTNLAST=NTEM_
INCR=- 1 * INCR
CONT INUE
WRITE(6,9999) ND, (U(ND, LI),LI=I,6)
FORMAT (I5, 6E15.7)CONTINUE
END OF THE COMPUTATION FOR ALL NODES IN THE SWEEP
NTEMP=NBEGIN
NBEGIN=NEND
NEND=NTEMP
NINC=-I*NINC
RESET THE VALUES AT INFLOW, OUTFLOW AND RADIAL SYMMETRY PLANES
CALL BCUPDT(NNM, GAMA, R0,TEMP0,U, DNST0)
CONTINUE700
C
CC
730
C*
C
C
RELAXATION OF THE UPDATED SOLUTION AND COMPUTATION OF PRESSURE
DO 720 II=i,5
DO 720 JJ=I,NNMU (JJ, II )=UOLD (JJ, II) +RLXOUT* (U (JJ, II) -UOLD (JJ, II) )
720 UOLD (JJ, II) =U(JJ, II)
DO 730 JI=I,NNM
U (Jl, 6) =GAMI* (U (Jl, 5) -0.5* (U (Jl, 2) *U (Jl, 2) +U (Jl, 3) *U (Jl, 3) +
* U(JI, 4) *U (Jl, 4) )/U (Jl, I) )
UOLD (Jl, 6) =U (Jl, 6)WRITE (IT, 7000) ERROR, MAXND
DO 750 I=I,NNM
750 WRITE(IT, 6500)I, (U(I,J),J=I,6)800 CONTINUE
OPEN (UNIT=09, FILE=' ROLD', STATUS=' NEW', ACCESS=' DIRECT',
* FORM=' UNFORMATTED' ,RECL=IREC, ACTION =' READWRITE' )
WRITE (09, REC=I )NTMSTP, U
STOP
F O R M A T S
I000 FORMAT2000FORMAT2100FORMAT
234567
(5X,'ARRAYS:KELSUR,NDSURFANDKNDSUR:', /)(20A4)
(/,2X,'P R O B L E M D A T A:',/
/, 5X, 'REFERENCE VISCOSITY (AMU0) ............ =' ,El2 .4,
/,5X,'REFERENCE TEMPERATURE (TEMPO) ......... =',E12.4,/, 5X, 'SUTHERLANDS CONSTANT (SI) ............. =' ,El2.4,
/,SX,'GAS CONSTANT (R0) ..................... =',E12.4,
/, 5X, 'RATIO OF SPECIFIC HEATS (GAMA) ........ --',El2.4,
/, 5X, 'PRANDTL NUMBER (PR) ................... =' ,El2 .4,
2
3
4
5
6
2500 FORMAT
2600 FORMAT
3000 FORMAT
3500 FORMAT
4000 FORMAT4002 FORMAT
4003 FORMAT
4004 FORMAT
4005 FORMAT
4006 FORMAT
4007 FORMAT
4008 FORMAT
4500 FORMAT
5000 FORMAT
5500 FORMAT6000 FORMAT
6100 FORMAT
6200 FORMAT
8 /, 5X, 'REFERENCE DENSITY (DNST0) ............. =', El2.4, / )
2200 FORMAT (/,2X,'P A R A M E T E R S O F A P P R 0 X. :',/,
/, 5X, 'NUMBER OF ITERATIONS PER TIME STEP .... =', I3,
/, 5X, 'NUMBER OF TIME STEPS (NTMSTP) ......... =', I3,
/,5X,'THE C F L NUMBER (CFL) .............. z',E12.4,
/, 5X, 'OUTER RELAXATION PARAMETER (RLXOUT)...=' ,El2.4,
/, 5X, ' INNER RELAXATION PARAMETER (RLXIN) .... =', El2.4,/)
(/,15X,'O U T P U T F R 0 M P R O G R A M COMPR3D',/)(80 (' -' ) )
(IHI, 20A4)
(/,2X,'C 0 N N E C T I V I T Y M A T R I X:',/,
2X, ' (ELEMENT-TO-NODES) ',/)(I5, 2X, III5)
(5X,'DO-LOOP 200 :',/,915)
(5X,'DO-LOOP 300 :',/,915)
(5X,'DO-LOOP 400 :',/,915)(5X,'DO-LOOP 500 :',/,915)
(5X,'DO-LOOP 600 :',/,915)
(5X,'DO-LOOP 700 :',/,915)
(5X,'DO-LOOP 800 :',/,915)
(/,2X,'C 0 N N E C T I V I T Y A R R A Y :',/,2X, ' (NODE-TO-ELEMENTS) ',/)
(I5, 3 (2X, El2.4) )
(/,2X,' (X,Y,Z)-C O O R D I N A T E S 0 F N 0 D E S:',/)(/,2X,'T I M E S T E P =',I5,/)
(/,2X,'I N I T I A L F I E L D V A L U E S:',/)
(/,2X,'SPECIFIED NODAL QUANTITIES (=0, SPECIFIED) :',/)
6300 FORMAT (/,2X,'ELEMENT NUMBERS AND THEIR SURFACES THAT REQUIRE FLUX* COMPUTATION :' , / )
6500 FORMAT (I5,6E12.4)
7000 FORMAT (/,5X,'MAX. ERROR =',EI2.4,/,5X,'NODE NUMBER =',I5,/)
7500 FORMAT (/,5X,'LEQ =',I2,2X,'NODE =',I4,2X,'RESIDUAL=,,EI2.4,2X,* 'FLUX=' ,El2.4,2X, 'TCOEF=' ,El2.4, 2X, 'SOLN.=' ,El2.4)
8000 FORMAT (5X, 'VOLUME OF EACH ELEMENT :' ,/, 5X, 6E12 .4 )END
C
C
C
C
C
CC
SUBROUTINE BCUPDT (NNM, GAMA, R0, TEMPO, U, DNST0 )
IMPLICIT REAL*8 (A-H,O-Z)
COMMON/MSH/ARCANG, NX, NY, NZ, NXl, NX2, NX3
DIMENSION U (NNM, 6)
DEFINE FIXED PARAMETERS
ANX=0.0
ANY=DS IN (0.5*ARCANG)
ANZ=DCOS (0.5*ARCANG)GAMI=GAMA- I. 0NXX--NX+I
NYY--NY+INZZ=NZ+I
SET THE NORMAL VELOCITY TO ZERO AT THE MIDPLANE
DO 30 IX=I,NXX
CCC
CCC
C
C
DO30 IY=I,NYYND=(IX-I )*NYY*NZZ+NYY+IYU(ND,3)=U(ND,3)* (i. 0-ANY*ANY)-U(ND,4)*ANY*ANZU (ND, 4) =-U (ND, 3) *ANY*ANZ+U (ND, 4) * (I. 0-ANZ*ANZ)
U (ND, 5) =U (ND, 6)/GAMI+0.5" (U (ND, 2) *U (ND, 2) +U (ND, 3) *U (ND, 3)+
• U (ND, 4) *U (ND, 4) ) /U (ND, I)
RESET THE VALUES ON PARALLEL PLANES TO THOSE ON THE MIDPLANE
3O
NDI:ND-NYYND2=ND+NYY
U (NDI, 1 )=U (ND, 1 )
U (NDI, 2) =U (ND, 2)
U (NDI, 3) =U (ND, 3) *ANZ-U (ND, 4) *ANY
U (NDI, 4) =U (ND, 3) *ANY+U (hiD,4) *ANZ
U (NDI, 5) -U (ND, 5)U (NDI, 6) --U (ND, 6)
U (ND2, I) =U (ND, 1)
U (ND2,2) =U (ND, 2 )
U (ND2, 3)=U (ND, 3) *ANZ+U (ND, 4) *ANY
U (ND2, 4)=-U (ND, 3) *ANY+U (ND, 4) *ANZ
U (ND2, 5) =U (ND, 5)
U (ND2, 6) =U (ND, 6)CONTINUE
RESET THE VALUES AT OUTFLOW BOUNDARY
DO 40 IZ=I,NZZDO 40 IY=I,NYY
ND = IY + (IZ-I)*NYY + NX*NYY*NZZ
U(ND, 6) =DNST0*R0*TEMP0*0.98
U (ND, 5) =U (ND, 6)/GAMI+0.5* (U (ND, 2) *U (ND, 2) +U (ND, 3) *U (ND, 3) +* U(ND, 4) *U (ND, 4) )/U (ND, i)
40 CONTINUE
SET CONSTANT TEMPERATURE ON THE WALLS
DO 60 KD = I, NX-I
NDI = (NYY*NZZ)*KD + 1
DO 50 JZ = I, NZZND = NDI + (JZ-I) *NYY
U (ND, 6) =U (ND, 5 ) *GAMI
U (ND, I)=U (ND, 6) / (R0*TEMP0)
5O
NN = ND + NY
U (NN, 6) =U (NN, 5) *GAMI
U (NN, I)--U (NN, 6) / (R0*TEMP0)CONT INUE
60 CONTINUE
RETURN
END
I0
20
SUBROUTINE BNDRY (NBS, NEM, NNM, NPE, NSURF, NODES, KELSUR, NDSURF, KNDSUR)IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION NODES (NEM, NPE) ,KELSUR (NBS, 2) ,KNDSUR (NBS, 4) ,NDSURF (NNM) ,* K(4)NCOUNT= 0
DO i0 I=I,NNMNDSURF (I) =0
DO 20 L=I, 4
DO 20 J=I,NSURF
KNDSUR (J, L) =0
30
4O
50
6O
70
8O
90
I00ii0
120150
DO150 I=I,NSURFKEL=KELSUR(I, I)KSRF=KELSUR(I, 2)GOTO(30,40,50,60,K(I)=NODES(KEL,i)K(2)=NODES(KEL,4)K(3)=NODES (KEL, 8)
K(4) =NODES (KEL, 5)GOTO 90
K (1 )=NODES (KEL, 2 )
K (2) =NODES (KEL, 3)
K (3) =NODES (KEL, 7)
K (4) =NODES (KEL, 6)GOTO 90
K (1 )=NODES (KEL, 1 )
K (2) =NODES (KEL, 5)
K (3)=NODES (KEL, 6)
K (4) =NODES (KEL, 2)GOTO 90
K (i) =NODES (KEL, 4)K (2)=NODES (KEL, 8)
K(3) =NODES (KEL, 7)
K(4) =NODES (KEL, 3)GOTO 90
K(1) =NODES (KEL, I)K(2) =NODES (KEL, 2)
K(3) =NODES (KEL, 3)
K(4) =NODES (KEL, 4)GOTO 90
K (I) =NODES (KEL, 5)
K (2)=NODES (KEL, 6)
K (3) =NODES (KEL, 7)
K(4) =NODES (KEL, 8)CONT INUE
70,80) ,KSRF
DO 120 J=l,4
IF (NDSURF (K (J)) .EQ. 0) THEN
NCOUNT=NCOUNT+ I
NDSURF (K (J)) =NCOUNT
KNDSUR (NCOUNT, 1 )=IELSE
NC=NDSURF (K (J))
DO 100 JJ=2,4
IF (KNDSUR (NC, JJ) .EQ. 0) THEN
KNDSUR (NC, JJ) =IGOTO Ii0ENDIF
CONTINUE
CONTINUE
ENDIF
CONTINUE
CONTINUE
RETURNEND
SUBROUTINE COEFNT (IEL, LEQ, N, NPE, NEM, NGP, ELU, SF, GDSF, CNST, VOL, RES,
* CM, EMU, DELU, MINDX, CKINV, NDF, NDIM, NGPT, MXE )
CC
C
C
C
C
ELU(I,J) ...... ELEMENT SOLUTION VECTOR (J-TH COMPO. AT I-TH NODE)
SF(I,...) ..... SHAPE FUNCTION ASSOCIATED WITH THE I-TH NODEGDSF (N, J, . .I) .GLOBAL DERIVATIVE OF J-TH SHAPE FUNCTION
WITH RESPECT TO X(I) COORDINATE
C
C
CCC
C
THIS IS A VECTORIZEDVERSIONOFTHESUBROUTINECOEFNT
IMPLICITREAL*8(A-H,O-Z)DIMENSIONSF(NPE,NGP,NGP,NGP),CNST(MXE,NGP,NGP,NGP),VOL(MXE),
2 GDSF(MXE,NPE,NGP,NGP,NGP,NDIM),ELU(NPE,6), EMU(NPE),3 U(6,8) ,DU(7,3, 8),DUI(7,3, 8),UI (6,8) ,DELU(NPE,6),4 III(8),JJJ(8),KKK(8),F(8,8),DF(9,9,3),MINDX(NPE),5 DQI(3) ,C(8), GMU(8)COMMON/DTA/GAMA,AMU0,TEMPO,S1,R0,GPR,GAMI,CFL
DATAIII/I,2,1,2,1,2,1,2/DATAJJJ/l,l,2,2,1,1,2,2/DATAKKK/I,I,I,I,2,2,2,2/
CM=0.0CK=0.0CKINV=0.0DLNGTH=0.0RES=0.0FMAS=0.0SPEED=DSQRT(ELU(IEL, 6)*GAMA/ELU(IEL, I) )
DOI0 L=I,NGPT
C(L) = CNST(N, III(L),JJJ(L),KKK(L))DO 10 I=I,NPE
F(L,I) = SF(I, III(L),JJJ(L),KKK(L))
DF(L,I,I) = GDSF(N,I,III(L),JJJ(L),KKK(L),I)
DF(L,I,2) -- GDSF(N,I,III(L),JJJ(L),KKK(L),2)
i0 DF(L,I,3) = GDSF(N,I,III(L),JJJ(L),KKK(L),3)
TSPEED=SPEED+ (DABS (ELU (IEL, 2) )+DABS (ELU (IEL, 3) )+DABS (ELU (IEL, 4) ) )/* ELU (IEL, I)
DT=CFL* (VOL (N) ** (i./3. ))/TSPEED
EVALUATE THE SOLUTION AND ITS DERIVATIVES AT THE GAUSS POINT
DO 40 J=I,NDF
DO 40 L=I,NGPTSUM1=0.0
SUM2=0.0
SUM3=0.0SUM4=0.0
DO 30 I=I,NPE
SUMI=SUMI+DF (L, I, I) *ELU (I, J)
SUM2=SUM2+DF (L, I, 2) *ELU (I, J)SUM3=SUM3+DF (L, I, 3) *ELU (I, J)
30 SUM4=SUM4+F (L, I) *ELU (I, J)DU (J, i, L) =SUM1
DU (J, 2, L) =SUM2
DU (J, 3, L) =SUM340 U (J, L) =SUM4
DO 50 J=2,4
DO 50 L=I,NGPT
U1 (J, L) =U (J, L)/U (I, L)
DUI (J, I, L) = (DU (J, I, L)-UI (J, L) *DU(I, i, L) )
DUI (J, 2, L) = (DU (J, 2, L) -UI (J, L) *DU (1,2, L) )
50 DUI (J, 3, L) = (DU(J, 3, L)-UI (J, L) *DU (i, 3, L) )
COMPUTE MASS MATRIX TIMES DELU TERM
6070
DO 70 JI=I,NPE
DO 60 L=I,NGPT
PROD=F(L, IEL)*F(L, JI)*C(L)CM=CM+PROD*MINDX(JI)
FMAS=FMAS+PROD*DELU(JI,LEQ)CONTINUE
CC
C
COMPUTE INVISCID COEFFICIENT FOR INNER ITERATION
DO 90 L=I,NGPT
CKINV=CKINV+ (DABS (DF (L, IEL, i) * (DABS (UI (2, L) )+SPEED) )
1 + DABS (DF (L, IEL, 2) * (DABS (UI (3, L) ) +SPEED) )
2 + DABS (DF (L, IEL, 3) * (DABS (UI (4,L)) +SPEED) )) *C(L)
3 *F (L, IEL)90 CONTINUE
COMPUTE RESIDUES ETC FOR A CONSERVATION EQUATION
GOTO(100,200,300,400,500),LEQ
100 DO ii0 L=I,NGPT
RES=RES- (DF (L, IEL, I) *U(2, L) +DF (L, IEL, 2) *U (3, L)
1 +DF (L, IEL, 3) *U (4, L) ) *C (L)110 CONTINUE
GOTO 600
200 DO 240 L=I,NGPTSUM=0.0
DO 220 I=I,NPE
220 SUM=SUM+EMU (I) *F (L, I)
240 GMU (L)-_SUM
DO 260 L=I,NGPTU22=U (2, L) *U(2, L)
U23=U (2, L) *U (3, L)U24=U (2, L) *U (4, L)
U33=U (3, L) *U (3, L)
U44=U (4, L) *U (4, L)
PRES--GAMI* (U (5, L) -0.5* (U22+U33+U44)/U(I, L) )
AMU23=2.0*GMU (L)/3.0AMU43=2.0*AMU23
RES=RES-C (L) * ( (U22+PRES*U (i, L) +AMU23* (-2.0*DUI (2, i, L)
1 +DUI (3, 2, L) +DUI (4,3, L) ) ) *DF (L, IEL, i)2 + (U23-GMU (L) * (DUI (3, I, L) +DUI (2, 2, L) )) *DF (L, IEL, 2)
3 + (U24-GMU (L) * (DUI (4, i, L) +DUI (2, 3, L) ) ) *DF (L, IEL, 3) )/U (I, L)260 CONTINUE
GOTO 6O0
300 DO 340 L=I,NGPTSUM=0.0
DO 320 I=I,NPE
320 SUM=SUM+EMU (I) *F (L, I)
340 GMU (L) =SUM
DO 360 L=I,NGPT
U22=U (2, L) *U (2, L)
U23=U (2, L) *U (3, L)
U33=U (3, L) *U (3, L)U34=U (3, L) *U (4, L)
U44=U(4, L) *U (4, L)
PRES=GAMI* (U (5, L) -0.5* (U22+U33+U44)/U (I, L) )
AMU23=2.0*GMU (L)/3.0AMU43=2.0*AMU23
RES=RES-C (L) * ( (U33+PRES*U (i, L) +AMU23* (-2.0*DUI (3,2, L)
1 +DUI (4, 3, L) +DUI (2, i, L) ) ) *DF (L, IEL,2)2 + (U34-GMU (L) * (DUI (4, 2, L) +DUI (3, 3, L) ) ) *DF (L, IEL, 3)
3 + (U23-GMU (L) * (DUI (2,2, L) +DUI (3, 1, L) ) ) *DF (L, IEL, i) )/U (1, L)
360 CONTINUE
GOTO 600
400 DO 440 L=I,NGPTSUM=0.0
DO 420 I=I,NPE420 SUM=SUM+EMU(I) *F(L, I)
440 GMU (L) -=SUM
DO460 L=I,NGPTU22=U(2, L) *U (2, L)
U24=U(2, L) *U (4, L)
U33=U (3, L) *U (3, L)
U34=U(3, L) *U (4, L)
U44--U (4, L) *U (4, L)
PRES=GAMI * (U (5, L) -0.5" (U22+U33+U44)/U (I, L) )AMU23=2.0*GMU (L)/3.0
AMU43=2.0*AMU23
RES=RES-C (L) * ( (U44+PRES*U (I, L) +AMU23* (-2.0*DUI (4, 3, L)
1 +DUI (2, I, L) +DUI (3, 2, L) ) ) *DF (L, IEL, 3)
2 + (U24-GMU (L) * (DUI (2,3, L) +DUI (4, i, L) )) *DF (L, IEL, I)
3 + (U34-GMU (L) * (DUI (3, 3, L) +DUI (4, 2, L) )) *DF (L, IEL, 2) )/U (i, L)460 CONTINUE
GOTO 600
500
520
540
DO 540 L=I,NGPTSUM=0.0
DO 520 I=I,NPE
SUM=SUM+EMU (I) *F (L, I)
GMU (L) =SUM
DO 560 L=I,NGPTU22=U (2, L) *U (2, L)
U33=U (3, L) *U (3, L)
U44=U (4, L) *U (4, L)
PRES=GAMI* (U (5, L) -0.5* (U22+U33+U44)/U (I, L) )AKH=GMU (L) *GPR
AMU23=2.0*GMU (L) /3.0AMU43=2.0*AMU23
DQI (i) =DU (5, I, L) -UI (2, L) *DU (2, I, L) -UI (3, L) *DU(3, i, L)
2 -Ul (4, L) *DU(4, I, L) +DU (I, i, L) * (-U (5, L)/U(l, L)
3 +Ul (2, L) *Ul (2, L) +Ul (3, L) *UI (3, L) +Ul (4, L) *Ul (4, L) )
DQI (2) =DU(5, 2, L) -Ul (2, L) *DU(2, 2, L) -UI (3, L) *DU(3, 2, L)
2 -Ul (4, L) *DU (4,2, L) +DU (i, 2, L) * (-U (5,L)/U(I, L)3 +Ul (2, L) *Ul (2, L) +Ul (3, L) *Ul (3, L) +Ul (4, L) *Ul (4, L) )
DQI (3) =DU(5, 3, L) -UI (2, L) *DU (2, 3, L) -UI (3, L) *DU (3, 3, L)
2 -UI(4,L)*DU(4,3,L)+DU(I, 3,L)*(-U(5,L)/U(I,L)
3 +Ul (2, L) *Ul (2, L) +UI (3, L) *Ul (3, L) +Ul (4, L) *Ul (4, L) )
560
600
RESI = (U(2,L)*(U(5,L)+PRES)-AMU23*UI(2,L)*(2.0*DUI(2,I,L)2 -DUI (3, 2, L)-DUI (4, 3, L) )-GMU(L) * (UI (3, L) * (DUI (2,2, L)
3 +DUI (3, I, L) )+UI (4, L) * (DUI (2, 3, L) +DUI (4, i, L) ) )
4 -AKH*DQI (i)) *DF (L, IEL, i)RES2 = (U(3,L)*(U(5, L) +PRES) -AMU23*UI (3, L) * (2 .0*DUI (3, 2, L)
2 -DUI (4, 3, L) -DUI (2, I, L) )-GMU (L) * (UI (4, L) * (DUI (3, 3, L)
3 +DUI (4,2, L) )+UI (2, L) * (DUI (3, i, L) +DUI (2,2, L) ) )
4 -AKH*DQI (2)) *DF (L, IEL, 2)
RES3 = (U(4,L)*(U(5, L) +PRES) -AMU23*UI (4, L) * (2 .0*DUI (4, 3, L)
2 -DUI (2, I,L) -DUI (3,2, L) )-GMU (L) * (UI (2,L) * (DUI (4, I, L)3 +DUI (2,3, L) ) +UI (3, L) * (DUI (4, 2, L) +DUI (3, 3, L) ))
4 -AKH*DQI (3)) *DF (L, IEL, 3)RES = RES - (RESI+RES2+RES3)*C (L)/U(I,L)
CONTINUE
CONTINUE
RES=RES+FMAS/DT
CM=CM/DTRETURN
END
SUBROUTINE DISPTN (NNM, NEM, MXE, X, Y, Z, U, DC4, NODES, NELEM, D I S4,
* NPE, E0, VOLND)IMPLICIT REAL*8 (A-H,O-Z)
C
20
30
4050
6OCCC
i00120130
140
150
DIMENSIONX(NNM),Y(NNM),Z(NNM),U(NNM,6), NODES (NEM, 8 ), E0 (NNM),
2 NELEM (NNM, MXE) ,DIS4 (NNM, 6), VOLND (NNM) ,DC4 (NNM)
DATA KAPA2, KAPA4/0. I, 0.01/
DO 50 IE=I, 6
DO 40 ND=I,NNMSUME0=0.0
DO 20 NE=I,MXE
IF (NELEM(ND,NE) .EQ.0)GOTO 30
NEL=NELEM (ND, NE)
DO 20 NP=I,NPE
NI=NODES (N-EL,NP)SUME0=SUME0+U (NI, IE) -U (ND, IE)
NE=MXE+I
CONTINUE
DC4 (ND) =7* (NE-I)
DIS4 (ND, IE) =SUME0
CON T INUE
DO 60 ND=I,NNM
DIS4 (ND, 5) =DIS4 (ND, 5) +DIS4 (ND, 6)
DIS4 (ND, 6)=ABS (DIS4 (ND, 6) )/U (ND, 6) *KAPA2
COMPUTE THE FOURTH-ORDER DISSIPATION
DO 150 IE=I,5
DO 140 ND=I,NNM
SUMDC=0.0
E0 (ND) =0.0SUMD0=0.0
ISW=I
IF(DIS4(ND,6) .GT.KAPA4) ISW=0
DO 120 NE=I,MXE
NEL=NELEM (ND, NE)IF (NEL.EQ. 0) GOTO 130
DO 100 NP=I,NPE
NI=NODES (NEL, NP )
IF (NI .EQ.ND) GOTO i00
XL=X (NI) -X (ND)
YL=Y (NI) -Y (N-D)ZL=Z (NI) -Z (ND)
EDGE =DSQRT (XL*XL+YL*YL+ZL*ZL)
EPSLN= (VOLND (ND) +VOLND (NI)) *0.5/EDGE
IF (IE.EQ.5) SUMDC=SUMDC+EPSLN* ( (DC4 (ND) -i .0) *KAPA4*ISW+DIS4 (ND, 6) )
SUMD0=SUMD0- (DIS4 (NI, IE) -DIS4 (ND, IE) )*EPSLN*KAPA4 *ISWCONTINUE
CONTINUE
CONT INUE
IF (IE.EQ.5)DC4 (ND)=SUMDC
E0 (ND)=SUMD0
DO 150 ND = I,NNM
DIS4 (ND, IE) =E0 (ND) +DIS4 (ND, IE) *DIS4 (ND, 6)RE TURN
END
SUBROUTINE DSFSUR (DSURF, NGP, NPE, NDIM)
THIS SUBROUTINE EVALUATES THE DERIVATIVES OF THE SHAPE FUNCTIONS
AT THE GAUSS POINTS OF THE SURFACES OF AN ELEMENT
C
C
C
C
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION XNODE (8, 3) ,XYZ (3) ,DSURF (NDIM, NPE, 6,NGP,NGP) ,GAUSS (2)DATA XNODE/-I.0D0,2*I.0D0,2*-I.0D0,2*I.0D0,-I.0D0,2*-I.0D0,2*I.0D0
C
I0
2O
3O
40
5O608O
1,2"-I. 0D0,2"1.0D0,4"-1.0D0,4"1.0D0/
FCK(A,B,C)=0.125*A*B*CSQRT3=DSQRT(3.0D0 )GAUSS (I) =-I. 0D0/SQRT3
GAUSS (2) =-GAUSS (i)
DO 80 KI=I,6DO 60 NGPI=I,NGP
DO 60 NGPK=I,NGP
GOTO (i0, I0,20, 20,30, 30), K1
XYZ (1) = (-1) **K1
XYZ (2) =GAUSS (NGPI)XYZ (3)=GAUSS (NGPK)
GOTO 40
XYZ (2) = (-I) **KI
XYZ (3)=GAUSS (NGPI)
XYZ (i) =GAUSS (NGPK)
GOTO 40
XYZ (3) = (-I) **KI
XYZ (I)=GAUSS (NGPI)
XYZ (2 )=GAUS S (NGPK)
DO 50 I=I,NPEXNPI=XYZ (I) *XNODE (I, I) +I. 0
YNP I=XYZ (2) *XNODE (I, 2) +I. 0
ZNPI=XYZ (3) *XNODE (I, 3) +i. 0
DSURF (i, I, KI, NGPI, NGPK) =FCK (XNODE (I, I), YNPI, ZNPI )
DSURF (2, I, KI,NGPI, NGPK)=FCK (XNPI, XNODE (I,2), ZNPI)
DSURF (3, I, KI,NGPI, NGPK)=FCK (XNP i, YNPI, XNODE (I, 3) )CONTINUE
CONTINUE
RETURN
END
SUBROUTINE FLUXES (IEL, LEQ, N, NPE, NGP, ELU, SF, GDSF, Cq_ORM, K1, KGI, FLX,
1 EMU, MXE, NBS, NDF, NDIM)
CC
C
C
C
C
C
C
ELU(I,J) ...... ELEMENT SOLUTION VECTOR (J-TH COMPO. AT I-TH NODE)
SF(I,...) ..... SHAPE FUNCTION ASSOCIATED WITH THE I-TH NODE
GDSF (N, J,..I).GLOBAL DERIVATIVE OF J-TH SHAPE FUNCTIONWITH RESPECT TO X(I) COORDINATE OF THE N-TH ELEMENT
GDINT(I,J) .... INTERPOLATED GDSF ON SURFACE OF AN ELEMENT
SFINT(I) ...... INTERPOLATED SF ON SURFACE OF AN ELEMENT
C
C
C
IMPLICIT REAL*8 (A-H, O-Z)DIMENSION SF (NPE,NGP,NGP,NGP) ,GDSF (MXE,NPE,NGP,NGP,NGP,NDIM) ,
2 GD INT (8,3 ), SF INT (8 ), GNORM (ND IM, NB S, NGP, NGP ), EMU (NPE),
3 ELU (NPE, 6) ,DU (6, 3) ,U(6) ,UI (6) ,DUI (6, 3) ,DQI (3), VECTR (3)
COMMON/DTA/GAMA, AMU0, TEMP 0, S 1, R0, GPR, GAMI, CFL
K0=(KI+I)/2FLX=0.0
SQRT3=DSQRT(3.0D0)
DO-LOOP ON GAUSS INTEGRATION BEGINS HERE
DO 200 JJ=I,NGPDO 200 KK=I,NGP
AMU=0.0
EVALUATE THE COMPONENTS OF THE SURFACE NORMAL AT THE GAUSS POINTS
IF (K0-2)30,40,5030 NI=I
NIl=2NJ=JJNJI=NJNK=KKNKI=NKGOTO60
40 NJ=I
NJI=2NK=JJ
NKI=NK
NI=KK
NI I=NI
GOTO 60
50 NK=INKI=2
NI=JJ
NI I=NI
NJ=KK
NJ 1=NJ
C
60 DO 70 I=I,NPE
FI=SF (I, NI, NJ, NK)
F2=SF (I,NI1, NJI, NKI)SFINT (I) = ((-I) **KI*SQRT3* (F2-FI) +F2+FI) /2.0
F3=GDSF (N, I, NI, NJ, NK, 1 )
F4=GDSF (N, I,NII,NJI, NKI, I)GDINT (I, I) = ((-I) **KI*SQRT3* (F4-F3) +F4+F3)/2.0
F3=GDSF (N, I, NI, NJ, NK, 2 )
F4=GDSF (N, I, NIl, NJI, NKI, 2)
GDINT (I, 2) = ((-i) **KI*SQRT3* (F4-F3) +F4+F3)/2.0
F3=GDSF (N, I, NI, NJ, NK, 3 )
F4=GDSF (N, I, NIl, NJI, NKI, 3)
GDINT (I, 3) = ((-i) **KI*SQRT3* (F4-F3) +F4+F3)/2.070 AMU=AMU+SFINT (I) *EMU (I)
DO I00 J=I,NDFSUM1=0.0
SUM2=0.0
SUM3=0.0
SUM4=0.0
DO 80 I=I,NPE
SUMI=SUMI+GDINT (I, I) *ELU (I, J)
SUM2=SUM2+GDINT (I, 2) *ELU (I, J)
SUM3=SUM3+GDINT (I, 3 ) *ELU (I, J)80 SUM4=SUM4+SFINT (I) *ELU (I, J)
DU (J, I) =SUM1
DU (J, 2 )=SUM2
DU (J, 3) =SUM3I00 U(J) =SUM4
Ul (2)=U (2)/U (i)
U1 (3)=U (3)/U(1)
U1 (4)=U (4)/U(1)
DO 110 J.=2, 4DUI (J, I)'=(DU(J, l)-Ul (J) *DU(I, I) )
DUI (J, 2) "=(DU (J, 2 )-UI (J) *DU (i, 2 ))
ii0 DUI (J, 3) = (DU (J, 3) -UI (J) *DU (i, 3) )
VECTR (1 )=GNORM (1, KGI, JJ, KK)
VECTR (2) =GNORM (2, KGI, JJ, KK)
VECTR (3) =GNORM (3, KGI, JJ, KK)
C
C COMPUTE PRESSURE, TEMPERATURE, VISCOSITY USING THE SUTHERLAND'S
C LAW, AND THE DIFFUSION CONSTANT AT THE GAUSS POINTS
C
U22=U (2) *U(2)
U23=U (2) *U(3)
C
C
C
U24=U (2) *U(4)
U33=U (3) *U(3)
U34=U (3) *U (4)U44=U (4) *U(4)
PRES=GAMI* (U (5) -0.5* (U22+U33+U44) /U (1) )
AKH=AMU*GPR
AMU23=2.0*AMU/3.0AMU43=2.0*AMU23
COMPUTE THE FLUX FOR EACH CONSERVATION EQUATION AT THE NODE
GOTO (140,150,160,170,180), LEQ
140 FLX=FLX+ (U (2) *VECTR (I) +U (3) *VECTR (2) +U(4) *VECTR (3)) *SFINT (IEL)GOTO 200
150 FLX=FLX+ ((U22+PRES*U (i) +AMU23* (-2.0*DUI (2, i) +DUI (3, 2) +DUI (4,3)) )
1 *VECTR (i) + (U23-AMU* (DUI (3, I) +DUI (2, 2) )) *VECTR (2)2 + (U24-AMU* (DUI (4, I) +DUI (2,3)) )*VECTR (3)) *SFINT (IEL)/U (I)
GOTO 200160 FLX=FLX+ ( (U33+PRES*U (I) +AMU23* (-2.0*DUI (3, 2) +DUI (4,3) +DUI (2, I) ) )
1 *VECTR (2)+ (U34-AMU* (DUI (4,2)+DUI (3, 3) )) *VECTR (3)
2 + (U23-AMU* (DUI (2,2) +DUI (3,1)) )*VECTR (i)) *SFINT (IEL) /U(1)GOTO 200
170 FLX=FLX+ ( (U44+PRES*U (I) +AMU23* (-2.0*DUI (4, 3) +DUI (2, i) +DUI (3,2)) )
1 *VECTR (3 )+ (U24-AMU* (DUI (2, 3) +DUI (4, 1 )) ) *VECTR (1 )
2 + (U34-AMU* (DUI (3, 3) +DUI (4,2)) )*VECTR (2)) *SFINT (IEL)/U (I)GOTO 200
180 DQI (i) =DU(5, I) -UI (2) *DU (2, i) -UI (3) *DU (3, i) -UI (4) *DU (4, I)
2 +DU (I, i) * (-U (5)/U (I) +Ul (2) *UI (2) +Ul (3) *Ul (3) +UI (4) *Ul (4))
DQI (2) =DU (5,2) -Ul (2) *DU (2,2) -Ul (3) *DU(3,2) -Ul (4) *DU(4, 2)
2 +DU (I, 2) * (-U (5)/U(1) +UI (2) *UI (2) +UI (3) *U1 (3) +UI (4) *UI (4))
DQI (3)=DU (5, 3) -UI (2) *DU (2,3) -UI (3) *DU (3, 3) -UI (4) *DU (4, 3)2 +DU (i, 3) * (-U (5)/U (I) +Ul (2) *Ul (2) +UI (3) *Ul (3) +Ul (4) *Ul (4))
FLX=FLX+ ((U (2) * (U (5) +PRES) -AMU23*U1 (2) * (2.0*DUI (2, 1) -DUI (3, 2)2
3
4
5
6
78
9
200
C*
C 300
-DUI (4, 3) )-AMU* (Ul (3) * (DUI (2,2) +DUI (3, I) ) +Ul (4) * (DUI (2, 3)
+DU1 (4, I) ) )-AKH*DQI (I)) *VECTR (i)
+ (U (3) * (U (5) +PRES) -AMU23*UI (3) * (2.0*DUI (3,2) -DUI (4, 3)
-DUI (2, i) )-AMU* (UI (4) * (DUI (3, 3) +DUI (4,2)) +UI (2) * (DUI (3, i)
+DUI (2,2)) )-AKH*DQI (2)) *VECTR (2)
+ (U (4)* (U (5) +PRES)-AMU23*UI (4) * (2.0*DUI (4, 3) -DUI (2, I)
-DUI (3, 2) )-AMU* (UI (2) * (DUI (4, i) +DUI (2,3)) +UI (3) * (DUI (4, 2)+DUI (3, 3 ) ) )-AKH*DQI (3 )) *VECTR (3) )*SF INT (IEL) /U (1 )
CONT INUE
WRITE (6,300) LEQ, FLX
FORMAT (5X,'LEQ =',I2,5X,'FLUX =',E12.4)RETURN
END
C
C
CC
C
C
I00
200
SUBROUTINE GCSURF (GC, DSURF, ELX'YZ, NGPI, NGPK, NGP, K1, NDIM, NPE)
GC(I,J) ...... DERIVATIVE OF X(I) W.R.T. XI(J)
DSURF(I,J,K..DERIVATIVE OF PSI(J) W.R.T. XI(I),ON K-TH SURFACE OF MASTER ELEMENT
J=l, • • .,NPE,
IMPLICIT REAL*8 (A-H,O-Z)
DIMENS ION ELXYZ (NPE, NDIM) ,DSURF (NDIM, NPE, 6, NGP, NGP ) ,GC (NDIM, NDIM)
DO 200 I=I,NDIM
DO 200 K=I,NDIMSUM=0.0
DO I00 J=I,NPE
SUM=SUM+DSURF (K, J, KI,NGPI, NGPK) *ELXYZ (J, I)GC (I, K) =SUMRETURN
END
SUBKOUTINEGMETRY(NNM,NEM,MXE,N,NPE,NGP,ELXYZ,SF,GDSF,CNST,VOL,1 NDIM,IEL)
CCCCCCCCCCC
SF(I,II,JJ, KK)........ I-TH SHAPEFUNCTIONAT THE(II,JJ, KK)-THGAUSSPOINT
GDSF(N,I,II,JJ,KK, J) ..GLOBALDERIVATIVEOFI-TH SHAPEFUNCTIONWITHRESPECTTOTHEX(J) COORDINATEFORELEMENTN
DSF(I,J) .............. LOCALDERIVATIVEOFI-TH SHAPEFUNCTIONWITHRESPECTTOJ-TH LOCALCOORDINATE
ELXYZ(I,J)............ J-TH GLOBALCOORDINATEOFI-TH NODEXYZ(II) ............... II-TH GAUSSIANPOINT
IMPLICITREAL*8(A-H,O-Z)DIMENSIONSF(NPE,NGP,NGP,NGP), CNST(MXE,NGP,NGP,NGP), VOL(MXE),
2 GDSF(MXE,NPE,NGP,NGP,NGP,NDIM),ELXYZ(NPE,NDIM),WT(2),3 GAUSS(2), GJ(3,3) ,XYZ(3), GJINV(3,3) ,DSF(3, 8), GDSFL(3,8),4 SFL(8)COMMON/GMT/SN22(8,8), SN33(8, 8), SN44(8,8), SN55(8, 8)DATANCOUNT/0/
C
SQRT 3=DSQRT (3.0D0 )
GAUSS (i) _-i. 0D0/SQRT3
GAUSS (2) =-GAUSS (I)
WT (I) =I. 0D0
WT (2)=I. 0D0
CC DO-LOOP ON GAUSS INTEGRATION BEGINS HERE
C
VOL (N) =0.0
DO 50 J=I,NPE
SN22 (N, J)=0.0SN33 (N, J)-_0.0
SN44 (N,J) =0.0
50 SN55 (N, J)=0.0
DO 200 II=I,NGP
DO 200 JJ=I,NGP
DO 200 KK=I,NGPXYZ (I) =GAUSS (II)
XYZ (2)=GAUSS (JJ)
XYZ (3)=GAUSS (KK)C ****************************************************************
CALL SHAPEL (XYZ, SFL, DSF, NDIM, NPE)
CALL MATMUL (DSF, ELXYZ, GJ, NDIM, NPE, NDIM)
CALL INVDET (GJ, GJINV, DET)
CALL MATMUL (GJINV, DSF, GDSFL, NDIM, NDIM, NPE)C ****************************************************************
CNST (N, II, JJ, KK) =DET*WT (II) *WT (JJ) *WT (KK)
DO 150 I=I,NPESN22 (N, I)=SN22 (N, I) + (4.0/3.0*GDSFL (i, IEL) *GDSFL (i, I) +
1 GDSFL (2, IEL) *GDSFL (2, I) +GDSFL (3, IEL) *GDSFL (3, I) ) *
2 CNST (N, II, JJ, KK)SN33 (N, I)=SN33 (N, I) + (4.0/3.0*GDSFL (2, IEL) *GDSFL (2, I) +
1 GDSFL (3, IEL) *GDSFL (3, I) +GDSFL (i, IEL) *GDSFL (i, I) ) *
2 CNST (N, II, JJ, KK)
SN44 (N, I)=SN44 (N, I) + (4.0/3.0*GDSFL (3, IEL) *GDSFL (3, I) +
1 GDSFL (I, IEL) *GDSFL (I, I) +GDSFL (2, IEL) *GDSFL (2, I) )*
2 CNST (N, II, JJ, KK)
SN55 (N, I) =SN55 (N, I) + (GDSFL (i, IEL) *GDSFL (I, I) +1 GDSFL (2, IEL) *GDSFL (2, I) +GDSFL (3, IEL) *GDSFL (3, I) )*
2 CNST (N, II, JJ, KK)
I00
150
20O
IF (NCOUNT.GT.0)GOTOI00SF(I, II, JJ,KK)=SFL(I)GDSF(N,I, II, JJ,KK,I) =GDSFL(I, I)GDSF(N,I, I I, JJ,KK,2)=GDSFL(2,I)GDSF(N,I, II, JJ,KK,3)=GDSFL(3,I)VOL(N)=VOL(N)+CNST (N, II, JJ, KK)
CONTINUE
NCOUNT = 1
RETURN
END
C
C
C
C
C
C
C
C
C
C
SUBROUTINE INTIAL (NDF, NNM, AMACH, AMU0, TEMPO, SI, R0, GAMA, PR, U, DNST0 )
INITIAL CONDITIONS FOR THE TURN-AROUND-DUCT PROBLEM
IMPLICIT REAL*8 (A-H,O-Z)
COMMON/MSH /ARCANG, NX, NY, NZ, NXI, NX2, NX3DIMENSION U (NNM, 6)
I0
20
DEFINE FIXED PARAMETERS
GAMI=GAMA- 1.0
N'YY=NY+ 1
NZZ=NZ+I
INITIALIZE THE FLOW FIELD
DO i0 J=2,4
DO i0 I=I,NNM
U(I, J)=0.0
DO 20 IZ=I,NZZ
DO 20 IY=2,NY
ND = IY + (IZ-l)*NYY
U (ND, 2) ---DSQRT (GAMA*R0 *TEMPO) *AMACH
IF (IY.EQ.2 .OR. IY.EQ. 8)U (ND, 2) =U (ND, 2) *0. 1885
IF (IY.EQ.3.OR. IY.EQ.7) U (ND, 2) =U (ND, 2) *0. 5066
IF (IY.EQ.4.OR. IY.EQ. 6)U (ND, 2) =U (ND, 2) *0.8393CONTINUE
INITIALIZE THE MID PLAICE
DO 30 IX = 2,NXI+I
DO 30 IY = 2,NYND = (IX-I)*NYY*NZZ+NYY+IY
NDI= NYY+IY
30 U(ND,2) = U(NDI,2)
PI = ATAN(I.0)*4.0
DO 40 IX = NXI+2,NXI+NX2
DO 40 IY = 2,NYND = (IX-I)*NYY*NZZ+NYY+IY
NDI= NYY+IY
U(ND,2) = U(NDI,2)*COS((IX-NXI-I)*PI/NX2)
40 U(ND,3) =-U(NDI,2)*SIN((IX-NXI-I)*PI/NX2)
DO 45 IX = NXI+NX2+I,NX+IDO 45 IY = 2,NY
ND = (IX-I)*NYY*NZZ+NYY+IY
NDI= NYY+IY
U(ND,2) =-U(NDI,2)45 CONTINUE
U(ND,3) AND U(ND,4) ARE ZERO (HENCE, U(ND,5) IS _; DEFINED BELOW)
5O
DO50 ND--I,NNMU(ND,I) =DNST0U(ND,2)=U(ND,2) *U (ND, i)
U(ND, 6) =U (ND, I) *R0*TEMP0U (ND, 5) =U (ND, 6)/GAMI+0.5*U (ND, 2) *U (ND, 2)/U (ND, i)
CONTINUE
RETURN
END
C
C
SUBROUTINE INVDET (A, B, DET)
IMPLICIT KEAL*8 (A-H,O-Z)
DIMENSION A(3,3),B(3,3)
G(ZI, Z2, Z3, Z4) =ZI*Z2-Z3*Z4
F(ZI,Z2, Z3, Z4)=G(ZI, Z2, Z3,Z4)/DET
CI--G (A (2,2) ,A(3, 3) ,A(2, 3) ,A(3,
C2=G (A(2,3) ,A(3, i) ,A(2, I) ,A(3,
C3=G(A(2,1),A(3,2),A(2,2),A(3,
DET=A (i, I) *CI+A (I, 2) *C2+A(I, 3)
B(I, I) =F (A (2,2) ,A(3,3) ,A(3, 2),B (I, 2) =-F (A (I, 2) ,A(3, 3), A(I, 3)
B(I,3)=F(A(I,2),A(2,3),A(I,3),B (2, I) =-F (A(2, I) ,A(3, 3) ,A(2,3)
B (2,2) =F (A(I, I), A(3, 3) ,A (3, I),
B(2,3) =-F (A (i, i) ,A(2,3) ,A(I, 3)
B(3, i) =F (A(2, I) ,A(3, 2) ,A(3, i),
B(3, 2)=-F (A(1, I) ,A(3,2) ,A(I, 2)
B(3, 3)=F (A (I, I) ,A(2,2) ,A(2, i),RETURNEND
2))3))
i))*C3
A(2, 3) )
,A(3,2))
A(2, 2) )
,A(3,1))
A(I,3))
,A(2,1))
A(2, 2) )
,A(3,1))
A(I,2))
C
I02O
SUBROUTINE MATMUL (A, B, C, M, N, L)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A (M, N), B (N, L), C (M, L)DO 20 I=I,M
DO 20 J=I,LSUM=0.0
DO i0 K=I,N
SUM=SLTM+A (I, K) *B (K, J)C (I, J) =SUMRETURN
END
SUBROUTINE SHAPEL (XYZ, SF, DF, NDIM, NPE)
C
C
C
C
SHAPE FUNCTIONS FOR LINEAR, ISOPARAMETRIC 3-DIMENSIONAL ELEMENTTHIS SUBROUTINE EVALUATES THE SHAPE FUNCTIONS AND THEIR FIRST
DERIVATIVES AT THE GAUSSIAN POINT XYZ
C
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION XNODE(8,3),XYZ(NDIM),SF(NPE),DF(NDIM,NPE)DATA XNODE/-I.0D0,2*I.0D0,2*-I.0D0,2*I.0D0,-I.0D0,2*-I.0D0,2*I.0D0
1,2*-I.0D0,2*I.0D0,4*-I.0D0,4*I.0D0/
FCK (A, B, C) =0 .125*A*B*C
DO 20 I=I,NPE
XNPI=XYZ (i) *XNODE (I, I) +i. 0
YNPI=XYZ (2) *XNODE (I, 2) +I. 0
ZNPI=XYZ (3) *)(NODE (I, 3) +i. 0
2O
SF(I) =FCK (XNPI, YNPI, ZNPI)
DF (I, I) =FCK (XNODE (I, I), YNPI, ZNPI)
DF (2, I) =FCK (XNPI, XNODE (I,2), ZNPI)
DF (3, I) =FCK (XNPI, YNPI, XNODE (I, 3) )RETURN
END
SUBROUT INE SURFGM (KI, KGI, ELXYZ, DSURF, GNORM, NBS, NGP, NPE, NDIM)
C
C GNORM(I,J,K,L) .... I-TH COMPONENT OF 'NORMAL*DS' ON J-TH BOUNDARY
C SURFACE AT (K,L) GAUSS POINT
C
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION ELXYZ (NPE, NDIM) ,DSURF (NDIM, NPE, 6, NGP, NGP) ,GC (3, 3) ,
* GNORM (NDIM, NBS, NGP, NGP )C
K0 = (KI+I)/2K2=K0+I
IF (K2.EQ.4) K2=IK3=K2+I
IF (K2.EQ.3) K3=I
DO 200 NGPI=I,NGPDO 200 NGPK=I,NGP
C
CALL GCSURF (GC, DSURF, ELXYZ, NGPI, NGPK, NGP, KI, NDIM, NPE)
DO 100 I=I,NDIMIi=I+l
IF(II.EQ.4)II=II2=Ii+l
IF (II.EQ.3) I2=I
i00 GNORM(I, KGI,NGPI,NGPK) = (GC (Ii, K2) *C-C (I2,K3) -GC (Ii, K3) *GC (I2, K2) )1 * (-i) **KI
200 CONTINUE
RETURN
END
*
MESH GENERATOR FOR TURN AROUND DUCT.
PURPOSE : TO GENERATE A THREE DIMENSIONAL MESH FOR A TURN AROUNDDUCT. THE ELEMENT LIBRARY HAS THREE TYPES OF ELEMENTS
VIZ. 8-NODED, 20 NODED, AND 27 NODED BRICK ELEMENTS.
FACE 3
(L. SIDE)5
/1 o..... // /
// FACE 1
..... / (TOP)
/----------
S 2 0
I /i /I / FACE 6
FACE 5 (BACK)
0 4
/I/ I
/ I/ <-+-- FACE 4
/ I (R. SIDE)
0 8 I+..... 0 3
I /J .../... FACE 2
I /
ETA/i
/ IZETA XI
(BOTTOM)
* LIST
* NXI* NX2* NX3* NY* NZ* NPE* NOD* IEL* R1* R2* X0
* Y0
* Z0
* x (NNM)* Y (NNM)* Z (NNM)
{ / (FRONT){/
6 0
OF VARIABLES :
I /I/o 7
LINEAR RECTANGULAR ELEMENT
(NNM, NPE )
= NUMBER OF DIVISIONS IN FLOW DIRN. IN PART 1 (INLET)
•= NUMBER OF DIVISIONS IN FLOW DIRN. IN PART 2 (CURVE)
•_ NUMBER OF DIVISIONS IN FLOW DIRN. IN PART 3 (OUTLET)•_ NUMBER OF DIVISIONS IN RADIAL DIRECTION:
= NUMBER OF DIVISIONS IN Z-DIRECTION:
•= NODES PER ELEMENT. (8 OR. 20 OR 27)
= CONNECTIVITY MATRIX
R ELEMENT TYPE (i " LINEAR(8 NODED) ; 2 - QUADRATIC)
= INNER RADIUS OF THE CURVE.= OUTER RADIUS OF THE CURVE.
= X - COORDINARE OF FIRST NODE IN X-Y-Z PLANE.
= Y - COORDINARE OF FIRST NODE IN X-Y-Z PLANE.
= Z - COORDINATE OF FIRST NODE IN X-Y-Z PLANE
= ARRAY CONTAINING X-COORDINATES OF NODES.
= ARRAY CONTAINING Y-COORDINATES OF NODES.
= ARRAY CONTAINING Z-COORDINATES OF NODES.
IMPLICIT REAL*8 (A-H,O-Z)
COMMON/MSH/ARCANG, NX, NY, NZ, NXI, NX2, NX3
DIMENSION DXI(10),DX3(10),DY(20),DZ(5),X(NNM),Y(NNM),Z(NNM),# IBNDC (NNM, NDF), KELSUR (NBS, 2), NOD (NEM, NPE)
READ(5,*) NXl, NX2, NX3, NY, NZ, IEL, NPE, RI, R2, X0, Y0, Z0,# ARCANG
COMPUTE THE NUMBER OF ELEMENTS AND NODES IN THE MESH:
PI = 3. 141592654
NELM = (NXI+NX2+NX3) *NY*NZNXXI = IEL*NXl
NXX3 = IEL*NX3
NYY = IEL*NYNZZ = IEL*NZ
IF(Z0 .LE. 1.0E-10) THENPHI = 0.0D0
ELSE
PHI = ATAN(Z0/X0)END IF
ARCANG = ARCANG*PI/180
ANGINC = ARCANG/NZZ
RZ = DSQRT(Y0*Y0 + Z0*Z0)RZ = Y0
READ (5, *) (DXI (I), I=l, NXXI)
READ (5, *) (DX3 (I), I=l, NXX3)
READ (5, *) (DY (I), I=I,NYY)
NXXl = IEL*NXI + 1
NXX2-- IEL*NX2
NXX3 = IEL*NX3
NYY = IEL*NY + 1
NZZ = IEL*NZ + 1
IF(NPE .EQ. 20) THEN
I000
NDS= NYY*((NXl+ NX2+ NX3+ I)*(NZ+I)) +# (NY+I)* ((NXI+NX2+NX3+I)+ (NZ+I)* (NXI+NX2+NX3))ELSE
NDS= NYY*(NXXI+ NXX2+ NXX3)*NZZENDIF
IF (NDS.NE.NNM.OR. NEM.NE.NELM)THENWRITE(6,999)NNM,NDS,NEM,NELMSTOPENDIF
NTX = IEL*NXI + 1NTXX = IEL*NX2NTXXX= IEL*NX3NTXT = NTX+ NTXXNTXTT= NTXT+ NTXXX
COMPUTETHENODALCOORDINATESIN SECTION1 (STRAIGHTINLET)
NTY= IEL*NY+ 1NTZ= IEL*NZ+ 1NYI = (IEL-I)*NY + 1
IIX = 0L = 0DO1050IX = i, NTX
IF(NPE .EQ. 20) THENMODY= MOD (IX, 2)
ELSE
MODY = 1
END IF
ZC = Z0
ANGLE = PHI
IF(MODY .EQ. i) THEN
IF(NPE .EQ. 20) THEN
I = (NYY*(NZ+I) + (NY+I)*(NZZ))*IIXELSE
I = NYY*(IX - I)*NZZEND IF
DO 1020 IZ = i, NTZ
IF(NPE .EQ. 20) THEN
MODZ = MOD(IZ,2)ELSE
MODZ = 1
END IF
IF(MODZ .EQ. i) THENI = I + 1
X(1) = X0
Y(I) = RZ*COS(ANGLE)
Z (I) = RZ*SIN(ANGLE)
DO i000 IY = i, NTY-II = I + I
X(1) = X0
Y(I) = (Y(I-I) + DY(IY))*COS(ANGLE)
Z(I) = (Y(I-I) + DY(IY))*SIN(ANGLE)CONTINUE
ELSE
I = I + 1
X(I) = X0
Y(I) = Y0*COS (ANGLE)
I010
1020
lit
1030
1040
Z(I) = ZC*SIN(ANGLE)
DO I010 IY = I, (NTY-NYI)
I = I + 1
K -- 2*IY - 1
X(I) = X0
Y(I) -- (RZ + DY(K) + DY(K+I))*COS(ANGLE)
Z(I) = (RZ + DY(K) + DY(K+I))*SIN(ANGLE)
CONT INUE
END IF
IF(IZ .LT. NTZ) ANGLE = ANGLE + ANGINC
CONTINUE
IIX = IIX + 1
ELSE
DO 1040 IZ = I, (NZ+I)
I = I + 1
M = 2*IZ - 1
X (I) = X0
Y(I) = RZ*COS (ANGLE)
Z(I) = RZ *SIN (ANGLE)
DO 1030 IY = i, (NTY-NYI)
I,= I + 1
K .= 2*IX - 1
X(I) = X0
Y(I) = (RZ + DY(K) + DY(K+I))*COS(ANGLE)
Z(I) = (RZ + DY(K) + DY(K+I))*SIN(ANGLE)
CONTINUE
ANGLE = ANGLE + ANGINC
CONTINUE
END IF
IF(IX .LT. NTX) X0 = X0 - DXI(IX)
1050 CONTINUE
COMPUTE THE NODAL COORDINATES IN THE CURVED SECTION:
NXPTI = NTX + 1
THINC = PI/NXX2
THETA = PI + THINC
YC = Y0 + R2
DO III0 IX = NXPTI, NTXT
IF(NPE .EQ. 20) THEN
MODY = MOD (IX, 2)
ELSE
MODY = 1
END IF
ZC = Z0
ANGLE = PHI
IF(MODY .EQ. I) THEN
DO 1080 IZ = I, NTZ
IF(NPE .EQ. 20) THEN
MODZ = MOD(IZ,2)
ELSE
MODZ = 1
END IF
IF(MODZ .EQ. I) THEN
I = I + 1
1060
1070
1080
1090
ii00
III0
X(I) = X0 + R2*SIN(THETA)Y(I) = (YC + R2*COS (THETA)) *COS (ANGLE)
Z (I) = (YC + R2*COS (THETA)) *SIN (ANGLE)
ELSE
DYY = 0.0D0
DO 1060 IY = i, NTY-II = I + 1
DYY = DYY + DY(IY)
X(I) -- X0 + (R2 - DYY)*SIN(THETA)
Y (I) --(YC+ (R2-DYY) *COS (THETA)) *COS (ANGLE)
Z (I) = (YC+ (R2-DYY) *COS (THETA)) *SIN (ANGLE)
CONTINUE
I= I + 1
X(I) = X0 + R2*SIN(THETA)
Y(I) = (YC + R2*COS (THETA)) *COS (ANGLE)Z (I) = (YC + R2*COS (THETA)) *SIN (ANGLE)
DYY = 0.0D0
DO 1070 IY = i, (NTY-NYI)
I = I + 1K = 2*IY - 1
DYY = DYY + DY(K) + DY(K+I)
X(I) = X0 + (R2 - DYY)*SIN(THETA)
Y (I) z (YC+ (R2-DYY) *COS (THETA)) *COS (ANGLE)Z (I) = (YC+ (R2-DYY) *COS (THETA)) *COS (ANGLE)
CONTINUE
END IF
IF(IZ .LT. NTZ) ANGLE = ANGLE + ANGINC
CONT INUEIIX = IIX + 1
ELSE
DO 1100 IZ -- I, (NZ+I)I = I + 1
M = 2*IZ - 1
X(I) ,= X0 + R2*SIN(THETA)
Y (I) -= (YC + R2*COS (THETA)) *COS (ANGLE)Z (I) ,= (YC + P,2*COS (THETA)) *SIN(ANGLE)
DYY = 0.0D0
DO 1090 IY = I, (NTY-NYI)I == I + 1K == 2*IY - 1
DYY s DYY + DY(K) + DY(K+I)
X(I) = X0 + (R2 - DYY)*SIN(THETA)
Y(I) = (YC+ (R2-DYY) *COS (THETA)) *COS (ANGLE)
Z (I) = (YC+ (R2-DYY) *COS (THETA)) *SIN (ANGLE)CONTINUE
ANGLE = ANGLE + 2.0*ANGINC
CONT INUE
END IF
THETA = THETA + THINC
CONTINUE
COMPUTE THE NODAL COORDINATES IN SECTION 3
NTXPII = NTXT + 1
Y0 = Y0 + 2.0*R2*COS(PHI)J = 0
DO 1170 IX = NTXPII, NTXTT
(STRAIGHT OUTLET)
1120
1130
1140
IF(NPE .EQ. 20) THEN
MODY = MOD(IX,2)ELSE
MODY = 1
END IF
J= J+ 1
X0 = X0 + DX3(J)
ZC = Z0 + 2.0*R2*SIN(PHI)ANGLE = PHI
IF(MODY .EQ. i) THEN
DO 1140 IZ = i, NTZ
IF(NPE .EQ. 20) THEN
MODZ = MOD(IZ,2)ELSE
MODZ = 1END IF
IF(MODZ .EQ. I) THENI = I + 1
X(I) = X0
Y(I) = Y0*COS(ANGLE)Z(I) = Y0*SIN(ANGLE)
DYY = 0.0D0
DO 1120 IY -- i, NTY-I
DYY = DYY + DY(IY)I = I + 1
X(1) : X0
Y(I) = (RZ + 2"R2 -DYY) *COS (ANGLE)
Z(I) = (RZ + 2"R2 - DYY) *SIN (ANGLE)CONTINUE
ELSE
I = I + 1
X(I) = X0
Y(I) = Y0*COS(ANGLE)
Z(I) = Y0*SIN(ANGLE)
DO 1130 IY = I, (NTY-NYI)I = I + 1
K = 2*IY - 1
X(1) -- X0
Y (I) = (RZ+2*R2-DY (K) -DY (K+I)) *COS (ANGLE)Z (I) = (RZ+2*R2-DY (K) -DY (K+I)) *SIN (ANGLE)
CONTINUE
END IF
IF(IZ .LT. NTZ) ANGLE = ANGLE + ANGINCCONTINUE
IIX = IIX + 1
ELSE
DO 1160 IZ = i, (NZ+I)I = I + 1
M = 2*IZ - 1
X (I) -- X0*COS (ANGLE)Y(I) = Y0
Z(I) = X0*SIN(ANGLE)
DO 1150 IY = I, (NTY-NYI)I = I + 1
1150
1160
1170W
1175
C
CC
CC
C
C
C
C
C
C
C
C
C
C
K = 2*IY - 1
X(1) = X0
Y (I) = (RZ+2*R2-DY (K) -DY (K+I)) *COS (ANGLE)
Z(I) = (RZ+2*R2-DY(K)-DY(K+I))*SIN(ANGLE)
CONTINUE
ANGLE = ANGLE + 2.*ANGINC
CONTINUE
END IF
CONTINUE
DO 1175 I=I,NNMX(I) =0. 0254"X(I)
Y (I) =0. 0254"Y(I)
Z (I) =-0. 0254"Z (I)
DETERMINE THE CONNECTIVITY MATRIX:
NX = NXI + NX2 + NX3
IF(NPE .EQ. 20) NTY = 3*NY + 2
DO 1200 IX = I, NX
DO 1190 IZ = i, NZ
DO 1180 IY = I, NY
I = IY + (IX-1)*NY*NZ + (IZ-I)*NY
IF(NPE .EQ. 20) THEN
NOD(I,1) = IEL*IY- (IEL-I) + (NYY*(NZ+I) +(NY+I) *NZZ) * (IX-l) + (IZ-I) * (NYY+NY)
NOD(I,2) -- NYY*(NZ+I)+(NY+I)*NZZ + NOD(I,1)ELSE
NOD(I,1) = IEL*IY - (IEL-I) + (IX-I)*
(NYY*NZZ) *IEL+ (IZ-I) *IEL*NYY
NOD(I,2) = NYY*NZZ*IEL + NOD(I,1)END IF
NOD(I,3) '= NOD(I,2) + IEL
NOD(I,4) " NOD(I,1) + IEL
IF(NPE .EQ. 20) THEN
NOD(I,5) = NTY + NOD(I,1)
NOD (I, 6) = NYY* (NZ+I) + (NY+I) *NZZ + NOD (I, 5)ELSE
NOD(I,5) = NYY + NOD(I,1)NOD (I, 6) = NYY*NZZ*IEL + NOD (I, 5)
END IF
NOD(I,7) = NOD(I,6) + IEL
NOD(I,8) = NOD(I,5) + IELIF(NPE .EQ. 20) THEN
NOD(I,9) = NOD(I,1) + NYY*(NZ+I) + (NY+I)*NZ
+ (I-IY)
NOD(I, 10) = NOD(I,2) + 1
NOD(I,11) = NOD(I, 9) + 1
NOD(I,12) = NOD(I,1) + 1
NOD(I,13) ,= NYY + NOD(I,1)
NOD(I,14) = NYY + NOD(I,2)NOD(I,15) = NOD(I,14) + 1
NOD(I, 16) = NOD(I,13) + 1NOD(I,17) = NOD(I,5) + (NYY + NY + I)*NZ +
(I-IY)
NOD(I,18) = NOD(I,6) + 1NOD(I,19) = NOD(I,17) + 1
NOD(I,20) = NOD(I,5) + 1
CCCCCCCCCCCCCCCCCCCCC118011901200
W
1210
1220
W
W
1230
W
ELSE IF (NPE .EQ.
NOD (I, 9) =
NOD(I,10) =
NOD (I, II) =
NOD (I, 12) =
NOD (I, 13) =NOD (I, 14) =
NOD (I, 15) =
NOD (I, 16) --
NOD (I, 17) =
NOD (I, 18) =
NOD (I, 19) =
NOD (I, 20) --
NOD (I, 21) =
NOD (I, 22) =
NOD(I,23) --
NOD (I,24) -=
NOD (I, 25) =NOD (I, 26) --
NOD (I, 27) =
END IF
CONT INUE
CONTINUE
CONTINUE
27 ) THEN
NOD (I, 5)
NOD (I, 9)
NOD (I, I0)
NOD (I, 9)
NOD (I, i)
NOD (I, 2 )
NOD (I, 13)
NOD (I, I)
NOD (I, 5)
NOD (I, 6)
NOD (I, 17)
NOD (I, 5)
NOD (I, 9)
NOD (I, i0)
NOD (I, 21)
+NYY
+ NYY*NZZ*IEL
+IEL
+ IEL
+ NYY*NZZ
+I+2
+I
+ NYY*NZZ+i
+2
+i
+NYY*NZZ
+I+2
NOD(I,9) + 1NOD(I,13) + 1
NOD(I, 17) + 1
NOD(I,21) + 1
COMPUTE THE NUMBER OF BOUNDARY SURFACES AND DETERMINE SURFACE
INDICES
NSURF = 2*NX*(NY+NZ) +2*NY*NZ
ELEMF_/_T FLUX SURFACES AT THE INLET OF THE DUCT:
I = 0
NYZ = NY*NZ
DO 1210 IYZ -- I, NYZI = I + 1
KELSUR(I,I) = IYZ
KELSUR(I,2) = 1CONTINUE
ELEMENT FLUX SURFACES AT THE SOLID SURFACE OF THE DUCT (OUTER):
DO 1220 IX = i, NX
DO 1220 IZ = I, NZI = I + 1
ILL = (IX-I) *NY*NZ + (IZ-I) *NY + 1
KELSUR(I, i) = ILL
KELSUR(I,2) = 3CONTINUE
ELEMENT FLUX SURFACES AT THE SOLID SURFACE OF THE DUCT (INNER):
DO 1230 IX z I, NX
DO 1230 IZ = i, NZI = I + 1
ILL = (IX-I)*NY*NZ + IZ*NY
KELSUR(I,I) _ ILL
KELSUR(I,2) - 4
CONTINUE
ELEMENT FLUX SURFACES AT SYMMETRY SURFACE OF THE DUCT (IZ = i):
DO 1240 IX = I, NXDO 1240 IY = i, NY
I = I + 1
1240
1250
ILL = IY + (IX-I)*NY*NZKELSUR(I,I) = ILLKELSUR(I,2)= 5
CONTINUE
ELEMENTFLUXSURFACESATSYMMETRYSURFACEOFTHEDUCT(IZ = NZ):
DO1250IX = i, NXDO1250 IY = i, NYI = I + 1
ILL = IY + (IX-I) *NY*NZ + NY* (NZ-I)
KELSUR(I,I) = ILL
KELSUR(I,2) = 6CONTINUE
ELEMENT FLUX SURFACES AT THE INLET OF THE DUCT:
J-- 0
DO 1260 IZ = i, NZ
DO 1260 IY = I, NYJ= J+ 1
I-- I + 1
ILL = (NX-I)*NY*NZ + J
KELSUR(I,I) = ILL
KELSUR(I,2) = 2
1260 CONTINUE
1212
1270
1280
CC
DETERMINE THE BOUNDARY CONDITIONS:
NBNDC = 0
ND = 0
NXX = NX + 1
NYY = NY + 1
NZZ = NZ + 1
DO 1212 I = I, NDS
DO 1212 J = I, 5
IBNDC(I,J) = 1
CONTINUE
SPECIFY THE I N L E T BOUNDARY DEGREES OF FREEDOM
DO 1280 ID = I, NYY
DO 1270 JD = i, NZZND=ND+ 1
NBNDC -- NBNDC + 1
IBNDC(ND,2) = 0
IBNDC (ND, 3) -- 0IBNDC (ND, 4) = 0
IBNDC (ND, 5) = 0
CONTINUE
CONTINUE
SPECIFY THE S O L I D - W A L L BOUNDARY DEGREES OF FREEDOM
DO 1300 KD = i, NXNDI = (NYY*NZZ) *KD + 1
DO 1290 JZ = i, NZZ
ND = NDI + (JZ-I) *NYYNBNDC = NBNDC + 1
IBNDC(ND,2) = 0
IBNDC(ND,3) = 0IBNDC (ND, 4) = 0
IBNDC (ND, 5) = 0
CC
1290
1300
C
C1310
1320
C
NBNDC = NBNDC + 1
IBNDC (ND+NY, 2) = 0
IBNDC(ND+NY, 3) = 0
IBNDC (ND+NY, 4) = 0
IBNDC (ND+NY, 5) = 0
CONTINUE
CONTINUE
SPECIFY THE E X I T BOUNDARY DEGREES OF FREEDOM
NBDI = NYY*NZZ*NX
DO 1320 I = I, NZZ
NBD = NBDI + (I-l) *NYY
DO 1310 J = i, NYYNBD - NBD + 1
NBNDC -= NBNDC + 1
IBNDC (NBD, 5) = 0
IBNDC (NBD, 3) = 0
IBNDC (NBD, 4) = 0CONTINUE
CONTINUE
RETURN
999 FORMAT(/,5X,'***** THE PARAMETERS NNM AND NEM SENT FROM THE MAIN
# DO NOT COINCIDE WITH THOSE GENERATED IN TADMSH *****' ,/,5X, '*****
# THE PROGRAM IS TERMINATED *****',/, 5X, 'NNM, NDS,NEM, NELM =' , 415)END
FLOW IN A TURN-AROUND-DUCT (15X8X2 MESH)1 1 02 i00 05. 1.0 0.8
1.79E-03 293.0 Ii0.0 287.0 1.402 0.72 0.I 1.205
3 8 4 8 2 1 8 1.0 3.0 33.0 9.0 0.0 2.0
20.0 8.0 2.00.5 1.5 8.0 20.0
0.I 0.2 0.3 0.4 0.4 0.3 0.2 0.I