oLA-8355
SOLA-VOF: A Solution Algorithm for Transient
Fluid Flow with Multiple Free Boundaries
CO
* £o«•—
O
E<D
LOS ALAMOS SCIENTIFIC LABORATORYPost Office Box 1663 Los Alamos. New Mexico 87545
An Affirmative Action/Equal Opportunity Emptoyci
This work was supported by the Electric PowerResearch Institute, the Office of Naval Research,and the National Aeronautics and Space Adminis-tration, Lewis Research Center.
Edited by Karyn Ames
(Hff ffpocf WH fKV^UVw Iff 9tt SCCOWtt Of WOffc 9QOG$Qftw•y the I M M i Stater C m m w i i i . Neither ike t h i n *Slam i m the I M M S u m Department of Cant*, norMy of their employ eat, makes any wamHtty. capmt or
m***. or urn any legal haaiaUy ot i»»uwi«ililj fortte acomcy, tDottrMaMt, « wrlMMat of aay in fw•Ml iM, apaaiatm. product, or procc* a»clpii<. or « • « -m i that itt we tra«M MM mfrmae printtry u»m< rfckts.RthfvMe heiwt 10 My iMcific coniMcrcial pronKtipnceo, or lerricc >y m4e tMmc, marii, memiacMm, orothaiwaie, tmt M I mmanriiy comiink or imply MOMloflomeiMt lacommnMatiow, ot fivoriii| by the UnitedS u m Ceiaimnat or My agency thmof. The ritwi minpinim of MChen cupnawl h tn i * to m i mcaa i l i '
* M e or Nflect thoee of the United S u m C «niotany aajMcy thanofi
UNITED «T*T«SOBTAPtTMCMT OF «M(lt«V
LA-8355
UC 32 and UC 34Issued: August 1960
SOLA-VOF: A Solution Algorithm for Transient
Fluid Flow with Multiple Free Boundaries
B. D. NicholsC. W. Hirt
R. S. Hotchkiss
- DISCLAIMER <
1 fts nook « • en-pared as an Ktoun- o< work Kcmot*3 by * " *J«ncy o l the Uniied Suie i Government.Neither the Uniwd S « t « Govemmeoi nor joy jgencv thwBOl, nor any ol tf**tr emplcrvMt, mj te i any«war>aniy. i »p rm o> imoiled, o) *$*umet *oy tofti liability or rwponsibility (or the teevracy.complet«n«ff< or uKfutneu of anv intormnion, «po*Wui, pcofluci. vr proem dirJo«d. or•vresems th*t i i t i.K vwuld nol inlringc tKiwsTHy owned Tighlt. ftettrfnoe herein lo any %snd1it
comrarcM pfOdutt, proces. Or wrvice by trade mint , i iadenwk. manubxtunr, or otherwte. d o nnoi nacatr i ly cormiiute or impty m «ncfonefnent, reccmmeod»rf<jn. or 1*voring by the UniiMS t u n GoMrnrrwflt or any *«ercy thcraot. The viewi and opinion* of authors npra tad herein do noinecnurily itate or refleci iKne o l the Unitad Slalct Govcmmeni or any atency thcraoi.
DISTRI8UTI0S OF T!:iS
CONTENTS
Abstract
I. INTRODUCTION 1
II. SOLA-VOF -, 4
A. Outline 5
B. Momentum Equation Approximations • 8
C. Continuity Equation Approximation 11
D. Implicit vs Explicit Calculations 14
E. Approximations for Volume of Fluid Function 16
F. Surface Tension and Wall Adhesion 21
G. Marker Particles 25
H. Boundary Conditions 26
I. Numerical Stability Considerations 29
III. PROGRAM DETAILS 31
A. Subroutines 31
B. Basic Input Variables 35
C. Mesh Generation Input 37
D. Variables and Arrays Listed *n COMMON 39
IV. PROBLEM RUNNING 42
A. General Procedure 42
B. Sample Test Problem 44
ACKNOWLEDGMENT 58
APPENDIX A. CODE LISTING 59
APPENDIX B. SAMPLE CALCULATIONS 108
REFERENCES 118
iv
SOLA-VOF: A SOLUTION ALGORITHM FOR TRANSIENT
FLUID FLOW WITH MULTIPLE FREE BOUNDARIES
by
B. D. Nichols, C. W. Hirt, and R. S. Hotchkiss
ABSTRACT
In this report a simple, but powerful, computer program ispresented for the solution of two-dimensional transient fluidflow with free boundaries. The SOLA-VOF program, which isbased on the concept of a fractional volume of fluid (VOF), ismore flexible and efficient than other methods for treating ar-bitrary free boundaries.
SOLA-VOF has a variety of user options that provide capa-bilities for a wide range of applications. Its btsic mode ofoperation is for single fluid calculations having multiple freesurfaces. However, SOLA-VOF can also be used for calculationsinvolving two fluids separated by a sharp interface* In eithercase, the fluids may be treated as incompressible or as havinglimited compressibility. Surface tension forces with wall ad-hesion are permitted in both cases. Internal obstacles may bedefined by blocking out any desired combination of cells in themesh, which is composed of rectangular cells of variable size.
SOLA-VOF is an easy-to-use program. Its logical parts areisolated in separate subroutines, and numerous special featureshave been included to simplify its operation, such as an auto-matic time-step control, a flexible mesh generator, extensiveoutput capabilities, a variety of optional boundary conditions,and instructive internal documentation.
I. INTRODUCTION
In structural dynamics, it is customary to employ Lagrangian coordinates as
the basis for numerical solution algorithms* In fluid dynamics, however, both
Lagrangian and Eulerian coordinates have been used with considerable success*
Because each coordinate representation has unique advantages and disadvantages,
the choice of which representation to use depends on the characteristics of the
problem to be solved. In this report, the emphasis is on Eulerian formulations
for fluid dynamics problems involving free boundaries.. In particular, for prob-
lems where free boundaries undergo such large deformations that Lagrangian meth-
ods cannot be used.
Free boundaries are considered here to be free surfaces or material inter-
faces. Three types of problems arise in the numerical treatment of free bounda-
ries: (1) their discrete representation, (2) their evolution in time, and (3)
the manner in which boundary conditions are imposed on them.
Discrete Lagrangian representations for a fluid are conceptually simple be-
cause each zone of a grid that subdivides the fluid into elements remains iden-
tified with the same fluid element for all time. Body and surface forces on
these elements are easy to define, so it is relatively straightforward to com-
pute the dynamic response, of the elements. In an Eulerian representation the
grid remains fixed and the identity of individual fluid elements is not main-
tained. Nevertheless, it is customary to view the fluid in an Eulerian mesh
cell as a fluid element on which body and surface forces may be computed, in a
manner completely analogous to a Lagrangian calculation. The two methods dif-
fer, however, in the manner in which the fluid elements are moved to new posi-
tions after their new velocities have been computed. In the Lagrangian case the
grid simply moves with the computed element velocities, whereas in an Eulerian
or Arbitrary-Lagranglan-Eulerian calculation it is necessary to compute the
flow of fluid through the mesh. This flow, or convective flux calculation, re-
quires an averaging of the flow properties of all fluid elements that find them-
selves in a given mesh cell after some period of time.
It is this averaging process, inherent in convective flux approximations,
that is the biggest drawback of Eulerian methods. Convective averaging results
in a smoothing of all variations in flow quantities, and in particular, a smear-
ing of surfaces of discontinuity such as free surfaces. The only way to over-
come this loss in boundary resolution is to introduce some special treatment
that recognizes a discontinuity and avoids averaging across it. Although there1-3
have been a variety of techniques developed to do this, they all have limita-
tions. A comparison of the relative advantages and disadvantages of these
methods leads to a new technique that is simple yet effective. This method, the
fractional volume of fluid (VOF) method, forms the basis of the SOLA-VOF program
described in this report.
The SOLA-VOF solution algorithm has been designed for a wide range of ap-
plicrfions. It may be applied to problems involving a single fluid having any
number of free surfaces, or to two immiscible fluids separated by any number of
free interfaces. Limited fluid compressibility is allowed in either case, as
are suface tension and wall adhesion forces. In addition, SOLA-VOF has provi-
sions for constructing internal obstacles by blocking out mesh cells. Several
automatic features are included in the program to aid the user, such as a gener-
ator for variable meshes, an automatic time-step control, and routines to iden-
tify and label disjoint void regions.
The basis of the SOLA-VOF method is the fractional volume of fluid scheme
for tracking free boundaries. In this technique, a function F(x,y,t) is defined
whose value is unity at any point occupied by fluid and zero elsewhere. When
averaged over the cells of a computational mesh, the average value of F in a
cell is equal to the fractional volume of the call occupied by fluid. In parti-
cular, a unit value of F corresponds to a cell full of fluid, whereas a zero
value indicates that the cell contains no fluid. Cells with F values between
zero and one contain a free surface. The VOF method requires only one storage
word for each mesh cell, which is consistent with the storage requirements for
all other dependent variables.
In addition to defining which cells contain a boundary, the F function can
be used to define where fluid is located in a boundary cell. The normal direc-
tion to the boundary lies in the direction in which the value of F changes most
rapidly. Because F is a step function, however, its derivatives must be com-
puted in a special way, as described below. When properly computed, the deriva-
tives can then be used to determine the boundary normal. Finally, when the nor-
mal direction and the value of F in a boundary cell are known, a line cutting
the cell can be constructed that approximates the interface there. Addition-
ally, surface curvatures can be computed for the definition of surface tension
forces.
The time dependence of F is governed by the equation,
where (u,v) are fluid velocities in the coordinate directions (x,y). This equa-
tion states that F moves with the fluid. In an Eulerian mesh, the flux of F
moving with the fluid through a cell must be computed, but as noted earlier,
standard finite-difference approximations would lead to a smearing of the F
function and interfaces would lose their definition. Fortunately, the fact that
F is a step function with values of zero or one, permits the use of a flux ap-
proximation that preserves its discontinuous nature. This approximation, re-
ferred to as a Donor-Acceptor method, is described in more detail in the next
section.
Thus, the VOF techniques provides a means of following fluid regions?
through an Eulerian mesh of stationary cells. The method uses a minimum of
stored information, and because it follows regions rather than boundaries, It
avoids all logic problems associated with intersecting surfaces. The VOF method
is also readily extendible to three-dimenpional computations, where its conserv-
ative use of stored information is particularly advantageous.
In principle, the VOF method could be used to track any surface of discon-
tinuity in material properties, in tangential velocity, or any other property.
The particular case being represented determines the specific boundary condi-
tions that must be applied at the location of the boundary. For situations
where the surface does not remain fixed in the fluid, but has some additional
relative motion, the equation of motion, Eq. (1), must be modified. Examples of
such applications are shock waves, chemical reaction fronts, and boundaries be-
tween single- and two-phase fluid regions.
A description of the SOLA-VOF algorithm is contained in Sec. II. Program
details, including a list of input variables and subroutines, are contained in
Sec. III. In Sec. IV a test problem is provided to aid in the checkout of the
program whan used at other installations. The program is listed in App. A, and
finally, in App. B, sample calculations are presented that illustrate some of
the many capabilities of the SOLA-VOF program.
II. SOLA-VOF
Eulerian finite-difference methods for computing the dynamics of incom-
pressible fluids are well established. The first method to successfully treat
problems involving complicated free surface motions was the Marker-and-Cell
(MAC) method. This method was also the first technique to use pressure and ve-
locity as the primary dependent variables. MAC employed a distribution of mark-
er particles to define fluid regions, and simply set free surface pressures at
the centers of cells defined to contain the surface. No attempt was made to ap-
ply the pressure boundary condition at the actual location of the boundary with-
in the surface containing cell. This crude approximation was later improved,
and marker particles were eliminated in favor of particle chains on the free3
surfaces.
A simplified version of the basic solution algorithm (SOLA) used in the MACQ
method is available in a user-oriented code called SOLA, Although SOLA doesQ
not treat free surfaces, an extended version, SOLA-SURF, is also available that
uses a surface height function method. The basic simplicity and flexibility of
the SOLA codes make them excellent foundations for the development of more so-
phisticated codes. For this reason, a variable mesh version of the SOLA code,
SOLA-VM, was chosen as a basis for the VOF technique. An experimental version
of this new code, SOLA-VOF, was first reported in Ref. 9. Since that time, many
improvements have been made and the basic technique has matured through applica-
tions to a wide class of problems. In a related development, McMaster, et al.
have recently combined the SOLA-SURF code with a different interface tracking
technique based on a VOF-like concept. '
The following subsections provide details of the SOLA-VOF solution algo-
rithm with particular attention given to the special considerations needed in
making finite-difference approximations in nonuniform meshes and to the VOF al-
gorithms for advection and locating interfaces.
A. Outline
SOLA-VOF uses an Eulerian mesh of rectangular cells having variable sizes,
<5x for the i column and <5y. for the j row (Fig. 1). Although it is not as
flexible as a mesh composed of arbitrary quadrilaterals, the variable mesh capa-
bility of SOLA-VOF gives it a considerable advantage for localized resolution
over methods using equal-sized rectangles.
The fluid equations to be solved are the Navier-Stokes equations
ult + vl7 ="t^ + gx + v !^- 1^ + c'"^-^"'' (2)
and
2 29v 9v ii „ _ i. IE + + I 3 v . 3 v
K 9y
ax.
I
Fig. 1.
A finite-differenae mesh with variableveotangidav cells.
Velocity components (u,v) are in the
Cartesian coordinate directions (x,y)
or cylindrical coordinate directions
(r,z), respectively. The choice of
coordinate system is governed by the
value of 5, where £ = 0 corresponds to
Cartesian and ? » 1 to cylindrical ge-
ometry. Body accelerations are de-
noted by (g ,g ) and v is the coeffi-
cient of kinematic viscosity. Fluid
density is denoted by p. In a one-
fluid calculation with free surfaces,
the p in Eq. (2) and Eq. (3) is as-
sumed to be a constant. In two-fluid calculations, p may be equal to a differ-
ent constant in each fluid, but assumes intermediate values in mesh cells con-
taining an interface. For an incompressible fluid, the momentum equations, Eq.
(2) and Eq. (3), must be supplemented with the incompressibility condition,
Sometimes, it is desirable to allow limited compressibility effects (e.g.,
acoustic waves), in which case Eq. (4) must be replaced with
(4)
PC2 3t 3x x (5)
where c is the adiabatic speed of sound in the fluid. Because Eq. (5) adds more
flexibility with little additional complexity, it is incorporated as a standard
feature in SOLA-VOF.
Discrete values of the dependent variables, including the fractional volume
of fluid (F) variable used in the VOF technique, are located at cell positions
shown in Fig. 2.
Fig. 2.
Location of variables in a typical meshcell.
The volume of fluid function F is used
to identify mesh Cv ".1 that contain
fluid of density p_,. A free surface
or interface cell (i,j) is defined as
a cell containing a nonzero value of F
and having at least one neighboring
cell (i ± l,j) or (i,j ± I) that con-
tains a zero value of F. Cells with
zero F values are empty or contain ma-
terial of density p . Cells with non-
zero F values and no empty neighbors
are treated as cells full of p,, fluid.r
The SOLA-VOF code also has provisions
for defining any cell or combination
of cells in the mesh to be obstacle
cells into which fluid cannot flow.
Tne choice of whether a one- or
two-fluid calculation is performed is
controlled by setting the integer input parameter NMAT to the number of fluids
desired. When a one-fluid calculation is performed (NMAT=1), the fluid density
is pv in regions defined by nonzero values of F and the value of p is immateri-
al.
Briefly, the basic procedure for advancing a solution through one increment
in time, <St, consists of three steps:
(1) Explicit approximations of Eq. (2) and Eq. (3) are used to compute the
first guess for new time-level velocities using the initial conditions or previ-
ous time-leval values for all advcctive, pressure, and viscous accelerations.
(2) To satisfy the continuity equation, Eq. (5), pressures are iteratively
adjusted in each cell and the velocity changes induced by each pressure change
are added to the velocities computed in step (1). An iteration is needed be-
cause the change in pressure needed in one cell to satisfy Eq. (5) will upset
the balance in the four adjacent cells.
(3) Finally, the F function defining fluid regions must be updated to give
the new fluid configuration.
Repetition of these steps will advance a solution through any desired time
interval. At each step, of course, suitable boundary conditions must be imposed
at all mesh and free-surface boundaries* Details of these steps and boundary
conditions are given in the following subsections.
B. Momentum Equation Approximations
In the following, the notation Q" . stands for the value of Q(x,y,t) at
time n6t and at a location centered in the i cell in the x-direction and j
cell in the y-direction. Half integer subscripts refer to cell boundary loca-
tions. For example, 0. ... refers to ;«>. value of Q on the boundary between the
j and j + 1 cells in the y-direction.
A generic form for the finite-difference approximation of Eq. (2) and Eq.
(3) is
visx]and (6)
v ? + L . - v? 4JJ. + «t I - [ p Y ' ^ - pV'tl / « P 7 ^ + Sy - FVX - FVY + VISY ] 'where
6pXi44 = Y ffpc + ^PF - P J F I , J 6xi+l + fpc + ^PF " Pc
and
= i f[pc [PC + (PF - P c)F i > j + 1] Sy.} .
The advective and viscous acceleration terras have an obvious meaning, e.g., FUX
means the advective flux of u in the x-direction, etc. These terms are all
evaluated using the old time level (n) values for velocities. Because the pres-
sures at time level n + 1 are not known at the beginning of the cycle, Eq. («)
cannot be used directly to evaluate (u *, v ), but must be combined with the
continuity equation as described below. In the first step of a solution, there-
fore, the pn values in these equations are replaced by pn to get a first guess
for the new velocities.
'•"•r S t -
ill the basic solution procedure, the specific approximations chosen for the
advective and viscous terms in Eq. (6) are relatively unimportant, provided they
lead to a numerically stable algorithm. Special care must be exercised, how-
ever 4 when making approximations in a variable mesh like that of Fig. i. The
problem is best illustrated by considering the procedure used in the original
MAC method for Cartesian coordinates. In the MAC method, Eq. (2) through Eq.
(4) were first combined so that the convective flux terms could be written in a
divergence form (i.e., 7*iiu instead of _u«Vu). Thus, FUX would be, for example,2
-jj— rather than u -r—. The divergence form was preferred in MAC because it pro-
vided a simple way to insure conservation of momentum in the difference approxi-
mations. This may be seen by considering the control volume used for u.._, .
that is indicated by dashed lines in Fig. 3. With the divergence form, Gauss'
theorem may be used to convert the integrated value of FUX over, the control vol-
ume to boundary fluxes at its sides. Then, the flux leaving one control volume
will automatically be gained by the adjacent one and conservation during advec-
tion is guaranteed.
Unfortunately, conservation in a variable mesh does not automatically imply
accuracy. To see this, suppose an upstream or donor-cell difference approxima—2
tion is used for FUX = 3u /3x, which is known to provide a conditionally stablealgorithm. Assuming the u velocity is positive, the donor-cell approximation is
FUX (7)
where, e.g. ,
and
Fig. 3.Control volume (dashed rectangle) usedfor constructing a finite-difference ap-proximation for the u momentum equationat location (i + \yQ).
Expanding Eq. (7) in a Taylor series about the location x.ji, Where the u-equa-
tion is evaluated, yields
Thus, the zeroth order terra is incorrect unless the cell widths are equal, 6x. =
fix.,,. In other words, the variable mesh reduces the order of approximation by
one, -and in this case leads to an incorrect zeroth order result. If a centered
rather than a donor-cell approximation had been used, the result would have been
first order accurate and not second order* as it is in a uniform mesh.
It does not follow, however, that variable meshes are necessarily less ac-
curate because they do allow finer zoning in localized regions where flow varia-
bles are expected to vary most rapidly. Nevertheless, variable meshes must be
used with care. It is best, for example, to allow for gradual variations in
cell sizes to minimize the reduction in approximation order. It is also worth-
while to look for other approximations that do not lose their accuracy in a var-
iable mesh. In this regard, it should be noted that the reason the conservation
form of the advective terms lose accuracy is because the control volumes are not
centered about the positions where variables are located. Because of this, the
advective terms should be corrected to account for the difference in locations
of the variables being updated and the centroids of their control volumes. When
this is not done, a lower order error is introduced.
The stability advantages of the donor cell method can be retained in a var-
iable mesh with no reduction in formal accuracy, if the _u»Vu form is used for
the advection flux. At the same time, it is also possible to combine the donor-
cell and centered-difference approximations into a single expression with a pa-
rameter a that controls the relative amount of each one. The general form at
is
FUX - (ui+i y5 x
aH6 xi+l DUL + Sx± DUR + as8n(u> (5xi+i DUL ~ 6xi DUR)]»
(9)
10
where
DUL
DUR
asgn(u)
and sgn(u) means the sign of u. • .. When a - 0, this approximation reduces to
a second order accurate, centered-difference approximation. When a = 1, the
first order donor-cell form is recovered. Thus, using the approximation defined
in Eq. (9), there is no loss of formal accuracy when a variable mesh is used.
The basic idea used in Eq. (9) is to weight the upstream derivative of the
quantity being fluxed more than the downstream value. The weighting factors are
1 + a and 1 - o, for the upstream and downstream derivatives, respectively. The
derivatives are also weighted by cell sizes in such a way that the correct order
of approximation is maintained in a variable mesh. This type of approximation
is used in SOLA-VOF for all advective flux terms appearing in Eq. (6). Viscous
accelerations are approximated with standard centered approximations.
C. Continuity Equation Approximation
Velocities computed from Eq. (6) must satisfy the continuity equation, Eq.
(5). In order to satisfy this equation, the pressures (and velocities) must be
adjusted in each computational cell occupied by fluid. The finite-difference
form used for Eq. (5) is
where
11
n+l / n+1 n+1 \ .. . / n+1= ( ) / 6 + V
and
p = PF Fi,j + pc ( 1 " Fi,j ) *
2
Note that only one c value is used in the program. In other words, it is as-
sumed that the sound speeds of both fluids in a two-fluid calculation are equal.
Because the velocities appearing in D are evaluated at the new time level, which
depend on the n + 1 level pressures according to Eq. (6), this equation is an
implicit relation for the new pressures. A solution may be obtained by the fol-
lowing iterative process. The computational mesh is swept row by row starting
with the bottom and working upward. In each cell containing fluid, but not a
free surface, the pressure change needed to satisfy Eq. (10) is
6p = - S/(9S/3p) , (II)
where S, denoting the left side of Eq. (10), is evaluated with the most updated
values of p that are available, and the derivative is with respect to p. .. The
new estimate for the cell pressure is then
Pi . + <5p , (12)
and new estimates for the velocities located on the sides of the cell are
1_, .
12
where the velocities are the most updated values available. The ft factor con-
trols the amount of implicitness used in solving Eq. (10) through Eq. (13) as
described in Sec. II.D.
In one-fluid calculations a similar procedure is used in cells containing a
free surface, except that the S used in Eq. (11) is not the left side of Eq.
(10), but a relation that leads to the proper free-surface boundary condition3
when driven to zero by the iteration. The boundary condition is satisfied by
setting the surface cell pressure (p. .) equal to the value obtained by a linear1> J
interpolation between the pressure wanted at the surface (p ) and a pressure in-s
side the fluid (pN)« For this scheme to work, the adjacent cell chosen for the
interpolation should be such that the line connecting its center to the center
of the surface cell is closest to the normal to the free surface. Then the S
function giving this result is
S = (1 - n) PN + n pg - Pi}j , (14)
where n = d /d is the ratio of the distance between the cell centers and thec
distance between tb» free surface and the center of the interpolation cell
(Fig. 4).
A complete iteration, therefore, consists of adjusting pressures and veloc-
ities in all cells occupied by fluid according to Eq. (11) through Eq. (13),
where S is given by Eq. (10) for an interior cell and by Eq. (14) for a surface
cell. Convergence of the iteration is achieved when all cells have S values_3
whose magnitudes are below some small number, e. Typically, e is of order 10 ,
although it can vary with the problem being solved and the units chosen for the
problem.
In some cases, convergence of the iteration can be accelerated by multiply-
ing 5p from Eq. (11) by an over-relaxation factor w. A value of u that is often
optimum is 1.8, but in no case should it exceed 2.0; otherwise, an unstable
iteration results.
In practice, the free-surface condition, Eq. (14), leads to an over-relaxa-
tion type of instability when the interpolation factor u is greater than one.
Stability can be insured by under-relaxing the pressure variations in cells used
13
SurfaceCell
FreeSurface/7
as interpolation neighbors for surface
cells. In particular, the relaxation
factor to used in a cell acting as an
interpolation neighbor for a surface
cell must be replaced with
U>
- n)6t(15)
where
InterpolaiCetl
Fig. 4.Definition of quantities used in defin-ing fre?.-surface pressure boundary con-dition .
R = & X d. ) " ' •
Here n and d refer to the surfacec
cell and the S derivative is the value
for the neighbor cell. Also Ax is 5x
of the surface cell if the neighbor lies in the x-direction; otherwise, Ax is
equal to 6y of the surface cell. The idea behind (15) is that the pressure
change in the neighbor cell is coupled to the pressure in the surface cell,
which in turn is dependent on the neighbor cell pressure through the linear in-
terpolation, Eq. (14). To insure stability, this feedback type of coupling of
the surface cell on its neighbor cell can be algebraically computed and used to
define the stable relaxation limit, Eq. (15).
D. Implicit vs Explicit Calculations
The continuity equation has beer, numerically formulated as an implicit re-
lation involving pressures from all fluid-occupied cells. This is necessary
when the fluid is incompressible, because then a change in any one-cell pressure
can influence the pressure in all other cells. However, when the limited com-
pressibility option is used, compression waves will only travel a distance C5t
in one time step, where C is the sound speed. For sufficiently small 6t, this
distance may be less than the width of a computational mesh cell. In this lim-
it, the implicit solution method for the continuity equation is no longer re-
quired and, in fact, is less accurate and more time-consuming than some simple
explicit schemes. To see why this is so it is sufficient to investigate a lin-
earized form of the equations, on which a linear stability analysis can be per-
14
formed. Consider a one-dimensional case, e.g., P n ~ A n expfikx}. In the fully
implicit case (Q = 1), as formulated in the previous section and with fix = <5y =
constant, the amplification factor A is found to have the modulus
,2 1" 2
IAJ • „- ,1 + P"
where p = 2(C6t/6x) sin(k6x/2). Thus, the implicit method is always stable be-
cause |A| is always less than unity. Unfortunately, this also means that all
Fourier components are damped in time unless p is vanishingly small.
In contrast, if we had chosen ft = 0 so that velocities in Eq. (13) are not
altered by the pressure iteration, then Eq. (10) becomes an explicit expression
for each Pn . and the amplification factor determined from the linear stability
analysis has a modulus identically equal to unity if C6t < 6x, and greater than
unity when CSt > 6x. Therefore, the explicit method is conditionally stable
(C6t < 6x), and when operated in the stable range, introduces no damping of any
Fourier components. The absence of all damping is not completely desirable,
however, because there is still dispersion that can result in some high frequen-
cy numerical oscillations.
Ideally, a numerical method is wanted that only damps the highest frequen-
cies (the shortest wavelengths of order 2 6x) to suppress dispersion-induced
oscillations, but does not damp the longer and better resolved wave components.
In SOLA-VOF, this goal can be approximated by properly choosing Q as a function2
of C6t/6x. In particular, we have written the program so that 0 = min( p , 1.0),
where p is the maximum value of 2CSt/<Sx. and 2CSt/6y. in the mesh. For pure'y
incompressible calculations, Q is always set to unity. With this prescription
the linear stability analvsis indicates that the amplification factor modulus
will be
1 +
Thus, when 6t is reduced below the value needed for an explicit calculation to
be stable, fl rapidly decreases and |A| approaches unity even more rapidly. Al-
so, the calculations become more explicit as Q is reduced and so less work is
required to obtain a solution of the continuity equations.
15
Strictly speaking, the last remark is not correct unless the overrelaxation
factor to is also reduced to unity. This is because the explicit calculation (fl
=0) in Eq. (10) can be solved exactly with one iteration because it is linear
in the unknown pressure. However, when w is not unity, the correct pressure is
altered by u and several iterations are then required to relax it back to its
correct value. The purpose of u> is to increase the convergence rate of the im-
plicit form of Eq. (10), where changes in a cell pressure can influence neigh-
boring cell pressures. Consequently, if we are to gain a computational advan-
tage by allowing Q to decrease for more explicit calculations when 6t is small,
it is also necessary to simultaneously push co toward unity. This is done in the
present version of SOLA-VOF by internally setting
w = (w - 1.0) 52 + 1.0 ,
where to is the value of to set in the input data.
In summary, the program internally determines when explicit calculations
can be performed and automatically reduces the implicitness in such a way that
calculations become more efficient and more accurate.
E. Approximations for Volume of Fluid Function
1. Advancing F in Time. The VOF function F is governed by Efj (1). For an
incompressible fluid, Eq. (4) may be combined with Eq. (2) to yield
where r = x when £ = 1 and r = 1 when % - 0. Even when the fluid is slightly
compressible and Eq. (5) replaces Eq. (4), this equation for F is still an ac-
ceptable approximation. Equation (16), which is in divergence form, is here
more convenient for numerical approximation and is the form used in the follow-
ing discussion. When Eq. (16) is integrated over a computational cell, the
changes in F in a cell reduce to fluxes of F across the cell faces. As previ-
ously noted, special care must be taken in computing these fluxes to preserve
the sharp definition of free boundaries. The method employed in SOLA-VOF uses a
type of Donor-Acceptor flux approximation. The essential idea is to use infor-
mation about F downstream.as well as upstream of a flux boundary to establish a
crude interface shape, and then to use this shape in computing the flux. Sever-
16
al researchers have previously used variations of this approach for tracking ma-
terial interfaces.6'12'13
The basic method as developed for use in the VOF technique may be under-
stood by considering the amount of F to be fluxed through the right-hand face of
a cell during a time step of duration St. The flux of volume crossing this cell
face per unit cross sectional area is V » u<5t, where u is the normal velocity
at the face. The sign of u determines the donor and acceptor cells, i.e., the
cells losing and gaining volume, respectively. For example, if u is positive
the upstream or left cell is the donor and the downstream or right cell the ac-
ceptor. The amount of F fluxed across the cell face in one time step is 6F
times the face cross sectional area, where
6F = MIN {F.n |V I + CF , Fn 6xJ (17)
and
CF = MAX {(1.0 - FAD) |Vxl - (1.0 - FD) & D , 0.0}
Single subscripts denote the acceptor (A) and donor (D) cells. The double sub-
script, AD, refers to either A or D, depending on the orientation of the inter-
face relative to the direction of flow as explained later*
Briefly, the MIN feature in Eq. (17) prevents the fluxing of more F from
the donor cell than it has to give, while the MAX feature accounts for an addi-
tional F flux, CF, if the amount of void (1 - F) to be fluxed exceeds the amount
available. Figure 5 provides a pictorial explanation of Eq. (17). The donor
and acceptor cells are defined in Fig. 5a for fluxing across a vertical cell
face. When AD - D, the flux is an ordinary donor cell value,
FD |Vx'
;'.t» which the F value in the donor cell is used to define the fractional area of
the cell face fluxing F (Fig. 5b). As discussed in Sec. II.I, numerical stabil-
ity requires that |V | be less than 6x, so that it is not possible to empty the
dortor cell in this case.
17
-•I uat
(a) (b) AD=D
(c) AD=A (d) AD=A
Fig. S.
Examples of fvee-suvfaee shapes used inthe adveation of F. The donor-acceptorarrangement is shown in (a) where vhedashed line indicates the left boundaryof the total volume being adoected. Thecross-hatched regions shown in (b-d) arethe actual amounts of F fluxed.
When AD * A, the value of F in
the acceptor cell is used to define
the fractional area of the cell face
across which F is flowing. In case
(c) of Fig. 5, all the F fluid in the
donor cell is fluxed because every-
thing lying between the dashed line
and the flux boundary moves ii; > the
acceptor cell. This is an example of
the MIN test in Eq. (17). In case (d)
of Fig. 5, more F fluid than the
amount F.|V |, must be fluxed, so this
is an example of the MAX test. In
particular, the extra fluid between
the dashed line and the flux boundary
is equal to the CF value in Eq. (17).
Whether the acceptor or donor
cell is used to determine the frac-
tional area for F flow depends on the mean surface orientation. The acceptor
cell is used when the surface is advected mostly normal to itself; otherwise,
the donor cell value is used. However, if the acceptor cell is empty of F or if
the cell upstream of the donor cell is empty, then the acceptor cell F value is
used to determine the flux regardless of the orientation of the surface. This
means that a donor cell must fill before any F fluid can enter a downstream emp-
ty cell.
The reason for testing on surface orientation is that an incorrect steepen-
ing of surface waves will occur if the acceptor cell is always used to compute
fluxes. Consider, for example, a horizontal surface with a small wave moving in
the positive x-direction. A flux based on the downstream (acceptor) value of F
will eventually steepen the wave into a step discontinuity. In effect, the ac-
ceptor method is numerically unstable because it introduces a negative diffusion
of F (i.e., a diffusion-like transport with a negative coefficient). Instabili-
ties do not grow unbounded; however, because of the MIN and MAX tests used in
the flux definition. In contrast, when the surface is advecting normal to it-
self, a steepening that maintains the step-functiion character of F is exactly
what is wanted.
18
Once the flux has been computed by the above method, it is multiplied by
the flux boundary area to get the amount of F fluid to be subtracted from the
donor cell and added to the acceptor cell. When the process is repeated for all
cell boundaries in the mesh, the resulting F values correspond to the time-ad-
vanced values satisfying Eq. (16) and still sharply define all interfaces.
2. Bookkeeping Adjustments. The new F values determined by the above
method ocassionally may have values slightly less than zero or slightly greater
than unity. Therefore, after the advection calculation has been completed, a
pass is made through the mesh to reset values of F less than zero back to zero
and values of F greater than one back to one. Accumulated changes in fluid vol-
ume introduced by these adjustments during a calculation are recorded and may be
printed out at any time.
There is one other adjustment needed in F f> that it may be used as a
boundary cell flag. Boundary cells have values of F lying between zero or one.
However, in a numerical solution, F values cannot be tested against exact num-
bers like zero and one because roundoff errors would cause spurious results.
Instead, a cell is defined to be empty of F when F is less than e and full when
F is greater than 1 - e_, where E_ is typically 10 . If, after advection, a
cell has an F value less than e_, this F is set to zero and all neighboring full
cells become surface cells by having their F values reduced from unity by an
amount Lie,,. These changes in F are also included in the accumulated volume
change. Volume errors after hundreds of cycles are typically observed to be a
fraction of a per cent of the total F volume.
3. Determining Interfaces Within a Cell. For the accurate application of
boundary conditions, knowledge of the boundary location within a surface cell is
required. In the VOF technique, \t is assumed that the boundary can be approxi-
mated by a straight line cutting through the cell. By first determining the
slope of this line, it can then be moved across the cell to a position that in-
tersects the known amount of F volume in the cell.
To determine the boundary slope, it must be recognized that the boundary
can be represented either as a single-valued function Y(x) or as X(y), depending
on its orientation. If the boundary is representable as Y(x), we must compute
dY/dx. A good approximation to Y(x) is
Y£ = Y(XjL)
19
where Y = 0 has been taken as the bottom edge of the j - 1 row of cells. Then,
(18)
where, e.g., 6x. • * (̂ x-s+i * <5x.)/2. A similar calculation can be made for
dX/dy, where
Xj
and
(f(19)
If |dY/dx| is smaller than |dX/dy|, the boundary is more nearly horizontal
than vertical, otherwise it is more nearly vertical. The derivative with the
smallest magnitude gives the best approximation to the slope because the corre-
sponding Y or X approximation is more accurate in that case.
Suppose |dY/dx| is smallest so the interface is more horizontal than verti-
cal. If dX/dy is negative, F fluid lies below the boundary, and cell (i,j - 1)
is used as the interpolation neighbor for the surface cell (i,j). Had dX/dy
been positive, cell (i,j + 1) would be chosen for the neighboring interpolation
cell because fluid would then be above the boundary.
Once the boundary slope and the side occupied by fluid have been deter-
mined, a line can be constructed in the cell with the correct amount of F volume
lying on the F fluid side. This line is used as an approximation to the actual
boundary and provides the information necessary to calculate n for the applica-
tion of free-surface pressure boundary conditions, as described in Sec. II.G.
For cylindrical coordinates, the above computations are more complex be-
cause of the volume dependence on radius. Except for cells on the axis, how-
ever, the exact results differ little from the simpler Cartesian coordinate re-
sults; consequently, the latter are used in both cases.
20
F. Surface Tension and Wall Adhesion
Surface tension effects require little additional effort and are included14
in SOLA-VOF as an option. The input parameter ISURF10 is set to unity when
surface tension is wanted; otherwise, it is set to zero* The surface tension
coefficient (a force per unit length) is denoted by a.
Two essential steps are needed to include surface tension in a calculation.
First, it is necessary to compute a local curvature in each boundary cell using
the Y(x) or X(y) definitions from Eq. (18) and Eq. (19), so that a surface ten-
sion pressure can be evaluated. Once the curvature K is found, this surface
tension pressure is given by
P g - - a K
Second, it is necessary to impose this pressure force on all interfaces,
in the first step, K is given by
K — V -L. V~~ IX. i IN.
xyxy cyJl R R „ '' xy cyZ
where R is the principal radius of curvature in the x - y plane and R , isxy . v v J r cylthe principal radius of curvature associated with the azimuthal direction in the
case of cylindrical coordinates. For plane coordinates, K = 0 . When the in-
terface is mostly horizontal, the curvature in the x - y plane is given by
dYdxK -4-
xy dx
If the interface is mostly vertical, the roles of x and y must be reversed with
X(y) replacing Y(x).
Numerical evaluation of K must be done carefully because it contains axy
second derivative, which is sensitive to small errors in the first derivatives.
We have found that the best technique is to evaluate surface slopes around the
cell corners lying nearest to the surface. For example, to evaluate dY/dx at
the right side of cell (i,j), we first determine whether the surface intersects
21
this side, x = xJ+., nearer y ̂ or y. i« If it is nearer the top corner at
y^4> t h e n dY/dx and dX/dy are evaluated about this corner. The derivative with
the smallest magnitude is assumed to give the best estimate for the surface
slope near that corner of the cell. In this way, we obtain a relatively accu-
rate evaluation of curvature that is not sensitive to changes in interpolation
cell neighbors or to unusual distributions of F.
To evaluate K ., let 6 be the angle between the interface tangent and the
positive x axis when the interface is horizontal. If the interface is vertical,
0 is the angle it makes with the positive y axis. In the near horizontal case,
K = sin B/XI± ,
where XI. is the distance in the x-direction from the axis of symmetry to the
center of cell (i,j). For the near vertical case,
K „ = cos 9/r 0 ,cyZ cyZ '
where
rcy*
(X. , + F. . 5x.) , If fluid is left of interface
- F, . 6X. , if fluid is right of interface.
Here X.,i is, e.g., the radius of the boundary between the i and i + 1 column of
cells, and the minus sign used in the fluid left case insures the proper sign
for the surface tension pressure.
This completes the necessary calculations for p except near walls where
wall adhesion effects must be accounted for. A contact angle CANGLE must be
specified in the input data list. If no wall adhesion is desired this angle is
set to zero. In all other cases, CANGLE is the angle between the wall and the
fluid interface that includes the F fluid. To impose this angle condition we
adjust the Y(x) and X(y) values at the wall. For example, suppose the boundary
cell (i,j) is as shown in Figs. 6a and 6b with F fluid assumed to be below the
boundary. A surface tension pressure will be calculated in the same manner as
22
Fictitious CellsWall
CANGLE
Fig. 6a.Wall adhesion for the locally near-hor-izontal interface is modeled by settingthe value of Y. . such that CANGLE is
the angle between the wall and the in-terface.
Fig. 6b.
Wall adhesion for the locally near-ver-tical interface is modeled by settingX. such that CANGLE is the angle be-3L
ttieen the wall and the interface.
outlined above, except that the surface is assumed to make an angle CANGLE with
the wall by adjusting the i + 1 value of Y(x) and the j + 1 value of X(y) as
l/2C5xi 6xi+][)/TANCA
and
X . - 6y . 6y .+})TANCA
where TANCA = tan(CANGLE). Similar adjustments are made to the appropriate var-
iables for all other orientations of walls and interfaces. It should be noted
that this procedure is implemented in SOLA-VOF not only for mesh boundary walls,
but also at walls of internal obstacles constructed by blocking out combinations
of mesh cells.
The second step required to add surface tension to a calculation is the
manner in which p forces are added to the dynamics. In the case of a one-fluid
free-surface calculation, p is used simply as an applied surface pressure ac-
cording to the surface pressure equation, Eq. (14). In a two-fluid calculation,
23
no separate interface boundary conditions are used and so p forces must be add-
ed in some other way. In SOLA-VOF, thase are included as additional accelera-
tions affecting velocities on the sides of cells containing an interface, which
is done as follows. First, assume the interface is near the horizontal. Then
the y-direction force on the interface is
STFY * Pg
and the force in the x-direction it
STFX = p 6x, tan 9 .
S X
Accelerations produced by these forces are applied to the four velocity
components at the sides of cell (i,j). For the near-horizontal case it is as-
sumed that the forces act equally at the left and right cell sides, but an in-
terpolation is used for the top and bottom forces. These forces, which are add
ed to the right sides of Eq. (6) in a special subroutine (TMS10), are
J fit u)LSTFX/(Sy.
•••+ 6t v T F Y / ( 6 x i
and
where w_, etc. are the interpolation weighting factors.R
A similar procedure is followed when the interface is near the vertical,
except that <Sy replaces Sx in the STFX and STFY forces and interpolation is used
in the x-direction.
24
This procedure does allow some noise to be generated in the form of small
local velocity perturbations along an interface. Generally, a small amount of
viscosity (or smoothing automatically introduced by advection approximations)
will keep this noise from causing any problems. The origin of the noise is as-
sociated with the fact that an interface can be a discontinuous vortex sheet,
but the calculation cannot accurately resolve this.
G. Marker Particles
Sometimes it is desirable to mark specific regions of fluid so that the
evolution (location and shape) of these regions can be followed. Marker parti-
cles are also useful for computer graphic displays (App. B). For this purpose,
SOLA-VOF has an optional marker particle capability. Particles are points em-
bedded in the fluid that move about with it, but do not affect the fluid dynam-
ics.
To use this option, the user must program in his particular initial parti-
cle setup and number of particles in the SETUP subroutine at the locations
marked for this purpose. If only one rectangular region of particles is de-
sired, this can be initialized by input data (input data list Sec. III.B). When
marker particles are not wanted, the parameters (NPX,NPY) should be set to zero
(their default values).
Local velocities (u ,v ) used to move particles are computed from the near-P P
est four mesh velocities in each coordinate direction using a standard bilinear
interpolation. New particle coordinates after a time interval <St are obtained
from the first-order difference expressions,
n+1 n , *...x = x + u 6tP P P
and
V St.P
Particles that cross a continuative or constant pressure boundary are deleted,
and particles crossing a periodic boundary are reinserted at the opposite side
of the computational mesh.
25
H. Boundary Conditions
1. Mesh Boundaries. In addition to the free-surface boundary conditions,
it is necessary Lo set conditions at all mesh boundaries and at smraces of all
internal obstacles. At the mesh boundaries, a variety of conditions may be set
using the layer of fictitious cells surrounding the mesh. Consider, for exam-
ple, the left boundary. If this is a rigid free-slip wall, the normal velocity
there must be zero and the tangential velocity should have no normal gradient,
i.e.,
u, . = 0
for all j.V1.J " V2,j
P l , j = P 2 , j
F l , j " F2,j
If the left boundary is a no-slip rigid wall, then the tangential velocity com-
ponent at the wall should also be zero, i.e.,
u, . = 0
- v_
P l , J = P 2 , j
F = FF l j 2 j
for all j.
These conditions are imposed on the velocities computed from the momentum equa-
tions and after each pass through the mesh during the pressure iteration.
Continuative or outflow boundaries always pose a problem for low-speed cal-
culations because whatever prescription is chosen can potentially affect the en-
tire flow field. What is needed is a prescription that permits fluid1to flow
out of the mesh with a minimum of upstream influence. In SOLA-VOF, the continu-
ative boundary conditions used at the left wall are
for all j.
26
These conditions, however, are only imposed after applying the momentum equa-
tions and not after each pass through the pressure iteration.
For periodic boundary conditions in the x-direction, the left and right
boundaries must be set to reflect the periodicity. This is easiest when the
period length is chosen equal to the distance from the left wall to the left
boundary of the last interior cell in the mesh at the right side. That is, two
columns of cells, i = IMAX and i = IMAX - 1, are reserved on the right side of
the mesh for the setting of periodic boundary conditions. The conditions are
then, on the left,
"l.J = U
V1,J = V
F = F
and on the right,
for all j,
UIM1,
V1M1,
P1M1,
^ I
VIMAX
FIMAX
FIM1,
j
j
j
Ml
> j
j
= U 2 ,
= V 2 ,
= P 2 ,
,j =
= V3
= F3
= F 2 ,
j
j
j
(pS>
»j
j
fo • all j,
where IMl = IMAX - 1 and IM2 = IMAX - 2. In this case, these conditions are im-
posed on velocities computed from the explicit momentum equations and after each
pressure iteration.
A constant pressure boundary condition at the left wall is set by keeping
the pressure in column i = 2 constant and otherwise treating the boundary as
continuative.
Boundary conditions similar to those for the left wall are used at the
right, top, and bottom boundaries of the mesh. Of course, the normal and tan-
gential velocities at the top and bottom boundaries are v and u, respectively.
27
For convenience, the SOLA-VOF code has been written so that any of the
above boundary conditions can be automatically imposed by setting input numbers.
For example, for the left boundary
1, rigid free-slip wall
2, rigid no-slip wall
WL = <( 3, continuative
4, periodic in x
5, specified pressure .
In a similar fashion, WR controls the right boundary, WT the top boundary, and
WB the bottom boundary.
Specified inflow and outflow conditions at mesh boundaries or at locations
within the mesh must be programmed into the boundary condition subroutine of the
code. A special location is reserved in the SOLA-VOF code for this purpose at
the end of the regular boundary conditions.
2. Free-Surface Boundaries. In a one-fluid calculation, the inviscid
free-surface boundary condition for normal stress is automatically satisfied by
the implicit pressure calculation using Eq. (14). This condition must be sup-
plemented with the specification of velocities immediately outside the surface,
where these values are needed in the finite-difference approximations for points
outside the surface. The specifications used in SOLA-VOF are identical to those
used in many earlier MAC codes. Velocities must be set on every cell boundary
between a surface cell and an empty cell. If the surface cell has only one
neighboring empty cell, the boundary velocity is set to insure the vanishing of
D. ., the velocity divergence defined in Eq. (10). When there are two or more1 3ru
empty cell neighbors, the individual contributions to the divergence, —-r—and
-r—, are separately set to zero. Zero values for -jr- or -r— are additionally used
to set exterior tangent velocities to a free surface on boundaries between empty
cells adjacent to a surface cell.
3. Internal-Obstacle Boundaries. The definition of internal obstacles is
accomplished by flagging those cells of a mesh that are to be blocked out. Be-
cause the relaxation factor BETA. . used in the pressure iteration must be posi-
tlve, we can use negative values of this variable as a suitable flag for obsta-
cle cells. A convenient, but arbitrary choice, is to assign a value of BETA »
-1.0 to all obstacle cells'. These flag values for BETA must be programmed into
28
the code for each application. A comment is included in the subroutine SETUP
where this is to be done.
In the program no velocities or pressures are calculated in obstacle cells,
and all velocity components on faces of obstacle cells are automatically set to
zero. In the boundary condition subroutine values for volume fractions and
pressures are set in all obstacle cells bordering fluid cells. These values are
computed to be equal to the averages of these quantities in the adjacent fluid
cells. All other obstacle cells have zero values for P and p. With this pre-
scription, contour plots in fluid-occupied regions are smoothly drawn at obsta-
cle boundaries. Even more important, this prescription prevents fluid-obstacle
boundaries from being interpreted as free surfaces, as they would be without
some sort of additional testing.
In addition, it should also be noted that because all velocity components
within obstacle cells are set to zero, no-slip tangential velocity conditions at
obstacle boundaries are only first-order accurate. That is, tangential veloci-
ties are zero at locations shifted into the obstacles one-half of a cell width
from the actual boundary location.
I. Numerical Stability Considerations
Numerical calculations often have computed quantities that develop large,
high-frequency oscillations in space, time, or both. This behavior is usually
referred to as a numerical instability, especially if the physical problem being
studied is known not to have unstable solutions. When the physical problem does
have unstable solutions and if the calculated results exhibit significant varia-
tions over distances comparable to a cell width or over times comparable to the
time increment, the accuracy of the results cannot be relied on. To prevent
this type of numerical instability or inaccuracy certain restrictions must be
observed in defining the mesh increments 8x and 6y., the time increment 6t, and
the upstream differencing parameter a.
For accuracy, the mesh increments must be chosen small enough to resolve
the expected spatial variations in all dependent variables. When this is impos-
sible because of limitations imposed by computing time or memory requirements,
special care must be exercised in interpreting calculational results. For exam-
ple, when computing the flow in a large chamber, it is usually impossible to re-
solve thin boundary layers along the confining walls. In many applications,
however, the presence of thin boundary layers is unimportant and free-slip
boundary conditions can be justified as a good approximation-
29
Once a mesh has been chosen, the choice of the time increment necessary for
stability is governed by several restrictions. First, material cannot move
through more than one cell in one time step because th> difference equations as-
sume fluxes only between adjacent cells. Therefore, the time increment must
satisfy the inequality,
St < min f 6xi 6yj )
l 7 ^ ? ' lvi,j'r
where the minimum is with respect to every cell in the mesh. Typically, St is
chosen equal to one-fourth to one-third of the minimum cell transit time. Sec-
ond, when a nonzero value'of kinematic viscosity is used, momentum must not dif-
fuse more than approximately one cell in one time step. A linear stability
analysis shows that this limitation implies
2 26xi 6yi2
^ + Sy.
Third, when surface tension is included there must also be a limit on St to pre-
vent capillary waves from traveling more than one cell width in one time step.
A rough estimate for this stability condition is
aSt m
+ CYL)
where p is the minimum of p_ and p , Sx is the minimum cell size in the meshm F c m
(either Sx or Sy), and CYL is 1.0 for cylindrical geometry and 0.0 for the
Cartesian case. Finally, with St chosen to satisfy the above inequalities, the
last parameter needed to insure numerical stability is a. The proper choice for
a is
1 > a > max
30
As a rule of thumb, an ct approximately 1.2 to 1.5 times larger than the right-
hand member of the last inequality is a good choice. If a is too large, an un-
necessary amount of numerical smoothing (diffusion-like truncation errors) may
be introduced.
All the above time-step controls are automatically satisfied by the program
if the user selects this option (AUTOT=1.0) through the input data. Setting
AUT0T=0.0 will permit a constant <5t to be used. The AUTOT=1.0 option also ad-
justs the time step to keep pressure iterations at approximately 25 per cycle or
less. In situations where the pressure iteration has not converged after 1000
iterations, or when an advective flux exceeds more than half the volume of a
cell, the time step is automatically cut in half independent of the AUTOT selec-
tion. Further, in the case of an excessive advective flux, the cycle is re-
started with the reduced fit.
III.* PROGRAM DETAILS
A. Subroutines
The SOLA-VOF program is written in subroutine form such that each subrou-
tine performs an individual task. A flow chart is given in Fig. 7 showing the
calling sequence of the various subroutines. Subroutine names have been select-
ed to indicate the function that each performs, and these are arranged alphabet-
ically following the main program routine, SOLA-VOF. Each subroutine is listed
here with a brief description of its major function.
SOLA-VOF (main program)
(1) Reads and prints the input and output data.
(2) Contains the calling sequences to the other subroutines and thus pro-
vides cyclic control over the calculation.
(3) t •»• t + DELT.
(4) Increments the cycle number by one each cycle.
(5) Provides a shutdown procedure in the event that a solution cannot be
obtained that satisfies mass conservation.
BC (Boundary Conditions)
(1) Sets the values of appropriate iriables at rigid free-slip, no-slip,
continuative outflow, periodic, and specified pressure boundaries.
(2) Sets the values of appropriate variables around the boundaries estab-
lished by free surfaces.
31
FILMSET
I[ Read Input
Data
1MESHSET
ISETUP
t=cycle=O
IBC
TILDE
BC
PRESSIT
/^Have Pressuresy Converged ?
NO
YES
VFCONV
IBC
PARMOV
J _PETACAL
andSurface tension
PrintPlot
IDELTADJ
(Time to Stop ?}
Fig. 7.
Flow chart for SOLA-VOF
32
(3) Allows for special boundary condition inclusions, such as inflow
boundaries; these must be included by hand as needed for each problem.
(4) Sets average F and p values in obstacle cells adjacent to fluid calls.
CAVOVO (CAlculates VOid Volumes)
(1) Computes the volume of disjoint void (F = 0) regions.
DELTADJ (Time step ADJustment)
(1) Computes maximum allowable 5t for stability.
(2) Adjusts 6t according to number of iterations and maximum allowed for
stability.
(3) Recomputes relaxation factors BETA.
DRAW (Generates graphics output of problem data)
(1) Draws velocity vector and free-surface distributions.
(2) Draws the mesh during CYCLE = 0.
(3) Provides particle plots as requested.
DRWOBS (DRaW OBStables)
(1) Draws lines around all obstacles.
DRWVEC (DRaW a VECtor)
(1) Provides the graphics package system call to draw a line between
points (xl.yl) and (x2,y2).
(2) Confutes and plots the symmetric form of a given line if ISYMPLT is
turned on (i.e., = 1).
FILMSET (FIIM SET-up)
(1) Provides the necessary buffers, links, and logical units for the use
of local graphics software. This routine must be written specifically
for each graphics system.
FRAME
(1) Draws a frame around graphics output (the frame size is scaled to the
mesh size).
LAVORE (LAbel VOid REgions)
(1) Detects and labels all disjoint void (F = 0) regions. Labels are NF
values 6,7,8, etc.
MESHSET (MESH SET-up)
(1) Generates the computing mesh from the input data established in NAME-
LIST/MSHSET/.
(2) Evaluates all of the necessary geometric variables that are used
throughout the code.
33
PARMOV (PARticle MOVement) '
(1) Computes the movement of marker particles In the fluid velocity field.
(2) Provides the necessary bookkeeping to allow marker particles to exit
the mesh or to be replaced by newly input particles. (NOTE: Particle
initializations must be done by hand in the SETUP subroutine", except
for the case of a single rectangular region, which can be defined by
input data.)
PETACAI, (PETA interpolation factor CALculation)
(1) Determines the slope of the surface in the surface cells.
(2) Determines the cell flag NF(i,j) to indicate the interpolation neigh-
bor of the surface cell. (The interpolation neighbor is the cell ad-
jacent to the surface cell containing fluid and with which surface
cell pressures are interpolated to provide the proper value of P at
the surface.)
NF = 1, implies the neighbor to the left.
^ NF = 2, neighbor to the right.
NF = 3, neighbor on the bottom.
NF = 4, neighbor on the top.
Thus, the above information describes the orientation of the surface
(whether vertical or horizontal) and on which side of this surface
fluid exists.
(3) Computes the surface pressure PS(i,j) caused by surface tension in
surface cells, if the surface tension flag is set.
PLTPT (PLoT a PoinT)
(1) Provides the graphics system call to plot a single point (xl,yl).
(2) Computes and plots the symmetric point to be plotted if the flag
ISYMPLT is on. (Symmetry is always assumed to exist only about the y
axis.)
PRESSIT (PRESSure ITeration)
(1) Iterates the velocity and pressure field such that mass is conserved
in each cell of the mesh.
(2) Computes a free-surface cell pressure adjustment based on the applied
surface pressure; mass conservation in the surface is not iterated, it
is set by application of the free-surface boundary conditions.
PRTPLT (PRinTs and PLoTs)
(1) Outputs data for paper prints and film plots.
34
SETUP (general SETUP)
(1) Initializes constants necessary to the calculation.
(2) Computes the scaling factors and centering shifts required for graph-
ics output.
(3) Computes the initial hydrostatic pressure distribution to initialize
the P(i,j) pressure array.
(4) Initializes marker particle number.
(5) Sets up the initial velocity with U(i,j) = UI and V(i,j) = VI every-
where in the mesh.
(6) Computes the relaxation factors (BETA(i,j)) that are used in the pres-
sure iteration.
(7) Sets up obstacles by defining obstacle cells as having BETA(i,j) =
-1.0. Obstacle definition, in general, must be coded by hand for each
problem.
TILDE (Temporary Velocity Calculation)
(1) Computes an explicit solution for each of the momentum equations,
(i.e., new values of velocities are obtained from the time n values of
pressure, advective, and diffusive accelerations). Tiese tilde values
are advanced to time n + 1 in the pressure iteration.
TMS10 (Two Material Surface Tension)
(1) Adds interfacial surface tension forces to velocities near interface.
VFCONV (Volume Fraction CONVection)
(1) Computes the solution to the equation
££. + ?. u F = 0 .dt ~
(2) Computes and stores for printout any errors in volume (i.e., loss or
gain) during the calculation of step (1).
B. Basic Input Variables
All of the input data to the SOLA-VOF code are in NAMELIST blocks with the
exception of the problem title NAME, which is a 10A8 format. The NAMELIST vari-
ables occur in two blocks. The first block is /XPUT/ and contains all of the
physical parameters necessary to specify and run a problem. The second block
/MSHSET/ contains the geometrical information necessary for the creation of the
variable mesh and the number of cells used in it.
35
The following is a list of all the input variables in the first block and a
description of each. This same list is also reproduced at the beginning of the
program listing.
1. NAMELIST/XPUT/.
ALPHA Controls amount of donor cell fluxing (-1.0 for full donor cell dif-
ferencing, =0.0 for central differencing)
AUTOT Automatic time-step flag («1.0 for automatic DELT adjustments, -0.0
for constant DELT)
CANGLE Contact angle, in degrees, between fluid and wall
CSQ Material sound speed squared (—1.0 for incompressible material)
DELT Time step
EPSI Pressure iteration convergence criterion
FLHT Fluid height, in y-direction
GX Body acceleration in positive x-direction
GY Body acceleration in positive y-direction
ICYL Mesh geometry indicator (=1 for cylindrical coordinates, =0 for
plane coordinates)
IMOVY Movie indicator (=*1 for movie film output, =0 for other film output)
ISURF10 Surface tension indicator (=1 for surface tension, -0 for no surface
tension)
ISYMPLT Symmetry plot indicator (=1 for symmetry plot, =0 for no symmetry
plot)
NMAT Number of materials (1 or 2)
NPX Number of particles in x-direction in rectangular particle setup
NPY Number of particles in y-direction in rectangular particle setup
NU Coefficient of kinematic viscosity
OMG Over-relaxation factor used in pressure iteration
PLTDT Time increment between plots and/or prints to be output on film
PRTDT Time increment between prints on paper
RH0F Fluid density (for F - 1.0 region)
RHOFC Fluid density in complement of F region
SIGMA Surface tension coefficient
TWFIN Problem time to end calculation
UI X-direction velocity used for initializing mesh
VI Y-direction velocity used for initializing mesh
VELMX Maximum velocity in problem used to scale velocity vector plots
36
WB Indicator for boundary condition to be used along the bottom of the
mesh (-1 for rigid free-slip wall, =2 for rigid no-slip wall, »3 for
continuative boundary, »4 for periodic boundary, »5 for constant
pressure boundary)
WL Indicator for boundary condition along left side of mesh (see WB)
WR Indicator for boundary condition along right side of mesh (see WB)
WT Indicator for boundary condition along top of mesh (see WB)
XPL Location of left: side of rectangular particle region
XPR , Location of right side of rectangular particle region
YPB Location of bottom of rectangular particle region
YPT Location of top of rectangular particle region
C. Mesh Generation Input
The SOLA-VOF code utilizes a mesh composed of rectangular cells with varia-
ble sizes. Although the coordinates of each mesh line could be read in for each
new problem, this is Inconvenient in most cases. To circumvent this, SOLA—VOF
has an automatic mesh generator that is general enough to satisfy almost all
situations likely to be encountered. The basic idea is to build up a mesh by
stacking together a series of submeshes in each coordinate direction. For exam-
ple, to set up mesh intervals in the x-direction, the x dimension of the problem
is subdivided into a set of NKX intervals. The kfc interval extends from its
left end, XL(k), to the left end of the next interval, XL(k + 1 ) . Within each
interval there Is a location XC(k) where the mesh cells will be smallest. The
number of mesh cells between XL(k) and XC(k) Is specified as NXL(k), and the
number from XC(k) to XL(k + 1) is specified as NXR(k). The minimum cell size in
the interval, which is located at XC(k), is specified as DXMN(k). Using this
Information, the mesh generator expands the cells starting with DXMN(k) at XC(k)
and increases their size quadratically toward both ends of the Interval. If
DXMN(k) is larger than the cell size corresponding to uniform zoning then uni-
form zoning Is produced by the generator. Thus, whenever uniform zoning is
wanted in an interval, it is only necessary to input a large value for DXMN(k),
say the width of the interval. The number of cells to the left and right of the
convergence point need not be equal, but th*"*e must be at least one cell on both
sides.
Any number of submeshes may be stacked together, provided sufficient stor-
age has been allowed for the necessary input data defining these intervals. In
this way it is possible to generate complicated meshes with locally fine resolu-
37
tion around any number of points. Furthermore, there should be no unexpected
numerical stability problems because minimum cell sizes are specified as part of
the input data.
A similar treatment is used in the v-direction in which YL(k) denotes the
low end of the k interval and YC(k) the small .jell convergence point in the
interval. Cell numbers below and above this point for the k interval are
NYL(k) and NYR(k), while DYMN(k) denotes the minimum cell size in the interval.
When periodic conditions are specified in the x-direction, there must be
two cells reserved at the right end of the mesh for the setting of boundary con-
ditions. It is also necessary that these cells have the same sizes as the first
two interior cells on the left side of the mesh in order to insure periodicity.
The mesh generator does this automatically, so the user only needs to input the
dimensions of the periodic interval he wishes to use. However, in setting stor-
age requirements, it must be remembered that periodic meshes need three rather
than two additional cells for boundary conditions. Periodic conditions in the
y-direction are treated in the same way with two cells needed at the top of the
mesh to set boundary conditions, and this fact must be remembered in setting the
PARAMETER statement at the beginning of the code.
An example of the proper format to be used to specify a mesh spanning the x
region LW < X < RW with n submeshes is
NKX=n, XL=LW, XLj., ..., XLn, RW,
XC=XC,, XO,, .... XC ,1 / n
NXR"NR., NR-, .. . „ NR ,
DXMN^DXMNj, DXMN2 ..., DXMNn ,
where NL. represents the number of cells to the left of XC and NR. the numberth
to the right of XC in the i submesh.
. The following is a list of all input variables in the second NAMELIST block
used for mesh generation. This list is reproduced at the beginning of the pro-
gram listing.
1. NAMELIST/MSHSET/.
DXMN(N) Minimum space increment in x-direction in submesh N
DYMN(N) Minimum space increment in y-direction in submesh N
NKX Number of subraesh regions in x-direction
38
NKY Number of submesh regions in y-direction
NXL(N) Number of cells between locations XL(N) and XC(N) in submesh N
NXR(N) Number of cells between locations XC(N) and XL(N + 1) in submesh N
NYL(N) Number of cells between locations YL(N) and YC(N) in submesh N
NYR(N) Number of cells between locations YC(N) and YL(N + 1) in submesh N
XC(N) X-coordinate of the convergence point in submesh N
XL(N) Location of the left edge of submesh N (NKX+1 values of XL(N) are
necessary because the right edge of submesh N is determined by the
left edge of submesh N + 1)
YC(N) Y-coordinate of the convergence point in submesh N
YL(N) Location of the bottom of submesh N (NKY + 1 values of YL(N) are
necessary because the top edge of submesh N is determined by the
bottom edge of submesh N + 1)
D. Variables and Arrays Listed in COMMON
The variables and arrays contained in COMMON are given alphabetically in
the following list with a brief description of each one. Variables already de-
fined in the NAMELIST inputs are omitted from this list.
1. COMMON VARIABLES.
CYCLE Calculational time cycle
CYL Mesh geometry indicator (=ICYL)
DTSFT Maximum DELT value allowed by the surface tension force stability
criterion (DELT is automatically adjusted)
DTVIS Maximum DELT value allowed by the viscous force stability criterion
(DELT is automatically adjusted)
EMF Small value, typically 1.0E - 06, used to negate round-off error ef-
fects when testing F = 1.0 or F = 0.0
EMF1 =1.0-EMF
EM6 =1.0E-06
EM10 =1.0E-10
EP10 =1.0E+10
FLG Pressure iteration convergence test indicator (=0.0 when the conver-
gence test is satisfied, =1.0 when the convergence test is not sat-
isfied)
FLGC Volume of fluid function advection limit indicator (DELT reduced and
cycle started over if limit is exceeded)
39
FNOC Pressure convergence failure indicator (*1.0, convergence failed and
DELT is reduced, *0.0 otherwise)
IBAR Number of real cells in x-direction (excludes fictitious cells)
IBAR2 =IBAR + 2 or IBAR + 3, specified in parameter statement
IMAX Total number of mesh cells in x-direction (-IBAR + 2 or IBAR + 3)
IM1 Value of the index I at the last real cell in the x-direction
(-IMAX - 1)
IM2 Value of the index I at the next to the last real cell in the x-di-
rection (-IMAX-2)
IPL Leftmost pressure iteration index in x-direction (=3 for constant
pressure boundary condition, =«2 for all other cases)
IPR Rightmost pressure iteration index in x-direction (=IM2 fp* constant
pressure boundary condition, =IM1 for all other cases)
ITER Pressure iteration counter
JBAR Number of real cells in y-direction (excludes fictitious cells)
JBAR2 =JBAR + 2 or JBAR + 3, specified in parameter statement
JMAX Total number at meab cells in y-direction (=JBAR + 2 or JBAR + 3)
JM1 Value of the index J at the last real cell in the y-direction
(=JMAX - 1)
JM2 Value of the index J at the next to the last real cell in the y-di-
rection (=JMAX - 2)
JPB Bottom pressure iteration index in y-direction (=3 for constant
pressure boundary condition, =2 for all other cases)
JPT Top pressure iteration index in y-direction (*JM2 for constant pres-
sure boundary condition, =JM1 for all other cases)
NFLGC Number of cycles the volume of fluid function advection limit (FLGC)
is exceeded
NOCON Number of cycles pressure convergence has failed
NP Total number of particles computed to be in mesh
NPRTS Number of particles in mesh, specified in parameter statement (used
to set array size, must be >0)
NREG Number of void regions generated in calculation
NVOR Maximum number of void regions allowed, specified in parameter
statement
NVRM Maximum number of void regions (< NVOR)
40
MESHX Number of subraesh regions in x-direction, specified in parameter
statement
MESHY Number of subraesh regions in y-direction, specified in parameter
statement
PI =3.141592654
RCSQ Reciprocal of CSQ
RHOD Difference in fluid densities (=RHOF - RHOFC)
RPD Degrees to radians conversion factor
SF Plot scaling factor
T Problem time
TANGLE Tangent of contact angle, CANGLE
VCHGT Accumulated fluid volume change
VELMX1 VELMX normalized to minimum mesh cell dimension
XMAX Location of right-hand side of mesh
XMIN Location of left-hand side of mesh
XSHFT Computed shift along the plotting abscissa to center the plot frame
on film
YMAX Location of the top of the mesh
YMIN Location of the bottom of the mesh
YSHFT Computed shift along the plotting ordinate to center the flot frame
on film
2. COMMON ARRAYS.
ACOM(l) First word in common
BETA(I.J) Pressure iteration relaxation factor in cell (I,J)
DELX(I) Mesh spacing of the Ith cell along the x-axis
DELY(J) Mesh spacing of the Jth cell along the y-axis
F(I,J) Volume of fluid per unit volume of cell (I,J) at time level N + 1
FN(I,J) Volume of fluid per unit volume of cell (I,J) at time level N
IP(K) Cell index for particle K along x-axis
JP(K) Cell index for particle K along y-axis
NAME(IO) Problem identification line
NF(I,J) Flag of surface cell (I,J) indicating the location of its neighbor-
ing pressure interpolation cell
NR(K) Label of void region, K > 5
P(I,J) Pressure in cell (I,J) at time level N + 1
PETA(I,J) Pressure interpolation factor for cell (I,J)
41
PN(I,J, Pressure in cell (I,J) at time level N
PR(K) Pressure in void region NR(K)
PS(I,J) Surface pressure in cell (I,J) computed from surface tension force
RDX(I) Reciprocal of DELX(I)
RDY(J) Reciprocal of DELY(J)
RX(1) Reciprocal of X(I)
RXI(I) Reciprocal of XI(I)
RYJ(J) Reciprocal of YJ(J)
TANTH(I,J) Slope of fluid surface in cell (I,J)
U(I,J) X-direction velocity component in cell (I,J) at time level N + 1
UN(I,J) X-direction velocity component in cell (I,J) at time level N
V(I,J) Y-direction velocity component in cell (I,J) at time level N + 1
VN(I,J) Y-direction velocity component in cell (I,J) at time level N
VOL(K) Volume of void region NR(K)
X(I) Location of the right-hand boundary of the Ith cell along the x-axis
XI(1) Location of the center of the Ith cell along the x-axis
XP(K) X-coordinate of particle K
Y(J) Location of the top boundary of the Jth cell along the y-axis
YJ(J) Location of the center of the Jth cell along the y-axis
YP(K) Y-coordinate of particle K
ZCOM(l) Last word in COMMON
IV. PROBLEM RUNNING
A. General Procedure
To run a problem with SOLA-VOF several things must be done. First, the
user must specify the input data defining the mesh to be used. This data is en-
tered in NAMELIST/MSHSET/. All other input data must be specified in
NAMELIST/XPUT/. Except for the time step (DELT), time when to finish (TWFIN),
and print and plot time intervals (PRTDT, PLTDT), all input variables in
NAMELIST/XPUT/ have default values, which are listed at the beginning of the
program. If the default values are acceptable they nead not be redefined in the
input.
Once the input variables have been selected, it is essential to check the
PARAMETER statement at the beginning of the code to see if proper storage re-
quirements have been requested for the problem. The PARAMETER statement has the
form
42
PARAMETER(IBAR2=* , JBAR2* , NPRTS= , MESHX- , MESHY=* , NVOR= ) .
Hie variables named ii this statement are used to set the dimensions of the
COMMON blocks at compilation time. These variables cannot be used elsewhere in
the code. The proper values to be specified for these variables are easily de-
termined from the input data,
NKXIBAR2 = 2 + 5 ] (NXL(k)+NXR(k)) + (I, if periodic in x-direction) ,
k
NKYJBAR2 = 2 + 5 ) (NYL(k)+NYR(k)) + (I, if periodic in y-direction) ,
k
NPRTS - (NPX+IXNPY) + I ,
MESHX - NKX ,
MESHY = NKY ,
and
NVOR = Maximum number of void regions expected.
Actual problem dimensions can be smaller than the values used in the PARAMETER
statement, but never larger.
When special boundary conditions or internal obstacles are wanted that can-
not be set by the proper selection of input data, the user must add these to th?
code in the locations reserved for this purpose. For special boundary condi-
tions, the proper location is marked by a comment at the end of the BC subrou-
tine. To set internal obstacle flags (BETA(i,j) = -l.O), a location in the rou-
tine SETUP is marked with a comment.
The last step in setting up a problem is to insure the proper initializa-
tion of all dependent variables. Input data is available for defining an ini-
tial uniform velocity (UI,VI) and a horizontal interface of height FLHT. For
other fluid configurations it is best to input FLHT = 0.0 and then program in
the desired distribution in the location indicated in che SETUP routine.
43
Thus, the general setup procedure for SOLA-VOF is relatively easy and
straightforward. To summarize, the necessary steps are:
(1) Set mesh generator input data.
(2) Set remaining input data if not correctly defaulted.
(3) Check PARAMETER statement for memory size.
(4) Set special boundary conditions and obstacles, if needed.
(5) Set special initial values for dependent variables if not covered by
input data.
B. Sample Test Problem
To help the new user get started, the SOLA-VOF program has been set up to
solve a simple problem. Results from our calculations for this problem are pro-
vided in this section.
When a horizontal layer of water is pushed into a rigid, vertical wall
there will be a step wave, or bore, produced that runs away from the wall. If
the incident velocity is not too great, the bore front will have an undular
shape, but at sufficiently high velocities the bore front will break and be
highly irregular. In either case, conservation of mass and momentum principles
may be used to derive "jump" conditions that should exist across the bore
transition.
SOLA-VOF was used to compute the undular bore evolution shown in Fig. 8.
The initial configuration in Fig. 8a consists of a uniform mesh of 20 cells in
the horizontal direction (Sx - 0.6) and 8 cells in the vertical direction (5y =
0.2). Fluid initially fills the lowest five rows (depth 1.0) and is uniformly
moving to the right with unit velocity. The right, bottom, and top walls are
rigid free-slip boundaries. At the left boundary, a continuative boundary con-
dition is used, which allows a continuous input of fluid that prevents any waves
from being generated there. Gravity acts downward with unit magnitude.
Although this problem is very coarsely resolved, the results are remarkably
good and provide a nice check on mass and momentum conservation. The computed
jump height at the right wall is 1.210, whereas theory predicts 1.209.
The coarse mesh calculation took 14 s of CDC-7600 computer time to complete
48 cycles of calculation. No special boundary conditions or other modifications
are needed for this problem. Thus, it can be set up completely with the follow-
ing input data lists. Input data used to set up the mesh are:
44
Fig. 8.
Velocities and free-surface configuration for undular bore calculation. Times are0.0, 4.0, 7.0, and 10.0.
NKX=1, XL=O.O, 12 .0 , XC-6.0, NXL=10, NXR=*10, DXMN-0.5
NKY=1, YL=0.0, 1.6, YC=0.3, NYL=4, NYR=4, DYMN-0.2.
The remaining input data a r e :
DELT-0.2, FLHT=1.0, GY=-1.0, PLTDT=1.0, PRTDT*5.0,
TWFIN=12.0, U I - 0 . 2 , VELMX=*0.2, WL=3, AUTOT-0.0.
Results from cycle zero (the setup), from cycle 1, and from t • 10.0 (cycle
50) are contained in the following long print listings that are output on paper.
45
1TEH-SOL* - VOf UNOJLAR SORE COWARrSON
IHC- 0 . OELT- S.OOOOOE-OI CYCLE- VCHOT- S.6M00OE-O6
£££
£
£3333333333
14>t
M
5
I J1s3H5E7B9
10!?
3••
S6789
101e3
56789
101?3M
567B9
10I
K VOLIK)6 7.S0000E*
U
2.000D0E-0IS.OOOOOE-OIS.OOOOOE-012.00000E-0IS.OOOOOE-OIS.OOOOOE-OI2.00000E-OI0.D.0 .S.OOOOOE-OIS.OOOOOE-OIs.oooooe-oiS.OOOOOE-OIS.OOOOOE-OIS.OODOOE-01S.OOOOOE-OI0 .0.D.S.OOOOOE-OIS.OOOOOE-OIS.ODOOOE-01S.DDDOOE-OJ2.0000DC-01S.ODOOOE-OIS.OOOOOE-OI0.0.0.S.OOOOOE-01S.OOOODE-0!S.OOOOOE-012.00000E-01S.OOOOOE-01S.OOOOOE-01S.OOOOOE-010 .0.0.S.OOOOOE-01
PR<K>
oa o.V
0.0.0 .0 .0 .0 .0.0.0.0.0 .0.0.0.0.0 .0.0.0.0.0.0.0.0.0.0.0 .0.0.0.0 .0 .0.0.0.0.0.0 .0 .0 .0.
p9.00000E-019.00000E-017.00000E-OI5.00000E-013.00000E-0II.OOODOE-010.0.0.0.9.00000E-0I9.00000E-OI7.00000E-015.000D0E-0I3.00000E-OII.OOOOOE-OI0.0.0.0.9.00000E-01S.BOOOOE-017.00000E-015.00002E-013.00000E-01l.OOOOOE-010.0.0.0.9.00000E-019.00000E-017.0000UE-015.00000E-013.00000E-01l.OOOOOE-010.0 .0.D.9.00000E-01
333333300000000.0.0.0.0.0.0.0.0.0.0 .0.0.0.0.0.0.D.0.0.0.0.0.0.0.0.0.
033333E-0I33333E-0133333E-0133333E-0133333E-0133333E-0133333E-01
PS0.0.0.0 .0.0 .0.0.0.0.0.0.0.0.0.0.0.
o.0 .0 .
0.0.0.0 .0 .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .
0.
F!.00000£«001.00000E*00i.oooooe«ooi.oooooe«oo1.00000C-.009.99999E-010.0.0.0.1. OOOOOOOOI.O00OOE*00i.oooooe«ooI.OOOOOC'OO1.000000009.99999E-010.0 .0 .0 .I.O000OE»O01.00000E«00I.OOOOOC'OOI.OOOOOE*OO1.000000009.99999E-010.0.0.0.1.00000000I.O000DE*00I.CO00OE»00l.OOOOOE'OO1.000000009.99999E-010.0 .0.0.1.00000E+00
NF0000000000000003 (666000000
3 e6660 10 10 10 10 10 13 E6 16 15 10 10 1
PET*1.00000000I.OOOOOE-00l.OOOOOE+00I.OOOOOE-001 .OOOOK-001.00000000I.OOOOOE'OO1.00000000I.OOOOOC'OOi.oooooe»oo1.0D00MX301.00000E*00
.OOOOX'OO
.OOOOOE^OO
.OOOOOE^OO5.66667E-01
.OOOOOE'LO
.ODDOOE'OO
.oooooe->DO-OOOOOE^OO.OOOOOE^OO.OO00OE«0O.O0O0OE*O0.OOOOOE'OO.00000£<00
>.66667E-OI.OOOOK-00. 0 0 0 0 0 0 0 0.OOOOOC'OO.OOOOOE'OO.OOOOOC'OO
.00C30E«00
.JOO0O£^0D
.OOOOOE'OO
.O0O0OE«O0
.66667E-01
.OOOOOEtOO
.OOODCE-00
.OOOOOE'OO
.OOO00E«OO
.OOOOOE'OO
46
00*300000'[00*300000-I00*300000-100*300000-1 •00*300000'11Q-3L9999'900*300000'I '00*300000-100*300000-100*300000'!00*300000'!00*300000'!00*300000'!00*300000'100*300000'!I0-3£9999*900*300000'I00*300000'!00*300000'!00*300000'!00*300000'!00*300000'!00*300000'!00*300000'!00*300000-!!0-3i9999'900*300000'I00*300000'!00*300000'100*300000'!00*300000*100*300000"!00'300000'!00*300000"!00*300000'I[0-3£9999'900*300000"!00*300000"!00*300000"!00*300000"!00*300000"!00*30000U"I00*300000"!00*300000"I00*300000•110-31.9999-900*300000"1oo*3ooooo"r00*300000'!00*300000"I00*300000'I00*300000"I00*300000*100*300000'!00*300000"1I0-3L9999-900*300000"!00*300000"100*300000"I00*300000"!
00999£000000999£000000999£000000999£000000999£000000s99£000
a
00*300000' I'0000
10-366666 600*300000'00*300000'00*300000*00*300000*00*300000*
0000
10-366666'600*300000*00*300000'00*300000'00*300000"00*300000'
00
'00
10-366666600*300000"!00*300000"100*300000"100*300000"!00*300000"!
0"000
10-366666-600*300000'100*300000"!00*300000"!00*300000"100*300000'!
0000
10-366666 B00*300000'100*300000!00*300000 100*300000'100*300000'!
00
"0"0
10-366666-600*300000"100*300000"!00*300000'1OOO-'OOOO'I
•o
•o'0'0•o'0
•o•o00000
'00•o•o0
'0'0'00
•o00
'0'0000
•o00
•o0
•o•o'0•o•o00
•o•o0
•o'0•o•o0
•o0
•o0
•o•o"0•o"0"0
0000000
'00
'000000000000000000
'0•o'0'0000000000000
•o
•o•o•o0
•o0
'0•o
•o•o"0"0"0
•o"00
10-3000006•o•o•o•o
10-300000'110-300000'£I0-3O00P1-SI0-3000bfl-i.10-300000'610-3000006
•o•o•o'0
10-300000'110-300000'£10-300000'S10-300000 L10-300000-610-300000*6
•o•o'0'0
10-300000'110-300000 '£10-300000"S10-300000'/.10-3000006IO-3OOOOO'6
0•o•o0
10-300000'110-300000"£10-300000*510-300000'i.!0-300000'6!0-300000"6
"0"0"0"0
10-300000" I10-300000 £IO-300000'S10-300000't10-300000-610-300000 S
•o•o'00
10-300000'1IO-300000'EIO-300000'S10-300000'i.10-300000 6
0•o00•o0
•o000
•o•o000
•o•o•o0000
•o0•o00
•o0
•o"0"0•o
•o•o0
•o'0"0"0•o00
•o•o•o'0•o•o•o'00
•o'000
•o000
lo-sooooo-a'00
'0!o-3ooooo*aID-300000-aio-3ooooo'a!0-300000"S10-300000"5i0-300000-aio-3oooao'a
'0'0
•o10-300000 "SIO-300000'Sio-30oooo'aIO-300000'SI0-30000C3IO-300000'SIO-300000'S
"0"0"0
10-300000310-300000'2lo-sooooo-aIO-300000'SIO-300000'Sio-30oooo-aIO-300000'S
'0•o"0
10-300000-2IO-300000'SIO-300000'S10-300000310-300000'3(0-300000-310-300000*3
0"0"0
10-300000-310-300000*310-300000*310-300000'S10-300000-310-300000-310-300000-3
0•o•o
10-300000-310-300000-3to-300000"210-300000*3I0-300000'3[0-300000-3
1016
sI9S»!£310168L99"1
£3I016
aL99fl
£3I0168L9
sh£310!68L99
£310!
BL95h£3
II010101010!0101010!0!66666666668888888888LLILLLLLLL99999999999S5SS
ss99
00*300000'00*300000•00*300000'00*300000'00*300000'I0-3L9999'00*300000°00*300000'00*300000'00*300000"00*300000"00*300000'00*300000°00*300000'00*300000"I0-3L999S-00*300000"00*300000'00*300000'00*300000'00*300000'00*300000'00*30C(KO'00*300000•00•^00000•I0-3£9999"<00*300000'C0*300000'00*300000'00*300000'00*300000'00*300000'00*300000"00*300000'00*300000'10-3^9999'S00*300000'00*300000'00*300000'00*300000'00*300000'00*300000*100*300000'!00*300000'!00*300000'!10-3^9999'S00*300000'100*300000-100*300000'100*300000°100*300000'!00*30000C'[00*300000'!00*300000'100*300000'(lO-3i.9W9'S00*300000'I00*300000'!00*300000'!00*300000"!
I 0( 01 91 91 99 EI 0I 0I 01 0I 0I 0! 9I 91 93 £1 01 01 0
000999
i £000000999
» £000000939£000000999£0000
00*300000'1'0'000
'0-366666'600*300000'!00*300000'!00*300000'!00*300000°!00*300000°!
'0'0'0"0
IO-366666"600*300000"100*300000'!00*300000'!00*300000'!00*300000'1
0000
10-366666-600*300000'100*300000-100*300000'!00*300000'!00*300000'1
0000
10-366666-600*300000'!00*300000'!00*300000'!00*300000'!00*300000'!
•o•o•o'0
10-360666-600*300000'!00*300000'!00*300000'!00*300900'!00*300000'!
'0"0"00
10-366666-600*300000')00*300000')00*300000".00*300000'!
•o•o0
•o00
•o00
•o•o000
•o
•o0000
•o000
•o•o00000
'0
•o00
'0•o•o0
•o0
•o00
•o
•o'0° 0
•o0
'0•o•o0000
°000
0'000
•o'0
•o0
•o'0'0•o0
•o000
°0'0'0'00000
'0° 0
'0'0'0'0•o•o00
'0•a°0° 000
'0'0'0'0'0•o•o•o00•o•o00
'0•o
•o'0'0
[0-300000'6'00
•o•o
10-300000'110-300000'£I0-300000S10-300000'£I0-300000'610-300000-6
•o•o•o•o
10-303000'1i0-300000'£IO-300000'S10-300000'i.10-300000610-3000006
•o•o•o
•o10-300000'1I0-300000'£IO-300000'S10-300000'L10-300000-6'0-300000*6
•o•o•o•o
10-300000'I10-300000 £10-300000'6I0-300000'tIO-300000'S10-300000-6
•o•o00
10-300000'!10-300000'£I0-300000S10-300000't10-300000-610-300000'6
'00
•o'0
10-300000'110-300000'£IO-300000'SIO-300000'lIC-300000'6
'0•o0
•o'000
•o•o00000
'00
'0'0'000
'000
•o0
•o0
•o•o•o•o•o00
•o'0•Q
•o0
•o•o•o0
•o•o•o•o•o•o0
•o0
•o•o•o•o
•o•o•o
10-300000 20
'00
IO-300000'SIO-3OOOOG°310-300000'Si0-300000-aio-3ooooo aIO-300000'S10-300000-3
"0'00
10-3000002io-3ooooo a10-300000 210-300000-210-300000-3i0-300000-a10-300000 2
00
'010-300000'Sio-30oooo-a10-300000-2IO-M0000210-300000-2IO-3OOOOO'2
10-300000 a•o00
10-300000-2tO-300000'210-300000-210-300000-210-300000-210-300000-210-3000002
•o'0'0
10-300000-2I0-300000'2I0-300000'2io-30oooo'aio-3ooooo'a10-3000002I0-300000'2
00
'010-300000210-3000002I0-30COOO'210-300000*2•0-300000-210-300000 2
10!6BL9
sh£210168L99h£2I0168L9
sh
£2!0168L95•l
£210168L9stl
£210168L9sh
£2
L\9191919191919191919151SISISISISISIstSI91hi
h ih i
»llhi•tl•ll*llhihi£1£1£1£1£1£1£1£1£1£121212131
atSIaiaiai21IIIIIIIIIIIIui iII
6'.
00*300000"!00*300000-100*300000*100*300000"!00*300000•100*300000-100*300000'!00*300000'100*300000-100*300000-I00*300000-100*300000'!00*300000'.00*300000-110-3Z.9999-900*300000'!00*300000'!00*300000-100*300000'100*300000-100*300000'!00*300000-100«300000'l00*300000'!I0-3L9999 900*300000'!00*300000"r00*300000"!00*300000-100*300000-100*300000'!00*300000-100*300000'!00*300000'!!0-3i.9999"900*300000'100*300000'100*300000'!00*300000'!00*300000'!C0*300000'l00*300000'100*300000-100*300000'1I0-3L9999 900=300000'100*300000'!00*300000"100*300000'!00*300000"I00*300000"!00*300000"C00*300000'I00*300000'!!0-?C9999'900*3^3100'I00*300300'I00*300000°!00*300000"I
00000000000g99£000000999£000000999£000000999E000000999E0000
000
•oI0-366666'600*3011000'!00*300000'!00*300000-C00<- 300000 "I00*300000'!
•o
•o•o0
10-366666 600*300000!00*300000'!00*300000'!00*300000'!00*300000-1
•o
•o00
!0-366666'600*300000-100*300000"100*300000 100*300000'100*300000'!
•o00
-o10-366666-600*300000'!00*300000'!00*300000'!00*300000'!00*300000'!
•o•o'00
I0-36S666-600*300000" 100*300000'!00*300000'!00*300000'100*300000'!
"0"0"0'0
10-366666-600*300000-t00*300000'!00*300000'100*300000*1
•o•o•o'0
• - 0
'00
'0000000
•o'0'0'00
'0"0•o•o
•o'0000
•o
•o•o•o0
•o00
'0•o•o•o•o'00
•o0
-o•o•o•o
•o•o•o0
•o
•o•o•o•o•o
•o•o•o000
•o•o•o•o•o
•o•o
10-3^.9999'9-•o
!0-3£££££'£-!0-3£££E£-E-!0-3££££E-£-!0-3ES££E-£-10-•«•££££•£-
'000
•o0
•o•o•o000
•o•o•o•o"00000
•o0
'0
•o'00
'0
•o•o•o•o•oa
•o
•o•o•o•o•o
0
•o00
10-300000'I10-300000'£10-300000 S10-300000'Z.10-300000610-300000-6
'0'00
•o10-300000'110-300000'£10-300000 S10-300000-LIO-3OOOOO"610-300000-6
•o•o00
10-300000'110-300000 £10-300000'S10-300000-iI0-300000'610-300000-6
•o'00
•o10-300000"!!0-300000"E10-300000"S10-300000'i.10-300000'S10-300000 6
00
'0
•o10-300000-110-300000'£10-300000-S10-300000-L10-300000'610-300000 S
•o•o•o•o
10-300000"I10-300000-£10-300000"S10-300000'£10-300000' 6
•o•o•o0
'00000
•o'0000
30-3t9999"9"0"0•o000
•o•o•o•o0
•o
•o•o"00
•o•o0
•o0
•o•o•o•o
•o'0•o
•o•o'0
•o•o•o•o•o"0"0"00
•o•o0
•o
0•o0
'0'0•o00
'0
•o0
•o00
'0'000000
'0•o
10-300000 210-300000-310-300000 310-300000?10-300000'310-300000310-300000-2
•o
•o"0
10-300000'310-300000-310-300000310-300000310-300000-310-300000-3IO-300000'S
•o•o
•o10-300000-3I0-300000 310-300000'310-300000-310-300000'310-300000 310-300000 3
•o00
10-300000310-300000'310-300000-SIO-3OOOOO"3I0-300000°310-300000-3
0168L9S«!£3I0168L99•l
E310168L9S
£ei0 !68L9Sh£3I0168L9Sh£310168L9Sh£3
S3333333333 33 3333333131313131313131313130302030303030303030 3SI61616 !6 !616 !616 !61818181818181818 !8181Ut\L\L\L\L\L\L\L\
ITER-SOLA - VOT UNDULAfl BORE COMPARISON
T l « » g.OOOOOE-OI DELT- 2.000006-01 CYCLE- VCHGT- 8.82104E-K
£
I J1 1
2345
e7B9101
2 2ccS£25EE33333333334444444I*
4455555555556
345678910
234567891012345S78910123456789• 01
K VOUIKJ6 7.I6006C-
U2.00000E-012.000D0E-012.00000E-OIa.oooooE-oi2.00000E-01a.oooooE-oi2.00000E-010.0.0.2.00000E-012.00000E-01a.oooooE-oi2.00000E-012.00000E-OIa.OO000E-3la.oooooE-oi0.0.0.a.oooooE-oia.oooooE-oi2.00000E-OIa.oooooE-oie.OODDOE-012.00000E-01S.0000DE-010.0.0.S.OO00OE-01a.oooooE-oiS.OOOOOE-OI5.00000E-0!s.oooooe-oie.oooooE-oi2.00000E-010.0.0.2.00000E-OI2.00000E-0I2.00000E-012.00000E-012.00000E-012.00000E-0I2.00000E-0J0.0.0.a.oooooE-oi
PRCK)00 0.
V0.0.-2.84ai7E-l50.0.
-I.OOOOOE-OI0.0.0.0.0.6.61I66E-09I.4I900E-092.40787E-083.B0960E-085.9067IE-080.0.0.0.0.3.88049E-097.S6714E-091.09e90E-081.36710E-OBI.457DHE-080.0.0.0.0.1.78349E-093.298IBE-09V.S62N8E-095.43469E-095.73995E-090.0.0.0.0.5.96567E-101 .22545E-091.9253SE-092.693I6E-D92.99773E-090.0.0.0.0.
p9.00000E-019.00000E-017.00000E-015.00000E-OI3.00000E-019.99998E-020.0.0.0.9.00000E-OI9.00000E-0I7.00000E-OI5.0000BE-013.00000E-OI9.99996E-020.0.0.0.8.00000E-01S.OOOOOE-OI7.00000E-OIS.OOOOOE-OI3.00000E-OI9.99998E-0E0.0.0.0.9.00000E-019.00000E-017.00000E-015.00000E-013.00000E-OI9.999S8E-020.0.0.0.9.00000E-OI9.00000E-OI7.00000E-OI5.0000K-013.0D000E-019.99999E-0E0.0.0.0.9.000D0E-0I
03.J3333E-013.33333E-013.33333E-013.33333E-0I3.33333E-0I
-I.GB667E-0!B.33333E-0I0.0.0.-3.C7I9IE-083.39294E-10-1.809UE-11-2.86 34 aE-11-3.497I8E-II0.
-4.00191E-070.0.0.
-].89524E-0e5.50IIIE-10-6.6B083E-11-B.2SS5HE-11-8.06486E-I1-2.646S8E-23-7.73487E-080.0.0.
-8.4099K-095.07S08E-IO-3.30926E-I0-3.62697E-ID-2.I7964E-I01.985S3E-23
-3.02S61E-080.0.0.
-5.08350E-09-2.I0066E-09-2.7la90£-09-2.37965E-09-7.29E96E-10].33349E:-23
-1.65115E-080.0.0.
-I.70403E-08
PS0.0.0.0.
c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0'.0.0.0.0.0.0.0.
Fl.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-009.99S8SE-010.0.0.0.l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-009.9999SE-010.0.0.0.l.OOOOOE-00l.OOOOOE-00l.oooooe-oDl.OOOOOE-00l.OOOOOE-009.99999E-0!0.0.0.0.l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-009.99999E-010.0.0.0.l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-009.99999E-0I0.0.0.0.l.OOOOOE-DO
tf00000000000000036660000003666000000366600D000366
e00
PET Al.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00I.00030E-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-006.66667E-01I.OOC0DE-OOl.OOOOOE-00I.OOOCOE-00l.OOOOOE-00I.DOOOOE-00I.OOOOOE-DDI.OOOOOE-ODl.OOOOOE-00l.OOODOE-OD6.66667E-0!l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00l.OOOODE-001.OOODOC-OG1.OOOQOE-001.OOOODE-00I.OOOQOE-OS6.GG667E-01l.OOOOOE-00l.OOOOOE-00l.OOOOOE-00i.oDoaoe-ODI.OOOOOE-ODl.OOOODE-00l.OOOOOE-00I.ODOOOE-00I.O00C1OE-0D6.66667E-01I.ODOOOE-00l.OOOOOE-00l.OOOOOE-DOl.OOOOOE-00l.OOOOOE-00
50
666E666667777777777B8888B88889999999999
1010to1010101010101011J]111111111111I II IIS
e3•*S6789
10t23>i
56789
10I23<•
567
e9
10I
a3««56789
101
e3<i
367S9
101a3
56789
101
2.00000C-OI2.00000E-012.00000E-0Ja.oooooE-oie.oooooe-oie.oooooe-oi0.0.0.a.oooooc-oia.oooooE-oiB.OOOOK-01a.oooooE-oi?.oooooe-oiS.OOOOOE-012.00000C-OI0 .0.0 .<?.OOOOOE-OI2.00000E-OIe.oooooE-oi2.00000C-OI2.00000E-012.0000K-012.00000E-010.0.0.1.99998C-011.99S9BE-DI1.90S9BE-C11.WB98E-011.990991-012.00000C-OI1.99099E-DII.99099E-0I0.0.1.99B9ME-0II.99994E-0I1.9B99HE-DII.9999SC-DII.99997C-0II.99999E-0Il.g999K-01I.99999E-DI0.0.I.99981E-011.9998IE-011.9998SE-Q11.99985E-011.99990E-011.99997E-011.99997E-0I1.99997E-010.0.I.99945C-0I
-I.M327E-09- • .K79IE- I0
1 .B4757E-095.<»339S£-096.7HW1E-090.0.0.0.0.
-l.5762«E-0e-6.0670SC-09
1.090SIE-083.1PW6E-083.8131IE-080.0.0.0.0.
-7.e».MX-oe-7.76979E-097.93B6SE-08l.7ml3E-071.9B*57E-070.0.0.0.0.
-e.3iaT7E-078-050J1E-OSH.33H7SE-077.6177>«£-07B-milSE-OT3. IV768E-060.0.0.0.
-••.9I897E-076-9I921E-07i .ssxsv-oe2.88863E-063. C766E-063.m768E-060.0.0.0.
-N.16397E-073.3951tE-066.9282SE-069.67837E-06I.CN027E-05I.II571E-050.0.0.0.
s.oooooe-oi7.00000E-OIS.OOOOOE-Ol3.00000E-DI9.999ME-0S0.D.0.0.9.00000E-OI9.03000E-OI7.00000E-01S.00030C-OI3.00000E-OI9.99B98E-0a0.0,0.0.9.00000C-OI9.00000E-017.00000E-OI5.00000E-OJ3.00000E-019.99999C-0S0.0.0.0.9.00CC1E-OI9.0000IE-f>'7.00001E-01S.OCCS:E-CI3.0000IE-01l.OOOOOE-010.0.0.0.9.0000GE-019.00006E-017.00007E-015.00006C-0I3.000CNE-0II.OOOC1E-0I0.0.0.0.9.0002ME-0!9.0009XE-0I7.0DOS5E-C15.000S1E-01S.OBOItE-O!l.OOOOSC-010.0.0.0.9.000BIE-01
-Z.M967E-06-I.T7799E-08-I.2205OE-O8-7 .931ME- I0S.29398E-23
-H.osieK-oe0.0.0.
-1.0MB7E-07-l .»»HIE-07-B.076HX-Oe-4.29506E-08
I.08999E-080.
-2.JJOME-070.0.0.
-5.e7736E-07-8.909S8E-07-a.SS»91E-07-9.»t97BE-0e8.v*728E-oeB.*»I1OE-21
-I.I07SOE-060.0.0.
-a.iaiosE-06-3.280CNE-06-6.ai«tiaE-07-S.a>«8G3E-073.61067E-07
-S.OKSX-Sl9.78069E-0E3.333IEE-0!0.0.
-7.B3081E-06-9.69C30E-06-l.iaH99E-067.9E^7IE-0eI.13622t-06I.3S529E-200.
-1 .5738ME-050.0.
-2.I8103C-05-2.399E3E-05-1.MS997E-069.46525E-07S.aBSBiE-Oe
-1.3S5a5E-aOt.06576E-aO
-5,9a575E-030.0.
-6.05153E-D5
0.0.0.0.1 .
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
I.OCOOOC»00].0OO00E*00l.DOOOOE'OGl.OOOOOE'OO9.9MOK-010.0.0.0.1.00000000l.OOOOOE'OO1.000000001.00000£*00I.OOO00E>00S.99909C-O10.0.0.0.l.OOOOOE-DDi.oooooe-ooI.OOOOOE^OOI.OOOOOE'OOI.OOOOOE-009.99999E-010.0.0.0.1.OODO0OOO1.00000E«00].OOOOOE«001.COOCOE«GSi.oooooe»oo9.99999E-010.0.0.0.1.0000DC*00!.O00O0E«00!.O00O0C*OO].O00OOE*D01.00000£»00i.OOOOOEi-002.0U766E-060.0.0.i.oooooe«ool.ooooDe-oo1.0DOOO£»00l.OOO00E<00l.OOOODt-00i.onoooE<oo9.3027HE-06C.0.0.1,00000£«00
00003666000000366600000036660000003666000000036600000001
6600
1.0000K»00l.OOOOOC-001.OOOOOE'OOI.OOOOOOOO6.0e667E-01l.OOOOOE-DDi.oooooe-col.OOOOOE-00I.OOOOOE'OOI.OOOOOE-COI.OOOOOE-00I.OOOOOE'OOI.OOOOOE»OOl.OOOOOE-006.88667E-01l.OOOOCC'DOl.OOOOOE-OCl.OOOODE'OOl.OOOOOE-00l.OOOOOE-DOi.oocooe-ooi.oooooe-ooi.oooooe-oo1.OOOOOE-006.M667E-01i.oooooe-oo1.OOOOOE-00! -OOOSOE-OCI.OOOOOE-00I.OOOOOE-00I.OOOOOE-00I.OOOODE-00I.OSOOOE-GSl.OOOOOE-006.66667E-0 Il.OOOOOE-00l.OOSOOE-00l.OOOOOE-00J.OOOOOE-00l.OOOOOE-00J.OOOOOE-00l.OOOOOE-001.OOOOOE-00l.OOOOOE-OB5.665714E-011.99999E-0Dl.OOOOOE-00l.OOOOOE-00l.OOOOOE-OCl.OOOOOE-ODi.aooooE-ooJ.OOOOOE-OCi.aooooE-ool.OOOOOE-005.6658IE-011.9999K-00l.OOOOOE-00l.OOOOOE-00l.OOODOE-00I.OOODOE-00
51
ISISISISISISISISIS13131313131313131313I t111H
mmi il>4
IH
mi ti s151515151515151515161616161616161616161717171717171717171718
S3•»56789
10133
567a9
10i23<•
56789
101
S31
567a9
101?3H56789
101Z31
S67as
101
I.9BBHK-011.9BBw«E-0I1.9S9SK-011.99973E-0I1.9BB9IE-0II.9699IE-0I1.99MIE-0I0.0 .I.99ff»9C-0!I.99B19E-01I.9B86IE-0I1.998B9C-01I.9BB29C-0II.9B978E-0II.99976E-0I1.99978E-010.0 .1.996Q5E-0II.99BKE-0II.996M1E-0Il.937mE-011.99BI7E-011.99939E-011.99939E-0I1.90939E-OI0 .0 .1.989»»E-01l.9B9»«e-011.99089E-011.99e77E-011.99538E-0Il.999t6C-0lI.99BXK-0II.9BBWGE-0I0 .0 .1.97H69E-0I1.97H69E-01l.977l>fE-011.9B188C-011.98843E-01l .986lfE-0ll .99ElfE-0!I.99GHE-0I0.0 .1.93678E-011.9367BE-01l.»»S95e-0l1.9*176E-011.97I10C-011.99037E-01I.99037E-OI1-99OI7E-010 .0 .l.eHS90C-OI
I.9I5SIE-06) 2039K-D52.25M3E-0S2.990ME-05I.ItWOC-OS3.37>5l£-050 .0 .0 .0 .I.30290C-MH.82197E-0S6.S7W2E-0SB.3T79JE-05B.M00SC-059.37aiSE-050.0 .0 .0 .M.9R751E-051 ?f65IE-CN1.8573BE-01S.M83IE-0HS.39S30E-01S.5I6S8E-0H0 .0 .0 .0 .I.96920C-043.13G9K-01H.9H10at-0H5.9e957E-0H6.23938E-CK.6.519SOE-0*0.0 .0 .0 .>).i36aeE-o><9.08BBK-0>41.27e0K-03I.SI679E-031.99399C-031.67II9E-030 .0.0 .0 .1.IB093E-03S.la&tH£-0Z3.AI9K-033.83013E-03t.MSW£-C3>i.ai9eoe-o33 .0.0-0-
9.00M1E-OI7.00079C-0I5.00067E-OI3.000HSE-OII.000I9E-0)0.0 .0 .0 .9.0DZHK-019.00e<<K-OI7.00S3V-01«.ooi9ae-oi3.00126£-01I.00OM2C-0I0.0.0.0.9.00700C-019.00700C-OI7.008SOE-OI5.005S6E-0I3.oo3><oe-oiI.00113E-010.0 .0 .0 .9.0H8ME-0I9.0i8eHE-0l7.017S7E-OI5.0136X-013.00BB9E-01I.OOaSGE-010.0.0 .0.9.0490SE-DI9.0190BE-017.0H159E-0I5.03S6eE-0l3.0S27SE-011.00759E-010 .0 .0 .0.9.ISH96C-019.1SS9K-017.U31K-015.De987E-0l3.05715E-011.0I915E-0I0.0.0.0.9.3IM6X-0I
-5.0SaME-09-9.»»9>»K-073.I3237E-066.J09SK-06
-5.MSIU1E-S01.0»<?OE-19
-1.76K1E-0H0.0.
- l .MIHC-O*- 9 . ION OK-OS
1.30MEE-067.3WW3E-061.10H»*E-OS
-I.O**eOE-l93.25S6IE-19
-* .axi3E.-en0.0.
-••.0601SE-04-I.56I37E-015.25Sac-06i.isasec-os1.9MM3E-05l .3010*£- ie
-z. lamoe-iB-1.320I3E-030.0.
-I.019*3E-03-2.3NBJ3E-0H
1 .H3269E-052.373B9E-052.99I50C-05
-I.73»*72E-1BB.8736aE-19
-3.13951E-030.0.
-2.BH181E-03-J.237OaE-OH2.517H8E-053.H«.eie-05H.09831E-05I.96125C-I7
-I.21H31E-17-e.7m79E-03
0.0 .
-6.317B9E-03-H.IK38E-O1
3.7e637£-054.7K06E-055.B7331E-05
-I.H2pi7E-161.W083E-17
-2.eO3B7E-Oe0.0.
- I . 9 6 V 6 K - 0 2
0.0.0.0.0.&.0.0.0.0.0.0.0.0.l».
0.0 .0 .0 .0 .0 .0.0.0 .0 .0 .0 .0 .G.0 .0 .0.0 .0 .0.0.0.0 .0 .0 .0.0 .0 .0 .0 .0 .D.0 .0.0.0.0.0.0.0.0.0.0.0.0.
I.OOOOOC'OO).0OOO0C*00i.oooooc*oo9 .MBME-0!l.OOOOOE'OO3.03^60E-090 .0 .0 .1.0OO00E-00l.0O0OOE*00l.DOOOOE'OO9.SB99K-019.9BB9K-01i.oooooe*ooB.77001E-050.0 .0 .I.OOO0OE*00I.OOOOOE-DD9.9BBBK-0I9.99997E-0I9.99B9BE-01I.OOOOOE*00a.38130E-0H0 .0 .Q.
i.oooooe*O9I.0O00X-009.99997E-0I9.9999K-0I9.990KC-O]!.O0OC0C*006.Sae3BE-tN0.0 .0 .I.OO000C»OO1.00000E-009.99995E-019.90993E-019.99B9SE-011.00DO0C*OO1.59e85E-030.C.0.i.oooooe*ooi.oaoooe*oo9.9999EE-019.99990E-019.999BSE-01I.OOOOOE<00•..08156E-030.0 .0 .1.00000E*00
000003660000000366000000P366S000000366000000036600000003
600
1.OOOOOE-00I.OOOOOOOOI.OOOOOOOO>.ocnooc*ooS.M60ZE-0I1.9MHE*00i.oooooc-:-1.00000E*CCI.OOOOOE-001.OOOOOE-00I.OOOOX'BDl.OOOOOE'OQ
t.oooooooo1.0O000C«005.«aa5K-oil . f lMMC*001.0OOO0C*00l.OOOOOE-00I.OOOOX'DOI.OOO0OE*C01.000000001 .DO000E*00i.oooooe-oo>J.OOOOOE*0D
'i.eaaoee-oi1.99B05E*001.0O00K*001.0000DE»00t .0SCS8C«8C1 OO0OOE*00l.0O000E*00l.OOOOX'OD1-oooDoe-oo1.OOOOOC'OOS.671B>>E-D11.99751E*001.000DOE*00i.oooooe*ooi.oooaoE-ooI.O0000C*00I.OOOOOC-DDl.OOOOOt-00l.00O0OE*00l.OOODOE'OO5.6ei36E-011.99365E-00I.O0O00E*OOI.00000C-D5I.OOOOOE-00I.OODOOE*ODl.0O00OE*00l.COOOOE-CO1.00000E*001.00000E*005.70518E-0]l.MMOSE.OO. oooooe*ooI.OOOO0C*00I.OOO00E*OOI.OOOOQE*OD
52
IB1818181818181818191919191919191919ISSO20sososoao20BO30so2151ats\21£121SI2121SSSBSBSSasSSas22S2S2
a3
567B9
101
a3
S6t
e9
10Ia3H5
e789
101
a3456789
10153456789
10
t.*«s9oe-oi1.8579K-DIl.aSMK-01I.927MC-0!I.5T7M5E-OIl.97S«5£-0l1.97985E-0I0.0.1.6.J11E-0II.61IME-0I1.64739E-0II.71532E-0II.81V50E-0II.93BI7E-01I.93B17E-0II.93817E-0I0.0.I.OTrtlE-01I.074S1E-OII.IStOHE-OI1.2GS5ME-01l.UBlOX-Ol1.B270IE-01I.B270IE-OIi.8a70iE-010.0.0.0.0.0.0.0.0.0.0.0.0.0 .0.D.0.0.0.0.0.0.
3.03067E-035.87390E-038.IHW70E-039.609IHE-03I.0093IE-OS1.0S770E-0S0.0.0.0.7.*»e77E-031.1579BE-02?.03l57E-02a.iaoBBc-os5.53548E-0SS.66109E-0e0.0.0.0.I.78943E-0S3.49598E-0S5.00677E-026.II991E-0S6.H90H4E-0S6.8S097E-0e0.0.0.0.3.569*SE-027.35I05E-02I.1S6IIE-011.6>i995E-0!2.2589K-01S.86795E-0I0.0.0.0.3.56945E-027.3SI05E-021.15611E-0I1.64995E-0I2.25e9B£-010.0.0.0.
9.3I462E-017.BBHKE-0!5.SS9SK-0I3.144I3C-01i CN80HE-010.0.0.0.9.785B2E-0I9.7S5SSE-017.7IOS3E-015.56H63E-0I3.36m8E-0lI.I2DM9E-0!0.0.0.0.1.09<«C*00I.09MS6E-008.76826E-0I6.M1B66E-0I3.9179BE-0I1.30599E-0I0.0.0.0.I.37S31E»OO1.37231E»001.13661E->008.63I03E-0IS.fTVSBE-OII82H97E-010.0.0.0.1.37S3IE-001.3723IE»001.13661E'OOB.63103E-015.17W92E-DI1.82M97E-010.0.0.0.
-4.93IME-01*s.oiasee'OS5.93493E-056.3<7HS£-D51.3877K-n5.W112E-I7
-5.S30Hi«E-020.0.
-3.8S991E-02-5.35eOOE-(N6.08890C-056.90M7C-057.2I03IE-05
-1.11022E-160.
-I.3933SE-010.0.
-B.S7MSE-02-5.9^B>•lE-tlH6.B7302E-057.S9099C-0S7.7959BE-05
-l.t<<329E-15I.M02SE-15
-3.61575E-010.0.
-1.79085E-0I-6.1S000E-0<«7.31513E-D57.95470E-0S8.09154E-05I.77636E-I5
-5.32907E-15-1.73»<8E*00
0.0.0.I.78H73E-01I.89080E-012.IOS03E-01S.H6916E-013.0H501E-01
-I.1S9H8E«OO0.0.0.
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
1.000000009.9BB90E-019.998SBE-019.9M87E-01I.DOOOOE'OO1.0D9S0E-020.0.0.I.OOOOOE'OO1.000000009.9B988E-0I9.999860019.9998GE-011.000000002.S3537E-020.0.0.i.oooooe«oo1.00000E«009.999B6E-019.999B5E-019.999BHE-01I.OOO0OE«O06.tX3X-0B0.0.0.1.00000E*00I.OOOOOE'OO9.99985E-D19.9998ME-019.9998>tE-OI1.00000E*00S.25S9>«E-0i0.0.0.I.OOOOOE-00I.OOOOCE-'OC9.9998SE-019.9998ME-0I9.9998ME-011.00000E*002.25B9HE-0!0.0.0.
0a00s366000000036600000003e600s000036600000000000
l.OOOOOE'OO1.00000000I.OOOOOOOO1.OOOOOE'OOS.TevSSE-011.960H3£«00I.OOOOOE*OO1.00000000l.MOOOC'OOI.O000OE«00I.OOOOOE*00i.oooooe^ool.OOOOOE-00l.OOOOK'OO5.91309E-0)1,90».B£»0[)1.DOOaOE*ODl.OOOSOE^OO1 ^rooOE*OO' OOOE-001.JUUOOE-001.OOOOOE-OGl.OOOOOE^OOI.O000OE»DD
6-S9?«SE-DI1.77OS1E»ODJ.OOODOE'DDI.DDDOOE-OCI.0DDDO£»00: .OOOOOE»OOl.OODOOE-OCI.OODDOE*00l.DOODDE-'OO1.00000E*007.75672E-011.3T76IE»00l.OOOOOE'OO1.00000C»0D1.OOOOOE-DDl.OOOOOE-DDl.OOOOOE-DDI.O00OOE"00I.OOOOOE^OOI.OOOOOE'OOI.OOOOOEoOO1 DODOOE-00l.OODODE.OOl.00000£«001.OOODBE«OO
53
ITER- 15SOL* - VOT UNOULAP. BORC COMPARISON
TIME- 1.000COC*01 CELT- a.OOOOOE-OI CYCLE- VCHOT. -6.513S6E-05
• K G -
11
aaaaaaaaaa33333333334
4
44
4444
4
455555555556
JIa34567
e9
101a34
5E7
89
101a34567B9
101
a34
567B9
101a34567
89
101
K VOL<K)6 s.eieasE*
UI.712O2E-0II.7120BE-011.72089E-OI1.73874E-0II.7656IE-0I1.B017IE-0J1.7Sa3IE-011.7823IE-010 .0 .1.710I6E-01I.7I0I6C-011.7IB70E-011.7360DE-011.76529E-011.79802E-011.77856E-0I1.778E6E-0I0.0.1.85497E-011.B5497E-0I1 .66354E-01I.68073E-01I.70B57E-01I.7M110E-OII.73641E-01I.73641E-010 .0.i.53oeaE-oi1.530B2E-011.54004E-OII.95B61E-0II.58SE2E-0II.E2420E-01I.64447E-0II.64H47E-010.0.1.326526-01I.32652E-011.33E5IE-01I.35644E-011.3B664E-011.427B7E-0I1.4B71BE-D11 .4E716E-0I0.0 .
I.03536E-01
PRIX)00 0.
V
0.-4.69611E-05-4.05679E-05
I.70440E-05l.a7|46E-04a.6OI32E-O4
-3.I7950E-010.0.0.0.a.42050E-059.7HMIE-05I.9I640E-043.06S72E-044.3I738E-U45.56760E-040 .0.0.0.1.77150E-033.SI6a0E-035.46534E-037.3S991E-039.a3140E-03l.0E364E-0a0.0 .0.0.4.0450IE-03B.I6464E-031.22439E-021.62552£-0aa.01605E-0a2.32252Z-0B0 .0.0.0.6.67999E-031.34840E-022.024a9E-0ae.69aaeE-os3.34B?0E-0a3.93924E-020 .0.0 .0 .
p9.0I13HE-D19.0II3HE-017.0ltaOE-015.01076E-013.O1000E-OI1.00B95C-0I
-9.Sa293C-020.0.0.9.0113HE-OI9.0M34E-0I7.0I120E-OI5.01076E-0I3.SI000E-0II.00895E-0I
-9.9aa93E-oa0 .0.0.9.I4507E-019.I4507E-017.maiiE-oi5.I35BSE-013.I26I8E-0I1.11S93C-01
-9.0408BE-0a0.0 .0 .9.30746E-0I9.30746E-0I7.3OI9£E-OI5.a9049E-013.a7307E-01l.a4953E-01
-7.B0141E-020 .0.0.9.5aDaaE-oi».5a02SE-0l'.5I247E-0ISi.496a8E-013.47I45F.-0I1.43769E-0I
-6.0536IE-020.0.0 .9.B007SE-01
02.S5336E-0Ia.asioiE-oia.aee47E-oi2.90078E-0Ia.9H819C-0l3.00950E-OI
-l.2940K*00l.tBESOE'OO0.0.
-3.HKSE-04-1 .S783VE-04
1.907SH-061.45020E-D5a.07985E-051.1S637E-05
-3.46945E-IB-3.40891E 03
0.0.
-9.19B47E-03-3.40949E-042.9463aE-053.29782E-0S3.6B55SE-05a.2!970E>050.
-6.oao7SE-oa0.0.
-2.069ISE-02-4.66508E-04
1.5e280E-054.T7229E-05B.4B254E-O54.32933E-05i.iioaaE-iE
-1.3I449E-0I0.0.
-3.405I5E-02-E.5S544E-041.03949E-049.8851 IE-OSB.84a59E-054.1O63SE-05
-4.44089E-16-2.26514E-0I
0 .0 .
-4.85256E-0a
PS0.0.0.0.0 .
0.0.0.0.0.0.0.0.0.0.0.0 .0 .0.0.0.0 .0.0.0.0.0.0.0.0 .0 .0.0 .
0.0.0.0 .0.0.0.0.0.0 .0 .0 .0 .
0.0 .0 .0.0.
Fl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO9.9B993E-019.9998IE-019.9998BE-01S.7fl668E-030.0.0.l.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO9.99993E-0I9.988BIE-0I9.99988E-015.7W88E-030 .0.0.l.OOOOOE'OOl.OOOOOE'OO9.9999IE-019.99978E-019.99969E-0!9.99979E-0I5.83a24E-0a0.0.0 .1.OOOOOE'OOl.OOOOOE'OO9.999B0E-019.99951E-019.99936E-0I9.99957E-01I.3S449E-010 .0 .0.l.OOOOOE'OO1.OOOOOE'OO9.9994BE-019,999aiE-019.99891E-019.99944E-012.33S55E-010.0 .0 .l.OOOOOE'OO
tr00000
000000000003EE00000003
E6000
000036
60000000
38E00
PETA
l.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOj . oooooe->ool.OOOOOE'OO1.OOOOOE'OOl.OOOOOE'OO1.OOOOOE'OO1.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO5.7O7»tE-OI1.98a94£*00l.OOOOOE'OOl.OOOOOE'OO1.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO1.OOOOOE'OO6.aa9B5E-011.7910BE*00l.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO1.OOOOOE'OOl.OOOOOE'OO1.OOOOOE'OD1.OOOOOE'OO1.OOOOOE'OO6.9224IE-011.561ISE'00i.OOOOOE'ODl.OOOOOE'OO1.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OOl.OOOOOE'OO1.OOOOBE-00l.OOOOOE'OO7.Ba554E-0J1.36322E'OOi.oooooE'Oal.OOOOOE-00l.OOOOOE'OO1.OOOOOE'OO
54
e666666667777777777888eee8e889999999999
1010101010101010101011I II II I
I II II II II I11IS
a3H567
e9
10123
567
e9
101S34
567
8g
10ia34
56789
101a3456789
10]
a3
56789
101
1 .03536E-01.04450E-OI.06302001.09I60E-0I.I31I7E-01.I77S4E-01.IT7S4E-0I
0.0.6.63?oec-oa6.63aO8E-026.689570026.80334E-02S.9B267E-027.BH176E-0S7.57704E-0?7.577D4E-0i0 .0 .2.445I9E-02a.W519E-oe2.m76sc-oaa.36B3aE-oaa.3aoo3E-oaa.31376E-0aa.4i72NE-D2
-a.BBODEE-OI-2.B6006E-DI-2.B6006E-0I-l.<«7377E-0a-l.47377E-0a-1.67178E-02-S.08M79E-0S-a.7367aE-oa-3.667I0E-D2-1.*11!E-E-2.86006E-0I-2.B6006E-0I-a.86006E-0l-3.58835002-3.5ee35E-oa-3.e»7ME-oa-4.40317E-0a-5.»e37E-0a-6.46277E-0a-8.07383E-0e-a.67289E-0l-a.67aeee-oi-a.67288E-01-3.303a2E-02-3.3032200a-3.499I9E-02-3.898I9E-02-H.smeoE-oa-5.37aaoE-oa-6.91378O0S-a.l8886E-01-a. IBBBK-OI-a.iaee6E-ai- 1 . S2797E-02
9.59386E-03t.93309E-(Wa.9imsE-os3.BO6HX-0B4.88644£-oe9.esi<*9E-oa0.0.0 .0 .1.22500€-05e.H79H5E-0E3.75861E-055.07I83E-056.MS919E-0S7.8aS99E-0e0.0 .0.0.1.3879*E-0ea.BI307£-0SM.s9iieE-oa5.BH587E-0S7.t6993E-0S9.309B7E-0?i.oastaE-oi0.0 .0.1.S9B65E-0Sa.66393E-0S<).IS09SE-Oe5.837SHE-0e7.83I36E-Oei.oaeHae-oii.oae^2E-oi0 .0.0.7.0687IE-03i.t337at-oes.sosetE-os3.04KK-D53.97873E-055.02330E-05H.39938E-0?0 .0.0 .
-9.a5193E-04-S.103^0E-03-3.7Ba9l£-03-6.26H?eE-03-9.90557E-03-1.37759E-0e-a.99098E-0S
0 .0.0.
9.B007BE-T!7.79ie8E-OI5.77aO5E-tl3.VH850E-OII.70I67E-0I
-3.51579E-0B0.0 .
0.l.0153>»E>00I.0153HE-008.1><505E*OI6.12746E-0IM.09968E-01S.060H7E-017.»»70IE-0M0 .0.0.1.056IME»00I.B56IME'OO8.9S67aE-0t6.SM734E-0I•«.53aasc-oiS.51035E-01H.8oe><iE-oa0.0 .0.I.09750E-00I.09750E-00e.97Ba4E-OI6.98337E-0I4.99720E-0I2.9828aE-OIg.6aa97E-oa
-1.IDS29E-0I0 .0.I.I3£S9E*00l.l3aS9E«009.3M6S8E-017.390H7E-015.H6090E-013.56369E-01I.70B6ME-01
-).iaO72E-O20.0 .1. IH703E-.00I.147O3E*OO9.H927SE-017.53943E-0I5.6iaa7E-013.7m2HE-01i.8H87'«E-OI
-3.85aa5E-0t0 .0.1.1406KXJO
-5.56238E-041.99566E-051 .H99S5E-067.5B387E-05S.49667E-0S
-a.SeOMX-16-3.>»oea7E-oi0.0.
-6.ao?57E-oe-7.7586aE-0H
1.SI949E-0HI.77198E-0H1.0657SE-043.K61><E-0S
-8.e8IT9E-l6-4.61439E-DI
0 .0.l.3603SE»00
-3.eM365E-045.76300E-05
-1 27aH6E-052.49680£-05B.9a3atE'O59.B8I78E-1E
-5.«t9et2E-0]-9.9oeeec-oi-1.76676E-0I
I.36H71E*OO-3.837aiE-0t
I.07595E-0*).3I963E-O45.0835HE-059.67626E-06
-l.6a20HE-070.
-5.142iaE-010.1.3O12OC-001.00496E-OH
-5.69075C-05^.B3489E-059.37173E-06a.768a5E-052.m387E-053.33067E-16
-I.88773E-0I3.11951E-021.0991BE"00I.26104E-04
1.B73SSE-05-1.399S6E-05-3.0ao55E-05-1.7MB59E-05
0 .
a.3oai9E-oi8.0669BE-028.02I97E-01
0.0.0.0.0.0.0.0.0 .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .0.0.0.0.0.0.0 .0.0.0.0.0 .0.0.0.
I.OOOOOE'OO9.99924E-D19.9gmaE-oi9.99B62E-0I9.9SB01E-013.74M6E-010.0.0 .
i.oooooe-ooI.OOOOOE'OO9.99B9IE-019.909450019.99782E-019.99B7HE-015.68336E-010.0 .0.i.onooot-oo1.00000E«009.9985aE-019.99805E-019.9976IE-019.9983IE-0IB.I8601E-010.0.0.1.00000E*001.00000£«009.99B18E-019.9979BE-019.99699E-019.99B10E-019.97697E-0)1.68047E-010 .0.9.999BOE-019.99980E-019.99834E-0I9.99780E-0I9.99639E-0I9.99777E-0I9.99994O0IH.9ta42E-OI0 .0-9.99975E-019.99975E-DI9.99781E-019.99753E-0!9.99SE5E-019.99764E-019.9999IE-0I4.64332E-010.0.9.99952E-01
000003E600000003EE000000036E00000000360000000036000000003E00
1.00D00£*001.OOOODE-001.OOOOOE-00i.oooaoE'Oo9.01226E-D1l.m3B7E«00i.oooooe-ool.COOOD£>001.OOOOOE'OO1.00000E»00l.00000£»00l.OOOOE'OOl.OOOOOE'OO1.OOOOOE'OOI.O000OE*0D9.36035E-01l.OOOOOE'OOl.OOOCOC'OOI.OOOOOE'DO
i .OOOOM>ODI.OC]00£«DD! .O0COK-DDi.oooao£<ooI.OOOOOE<001.DOOOOE'DO7.5B380E-OII.OOOOOE-ODI.OOOOOE'OO1.ODOOOe-DD1.OOOOOC-00I.OOOOOt'OOI.OOOOOE-DOI.OOOOOE'OOl.DOOOOE-DDl.DDOOOE-007.S4570E-011-4969DE-C01.00000E*00l.OOOOOE>00I .0000OE*00l.OOOOOE-OOI.OOOOOE'OOl.OOOOOE-001.OOOOOE-00l.OOOOOE-00S.33386E-S;i.ooae^E-oo].OOOOOE-00l.OOOOOE'001.OOOOOE-001.OOOOOE-00].OOOODE-00I.OODODE-001.OOOOOE-00l.OOOOOE-009.7a483E-011.D3699E-00l.OOOOOE-00l.OOOOOE*00l.OOOOOE-00
55
12121212ia
12ISIS13131313131313!31313If1414i t
m141414141415151515151515IS1515IS16IS161616! 6IB1616!71717177
177
!7171718
234567
e9
101
a3456789
101
a3456789
101
a34567
e9
10i
a3456789
101
a5456789
101
------3--- I
.22797E-02
.S5660C-02
.S0737E-02
.37B93E-02
.54426C-02S.G520SC-02.53522E-0I.53522E-0I.53522E-0I.13I87E-02.131B7E-02
i.eeeaeE-ceI.55713E-022.02432E-022.37W3E-02
-6.IS947E-03-1.5J5ME-01-I.53522E-0I-I.53522E-0I2.3I499E-022.3I499E-022.49349E-02a.fftaBX-oa3.46468C-023.8I003E-021.2I378E-021.21378E-020.0 .1.92I94E-02I.92I94E-02I.99846E-022.15725E-02a.xoex-oa2.25000E-02
-4.57681E-03-4.39488E-02-4.394BBE-02
0 .8.3S293E-038.35293E-037.96579E-037.I6005E-035.71694E-035.0B704E-04
-2.94495E-02-4.394B8E-0a-4.394aee-oa-4.3948BE-029.7I039E-049.7I038E-04I.437ISE-04
-1.59124E-D3-4.49682E-03-I.09870E-02-3.4B666E-0S-4.394BBE-02-4.39488E-02-4.39488E-025 47753E-04
-6.W9B9E-03-I.HJ43IE-02-2.29797E-D2-3.34586E-0S-4.K239E-02-5.71014E-0a-T.oomsc-oa
0.0.0.
-7.BI019E-03-I.K330C-02-2.S7J62E-02-3.7II37E-02-5.0IS5IE-0S-6.03I83C-OS-6.031B3E-0a0.0 .0 .
-3.99795E-03-7.99463E-03-l.a3B66C-0S-1.7I9SK-02-a. 1976IE-BS-a.BOOKC-oa-6.03IB3E-0a
0.0 .0 .•.34IB7E-03S.9BB78E-035.36780E-038.97SS7E-D31.41729E-0S1.97445E-023.40S3BE-080.0 .0.3.63564E-037.64147E-031.24459E-021.B4751E-022.580?3E-023.40938E-023.40936C-020 .0 .0 .S.i7186£-035.07B64E-037.99309E-03I.13959E-021.51S34E-021.699B5E-U21.69985C-020.0.0.
1.14OMC*OO9.4IS24E-0I7.44M7E-0IS.4T607E-0I3.54153E-01I.6IS63E-01
-3.15^71E-0^0.0 .I.121BK*OOi.iztaec-oo9.21468E-0I7.S1O01E-OIS.20348C-0I3.I90S9C-01I.16941E-01
-e.5ii24E-oa0.0.i.ioesie«ooI.IOM!E«OO9.0IM6E-016.9B977E-014.948I9E-012.BB7I7E-018.05345E-0S0 .0 .0 .I.09433E«00l.09433E*008.92963E-016.901I9E-014.85B<*4£-012.78B4IE-0I6.9708BE-020.0.0.1.09799E*00l.09799E«00B.97527E-016.96S84E-014.95108e-0t2.9300X-019.019157E-020 .0 .0 .1.10S62E<001.10562E»009.06213E-017.07532E-01S.0984BE-0I3.I3630E-01I.I9S29E-0I
-7.I4386E-020 .0 .1.10767E«00
2.MI4K-041.042SSE-05
-2.I4V48E-06-2.0K6IE-05-3.53e04E-05-2.73783E-054.440ME-I6S.03SME-0I1.0M41E-0I•.06SM0E-0I2.78720E-04
-5.62347£-05-2.436I7E-05-1.B5736C-05-8.0HUE-0S-I.H3199E-050.3.0IS9IE-010.I.97IWC-02s.aaeioE-94
-3.97632E-0S-3.17H92E-0S-2.I1974E-05-I.SW02E-0S-l.HOaSE-16
I.I4B34C-01S.57461E-012.95870E-0I
-6.95072E-031 .M634E-04
-I.S9971E-05-3.08079E-05-2.39B99E-0S-1.45311E-05-4.44089E-16-2.173I0E-02-2.437I7E-0I
0.2.01633E-OI6.68409E-PS
-1.76568E-06I.4I066E-06
-7.2606IE-06-1.27856E-05-2.22045E-16
0 .-1.704S9E-01-7.324B0E-0e2.07441E-0!5.61234E-DS
-2.86241E-06-1.34257E-05-8.8I626E-06-5.0I0I3E-06-S.9I091E-06
0 .-8.49927E-0e
0.2.i3039E-01
0 .0 .0 .0 .0 .0 .0 .0 .0 .0.0.0.0 .0 .0 .0 .0.0.0.0.0 .0 .0 .0.0.0.0.0.0.0.0.0.0.0.0.0 .0 .0.0.0.0.0 .0 .0 .0 .0 .0.0 .0 .0 .0 .0 .0 .0 .0 .0.0.0 .0.0 .
9.9B052E-O19.9B78HE-019.99779E-019.99642E-019.9B110E-OI9.999T7E-0I2.720J8E-010 .0 .9.99899E-019.9M9K-0I9.99814E-0I9.B0753E-0)9.9B647E-019.9W32C-019.99236E-013.77410E-030 .0 .9.9BBHE-0I9.99868E-019.99802E-019.99790E-019.99677E-019.99814E-0IB.59473E-0I0 .0 .0 .9.99BOBE-019.99808E-019.997B0E-019.9974IE-0I9.99649C-0I9.99877E-0IB.525S4E-0I0 .0 .0.9.9977SE-0I9.99779E-019.99B25E-019.99B02E-019.99745E-019.99B15E-019.78905E-011.84457E-030 .0 .9.99787E-019.99787E-0I9.99840E-019.99BS0E-019.99673E-019.99880E-019.99941E-01I.429I0E-010.0.9.99773E-0I
00000036000000003£000000036600000003660000000036000000003600
l.OOOOOC-001.OOOODE'OO
i.oooooe-ool.00000E*00l.OOOOOC-008.1573K-0Jl.a9527£»00I.0OOOOOO0i.oooooe-ool.00O0OE«00l.OOOOOE'OO1.00000C«001.OOOOOE-00i.oooooe-ooI.OOOOOE'OD5.0S943E-0I2.29I89E-00i.oooooe«oo1.OO00OE*O01.00000£»001.OOOCOE-COI.OOOOOE'DO1-OOOOOfOOl.DOOOOE-00l.OODOOE'OO7.39579E-0Il.OOOO0C»O01.OOOOOE-001.OOOOOE-001.OOOOOE-00I.ODOOOE-DDi.oooooe-ooI.OOOOOE-001.OOOOOE-001.OOOOOE-007.39356E-0I1.OOOOOE-00i.ao'uuK'Ooi.oooooe-aol.OOOOOC-00I.OOOOOE-DOI.OOOOOE-00I.OODOOE-00l.OOOOOE-00l.OOOOK-005.I7361E-012.2I946E-00l.OOOOOE-001.0000DE-00l.OOPOOE-00l.OOOOOE-001.OOOOOE-001.0030DE-001.000CDE*001.OOOOOE-007.01B03E-011.55547f-00l.OOOUOE-OD1 .OOC'OOE-00
l.OOOOOE-00
56
181818•81818IB18IB19191919191919191919SOSOsosoSO
soso20SO
soSISiSISISIs iSISISISI
ssssssssassssssassss
s3
ss789
101
a3t66789
101
s34
s6789
10123M56789
101
s3H96789
10
9.H7753E-043 .3M3K-0*S.037ME-09
-I.79BN0E-0H-7.39297E-W-1.I9533E-0S-1.3BH9K-0S-*.3»»«8E-0S-•).394S8t-DS
1 .964S3E-031 .Sfl>«S3E-031.98H07E-03i.eaosrc-03I.97SI0C-03S.96HB7E-037.«»I7S7E-O37.H17S7E-03S.97I08E-0SS.97IO8£-Oa1.69367E-031.69S67E-031.8B614E-03S.I7IB5E-03S.63270E-033.9619HE-039.6B2W8E-030 .0 .S.97I08E-OS0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .
I.H37UE-04e.iaooec-os
-»i.SHOJMe-o<«-i.BO3see-03-9.S7707E-03-1.30490E-0S-I.30H90E-0S
0 .0 .0 .
-3.3M333E-04-7.95088E-04-I.30S3SE-03-S.0S3IIE-03-3.25B3<i£-03-9.981B7E-03-I.30490E-OS
0 .0 .0 .
-3.9409BE-05-1.37777E-0H-3.09351E-IN-5.3S»87E-0V-7.SH570E-0H-I.H7964E-03
7.S1095E-030 .00.5.67556E-0<iI.I9EI3E-031.9I9S6C-038.T9B7IE-033.9B36K-037.SI095E-037.5I095E-030.0 .0 .5.67556E-0>»1.196I3E-03I.91956E-U32.79671E-033.98360C-037.E1095E-031.711i«5C-0S0.0 .
1.I0767E*009.0tl73E-017.09S3K-019.I09WE-0I3.I36IXE-0II.I7K0K-OI
-7.73S90E-0S0.0 .1.IOSS1E»OOi.iosaifoo9.05067E-OI7.0>»71"«E-0l5.0t»008E-013.0e675E-011.00S50E-010 .0 .0 .I.IOMOX+OOt. 10t03£>009.038SIE-0I7.03371E-015.0£586e-0l3.0136SE-OI9.9H611E-0S0 .0 .0 .1.10<t69E«00I.IO<«69E«009.0H766E-017.Cm9HIE-0lS.OSS89E'OI3.0S93HE-0II.070T7E-01
-9.099S6E-OS0.0 .1.10H69E«00l.lt*69E>009.0H766E-017.0H9H1E-015.0SS89E-D13.0593^E-011.07077E-0I
-9.099S6E-0S0.0 .
1.3im9E-055.61B7K-066-«5064E-06
-8.ameHE-07-6.20SmE-06->«.<«6B59E-DE
0 .B.SSHSSE-OS0 .
-l.<^860e-OIS.S>«9e7E-0S
-1.7MI2E-06-3.03S9BE-06-S.7196K-06-S.»HH7E-06
0 .6.BS743E-05I.88011E-0I1 .S3766E-01
-l.'iBSHOE-OlI.701X3E-05
-9.09515E-06-S.5S6^>tE-07
3.aafi33E-07"9.75636E-07
0 .3.I0908E-0?
-B.S57S7E-0S0 .
-S.8SU1E-031-66703E-05
-6.73959E-07-S.36797E-06-S.07B19E-06-l.*81S6E-06-7.0395SE-07
0 .-J.605H8E-0S-t.95180E-0S
0 .3.83778E-033.1HS89E-033.61719E-03>».3e575E-039.934ME-031.B1368E-0SH.95180€-0a
-8.557S7E-0S0 .
0 .0 .0 .0 .0 .0 .0 .0 .0 .D.0.0.0.0.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0.0.0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .0 .
9.9B773C-01B.99«S7E-OI9.9Ma6E-019.aa77>tc-ot9.90951E-OI9.9S80C-O!8.79079E-0S0 .0 .9.997S4E-0I9.9S7SHE-0I9.9B889E-019.9Se5HE-01S.99770E-019.99B99E-0)9.8563SE-010.0 .0 .9.99711E-0I9.93711E-0I9.99879E-019.9986SE-QI9.99BS7E-019.998H9E-019.96H0BE-010 .0 .0 .9.99676E-019.99576C-019.99903E-019.9986SE-0I9.9383IE-019.99B3ME-0I9.99B3ME-014.7B5S2E-050 .0 .9.9967EE-019.99676E-019.99903E-019.99B6SE-019.99B31E-019.99e3>lE-019.99B3VE-01>t. 7855S£-0e0.0 .
00030
as60000000366000000036600000000360000000
c000
l.OOOODE-00I.OOOOOE'OD1.00D90E*001.OOOODE'OOI.OODOOE-DD6.509k6E-OI1.70095E»00i.oooooe-ool.OOOOOE-00I.OOOOOC'OOI.OOOOOE^OO1.00000C«00I.OOOOK'OOl.00000£->001.OOOODE-006.730B7E-011.00D00E«0O1.00000E«00i.oooooe«ooI.OOOOOE«OOl.OOOOOE'OOI.OOOOOE'OOI.ODOOOC^OO1.0000M>C0i.ooaooC'OOe-eermE-oil.OOOOOE'OO1.00000E*00I.OOOOOE'OOI.OOOOOE->ODl.OODDDE-001.00000E»00I.OOOOOE-00I.OOOOOOOOl.OOOOCC'OD6.1S9BeE-0J1 .85530E-00t.oaoooE^ooI.OOOOOE'OO1.00000£*001.00000E«001.00000E*001.COODOE-00l.OOOODE-001.00000E»001.00000E*001.00000E«00].OOOOOE«OD1.OOOODE-00
57
Results from additional sample problems are contained in App. B. These
problems will give the prospective user some idea of the broad range of problems
that can be investigated with the SOLA-VOF program.
ACKNOWLEDGMENT
Development of the SOLA-VOF program was made possible through the support
of the Electric Power Research Institute, contract RP-965-3, and in part by the
Office of Naval Research, contract NA-ONR-6-75, NR062-455 and the NASA Lewis Re-
search Center, contract C-14898-D. This work was performed with the cooperation
of the US Department of Energy. The authors especially wish to thank Mrs.
Juanita Salazar for her superb typing and assembly of this report.
58
APPENDIX A
CODE LISTING
The SOLA-VOF code listing is a source file containing a single COMMON deck
named COMMON1 at its beginning. This COMDECK is to be included in the main DECK
(SOLA-VOF) at every occurrence of *CALL COMMON1 or *CALL,COMMON1. The inclusion
of this COMDECK in the code produces a COMPILE file that can then be compiled
and executed. Thus, the user can make a single change in the COMDECK and have
it automatically inserted in each subroutine by his own UPDATE system or auto-
mated text editor.
The SOLA-VOF code is an ANSI standard code with the exception of the graph-
ics routines. These routines are system dependent and must be replaced with
their equivalents at each computing facility or bypassed in the event that a fa-
cility has no graphics capability. SOLA-VOF has been written to minimize the
system graphics calls. It utilizes the SC-4020 to display graphic and alphanu-
meric information. The SC-4020 is a CRT device spanned by a 1024 x 1024 raster
grid with an origin at the upper left corner. To maximize utility, SOLA-VOF
first scales and centers the region to be displayed on a unit square with the
origin at the lower left. SOLA-VOF then maps the unit image onto the SC-4020
1024 x 1024 screen. Thus, omission of the last procedure enables the use of a
variety of devices that require a unit (or scaled unit) image.
The system-dependent graphics calls that appear in SOLA-VOF are defined be-
low.
CALL ADV(n) - ADVances the film by n frames. This call occurs in
SUBROUTINE DRAW.
CALL DRV(IX1,IY1,IX2,IY2) - DRaws a Vector between the SC-4020 raster
points (IX1.IY1) and (1X2,IY2). This call occurs only once in
SUBROUTINE DRWVEC.
CALL LINCNT(n) - Provides a LINe CouNT for writing formatted alphanumeric
character strings on a display at line n. This call occurs in
SUBROUTINE DRAW.
CALL PLT(IX1,IY1,ICHAR) - PLoTs the plotting character specified by ICHAR
(usually a dot) at the SC-4020 raster point (IX1.IY1). This call oc-
curs only once in SUBROUTINE PLTPT.
In addition to these calls, SUBROUTINE FILMSET makes calls to GFR80,
GRPHLUN(12), LIB4020, GRPHFTN, and SETFLSH. These routines are specific to the
59
graphics system at LASL and are of no concern to the outside user. They do
nothing more than initialize the film file, establish logical unit 12 as the
graphics output unit for formatted writes, provide libraries for the graphics
calls, and provide a mechanism to flush the buffers at the end of a calculation.
Each user must recode SUBROUTINE F1LMSET to provide similar information in the
manner required by each facility.
60
1 'COMDECK.COMMONI2 PARAMETER UBAR2-22. JBAR2-I0. NPRTS'l. MESHX>1. MESHY"I. NVOR-1013 PARAMETER IMSHX"MESHX»I. MSHY-MESHY*I)4 C5 REAL NU. NORMX. NORMY6 INTEGER CYCLE. ML. HR. MT. MB7 C8 COMMON /FV/ ACOMII). UN<IBAR2.J8AR2), VN<IBAR2.JBAR2). PNUBAR29 I .JBAR2). FNUBAR2.JBAR2). U<IBAR2,JBAR2). V(I8AR2.JBAR2). P(IBAR210 2 ,JBAR2>. FCIBAR2.JBAR2). PETAtIBAR2.JBAR2). BETACIBAR2. JBAR2), NF11 3 IIBAR2.JBAR2). TANTHIIBAR2.JBAR2), PSCIBAR2.JBAR2)12 C13 COMMON /ME/ XUBAR2), XK1BAR2). RXJUBAR2). DELXUBAR2). RDXIH 1 (IBAR2I. RXUBAR2). Y<J8AR2). YJCJBAR2). RYJ(JBAR2), DELYIJBAR2).15 2R0Y(JBAR2>. XL(MSHX). XC(MESHX). OXMNIMESHX). NXL(MESHX). NXR16 3 JMESHX). YL(MSHY). YCtMESHY). DYMNIMESHY), NYLIMESHY). NYR(MESHY)17 COMMON /PV/ XP(NPRTS). YP(NPRTS). 1P(NPRTS>. JPrNPRTSl. NR(NV0R».IB I PR(NVOR). VOL(NVOR). NAME!10)19 C20 COMMON /IV/ IBAR, J8AR. {MAX. JMAX. 1MI. JM1. [M?. JH2, NKX. NKY,21 J CYCLE. DELT. T. AUTOT. PRTOT. TMPRT. PLTDT, TWPLT. TlTIN. FLHT.22 2 NU. CSQ. RCSQ. NMAT. RHOF. RHOFC. RHOO, NVRM. NREG, VCHGT, ROTEXP23 3 . ISURFIO. SIGMA, CANGLE. TANCA. ICYL. CYL. GX. GY. Ul. VI. OMG.2H >• ALPHA. ML, MR, MB. MT. NP. ITER. EPSI. FLG. FLGC. FNOC. NOCON.25 5 NFLGC. ISYMPLT. IMOVY. VELMX. VELMXI. XSHFT. YSHFT. XMIN. XMAX.26 6 YMJN. YMAX. SF. XPL. XPR. YPB. YPT, NPX. NPY. 1PL. IPR. JPB. JPT.27 7 OTVIS. DTSFT28 C29 COMMON /CONST/ EMF. EMF1. EMB. EM10. EP10. PI. RPD30 C31 COMMON /LAST/ ZCOM32 •DECK.SOLAVOF33 PROGRAM SOLAVOF 11NPUT,TAPE5-1NPUT.OUTPUT,TAPE6-0UTPUT.TAPE7.TAPE83<« I )35 C36 C ••• SOLA-VOF VOLUME OF FLU10 METHOD •••37 C38 C ••• LIST OF PRIMARY VARIABLES •••39 CHO C ••• INPUT PARAMETERS (NAMELIST /XPUT/)m c«t2 C ALPHA CONTROLS AMOUNT OF DONOR CELL FLUXING t*I.O FOR FULL43 C DONOR CELL DIFFERENCING, «0.0 FOR CENTRAL DIFFERENCING)HH C AUTOT AUTOMATIC TIME STEP FLAG C«1.0 FOR AUTOMATIC DELT••5 C ADJUSTMENT. »0.0 FOR CONSTANT DELT)46 C CANGLE CONTACT ANGLE, IN DEGRES. BETWEEN FLUID ANO MALL47 C CSQ MATERIAL SOUND SPEED SQUARED ( — 1.0 FOR48 C INCOMPRESSIBLE MATERIAL)49 C DELT TIME STEP50 C EPSI PRESSURE ITERATION CONVERGENCE CRITERION51 C FLHT FLUID HEIGHT. IN Y-DIRECTION52 C GX BODY ACCELERATION IN POSITIVE X-OIRECTION53 C GY BODY ACCELERATION IN POSITIVE Y-DIRECTION54 C ICYL MESH GEOMETRY INDICATOR (-1 FOR CYLINDRICAL COORDINATES,55 C -0 FOR PLANE COORDINATES)56 C IMOVY MOVIE INDICATOR («l FOR MOVIE FILM OUTPUT. «0 FOR57 C OTHER FILM OUTPUT)58 C ISURFIO SURFACE TENSION INDICATOR <«l FOR SURFACE TENSION.
61
59 C60 C61 C62 C63 C64 C55 C66 C67 C66 C69 C70 C71 C72 C73 C7H C75 C76 C77 C78 C79 C80818?
84858687888990919293
100101102
CCC
83 C
9* C95 C96 C97 C98 C99 C
103 C10H105106107108109110111112 C113 Clit C115 C116 C
-0 FOR NO SURFACE TENSION)ISYMPLT SYMMETRY PLOT INDICATOR <*l TOR SYMMETRY PLOT.
•0 FOR NO SYMMETRY PLOT)NMAT NUMBER OF MATERIALSNPX NUMBER OF PARTICLES IN X-DIRECTION IN RECTANGULAR SETUPNPY NUMBER OF PARTICLES IN Y-DIRECTION IN RECTANGULAR SETUPNU COEFFICIENT OF KINEMATIC VISCOSITYOMG OVER-RELAXATION FACTOR USED IN PRESSURE ITERATIONPLTOT TIME INCREMENT BETWEEN PLOTS AND/OR PRINTS TO BE OUTPUT
ON FILMPRTOT TIME INCREMENT BETWEEN PRINTS ON PAPERRHOF FLUID DENSITY (FOR F-I.O REGION)RHOFC FLUID DENSITY IN COMPLEMENT OF F REGIONSIGMA SURFACE TENSION COEFFICIENTTWFIN PROBLEM TIME TO END CALCULATIONUl X-DIRECTION VELOCITY USED FOR INITIALIZING MESHVI Y-DJRECTION VELOCITY USED FOR INITIALIZING MESHVELMX MAXIMUM VELOCITY EXPECTED IN PROBLEM. USED TO SCALE
VELOCITY VECTORSMB INDICATOR FOR BOUNDARY CONDITION TO BE USED ALONG THE
BOTTOM OF THE MESH (-1 FOR RIGID FREE-SLIP MALL.-2 FOR RIGID NO-SLIP MALL. «3 FOR CONTINUATIVEBOUNDARY. •<+ FOR PERIODIC BOUNDARY. -5 FOR CONSTANTPRESSURE BOUNDARY)
ML INDICATOR FOR BOUNDARY CONDITION ALONG LEFT SIDE OFMESH (SEE HB)
WR INDICATOR FOR BOUNDARY CONDITION ALONG RIGHT SIDE OFMESH (SEE MB)
MT INDICATOR FOR BOUNDARY CONDITION ALONG TOP OF MESH(SEE MB)
XPL LOCATION OF LEFT SIDE OF RECTANGULAR PARTICLE REGIONXPR LOCATION OF RIGHT SIDE OF RECTANGULAR PARTICLE REGIONYPB LOCATION OF BOTTOM OF RECTANGULAR PARTICLE REGIONYPT LOCATION OF TOP OF RECTANGULAR PARTICLE REGION
••• MESH SETUP INPUT (NAMELIST /MSHSET/)
DXMN(N) MINIMUM SPACE INCREMENT IN X-DIRECTION IN SUBMESH NDYMN(N) MINIMUM SPACE INCREMENT IN Y-DlRECTiON IN SUBMESH NNKX NUMBER OF SUBMESH REGIONS IN X-OIRECTIONNXL(N) NUMBER OF CELLS BETWEEN LOCATIONS XL(N) AND XCIN) IN
SUBMESH NNXR(N) NUMBER OF CELLS BETWEEN LOCATIONS XC(N) AND XL(N-M) IN
SUBMESH NNYL(N) NUMBER OF CELLS BETWEEN LOCATIONS YL(N) AND YC(N) IN
SUBMESH NNYR(N) NUMBER OF CELLS BETWEEN LOCATIONS YC(N) AND YL(N+1> IN
SUBMESH NXC(N) X-COORDINATE OF THE CONVERGENCE POINT IN SUBMESH NXL(N) LOCATION OF THE LEFT EDGE OF SUBMESH N (NKX+1 VALUES
OF XL(N) ARE NECESSARY BECAUSE THE RIGHT EDGE <XR) OFSUBMESH N IS DETERMINED BY THE LEFT EDGE OFSUBMESH N+l)
YC(N) Y-COORDINATE OF THE CONVERGENCE POINT IN SUBMESH NYL«N) LOCATION OF THE BOTTOM OF SUBMESH N (NKY*1 VALUES OF
YL(N) ARE NECESSARY BECAUSE THE TOP EDGE (YR) OFSUBMESH N IS DETERMINED BY THE BOTTOM EDGE OFSUBMESH N+l)
62
ccc
117 C118 C119iao121122 C123 C124 C185 C136 C127 C128 C129 C130 C131 C132 C133 C134 C135 C136 C137 C138 C139 C140 C141 C142 C143 C144 C145 C146 C147 C148 C149150151 C152 C153154155156157 C158 C159160161162163164165166167168169170171172 C173 C174 C
••• VARIABLES LISTED IN COMMON (EXCLUDING INPUT PARAMETERS)
CC
ccccccccccccc
CYCLECYLDTSFT
DTVIS
EMF
EMF1EM6EM10EP10FLG
FLGC
FNOC
I BAR
1BAR2
I MAX
IM1
IM2
I PL
I PR
ITERJBAR
JBAR2
JMAX
JMI
JM2
JPB
JPT
NFLGC
CALCULATIONAL TIME CYCLEMESH GEOMETRY INDICATOR (= 1CYL)MAXIMUM DELT VALUE ALLOWED BY THE SURFACE TENSION FORCESSTABILITY CRITERION (DELT IS AUTOMATICALLY AOJUSTED)MAXIMUM DELT VALUE ALLOWED BY THE VISCOUS FORCESSTABILITY CRITERION (DELT IS AUTOMATICALLY ADJUSTED)SMALL VALUE, TYPICALLY 1.0E-06. USED TO NEGATE ROUNO-OFFERROR EFFECTS WHEN TESTING F=1.0 OR F*0.0= 1.0-EMF=1.0E-06=1.OE-IO=!.0E+10PRESSURE INOICATOR (=0.0 WHEN
1.0 WHEN THEITERATION CONVERGENCE TEST
THE CONVERGENCE TEST IS SATISFFED,CONVERGENCE TEST IS NOT SATISFIED)VOLUME OF FLUID FUNCTION CONVECTION LIMIT INDICATOR(DELT REDUCED AND CYCLE STARTED OVER IF LIMITIS EXCEEDED)PRESSURE CONVERGENCE FAILURE INDICATOR (=1.0.CONVERGENCE FAILED AND DELT IS REDUCED. =0.0 OTHERWISE)NUMBER OF REAL CELLS IN X-DIRECTION (EXCLUDES FICT1CI0USCELLS)=IBAR+2, SPECIFIED IN PARAMETER STATEMENT(=IBAR+3. IF PERIODIC IN X-DIRECTION)TOTAL NUMBER OF MESH CELLS IN X-DIRECTION (=IBAR+2)(=IBAR+3. IF PERIODIC IN X-DIRECTION)VALUE OF THE INDEX I AT THE LAST REAL CELL IN THEX-DIRECTION (=!MAX-1)VALUE OF THE INDEX I AT THE NEXT TO THE LAST REAL CELLIN THE X-DIRECTION (=IMAIN THE X-2>LEFTMOST PRESSURE ITERATION INDEX IN X-DIRECTION(=3 FOR CONSTANT PRESSURE BOUNDARY CONDITION. =2 FORALL OTHER CASES)RIGHTMOST PRESSURE ITERATION INDEX IN X-DIRECTION(=IMS FOR CONSTANT PRESSURE BOUNDARY CONDITION. =IM1 FORALL OTHER CASES)PRESSURE ITERATION COUNTERNUMBER OF REAL CELLS IN Y-DIRECTION (EXCLUDES FICTICIOUSCELLS)•JBAR+2. SPECIFIED IN PARAMETER STATEMENT(=JBAR+3. IF PERIODIC IN Y-DIRECTION)TOTAL NUMBER OF MESH CELLS IN Y-DIRECTION (=JBAR+2)(=JBAR+3. IF PEHIODIC IN Y-DIRECTION)VALUE OF THE INDEX J AT THE LAST REAL CELL IN THEY-DIRECTION CJMAX-1)VALUE OF THE INDEX J AT THE NEXT TO THE LAST REAL CELLIN THE Y-DIRECTION CJMAX-2)BOTTOM PRESSURE ITERATION INDEX IN Y-DIRECTION(*3 FOR CONSTANT PRESSURE BOUNDARY CONDITION. =2 FORALL OTHER CASES)TOP PRESSURE ITERATION INDEX IN Y-DIRECTION(*JM2 FOR CONSTANT PRESSURE BOUNDARY CONDITION. *JM1 FORALL OTHER CASES)NUMBER OF CYCLES THE VOLUME OF FLUID FUNCTION CONVECTIONLIMIT (FLGC) IS EXCEEDED
63
1751761"»7178179180181188183184185186187188189190191192193194195196197198199200201202803204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
CCcccccccc.cccccccccccccccccccccccccccccccccccccccccccccccc
HOC ONNPNPRTS
NRCGNVOR
NVRMMESHX
MESHY
PIRCSQRHOORPDSFTTANGLEVCHGTVELMX1XMAXXMINXSHTT
YMAXYMINYSHFT
••• ARRAY!
ACOM11)8ETAU.J)OELX(I)OELY(J)FII.J)
FN(I.J)
IPCK)JPlK)NAME(IO)NFM.J)
NR(K)P(I.J)PETA(l.J)PN(I.J)PR(K)PS(l.J)
ROX(I)ROY(J)RXCI)RXK1)RYJ(J)TANTH(I.J)
NUMBER Of CYCLES PRESSURE CONVEGENCE HAS FA ILEOTOTAL NUMBER OF PARTICLES COMPUTED TO BE IN MESHNUMBER OF PARTICLES IN MESH. SPECF1E0 IN PARAMETER STATE1USEO TO SET ARRAY SIZE - MUST BE > 0)NUMBER OF VOID REGIONS GENERATED IN CALCULATIONMAXIMUM NUMBER OF VOID REGIONS ALLOWED. SPECIFIED !NPARAMETER STATEMENTNUMBER OF VOID REGIONSNUMBER OF S'JBMESH REGIONS IN X-DIRECT1ON. SPECIFIEDIN PARAMETER STATEMENTNUrSER OF SUBMFSH REGIONS IN Y-DIRECTION. SPECIFIEDIN PARAMETER STATEMENT-3.141592654RECIPROCAL Of CSQDIFFERENCE ?N FLUID DENSITIES (•RHOF-RHOFODEGREES TO RADIANS CONVERSION FACTORPLOT SCALING. FACTORPROBLEM TIMETANGENT OF CONTACT AWDLE. CANGLEACCUMULATED FLUID VOLUME CHANGEVELMX NORMALIZED TO MINIMUM MESH CELL DIMENSIONLOCATION OF RIGHT-HAND SIDE OF MESHLOCATION OF LEFT-HAND SIDE OF MESHCOMPUTED SHIFT ALONG THE PLOTTING ABSCISSA TO CENTERTHE PLOT FRAME ON FILMLOCATION OF THE TOP OF THE MESHLOCATION OF THE BOTTOM OF THE MESHCOMPUTED SHIFT ALONG THE PLOTTING ORD1NATE TO CENTER THEPLOT FRAME ON FILM
••• ARRAYS IN COMMON (EXCLUDING MESH SETUP PARAMETERS)
FIRST M0RO IN COMMONPRESSURE ITERATION RELAXATION FACTOR IN CELL (t.JIMESH SPACING OF THE I-TH CELL ALONG THE X-AXISMESH SPACING OF THE J-TH CELL ALONG THE Y-AXISVOLUME OF FLUID PER UNIT VOLUME OF CELL II.JI AT TIMELEVEL N+lVOLUME OF FLUID PER UNIT VOLUME OF CELL CI.JJ AT TIMELEVEL NCELL INDEX FOR PARTICLE K ALONG X-AXISCELL INDEX FOR PARTICLE K ALONG Y-AXISPROBLEM IDENTIFICATION LINEFLAG OF SURFACE CELL (t.JI INDICATING THE LOCATIONOF ITS NEIGHBORING PRESSURE INTERPOLATION CELLLABEL OF VOID REGION, K > 5PRESSURE IN CELL tl.JI AT TIME LEVEL N*lPRESSURE INTERPOLATION FACTOR FOR CELL (I.JJPRESSURE IN CELL (I.J) AT TIME LEVEL NPRESSURE IN VOID REGION NR(K>SURFACE PRESSURE IN CELL II.J) COMPUTED FROM SURFACETENSION FORCESRECIPROCAL OF DELX(I»RECIPROCAL OF DELY(J)RECIPROCAL OF X(HRECIPROCAL OF XI(I!RECIPROCAL OF YJ<J>SLOPE Of FLUID SURFACE IN CELL U.J)
64
233 C UU.JI X-DIRECTION VELOCITY COMPONENT IN CELL U.J) AT TIME23«* C LEVEL N*l235 C UNU.J! X-DIRECTION VELOCITY COMPONENT IN CELL CI.J) AT TIME836 C LEVEL N237 C VII.J) Y-DIRECTION VELOCITY COMPONENT IN CELL U.JI AT TIME238 C LEVEL N*l239 C VN( I .J ) Y-OIHECTI ON VELOCITY COMPONENT IN CELL I I . J ) AT TIME2H0 C LEVEL N2HI C VOL<K) VOLUME OF VOID REGION NRIK)2H2 C X ( I ) LOCATION OF THE RIGHT-HAND BOUNOARY OF THE I-TH CELL2H3 C ALONG THE X-AXIS^ C X I I 1 ) LOCATION OF THE CENTER OF THE I-TH CELL ALONG THE245 C X-AXIS246 C XPIK) X-COOROINATE OF PARTICLE K247 C Y(J) LOCATION OF THE TOP BOUNDARY OF THE J-TH CELL ALONG TH2MB C Y-AXIS2H9 C YJ(J) LOCATION OF THE CENTER OF THE J-TH CELL ALONG THE250 C Y-AXIS251 C YPIK) Y-COORDINATE OF PARTICLE K252 C ZCOMfl) LAST WORD IN COMMON253 »CALL.COMMON)254 NAMELISr /XPUT/ DELT.NU.ICYL.EPSl.GX.GY.UI.VI.VELMX.TWFIN.PRTDT255 I ,PLTOT.OMG.ALPHA.WL.W.HT.HB.IMOVY.AUTOT.FLHT.ISYMPLT.SIGMA256 2 .ISURF1O.CANGLE.CSQ.NMAT.RHOF.RHOFCXPL.XPR.YPB.YPT.NPX.NPY257 NAMELIST /MSHSET/ NKX.XL.XC.NXL.NXR.OXMN.NKY.YL.YC.NYL.NYR.OYMN258 C259 DATA EMF /I.OE-06/, EM6 /I.OE-06/. EM10 /I.OE-10/260 DATA EPIO /1.0E-H0/261 DATA PI /3.I4159265H/. RPO /0.0I7V532925/262 C263 C ••• DEFAULT INPUT OATA264 C ••• NOTE USER MUST SUPPLY THE FOLLOWING REGARDLESS265 C OF DEFAULTS: OELT.THFIN.PRTOT.PLTOT266 C267 DATA NU /0.0/, 1CYL /0/. EPSI /1.0E-03/. GX /0.0/, GY /O.O/. UI /O268 I .0/. VI /O.O/. VELMX /|.O/. JMOVY /O/. OMG /I.7/, ALPHA /l.O/. HL269 2 /I/. WR /!/. HT /I/. MB /I/. CSQ /-l.O/. AUTOT /l.O/, fSYMPLT /0/270 3 . 1SURF10 /0/. SIGMA /O.O/. CANGLE /90.0/. NMAT /I/. RHOF /l.O/.271 H RHOFC /l.O/, FLHT /O.O/. XPL /O.O/. YPB /O.O/. XPR /O.O/. YPT /0.272 5 0/, NPX /O/, NPY /0/273 C274 C ••• SETUP FILM INITIALIZATION TO SYSTEM275 C •«• NOTE FILMSET IS SYSTEM DEPENDANT276 C277 CALL FILMSET278 C279 C ••• READ PROBLEM TITLE (NAME)280 C281 READ (5.110) NAME282 C283 C ••• READ INITIAL INPUT DATA28H C285 READ (5.XPUT)286 C287 C ••• READ INPUT PARAMETERS FOR VARIABLE MESH288 C289 READ (5.MSHSET)290 C
65
291 C •»* CALCULATE VARIABLE MESH DATA292 C293 CALL MESHSET294 C295 C ••• PRINT INITIAL INPUT DATA296 C297 CALL PRTPLT (J)298 C299 C ••• SET INITIAL CONDITIONS300 C301 CALL SETUP302 C303 C ••• SET INITIAL BOUNDARY CONDITIONS304 C305 CALL BC306 C307 GO TO 20308 C309 C ••• START TIME CYCLE310 C311 10 CONTINUE312 ITER-0313 FLG-I.O314 FNCOO.O315 C316 C • • • EXPLICITLY APPROXIMATE NEW TIME-LEVEL '^LOCITIES317 C318 CALL TILDE319 C320 IF INMAT.EQ.2.AND.ISURFI0.EO.li CALL TMS10321 C322 C ••• SET BOUNDARY CONDITIONS323 C324 CALL BC325 C326 C ••• 1TERATIVELY ADJUST CELL PRESSURE AND VELOCITY327 C328 CALL PRESSIT329 C330 IF IT.GT.EP101 GO TO 30331 C335 C ••• UPDATE FLUID CONFIGURATION333 C334 20 CALL VFCONV335 C336 IF (FLGC.GT.0.5) GO TO 90337 C338 C ••• SET BOUNDARY CONDIT DNS339 C34 0 CALL BC341 C342 C ••• MOVE MARKER PARTICLES343 C344 CALL PARMOV345 C346 C *•• DETERMINE PRESSURE INTERPOLATION FACTOR AND NEIGHBOR347 C ••• ALSO DETERMINE SURFACE TENSION PRESSURES AND348 C •" WALL ADHESION EFFECTS IN SURFACE CELLS
66
349 C350 CALL PETACAL351 C353 C ••• PRINT TIME AND CYCLE DATA ON PAPER ANO/OR FILM353 C354 30 CALL PRTPLT (2!355 C356 IF (CYCLE.LE.Ol GO TO 40357 IF 1T*EM6.LT.THPLT) CO TO 50358 TWPLT-n«.T*PLTDT359 40 CONTINUE360 C361 C ••• PRINT FIELD VARIABLE DATA ON FILM362 C363 CALL PRTPLT (3)364 C365 C ••• PLOT VELOCITY VECTOR. FREE SURFACE. MESH.366 C •»• AND MARKER PARTICLE ON FILM367 C368 CALL DRAM369 C370 50 CONTINUE371 !F (CYCLE.LE.O) GO TO 60372 IF a-EM6.LT.T»#>RT> GO TO 70373 TWPRT«TtfsRT*PRTDT37k 60 CONTINUE375 C376 C ••• PRINT FIELD VARIABLE DATA ON PAPER377 C378 CALL PRTPLT (4)379 C380 70 CONTINUE361 C382 C ••• SET THF »f}VANCE TIME ARRAYS INTO THE TIME-N ARRAYS383 C384 DO 80 I-UMAX385 DO 80 J-I.JMAX386 UNI I ,J)«UU ,J>387 VNU.J1-VCI.J)388 UII.J1-0.0389 VII.JLO.O390 PN(I.J)-PfI.J)391 FN(I.J)«F(I.J)392 80 CONTINUE393 NREGN-NREG394 C395 C ••• ADJUST DELT396 C397 90 CALL OELTADJ396 C399 C ••• ADVANCE TIME400 C401 T*T+DELT402 IF (T.GT.TWFIN) GO TO 100403 C404 C ••• ADVANCE CYCLE405 C406 CYCLE-CYCLE*I
67
V07 IF (NFLGC.GE.a5.0R.NOCON.GE.25l T-EPIOHOB CO TO 10••09 CMIO 100 CALL EXITVJI C412 110 FORMAT (IT'Sl
END
68
414415416417418119••20421425423424425426427H2Q429H30431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
SUBROUTINE BC•CALL COMMON1CC •*• SET BOUNDARY CONDITIONSC
00 >00 J-I.JNAXF(|.J)«F(2.J>F(IMAX.J)«F(IMl.J)PU.J)«P(2.JIP(IMAX.Jl-PlIMl.J)GO TO (10,20,30.40.30). ML
10 U(1.J)«0.0V(1.J)-VI2.J)GO TO 50
20 Ud.JI-0.0V(1,J)«-V»2.J)»OELXI))/DELXl2)GO TO 50
30 IF (ITER.GT.O) GO TO 50U(I.J)«U(2.JM«X(2)*RX(l)»CYL*1.0-CYL)V(I,J)-V(2,JIGO TO 50
40 U(I,J)»U(IM8.JIV(I,J)-V(IM2.J)F(1.J)-F(IM2.J)
50 GO TO (60.70.80.90.80). MR60 U(1MI,J)-O.O
VIIMAX.J)-V(IMI.J)GO TO 100
70 U(IM1,J)»O.OV(IMAX.J)—VIIMl.J)*DELX(IMAX)/OCLXIIMl)GO TO 100
80 IF IITER.GT.O) GO TO 100U(IMl.J)-U»1M2.J)MX(1M2)»RX(IMl)»CYL*1.0-CYL)V(IMAX.J)>V(IMl,J)GO TO 100
90 U(IM1,J)-U(2.J)V(IMI,J)«V(2.J)P(1MI.J)-P(2.J)PS(IMt.J)-PS(2.J)F(IM1.J)-F(2,J)V(|MAX.J)-V(3.J)F(|MAX.J)-F(3.J)
100 CONTINUEDO 200 l-l.IMAXFtl.ll-Ftl.81F(|.JMAX)«F(I.JMI)P(I,I)-P(I,2)P(I.JMAX)-P(I.JM1>GO TO (110.120.130.140.130). MT
110 V(1,JM1)-O.OU(1.JMAX)-U(I.JM|)GO TO 150
120 V(I.JM1)-O.OU(I.JMAXI—U(I.JM1)»DELY(JMAX)/DELY(JM1)GO TO 150
130 IF <ITER.GT.O) GO TO 150V(1.JMII-VI1.JM2)UU.JMAXI-Ull.JM!)
69
472 GO TO 150473 140 V(I.JMI)-VC|.2)474 Ud.JMl J-Ud.2)475 P(1.JHI)-P(|,2>476 PS(I.JM|)-PSd.2)477 Fl|.JMI)-Fl|.2)478 U<I.JMAX)«Ud.3>479 FU.JHAX1«F(1.3)480 150 GO TO (160.170.180.190.180). HB481 160 VI1.11-0.0482 U<l.ll*Ud.2)483 CO TO 200484 170 Vf1.11-0.0485 Ud.l)«-U(I.2)»DELY(I)/DELY«2)486 GO TO 200487 180 IF (ITER.GT.O) GO TO 200488 Vd.lt-VI489 UU.Ii-Ul490 60 TO 200491 190 V(I.1)-V!492 U(I.1)-U(493 F C1.11-FI
.21
,JM2).JM2).JM2I
494 200 CONTINUE495 C496 C ••• FREE SURFACE AND SLOPED BOUNDARY CONDITIONS497 C498 DO 440 I«2.IM1499 XRP«ROX<II+0.5»RXI<1)500 RXRP-l./XRP501 XRM«RDX(ll-0.5»RXI(!)502 IF (XRM.GT.0.0) GO TO 210503 RXRM-0.0504 GO TO 220505 210 CONTINUE506 RXRM-l./XRM507 220 CONTINUE508 DO 440 J-2.JM1509 IF (BETAd.J(.GT.O.O) GO TO 230510 BMR-0.0511 BHT-0.0512 BML-0.0513 BMB-0.0514 FU.J1-0.0515 PU.JJ-0.0516 IF (BETAU + 1.J1.GT.0.0) BMR«1.0517 IF (8ETA(I.J*)).GT.0.0) BUT-1.0518 IF (BETAII-l.J).GT.O.O) BML-1.0519 IF (BETAII.J-l).GT.O.O) BHB-1.0520 BMTOT-BMR+BMT+BML+BMB521 IF IBMTOT.LE.0.C1 GO TO 440522 FU.J)-(BMR<F(I + I.J>*BOT*F(|,J+n+BML*F(!-1.J)«BMB*FI|,J-n>/BWOT523 PC I.J»"CBMR«P(1*1.J>*BMT«PCI,J*1)*BML»P(1-1,J)*BMB»PC1,J-1))/BMTOT524 GO TO 440S?5 230 CONTINUE526 IF INHAT.E0.2) GO TO 440537 JF (F(I.J).LT.ENF.OR.F«I.JI.GT.EMF1) GO TO 440528 NFS8-0529 IF (Fd + I.JI.LT.EMFl NFSB«WS8+1
530 IF IFtI.j*ii.LT.EMFi NFSB-NFSB+2531 IF IFII-I.JJ.LT.EMF) NFSB«NFSB*4532 IF (F(I.J-I).LT.EMF) NFS8«NFSB*8533 IF (NFSe.EQ.O) GO TO 440534 IF lhfSB.GT.8l GO TO 240535 GO TO (250.860.270,280.290.300.310,330). NFSB536 2H0 NFSBI«NFSB-8537 GO TO (330.3*0,350.360.370.380.390), NFS81538 250 U(I.J)*(U(1-1.J)-DELX(I)»RDY(J)MV<I.J)-V1I.J-UI)MI.O-CYL)*CYL*539 I <UU-I.J)«XRM*RXRP-RDY1JMRXRPMV(|.J)-V(J.J-I))>540 GO TO 400541 260 V < I. J)«(V< I. J-I)-OELY(J)»ROXcn« (CM I. J)-U( I-1. JJ) I'M. O-CYU+CYL"542 1 IVU.J-1)-DELYIJ)MXRP»U(I .J)-XRM*U(!-I ,J)) >513 GO TO MOO544 270 U(I.J)»U(l-l.J)Mi.O-CYL)*CYL»Ud-l,J)545 GO TO 260546 280 U(1-I.J)»(U(I ,J)*DELX< I )»R0YU)MV< I. J)-V( I, J-l)) )• (1.0-CYL >»CYL•547 I (U(|,J)»XRP«RXRM*RDY<J)«RXRMMVII.J)-V( J.J-1)))548 GO TO 400549 290 U(I-1,J)»U(I-1.J-1>550 GO TO 250551 300 UU-l.J>-U<I.J)M1.0-CYU*CYL«U(I.J)552 GO TO 260553 310 U(I-I.J)«U1I-1,J-1)554 U(I.J)»U(I.J-I)555 GO TO 260556 320 Vll.J-l)«(V(I.J)*DELY(J)«RDX(l)MUU,J)-U(l-l.JM>MI.O-CYL>+CYL*557 I (V(|.J)+OELY(J)MXRP»U(I.J)-XRM«U(!-I.J))I558 GO TO 400559 330 U(I.J)-U(l-l.J»«(1.0-CYL)*CYL»U(I-l.J)560 GO TO 320561 340 Vtl.Jl-VI1-1,J>562 GO TO 320563 350 V(I.J)-V(I-I.J)564 V(1.J-1)«V(1-1,J-1)565 GO TO 250566 360 UU-I.J)-U(I.J)M1.0-CYU+CYL*UC|.J)567 GO TO 320568 370 U(1,J»-U(I.J+1)569 U(I-l.J)«UU-l.J+l)570 60 TO 320571 380 V(I,J)»V(I*1,J)572 V(I.J-l>>V(!*i.J-M573 GO TO 280574 390 U(I.J)»U«I-1.J)MI.O-CYL)*CYL»U(1-1.J)#XRM»RXRP575 VII.J-1)>VI1.JI576 V(I.J+I)-V(I.J)577 GO TO 400578 C579 C ••• SET VELOCITIES IN EMPTY CELLS ADJACENT TO PARTIAL FLUID CELLS580 C581 400 CONTINUE582 IF <FLG.GT.O.5.AND.1TER.GT.O) GO TO 440583 IF (F(1*I.J).GT.EMF) GO TO 410584 IF (F(I+1.J*I).LT.EMFJ Vi1+1,JI-V(I,J)585 IF (F(!*1.J-1).LT.EMF> V(1*1,J-1)«V(I.J-l)586 410 IF (FII.J+D.GT.EMF1 GO TO 420587 IF (F(I*I.J*I).LT.EMF) U<I.J+l>-U(1,J>
71
58858959059159859359H595596 C597 C598 C599600
IF"•20 IF
IFIF
H30 IFIFIF
IF!(Fl<F(!F(IF(
-I.J+D.LT.EMF) U<I-1.J*1)«U(I-1.J)-l.J).GT.EMF) GO TO H30-l.J*l).LT.EMF) V(I-1.J)«V(I.J)-I.J-ll.UT.EMF) V(I-1.J-1)«V(I.J-I'.J-I).GT.EMF) GO TO HHO
IF(I*1.J-1).LT.EMF) U(I.J-lI>U(I.J)(F(I-I.J-iJ.LT.EMF) U(I-I.J-I)-UH-I.J)
CONTINUE
••• SPECIAL VELOCITY BOUNDARY CONDITIONS
RETURNEND
72
6016026036046056066076086096106116126136m6156166176186196506216526236SM625626627
•CALLCCCCC
10CC
c
2030
SUBROUTINE CAVOVO.COMMON1
••• CALCULATE VOID VOLUMES
••• INITIALIZE VOID VOLUMES
00 10 KM.NVRMVOUK>«0.0
••• COMPUTE VOID REGION VOLUMES
00 30 J-S.JMI00 30 I-2.IMIINF-NFU.J)IF CINF.EQ.O.OR.BETA!1,J>.LT.0.0) CO TO 30VOLA»(1.O-FtI.J))»OELXt1)•OELY(J)•(1.0-CYL*CYL«2.0*3.mi59»Xl(1))IF (INF.GT.5) GO TO 20INFR-NF(1*I.J»INFT»NFil,J*n1NFL»NF«I-I.J)INFB»NF(I,J-1)INF-MAXO(1NFR.1NFT.1NFL.1NFB)VOL(INF)«VOL(1NF)*VXACONTINUERETURNEND
73
688 SUBROUTINE DELTADJ689 'CALL.COMMONI630 C631 C ••• OELT (TIME STEP) ADJUSTMENT638 C633 DELTN-DELT634 IF rFLGC.LT.0.51 GO TO 80635 T-T-DELT636 CYCLE-CYCLE-1637 DELT-0.5»DELT633 00 10 I-I.1MAX639 DO 10 J-l.JMAX640 PII.JI-PNII.J)641 F(I.J)-FNd.J)648 UU.JJ-0.0643 V(I.J)-0.0644 10 CONTINUE645 NFLGC-NFLGC+I646 80 CONTINUE647 IF (AUTOT.LT.0.5.AND.FNOC.LT.0.51 GO TO 40648 DUMX-EM10649 OVMX-EMIO650 IF IFNOC.GT.0.5) DELT«0.5«DELT651 DO 30 1-8.IM1658 DO 30 J-8.JM1653 UDM*A8S(UN(I.J))/(XKI + 1!-X!IIM654 VDM-A8S(VN(I,JH/(YJ(J*!)-YJIJ»>655 DUMX-AMAXICDUMX.UDM)656 DVMX-AMAXI(OVMX.VDM)657 30 CONTINUE658 DTMP-1.01659 IF (ITER.GT.25) DTMP-0.99660 DELTO-DELT«DTMP661 CON-0.85668 DELT-AMIN1IDELTO.CON/DUMX.CON/DVMX.OTVIS.DTSFTI663 IF tIMOVY.GT.OI OELT-AM1N1(OELT.PLTDT)664 40 IF (DELT.EQ.OELTN.AND.NMAT.EQ.I) GO TO 60665 CTOS«DELT»RDTEXP666 COMG-AM1NI(CTOS**8.1.0)667 OMG1-IOMG-1.0CCOMG+1.0668 DO 50 I - U M A X669 00 50 J-l.JMAX670 IF (BETA(l .Jf .LT.O.O) GO TO 50671 RHXR«(RH0FC+RHOD»F(I.J>MOELXU + n*<RHOFC*RHOD«F(I«-l,JM»DELX(I>678 RHXL-(RH0FC*RH0O«F(I-1,J))*DELX«1)•CRHOFC*RHCO*F(1.J))«DELX11-1)673 RHYT-(RHOFC*RH0O«FlI.J)MDELYCJ*!)+«RHOFC*RH0O*F(1,J*1)>»OELY(J)674 RHYB-(RHOFC*RHOO«F(I.J-1)1»DELY(JJ•(RH0FC*RHOO*F11.J)1»DELY«J-1>675 XX«DELT*RDXn)»<a.0/RHXL*e.0/RHXR)*DELT«RDYCJ)*(8.0/RHYT*8.0/RHYB)676 RHOR-RH0F/(RHOFC+RHOO«F(l.J))677 BETA(I.J>-OMG)/(XX*COMG+RCSQ«RHOR/DELT)678 50 CONTINUE679 60 CONTINUE680 RETURN681 END
74
682 SUBROUTINE: DRAW683 •CALL.COHHONI68H C685 C ••• PLOT VELOCITY VECTOR. FREE SURFACE. MESH.686 C •••AND MARKER PARTICLE ON FILM687 C688 IF (IMOVY.EQ.I.AND.NP.GT.OI 60 TO 80689 C690 C ••• VELOCITY VECTOR PLOT691 C69e CALL AOV (I)693 CALL FRAME (XKIN.XMAX.YMAX.YMIN)69H IF (IMOVY.EQ.I) GO TO 10695 CALL LINCNT (6?)696 MRITE (12.IM0) NAME697 CALL LINCNT (6H)698 WRITE (18.1301 T.CYCLE699 10 CONTINUE700 CALL DRHOBS701 DO 20 J-S.JM1702 DO 20 I-2.IM1703 IF «F(|.J).LT.0.5.AND.NMAT.EQ.i) GO TO 2070<4 IF (BETA(l.J).LT.O.O) GO TO SO705 XCC-Xt(11706 YCC«0.5»(Y(JI*YIJ-l)>707 UVEC«(U<l-l.J)*UU.JH»0.5»VELMXi*XCC708 VVEC»<V(I.J-l>*V(I.JII»0.5«VELMXJ*YCC709 CALL ORWVEC IXCC.YCC.UVEC.WEC.1)710 CALL PLTPT (XCC.YCC.538.1)711 80 CONTINUE718 C713 C • • • ORAH FREE SURFACE7 m C715 FPL-0.5716 DO 40 I"2.1MI717 DO 40 J-e.JMI718 IF (BETA(I.J).LT.O.O) GO TO «*0719 FATR-0.85«(F(l,J)*F(J*l.J)*F(I.J*n*F(l*l.J*in720 FXTR-0.5MF(I*I.J+l>*F(l*l.J)-FU.J*n-F(I.J))/(XIII*l)-XMln721 FYTR«0.5»(F(l,J+1I*F(1+I. J*l!-F( I, J)-Ft I-M . J>)/(YJJJ+1 >-YJ< J))722 FTRS»FXTR»»2*FYTR»*2723 IF (FTRS.EQ.0.0) FTRS-EP1072H XTR»0.5»(XI(1+1J+XIt1)I*(FPL-FATR)«FXTR/FTRS725 XTR-AMAXHXTR.XKIM726 XTR-AMINI(XTR,XI(I+I>>727 XTRM--XTR728 YTR»0.5*(YJ(JI+YJ(J+H3*(FPL-FATRI»FYTR/FTRS729 YTR-AMAX1IYTR.YJU)>730 YTR-AMINUYTR.YJ(J*D)731 JF (F(I.J).GT.0.5.AND.FU*I,JJ.GT.0.5> GO TO 30732 IF (F(!,J).LT.0.5.AND.FU + I.J).LT.0.5> GO TO 30733 FABR»0.25»(F(l ,J>*F(l+l .J)*F(I.J-n*F(l+l .J- l>)73«* FXBR»0.5#(F(l* l ,JI*F(l* l .J- l)-F(I.J)-F(|.J-in/«XHI*l)-X!( l>)735 FYBR-0.5«(F(I.J)*F(I*l.J)-F(I.J-l)-FII*I.J-l l)/(YJ(JI-YJ(J-l)l736 FBRS-FXBR"2*FYBR"2737 IF (FBRS.EQ.O.O) FBRS-EPIO738 XBR-0.5MXI 11*11+XI (11 )-»(FPL-FA8R)»FXBR/FBRS739 XBRoAMAXllXBR.XIlD)
75
740 XBR'AMINI(XBR.XI(1*1))7m YBR'O.SMYJUI+YJIJ-It)*(FPL-FABR)*FYBR/FBRS742 YBR-AMAX1(YBR.YJtJ-l))743 YBR-AMINKYBR.YJtJ))744 CALL ORWVEC (XBR.YBR.XTR.YTR.11745 30 CONTINUE746 IF (FtI,J).GT.0.5.AND.F(l.J*l).GT.0.5J GO TO 40747 IF <FU,J).LT.0.5.AND.F(l.J*l).LT.0.5> GO TO 40748 FATL«0.25#(F(I.J)+F(I.J*l)+F(1-1.Jl+FI1-1,J*l)>749 FXTL»Q.5»(F(|.J*I1+FU,JJ-Fl1-1,J*l)-F(1-1,J>)/1X1tJI-Xl(1-1))750 FYTL«O.5*(F(I-1,J+1)*F(I.J+l)-F(1-1.J)-F(I.J))/(YJ1J+1>-YJ(J))751 FTLS«FXTL«*e*FYTL"2752 IF (FTLS.EQ.O.O) FTLS«EP10753 XTL-0.5 #tXKI-l)+xm ) ) + (FPL-FATL)'FXTL/FTLS754 XTL-AMAXKXTL.XKI-IM755 XTL-AMINKXTL.XHD)756 YTL'O.SMYJtJl+YJfJ+lD + fFPL-FATD'FYTL/FTLS757 YTL*AMAXHYTL,YJ(J))758 YTL*AMIN1(YTL.YJ(J+D)759 CALL DRWVEC IXTL.YTL.XTR.YTR.1)760 40 CONTINUE761 C762 C ••• MESH PLOT763 C764 IF (1MOVY.EQ.1) GO TO 120765 IK IT.GT.O.O) GO TO 70766 CALL ADV (1)767 CALL DRWOBS768 DO 50 J«l .JH1769 YCC*Y(J>770 CALL DRWVEC (XMIN.YCC.XMAX.YCC.0)771 50 CONTINUE772 DO 60 I«1,IM1773 XCC*X(|>774 CALL DRWVEC (XCC.YMIN.XCC.YMAX.1)775 60 CONTINUE776 70 CONTINUE777 C778 C •*• PLOT PARTICLES779 C780 IF (NP.EQ.O) GO TO 110781 80 CONTINUE782 CALL ADV (I)783 CALL DRWOBS784 CALL FRAME (XMIN.XMAX.YMAX.YMIN)785 IF (IMOVY.EQ.l) GO TO 90786 CALL LINCNT (62)787 WRITE (12.140) NAME788 CALL LINCNT (64)789 WRITE (12,130) T.CYCLE790 90 CONTINUE791 DO 100 N*1.NP792 CALL PLTPT (XP(N).YP(N),300B.l)793 100 CONTINUE794 110 CONTINUE795 120 CONTINUE796 RETURN797 C
76
798799800
130140
FORMATFORMATEND
UH*.80X.eHT*,IPEIQ.3.4X,SHCYCLE*.14)<1H .18X.10A8. IX.AI0 .a( lX.A8)>
77
1
801 SUBROUTINE 0RW08S802 'CALL.COMMON!803 CBOH C ••• DRAW AROUND ALL OBSTACLESBOS C806307808809810811812813em815816817818819820821822823824
DO 20 1-2.IMtDO 20 J-2.JMIIF ((BETAi|.J).LT.O.0.AND.BETAl|*l.J).LT.0.O).OR.(BETA<l.J).GT.0.O.AND.BETA!1+1.JI.GT.0.01) 60 TO 10
X0»"«X(MXTUO-XONEYONE«Y1J-1!YTMO-Y(J)CALL DRWVEC fXONE.YONE.XTWO.YTWO.>)
10 IF (CBETACi,J).LT.0.0.ANO.BETA(I.J*M.LT.0.0).OR.iBETAt1,J).GT.0.0I .AND.BETA(1,J*1).GT.0.0)1 GO TO 20XONE«Xtt-l>XTHO-X(I)YONE«Y(J)YTHO«YONECALL DRHVEC (XONE.YONE.XTMO.YTWO.l)
20 CONTINUERETURNEND
78
0N3Nani3a
01 Oi 002X—2XIX--IX
02 Oi 00 t f i O O l ! Jl1*3!-01
05 Oi 00 l003HASlaO'0"03'iTdWASn J>(5AI 'ax i 'ur ix i i Aao mvs
!20A-0'l) .0'0a6*-0S»2AIt l0A-0 ' !>»0 '026* '0S-UI
20X.0 026*-05*2X1IOX.O'026+OS«tXl
iJHSA+JS«(N1WA-3Xi-20A1JHSX*JS.!NIWX-2X)«2OX
iJHSX«JS>(NIMX-IX)>IOX0MiA-2AOMiX«?X3N0A-IA3N0X-1X
0-31
TIV3 iNV0N3d3Q M3iSAS V SX)U08d •« •HOiOlA V HVUQ • • •
(N0UH03*(UASI'OMiA'OHiX'TiOA^MOX) 33AMUQ 3Nlinoa8PS
02
01
3333
TJV3.
2981S80S85h88h8i.^89H85H8+>H8£S82H8Ih80*i86£88£8
9£8S£8•>£8££82C8(£80£8658828L36928we
953 SUBROUTINE FILMSET9!M C055 C ••• SETUP OF OUTPUT FILM TYPE856 C ••« THIS POUT INC tS SYSTEM DEPEHDANT857 C956 CALL GTR80 (IHU.7HSQLAV0F.6O.eHl6.5HT3RSH.lHN>859 C860 CALL GRPHLUN <l2l861 CALL LIBM&O862 CALL GRPHFTN863 CALL SETFLSH86K RETURN865 END
80
86686786886987087187?87387<«875
CC
c
SUBROUTINE
... |
CALLCALLCALLCALL
DRAW A
ORUVECDRHVECORUVECORMVEC
RETURNEND
< (XXL.XXR.YYT.YYB)
FRAfC AROUNO THE PLOT
tXXL.YYT.XXR.YYT.Ol(XXL.YYT.XXL.YYB.OIfXXL.YY8.XXR.YYB.0ltXXR.YYB.XXR.YYT.O)
8J
876 SUBROUTINE LAVORE877 •CAU.C0MM0N1878 C879 C ••• LABEL VOJD REGIONS - - VOID REGIONS ARE WT.EQ.6 AND ABOVE880 C861 NNR>688? NVR-6883 00 30 J-2.JMI884 00 30 I-2.IMI885 IF (NFU.JI.CT.6l GO TO 30886 1NFB«NF(I.J-I)887 1NFL«NF(I-1.J»888 IF IINFB.LT.6.ANO.INFL.LT.61 GO TO 20889 IF (INFB.LT.6.0R.1NFL.LT.6) GOTO 10890 NFlt.JI-MINOUNFB.lNFL)891 1NR9-NRIINFB)89? 1NRL«NR<INFL)893 )NRMN«MIN0UNRB.INRL>894 NR(INFB)*1NRMN895 NRUNFLI-INRMN896 GO TO 30997 10 NFC I,J)-INF8898 IF MNFB.LT.6) NF(I.J)»|NFL899 GO TO 30900 20 NF<[,J)«NVR901 NR(NVR)*NNR902 NVR«NVR+I903 NNR-NNR+1904 30 CONTINUE905 C906 C ••• REDEFINE REGION NUMBER TO BE CONSECUTIVE907 C908 NVRI»NVR-1909 NNR1«NNR-I910 KKN«7911 DO 50 KK»7.NNR1918 KFLG»0913 DO tO K-7.NVRI9 m IF (NRIK).NE.KK) GO TO 40915 NR(K)-KKN916 KFLG-I917 40 CONTINUE918 IF (KFLG.EQ.l) KKN«KKN+I919 50 CONTINUE920 NREG«KKN-6921 C922 C ••• REDEFiNE VOID NUMBERS TO BE CONSECUTIVE IF NREG.GT.l923 C9£4 DO 60 J«2,JM1925 DO 60 1-2,IM1926 1NF*NF(1.J)927 IF (INF.LT.6) GO TO 6092B NF(I,J)-NR(1NF)929 60 CONTINUE930 RETURN931 END
82
932 SUBROUTINE MESHSET933 'CAU-.COftiONI93H C935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982963984985968987
CC
10
2030
40
50
«•• MESH SETUP IGENERATJONI
I-lJ-lX(1)-XL(I)Y(1)«YLIII00 30 K-I.NKXDXK.«!XCIK»-XL(K)I/NXLCKJDXMR-lXL(K+n-XC<K)>/NXR(K)DXMNI-DXMNIK)NT-NXLtK)TN-NTTN-AMAX1(TN.i.9+EM6IDXMNIKJ-AMiNHDXMNI.OXML)CMC-<XCJK)-XKK)-TN»DXMN!K)1«TN/(TN-I.0)IF <NT.£Q.M CHC-0.08MC*XC<K>-XL[K)-CMC00 10 L-t.NT1-1*1RLN*(FLOAT(L)-TN)/TNXtI)-XC(Kl+8HC*RLN-CHC»RLN'RLNNT-NXRtK)TN-NTTN-AMAX1t TN,1.0*EM6)DXMNtKl-AMINl(DXMN1.0XMR)CMC»(XL(K*1)-XC(KI-TN»DXMN(K)!»TN/(TN-I.IF (NT.EQ.l) CMC-0.0BMC»XL!K+1)-XCIK)-CMCDO 20 L-l.NTI-!*lRLN«FLOAT(L)/TNXt!>-XC<K)*8MC»RLN*CMC«RLN#RLNCONTINUEIF (WR.NE.4) GO TO 401-1*1Xtt)*X(I-l)+X(2f-X(l)CONTINUEDO 70 K-l.NKYDYML*IYC(K)-YL(KI)/NYL(K)DYMR-tYL(K+n-YC(Kt )/NYR(K)DYMNl-DYMN(K)NT-NYL(K)TN-NTTN-AMAX1(TN.I.0+EM6)DYMN(K)-AM1N1tDYMNl.DYML)CMC«(YCtK)-YL(K)-TN»DYMN(K))«TN/(TN-1.0)IF (NT.EQ.I) CMC-0.0BMC»YC(K)-YL(K)-CMCDO 50 L-l.NTJ-J+lRLN«(FLOAT(L)-TN)/TNY(J)-YC<K)*BMC*RLN-CMC*RLN«RLNNT«NYR(K>TN-NTTN-AMAXKTNJ.0+EM6)
83
99099199299399H996996997996999
10001001100?1003100H100510061007looe10091010101110121013iom10151016101710181019ioao1081toss10231034108510561027102810291030103110321033103410351036103710381039104010411042101310441045104610M7
6070
80
CCc
90100
110
120
DYMN<K>»AMINI(OYHN1.OYMRlCMC«(YL1K*II-YC(KI-TN»DYMN(K)>»TN/<TN-1.01IT (NT.EQ.lt CMC-0.0BMC*YLIK*1)-YC<K>-CMCDO 60 L-l .NTJ"J*1RLN«FLOATCL)/TNY(Ji»YC<KI*BMC'RLN*CMC'RLN»RLNCONTINUEIF (WT.NE.4) CO TC 80J-J*lYU)-YU-1)*Y<2>-Y<1>CONTINUENUMX'INUMY«JNUMXM1-NUMX-1NUMYM1«NUMY-|NUMXPI*NUMX+1NUMYP1«NUMY*1IBAR-NUMX-1JBAR-NUMY-1IMAX-!8AR+aJMAX-JBAR+2IMI-IMAX-1JHI«JMAX-1IM2«lMAX-2JM2-JMAX-2
• • • CALCULATE VALUES NEEDED FOR VARIABLE M
DO 100 1*1.NUMXIF <X(N .EQ.0 .0 ) GO TO 90Rxm-i.o/xtnCO TO 100RXt l1 *0 .0CONTINUEDO 110 1-2.NUMXxnn«o.5MXU-i)+xcn iOELX(1)«X(1)-X(I -1JRxnn«i.o/xitnROX(I)*1.0/DELXI|)DELX{1)-DELXI2)xm)*XI(2)-DELX(2)RX! I I )»1 .O/X1(1 )RDX(l)«1.0/DELX(DDELXA'DELXtNUMX)IF (MR.EQ.4) DELXA'OELX(3)DELX(NUMXPI)-DELXAXI(NUMXP1)>X1(NUMXI+DELXAX(NUHXP1)«XI(NUMXPI)+O.5*DELXJNUMXPI)RXI <NUMXPI)-1.0/XI (NUMXP1)RDX<NUMXPI)»l.O/DELX(NUMXPI)00 ISO 1-2.NUMYYJII)«0.5«IV f1-1)•V11>)RYjin*i.o/yjcnDELY(n«Y(ll-Y(l-l)ROY(lt«1.0/DELY(l)CONTINUE
84
10481049 ROYtJ)«l.O/OELY(1)1050 YJil)-YJ(2J-IXLY(5J1051 RYJ ID '1 .0 /YJd )1052 OELYA»DELY(NUMY)1053 IF IWT.EQ.4) OELYA»0ELY(3l1054 DELYINUMYPD-DELYA1055 YJ(NUMYPl)»YJINUMY>+DELYAJ056 Y!NUHYPJ)-YJtNUMYPn*0.5'OELY(NUMYP|)1057 RYJ(NUMYP1)*1.O/YJ<NUMYP1>1058 ROY(NUMYPl)»1.0/'Ot:LY!NUMYPl)1059 WRiTE 16.190)1060 00 130 I-I.NUMXPI1061 WRITE 16,200) I,XII).1,RX(I).1.OELXII).I,ROX(1).I.XI(I I,I.RX1(1)1062 130 CONTINUE1063 WRITE (6.190)1064 DO 1««O 1-1.NUMYP11065 WRITE (6.210) I,Y(II.!.OELYI1).1,ROY(1).I.YJl1).t.RYJt1j1066 140 CONTINUE1067 IT (IMOVY.EQ.l) GO TO 1701068 WRITE (12.19011069 DO 150 1-I.NUMXP11070 WRITE (12,200) I.X(I).1,RX(I).I,D£LX(I).I,RDX(1).1.XI(1),I.RXI11)1071 150 CONTINUE1072 WRITE 112.190)1073 DO 160 l»l.NUMYPl1074 !*1TE (12.210) I ,Y< 1 ) , I .DELYI1) . 1 ,RDY( 1) . I ,YJ( 11 .1 ,RYJ< I)1075 160 CONTINUE1076 170 CONTINUE1077 C1078 C ••• TEST ARRAY SIZE1079 C1080 If CIMAX.LE.lBAR2.AN0.JMAX.LE.JBARe> GO TO 1801081 WRITE (6.220)1082 C1083 CALL EXIT1084 C1085 180 CONTINUE1086 RETURN1087 C1088 190 FORMAT (1H1)1089 200 FORMAT (1X,2HX(,12.2H)«.1PE12.5.2X.3HRX(.12.2HI*.1PE12.5.2X.5H0ELX1090 I(.J2.2H)=.1PE12.5.1X^HRDX(,|2,2H)=,IP£12.5.2X.3HX1(.I2.2H)=.IPE121091 2 .5.2X.4HRXK.lg.2H)*.lPEie.5)1092 210 FORMAT (1X.2HYI.I2.2H)*,1PE12.5.3X.5H0ELYI.12.2H)*.IPE12.5.3X.4HRD1093 1Y(.I2,2H)-.1PE12.5.3X,3HYJ(,I2.2H)*.1PE12.5,3X.4HRYJ(.I2.2H)=.1PE11094 2 2.5)1095 220 FORMAT (41H MESH SIZE GREATER THAN ARRAY DIMENSIONS)1096 END
85
109710961099I!0011011102110311 OH110511061107110811091110111111121113
111511161117111811191ISQ112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461 1471148114911501151115211531154
a
ccc
ccfL
ccc
SUBROUTINE PARMOVCALL.COMMON1
••• MARKER PARTICLE MOVEMENT SECTION
NPT*ONPN-0K'lKN«,PFLG»1.0IPER-IM1IF (MR.E0.4) 1PER*1M2JPER'JMIIF (HT.EQ.4) JPER*JM2
10 IF (NP.EQ.NPT) GO TO 120
••• CLACULATE U WEIGHTEO VELOCITY OF PARTICLE
l*IPtK)J«JP(K>IF (YP(K).GT.YJtJM GO TO 20HPX«X(I)-XP(K)HMX-OELX(!)-HPXHPY*YJU>-YP(K>NORMY-(DELY(J)+DELY(J-1))»0.5HMY»NORMY-HPYUTOP»1U(1-1,J> »HPX+U(I.J)»HMX)»RDXlI)UBOT«(U(I-1,J-I)*HPX*U(I,J-l)*HMX)»RDXtl)UPART« (UTOP»HMYHB0T«HPY>/NORMYGO TO 30
20 HPX*X(I>-XP(K>HMX*DELXtl)-HPXHPY«YJ(J*1)-YP(K)NORMY*(DELY(J+1)+DELY(J))•0.5HMY-NORMY-HPY|JTOP«(U( 1-1 ,J*1 >»HPX+U( I, J+l) *HMX) »RDXI I)UBOT«tU(I-l,J)»HPX+U(I,J)»HMX)#ROX(I)UPART»(UTOP«HMY+UBPT«HPY)/NORMY
••• CALCULATE V WEIGHTED VELOCITY OF PARTICLE
30 IF (XP(K).GT.XIID) GO TO 4CNORMX*(DELX<1)*DELX(1-1))«0.5RNORMX«1.0/NORMXHPX*XI(I)-XP(K)HMX-NORMX-HPXHPY«YCJ)-YP(K)HMY»DELY(J)-HPYVTOP«(V(I-I.J)»HPX*V(1.J»»HMX)*RNORMXVBOT»(V(I-I.J-lMHPX+VlI,J-l)*HMX)»RN0RMXVPART* (VTOP^HMY-t-VBOT«HPY) «RDY (J)GO TO 50
40 NORMXMDELXI I)+DELX( I + l M«0.5RNORMX>1.0/NORMXHPX«Xltl*l)-XP(K)HMX-NORMX-HPXHPY-YfJ)-YP(K)HMY-DELYIJ1-HPY
86
1155 VTOP««V(I.J)»HPX*VII*I.J)»HMX)»RNORMXIJ56 VBOT*IV(I,J-!)«HPX*V(!•1.J-1)«HMX)'RNORMX1157 VPART-<VTOP»HMY*veOT«tf»Y)«RDYIJ)1158 50 XPART«XP(KI*UPART«DELT1159 YPART«YP<KI-»VPART«OELT1160 IF (XPART.GT.Xd)) 1P(KN)»IP(K»*I1161 IF (XPART.LT.XI1-1)1 IP(KNI«IP(K)-11162 IF <YPART.GT.YtJ>) JPIKN)»JPIK)V]1163 IF (YPART.LT.YCJ-in JP(KN»-JP(K)-11!6«« XPIKNJ-XPART1165 YP1KN1-YPART1166 IF (XP(KN).LT.X(D) GO TO 601167 IF (YPtKNl.LT.Ydll GO TO 701168 IF (XP(KN).GT.X(lPERn GO TO 801169 IF (YP(KN).GT.Y(JPER)) GO TO 901170 GO TO 1001171 60 IF (HL.LE.2) GO TO 1001172 IF (ML.NE.H) GO TO 1101173 XP(KN)-XP(KN)*X< Jf*2)-X(l)1174 IP(KN)«IP(KN)»IM2-11175 GO TO 100U76 70 IF (MB.LE.2l GO TO 1001177 IF (W8.NE.4) GO TO 1101178 YP(KN)«YP!KN)+Y(JM2)-Y!1>1179 JP(KN)*JP(KN)*JM2-I1180 GO TO 1001181 80 IF (HR.LC.2) GO TO 1001182 IF (WR.NE.4) GO TO 1101183 XP!KN)»XP(KN)-X(IM2)+X(|!1184 1P(KN)-IP(KN)-IM2*11185 GO TO 1001186 90 IF (UT.LE.2) GO TO 1001187 IF (WT.NE.4) GO TO 1101188 YP(KN)-YP(KN)-Y(JM2)*Y(1)1189 JP(KN)-JP(KN)-JM2+I1190 100 KN*KN*l1191 NPN*NPN+11192 110 K«K+11193 NPT»NPT+1
1195 GO TO 101196 120 NP*NPN1197 RETURN1198 END
87
1199 SUBROUTINE PETACAL1200 'CALL.COMMON11201 C1202 C ••• DETERMINE THE PRESSURE INTERPOLATION FACTOR PETA1803 C ••• DETERMINE THE SURFACE TENSION PRESSURE AND1204 C ••• WALL ADHESION EFFECTS IN SURFACE CELLS1205 C1206 00 10 1»I.1MAX1207 DO 10 J*l,JMAX1208 NF(1,J)*O1209 PSU.J)*0.01210 10 PETAU.J)«I.O1211 IPASS*O1212 DO 140 1*2.IM11213 00 140 J*2.JM11214 1ANTH(I,J)«EPIO1215 IF (BETA(I.J).LT.O.O) GO TO 1401216 IF (F(I.J).LT.EMF) NFM.J)»61217 IF (F(I.J).LT.EMF.OR.F(I.JKGT.EMFl) GO TO 1401218 IF (F(I+1.J).LT.EMF) GO TO 201219 IF (Ftl.J+D.LT.EMF) GO TO 201220 IF (Ft 1-1,J).UT.EMFJ GO TO 201221 IF (F(I.J-l).LT.EMF) GO TO 201222 GO TO 1401223 20 CONTINUE1224 C1225 C ••• CALCULATE THE PARTIAL DERIVATIVES OF F1226 C1227 DXR=0.5MDELXU>+DELXU + l)>1228 DXL*0.5MDELX<l)+DELX<l-l>>1229 OYT«0.5»(DELY(J)+DELY(J+1>>1230 DYB=0.5MDELY(J)+DELY(J-D)1231 RXDEN*1.0/< DXR» DXL•< DXR+DXL)>1232 RYDEN=1.0/(DYT«DYBMDYT+DYB>>1233 FL*F( I -1 ,J+1 )1234 IF CBETAU-1,J+1).LT.O.O.OR.(I.EQ.2.AND.WL.LT.3)) FL=1.01235 FC*FCI,J+1>1236 IF (BETAd.J+D.LT.O.O) FC=1.01237 FR«F(I+1.J+I)1238 IF (BETAI1+1,J+n.LT.O.O.OR.(I.EQ.IM1.AND.WR.LT.3)) FR=1.01239 AVFT«FL«DELX(I-1)+FC»DELX(I)+FR»DE:LX(I + 1)1240 FL«F(I-1,J-1)1241 IF (BETAd-I.J-l).LT.O.O.OR.(I.EQ.2.AND.WL.LT.3)) FL*1.01242 FC*FU.J-1)1243 IF (BETAU.J-n.LT.0.0) FC«1.01244 FR»F(I+1.J-|)1245 IF (BETA(I+1.J-I).LT.O.O.OR.(I.EQ.IMI.AND.WR.LT.3)) FR=I.O1JN6 AVFB«FL*DELX( I-I)+FC#OELX( 1)*FR*DELX( 1 + 1)1247 FL»F(I-1,J)J2HB IF (BETAU-1,J).LT.O.O.OR.(I.EQ.2.AND.ML.LT.3)) FL=I.O1249 FR*FU*1.J)1250 IF (BETA(I+1.J).LT.O.O.OR.(I.EQ.IMI.AND.WR.LT.3D FR=1.01251 AVFCY*FL«DELX(1-1)+F(1,J)*DELX(I)+FR*DELX(1 + 111252 fB-F(I,J-l>1253 IF (BETAU,J-l).LT.0.0.OR.<J.EQ.2.ANO.WB.LT.3)) FB»1.01254 FT*F(I.J+1)1255 IF (BETAI 1.0+1).LT.0.0.OR. (J.EQ.JMI.AND.WT.LT.3)1 FT«=1.01?56 AVFCX«FB»DELY(J-1)+F(I.J)»DELY(J)+FT«DELY(J+1)
88
1257 F B - F U - l . J - M1258 IF iBCTAfI-1.J-II.LT.0.0.OR.<J.EQ.2.AND.WB.LT.3n FB*1.01259 FC*FU- l .J>1260 >F (BETAU-I.J).LT.O.O) FC-I.O1261 FT«FII -1 .J+J)1262 IF <BETAI|-l .J*l>.LT.0.0.OR.(J.EU.JMI.ANO.WT.LT.3)l FT*I.O1263 AVFL«FB«DELY<J-1)*FC»DELY<J)*FT«DELY<J+1)1264 F B « F U * l . J - t )1265 IF (BETA!1*1.J-D.LT O.O.CR. tJ.E0..2.AN0.MB.LT.3M FBM.O1266 FC»F(I*I.J)1267 IF (BETA(l f l .J) .LT.O.O) FC-1.01268 F T - F < M . J * 1 )1269 IF (BETA(1*1.J+l).LT.O.O.OR.(J.EO.JMI.AND.WT.LT.3)) FT= 1 .01270 AVFR»FB«DELYiJ-i>+FC«DELYIJ>+FT«DELY(J*!)1271 C1272 C • • • BOUNOARY CONDITIONS FOR WALL ADHESION1273 C1274 IF (ISURF10.EQ.0.OR.CANGLE.EQ.O.O) GO TO 601275 IF (BETA!1*1,J>.GE.O.O.ANO.I.NE.1MI) GO TO 301276 AVFR«AVFCX+0.5MDELX(I)+DELX(1*1))/TANCA1277 !F (F(I,J*1).LT.EMF.AND.F(1.J-I).GE.EMF) AVFT*AVFCY-0.5MDELY<J)1278 1 +DeLY(J-fin«rANCA3279 IF (F(I,J-1).LT.EMF.ANO.FCl,J*1i.GE.EMF) AVFB*AVFCY-0.5*(DELY!Jl1280 1 +DELYtJ-l))*TANCA1281 30 IF (BETAII,J+)).GE.0.0.AND.J.NE.JM1) GO TO 401282 AVFT-AVFCY*0.5MOELYlJ)+DELYtJ+D)/TANCA1283 IF (F( I + t.J).LT.EMF.AND.F(J-I.J).GF..EMFi AVFR=AVFCX-0.5* (DELXCI)1284 1 +DELXU + 1))»TANCA1285 IF (F( t - I ,J) .LT.EMF.AND.F(I+! .J) .GE EMF) AVFL«AVFCX-0.5«(DELXII)1286 1 •DELX(I-1))'TANCA1287 40 IF <BETAU.J-l).GE.0.0.AND.J.NE.2) GO TO 501288 AVFB«AVFCY+O.5'(DELY(J)+DELY(J-1))/TANCA1289 IF <FtI+l.J>.LT.EMF.ANO.F(l-l.J).GE.EMF> AVFR«AVFCX-0.5«(DELXtI)1290 1 +DELX!1+1)1'TANCA1291 IF (F()-1.J).LT.EMF.AND.FU+I.J>.GE.EMF> AVFL=AVFCX-O.5«(DELXII)1292 I +DELX!)-1))»TANCA1293 50 IF (BETA(|- l .J).GE.0.0.ANO.I.NE.2) GO TO 601294 IF (CYL.GT.0.5.ANO.Xtl).EQ.0.O) GO TO 601295 AVFL*AVFCX+0.5MDELX( I )+DELX( 1-1 ))/TANCA1296 IF (F(I.J*l) .LT.EMF.AND.FII,J-1).GE.EMF) AVFT=AVFCY-0.5»IDELYIJ)1297 I +DELY<J+1))*TANCA1298 IF <F(I,J-I).LT.EMF.AND.FII.J+lI.GE.EMF) AVFB=AVFCY-0.5«IDELYIJI1299 I +DELYU-1))»TANCA1300 60 CONTINUE1301 XTHM»3.0»AMAXl{AVFT,AVFCY.AVFB>/<OELX(l-l>+OELX(I)+OELXU+l>>1302 YTHM«3.O*AMAX1(AVFL.AVFCX.AVFR)/(DELYIJ-1)+DELY(J)+DELY(J+lM1303 PFX«RXDEN*<(AVFR-AVFCX)•DXL*«2+(AVFCX-AVFL)#0XR»«2)1304 PFY«RYDENM(AVFT-AVFCY)«DYB»'2+(AVFCY-AVFB)»OYT««8)1305 PF»PFX««a+PFY*»21306 IF (PF.GT.EM10) GO TO 701307 NF(1.J)»51308 PU.J)»0.25MP(I + l ,J)+P( I,J*1 )*P(1-1 ,J)+P(I .J-1J)1309 GO TO 1401310 70 CONTINUE1311 C1312 C ••• DETERMINE THE PRESSURE INTERPOLATION CELL NF1313 C1314 ABPFX»ABS(PFX1
89
1315 A8PFY«ABS(PFY)1316 L«[1317 M«J!3I8 IT <ABPFY.G£.ABPFX) GC TO 80i3)9 0X0YR«DELY(J)'BOX(l:1350 PFMN-PFY1321 NFU.J)«21382 L - I * l1323 DMX«DELX<I>1324 DMIN«Q.5'<DMX*DELX(1*1M1325 IF (PFX.OT.0.0) GO TO 901326 NF( I .J )« I1327 PFMN—FTY1328 L« ! - l1329 OMX-DELX(l)1330 DM!N*0.5MDMX*Oei_XCI-|M1331 GO TO 901332 80 CONTINUE1333 DXDYR*DELX <11*RDY(J)1334 PFMN—PFX1335 NFi I .JJ-41336 M»J+11337 OMX*OELY(J)i 338 OH i N=O.5= «DMX+DELY(J*1!J1339 IF (PFY.GT.0.0) GO TO 901340 N F ( 1 . J ) « 31341 PFMN-PFX1342 M*J-11343 DMX*DELYU>1344 OHIN*0.5#«DMX+DELYIJ-1))1345 90 CONTINUE1346 TANTH(I,J)«PFMN1347 ABTAN«ABS(TANTH(I,J)1!348 C1349 C ••• DETERMINE THE CURVATURE AND SURFACE PRESSURE1350 C1351 OFS*(0.5-F(I.J1MDMX1352 IF 1F(I.J).LT.O.5»ABTAN*DXDYR) OFS»0.5»DMXM 1.0*DXD>"R«ABTAN-S0RT(81353 1 -0*F(I,J)*OXOYR«ABTAN))1354 IF (ISURF10.LT.1) GO TO 1301355 NFCNFM.J)1356 PXR=(AVFR-AVFCX)/OXR1357 PXL*(AVFCX-AVFL• DXL1358 PYT^AVFT-AVFCYl/OYT1359 PYB^tAVFCY-AVFai^DYB1360 YDFS»-OFS1361 IF 1NFC.EQ.2.0R.NFC.EQ.4) YDFS-DFS1362 IF (NFC.GT.2) GO TO 1001363 DXDN-DELY(J)1364 XINB»YOFS+0.5«TANTH(I.J)«OXON1365 XINT»2.O*YDFS-XINB1356 GPl'PYT1367 PX!»PXLJ36B IF JXINT.GT.O.Ol PX1«PXR1369 IF (ABSlPXtl.LT.ABS(GPD) GP1*SIGN(I.0.GPI)/(ABSlPXl»+EMtO)1370 GP2*PYB(371 PX2*PXR137? IF (XINB.LT.0.0) PX2*PXL
90
1373 IF <ABS<PX5).LT.ABS(GP2>) GP2*SIGN<I.0.GP2)/<ABSrPX2i*EM!0>1374 GO TO 1101375 100 DXDN-CCLXU)1376 YINR*YOFS*0.5«TANTH<I.J!»OXDN1377 YJNL«2.0*YDFS-YJNR1378 GP1-PXR1379 PYI-PYT1380 IF IY1NR.LT.0.01 PYI-PYB1381 IF (ABSIPYI).LT.ABSIGPI») GP1»SIGN(1.0.GP1)/(A2SIPY11+EMIOJ1382 OPS«PXL1383 PY2-PYB1384 IF (YINL.GT.O.Ot PY2-PYT1385 IF <ABS(PY2>.LT.ABS(GP2)> GP2*SIGN(1.0.GP2)/<ABS<PY2)*EM10>1386 110 GP1D-I.O*GPI«GP11387 GP2O*I.0*GP2*GPS12588 CURVXY-(GP2/SQRTIGP20)-GPl/SORT (GP1OD/OXDN1389 CURVCYL-0.01390 IF (CYL.LT .1 .0 ) GO TO 1201391 XLITLR-XI IM1392 IF (NFC.EQ.l) XLITLR«X(l- l>+F<I,J)•DELXU>1393 IF (NFC.EQ.2) XL1TLR-XII) -Ft1.J) 'DELX<I>1394 RL1TLR*AM!N1(I.0/XL1TLR.RX!(g))1395 TRIG«AB5<S!N!ATAN!A9TAN!i!1396 IF (NFC.LE-2) TR1G«ABS!COS(ATAN(ABTAN))11397 CURVCYL*-CYL«TRIG»SIGN(1.O,PTX)»RL1TLR1398 120 CURV-CURVXY+CURVCYL1399 PSd.Jl-SICMA'CURV1400 IF tXTHM.l T.\ .0. OR.YTHM.LT. t .0) PSU.J1-0.01401 130 CONTINUE1402 C1403 C • • • CALCULATE PETA1404 C1405 NFSB=O1406 IF CFU + I.J).LT.EMf.OR.I.EO..IM1.0R.BeTA<I + I .J ) .LT .O.O) NFSB-NFSB*11407 IF !F ( I , J+ | ) .LT .EMF.OR.BETA( | .J+n .LT .0 .0 ) NFSB-NFS8+21408 IF (F( I -1 .J) .LT.EMF.OR.BETA(I -1 ,J) .LT.O.O) NFSB«NFS8*41409 IF (F (1 ,J -1 ) .LT.EMF.OR.BETAI I .J - I ) .LT .O,0) hFSB»NFS8*81410 IF INFSB.EQ.I5) P S ( l , J ) - 0 . 01411 IF (NMAT.EQ.B) GO TO 1401412 PETAU.J)-1.0/(1.0-DFS/DMIN>1413 IF (L.EQ.l.OR.L.EQ.IMAX) P E T A t I , J ) * l . 01414 IF (M.EQ.I.OR.M.EQ.JMAX) PETAU.J I *1 .01415 IF !BETA(L,M).LT.O.O) PETAf1 .J ) * l .01416 140 CONTINUE1417 C1418 CALL LAVORE1419 C1420 CALL CAVOVO1421 C1422 C IF NECESSARY. DETERMINE PRESSURES PR FOR VOID REGIONS NF1423 C1424 IF (NMAT.EQ.2) GO TO 2201425 C1426 C •*• SET PETA IN ADJACENT FULL CELL1427 C1428 DO 210 J'l.JMAX1429 DO 210 l'l.IMAX1430 NFF«NF(I,J)
91
1431143214331434
1435143614371438143914401441
1443144414451446144714481449145014511452145314541455145614571458145914601461
150
160
170
S80
190
200
210220
IF INFF.EQ.O.OR.8ETA(I.J>.LT.O.O) GO TO 210IF (NFF.GT.5l GO TO 200L«1M«JGO TO (150.160,170.180.2101, NFFL«1-lDHX-DELXCMOHIN-0.5*(DMX*0ELX<I-111GO TO 190t"J*lOMX-OELX(I)
GO TO 190M«J-IDMX-0ELYU)DM1N-0.5*(DMX»0ELY(J-ll)GO TO 190M«J*10MX-0ELYU)DHIN«0.5*tOMX*OELY(J+l))
CONTINUEIF CNFtL.MJ.GT.O) 00 TO 210BPO*1.O-BETA(L.MI*(1.O-PETAtI,J))*DELT/lOMIN'OnXlPETA(L,M)»AMIN1 (PEU(L.M). 1.0/BPO1GO TO 210CONTINUEPU,J)«PRtNFF>
CONTINUECONTINUERETURNEND
92
!**621H631H6HIH65IH66l«»671H681H691H701H71IH72IH73mTs11751H761H771H781H791HB01H8IIH82IH83
•CALLCCC
c
10
20
SUBROUTINE PLTPT IXONE.YONE.1CHAR.!SYM.COrtttNl
••• PLOT CORAUI A POINT••• PROVIOES A SYSTEM DEPENDANT CALL
1C-0X1-XONEYI-YONEXOI«CXl-XHlN)«Sr»XSHFTYO1 • t Yl -YM1N) •SF*YS»*"TIXI-50.*920.0*X01iYi»5o.*9eo.o»ci.o-YOnCALL PLT «IXI.1YI,««2JIF (ABScxi).LE.EnEl GO TO 20IF CISYHPLT.EQ.O.OR.ISYM.EQ.O) GO TO 20IC-1C*1SF tIC.GT.II GO TO 20Xl«-XIGO TO 10RETURNEND
93
14841185
1487I48614891490149!14921493149414951496IH9714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541
cccc
ccc
ccc
ccc
CALL
to
20
30
40
50
6070
80
1
SUBROUTINE PRESSIT.. COMMON 1
••• PRESSURE ITERATION
••• TEST FOR CONVERGENCE
1 IF (FLG.EQ.O.) GO TO 140ITER-ITER*!ITMAX-1000IF (ITER.LT.ITMAX) GO TO 20FNOC-1.0NOCON-NOCONHGO TO 140FLG-0.0
«•• COMPUTE-UPDATED CELL PRESSURE AND VELOCITIES
00 130 J«JPB.JPT00 130 I-IPL.JPRIF IBETA(I.J).LT.O.O) GO TO 130IF INMAT.EQ.2) GO TO 80IF (FII.J).LT.EMF) GO TO 130IF (NF(I.J).EQ.O) GO TO 80
••• CALCULATE PRESSURE FOR SURFACE CELLS
NFF-NFU.JIL-lM«JGO TO 130.40.50.60.130). NFFL-l-1GO TO 70L«l*lGO TO 70M-J-1GO TO 70M"J*1CONTINUENFEL»NFU-1.JINFER"NFII*l,J>NFEB»NFfl.J-l)NFET«NF(l,J*l)NFE-MAXO(NFEL.NFER.NFEB.NFET1PSURF-PS(I.Jt»PRCNFE)PLM»P(L.M)IF (NFtL.M).NE.O.AND.BETAd.JI.GT.0.01 PLN-PSURFOELP«<1.0-PETA(1.J)1«PLM*PETAI1.Jl'PSURF-Pl1.J)GO TO 90CONTINUEOIJ"ROXCI»MUCl,JI-UU-l.jn*R0Y(Jl*lV<I.Jl-VU.J-l))*CYL»0.5»RXlI1)*IU(!.J)+UC!-].JH
RHOR-RHOF/IRHOFC+RHOO'F11,J))OFUN-DIJ*RHOR«RCSQ»(P(1.J)-PN(I,J)I/DELT
••« SET FLAG INDICATING CONVERGENCE
IF (ABSIOFUNI.GE.EPSII FLG-I.O
DELP»-BETArj.J>*DFUN«PETAU.J>90 CONTINUE
P<I.J>«PH.J>*OELPCTOS«DELT»RDTEXPCOMG-AMINI(CTOS"2.I.O)
I5V7 DPTC«2.0«D£LT»DELP»COMG15*8 IF (BETAI1*1.J).LT.O.OI CO TO 100I5M9 RHOXR-(RHOFC*RH»«F(!.J))«OELX(I*U*(RHOFC*PHOO»F(|*l.jn»DELXII)1550 UU.JI-UCI.JI+OPTC/RHOXR155! 100 IF IBETAII-1.JI .LT.0.0I GO TO 1101553 RHOXL-(RHOFC*RHOO«F(|-I.J)l»DELX(U*(RHOFC*RHOO»Ft|.J))»KLX(I-n1553 U<l-I.J)«UH-I.J)-DPTC/RHOXLI55H MO IF IBETAU.J+II.LT.O.O) GO TO l?01555 HHOYTxRHOFC^RHOO'FJJ.jn'OELyiJ+n + CRHOFC^RHOO'Ftl.J^ni'DELYiJ)1556 VI1.J!-V(I.JJ*DPTC/RHOYT1557 120 IF CBETACl.J-n.LT.O.O) GO TO 1301558 RH0YB«<RH0FORH00*Ff I ,J-1) l*0£LY(JJ*(RH0FORH0D*Fl I ,J» )*DELY(J-111559 Vr|,J-|l-V(l,J-l)-DPTC/RHOYB1560 130 CONTINUE1561 CALL BCI56S GO TO 101563 IHO CONTINUE1564 RETURN1565 END
95
1566 SUBROUTINE PRTPLT (N)1567 -CAUL.COMMON!1566 C1569 C ••• PRINT AND PLOT1570 C ••• PROVIDES FORMATTED WRITES TO PAPER AND FILM1571 C1572 GO TO c10.70.90.1301. N1573 C157k C ••• PRTPLT 11) WRITE OUT INITIAL DATA AND MESH DATA1575 C1576 10 WRITE 16.17011577 WRITE (6.180) NAME1576 WRITE (6.8201 IBAR.JBAR.DELT.NU.1CYL.EPS!.GX.GY.UI.VI.VELMX.TWFIN1579 I .PRTDT.PLTOT.OMG,ALPHA,WL.WR.WT,MB.IMOVY.AUTOT.FLHT.ISYMPLT.SIGMA1580 2 ,ISURFIO,CANGLE.CSQ.NMAT,RHOF,RHOFC1581 IF UMOVY.GT.0) GO TO HO1582 WRITE (12.170)1583 WRITE (12.180) NAME158t WRITE 112.220) JBAR.JBAR.DELT.NU.ICYL.EPS!.GX.GY.U1.VI.VELMX.TWFIN1585 1 .PRTOT.PLTDT.OMG.ALPHA.WL.WR.WT.WB.1MOVY.AUTOT.FLHT.ISYMPLT.SIGMA1586 2 .ISURFtO.CANGLE.CSQ.NMAT.RHOF.RHOFC1587 C1588 C ••• WRITE ON FILM VARIABLE MESH INPUT DATA1589 C1590 WRITE (12.250) NKX1591 00 20 1-1.NKX1592 WRITE (12.260) 1 .XLCD.XCI I) ,XL( 1*11 .NXL( I > .NXR(I) .DXMNd I1593 20 CONTINUE159H WRITE (12.280) NKY1595 DO 30 1-1.NKY1596 WRITE (12.270) I .YLI I) ,YC( 11 ,YLU*I) ,NYL( M.NYRI 1) .DYMNI I)1597 30 CONTINUE1598 HO CONTINUE1599 C1600 C ••• PRINT VARIABLE MESH INPUT DATA1601 C1602 WRITE (6.250) NKX1603 00 50 1-1.NKX1604 WRITE (6.260) I.XLII),XC(I),XL(1*11,NXL(I),NXR(I).DXMNI1)1605 50 CONTINUE1606 WRITE (6.280) NKY1607 DO 60 1-1,NKY1608 WRITE (6.270) I,YLU),YCII).YL(l*1>.NYLCI),NYR(I),DYMN(I)1609 60 CONTINUE1610 GO TO 1601611 C1612 C ••• PRTPLT (2) WRITE TIME STEP. CYCLE INFORMATION1613 CI6IH 70 CONTINUE1615 WRITE (6.210) ITER.T.DELT.CYCLE,VCHGT1616 IF UM0VY.EQ.1) GO TO 801617 IF (T.GT.O.) GO TO SO1618 WRITE (12.210) ITER.T.DELT.CYCLE,VCHGT1619 BO CONTINUE1620 GO TO 1601621 Cl£?2 C ••• PRTPLT-13) WRITE FIELD VARIABLES TO FILM1623 C
96
1624 90 IF (IH0Vr.E0.lt CO TO 1201625 CALL AOV III1626 WRITE (12,240) NAME1627 WRITE (12.210) ITER.T.DELT.CYCLE.VCHGT1628 WRITE 112.230)1629 WRITE 112.290) NREG1630 WRITE 112.300)1631 KNR«NREG»51632 DO 100 K-6.KNR1633 WRITE 112.310) K.VOL(K),PR(K>I63H 100 CONTINUE1635 WRITE (12.190)1636 DO 110 I«I.1MAX1637 DO 110 J«I,JMAX1638 DIJ-ROX(11*CUI1,J)-U(1-1,JI)*RDY(J)MV(I,J)-V(I,J-I))*CYL»0.5»RXI1639 I <I)*(U<I.J)+U(1-I.J>>16*0 WRITE (12.200) 1,J.U(I.J),V(1,J>,P(I,J).DIJ.PSlI.J),F(I,J1.NFU,J>1641 I .PETA(l.J)1642 110 CONTINUEI6H3 ISO CONTINUE1644 GO TO 1601645 C1646 C ••• PRTPLT (4) WRITE FIELD VARIABLES TO PAPER1647 C1648 130 WRITE (6.170)16H9 WRITE 16.240) NAME1650 WRITE (6.210) ITER.T.DELT.CYCLE.VCHGT1651 WRITE (6.230)1652 WRITE (6.290) NREG1653 WRITE (6.300)1654 KNR-NREG+51655 DO 140 K-6.KNR1656 WRITE (6.310) K.VOL(K).PR(K)1657 140 CONTINUE1658 WRITE 16.230)1659 WRITE (6.190)1660 00 150 1-1,IMAX1661 00 150 J-l.JHAX1662 DIJ-ROX(I)»(U(1,J)-U(1-1,J))*ROY(J)MV(I,J)-V(1.J-l))*CYL»O.5*RX11663 I ll)»(U(l.J)*UU-I.J)>1664 WRITE (6.200) I,J.U(I,J),V(I,J).P(I.J).DU.PS(l.J),F(I,J).NF(I,J)1665 I .PETAd.J)1666 150 CONTINUE1667 160 RETURN1668 C1669 170 FORMAT (IHI)1670 180 FORMAT (10A8)1671 190 FORMAT (HX.IHI,5X.1HJ.9X,IHU,14X,IKV.15X.1HP.15X.1HD.12X.2HPS.13X.1672 I 1HF.11X.2HNF.9X.HHPETA)1673 200 FORMAT (2X,I3.3X.I3.6(3X.1PEI2.5),3X.I3.3X.EI2.5)1674 210 FORMAT I6X.6HITER" .I5.5X.6HT1ME- .1PE12.5.5X.6HDELT- .1PE12.5.5X,1675 I 7HCYCLE- .14.5X.7HVCHGT- .IPE12.5)1676 220 FORMAT (1H .5X.6HIBAR- .I3/6X.6HJBAR- .I3/6X.6HDELT> .IPEI2.5/BX.41677 I HNU- .E12.5/6X.6HICYL- .(2/6X.6HEPSI- .£I2.5/8X,4HGX- .E12.5/8X.41678 2 HGY> .E12.5/8X.4HUI- .E12.5/8X.4HVI* .E12.5/5X.7HVELMX> .E12.5/5X1679 3 .7HTWF1N- .E12.5/5X.7HPRTDT- .EI2.5/5X.7HPLT0T- .E12.5/7X.5H0MG-1680 4 .E12.5/5X.7HALPHA- .EI2.5/8X.4HWL- .I2/8X.4HWR- .I2/8X.4HWT- .12/1681 5 8X.4HWB- .I2/5X.7HIM0VY- .EI2.5/5X.7HAUT0T- .E12.5/6X.6HFLHT-
97
1682 6 .EI2.5/3X.9H1SYMPLT* .12/5X.7HS1GMA- ,EI2 5/3X.9HISURFJ0- .11683 7 8HCAN0CE- .EI2.5/7X.5HCSQ- .EI2.5/6X.6HWMJ* .I2/6X.6HRH0F* .£12.I68H 8 5/.5X.7HRH0FC- .EI2.5/J1685 230 FORMAT (1H0)1686 240 FORMAT (IH .I8X.I0A8.IX.A10.2l1X.A8U1687 250 FORMAT (2X.5HNKX- .IH)1688 260 FORMAT <2X,8HMESH-X« ,!H.3X.HHXL« .IP£12.5.3X.4HXC« .E12.5.3X.MHXR1689 I« .EI2.5.3X.5HNXL- .m.3X.5MO(R- . I4.3X.6HDX^- .E12.511590 270 FORMAT <2X.»«SH-Y« , 14.3X.HHYL* . 1PEI2.5,.'OC,WYC» .EI2.5.3X.HHYR1691 I- .E12.5.3X.5HNYL- .m.3X.5HNYR« . IH.3X.6H01fMN- .EI2.5)1692 280 FORMAT <2X.3HNKY- ,IH)1693 290 FORMAT (2X.6HMEG- ,14)I69H 300 FORMAT (15X.IHK.6X.6HVOC(K1.9X,5HPR(K)I1695 310 FORMAT (13X.13.2X.IPE12.5.3X.E12.5)1696 ENO
98
16971696169917001701170?1703170*1705170617071708170917101711171?1713
nm171517161717171817191720172117??1723I72M17251726172717281729173017311732173317341735173617371738173917401741174217H317441745I7H617V7I7H8174917501751175217531754
SUBROUTINE SETUP•CALL.COMMONICC ••• COMPUTE CONSTANT TERMS AND INITIALIZE NECESCC •••SET PARAMETER STATEMENT VALUE INTO CONSTANTC
NVRM-NVORC
CYL-FLOATUCYL)EMFI-I.O-EMFT-0.0ITER-0CYCLE-0THPRT-0.0THPLT-0.0VCHOT-0.0NOCON-0NFLOC-0FNOC-0.0RCSQ-I.0/CRHOF*CSO)IF (CSQ.LT.O.OI RCSQ-0.0IF (NMAT.EQ.l) RHOFC-RHOFRHOO-RHOF-RHOFCIF (CANQLE.EO.90.01 CANGLE-CANGLE-EH6CANGLE-CANGLE'RPDTANCA-TAN(CANGLE)1PL-2IF <HL.EO.5> iPL-31PR-1M1IF (WR.E0.5l IPR-1M8JPB-?IF (HB.EQ.5l JPB-3JPT-JM1IF IHT.EQ.5) JPT-JM2
CC •••SET CONSTANT TERMS FOR PLOTTINGC
XMIN-X(l)XMAX-XI1M1)IF (1SYMPLT.GT.0I XM1N—XMAXYMIN-YUIYMAX-Y(JMl)Dl-XMAX-XMIND2-YMAX-YHIND3-AMAX1(01.02)SF-1.0/03XSHFT-0.5«tl.O-01»SF)YSHFT-0.5*f1.0-02»SF)DXMIN-EP1000 10 1-2.IMt
10 OXMIN-AMINMOE.LX(1>.DXM1N>DYMIN-EP1000 20 I-2.JM1
20 DYMIN-AMINI(OELY(11.OYM1N)VELMXI-AMINI(DXMIN.DYMIN)/VELMX
CC ••• DETERMINE SLOPED BOUNDARY LOCATION
99
1755 C1756 C ••• COMPUTE INITIAL VOLUME TRACTION FUNCTION r IN CELLS1757 C1758 DO HO 1-1.1MAX1759 00 30 J-2.JMAX1760 F(l,J>>1.01761 IF <FLHT.GT.Y(J-»>.AND.FLHT.LT.YCjn F<I.J)«RDY<J>»IFLHT-YCJ-lM1768 IF (Y(J-l).GE.FLHT) Ft|,J)»0.01763 30 CONTINUE
1765 HO CONTINUE1766 C1767 C ••• GENERATE SPECIAL F-FUNCT10N (FLU10) CONFIGURATION1766 C1769 C ••• CALCULATE OTVIS AND OTSFT1770 C1771 DS-l.OE+10177a DTV1S»I.OE*IO1773 DTSFT-l.OE-HOI77H 00 50 I-e.lMl1775 DO 50 J-2.JM11776 DXSQ«DELXU)"21777 DYSQ«DELY(J>»»21778 RDSQ-OXSQ'DYSQ/(DXSODY5Q)1779 RDSQ«RDSQ/C3.0»NU*l.0E-10>1780 DTVIS-AMINHDTVIS.ROSQ)1781 DS-AMINHDELX(1).DELY(J),DS)1782 50 CONTINUE1763 SIGX-SIGMA178H RHOMN-AMINKRHOF.RHOFC)1785 IF (SIGX.EQ.O.O) S1GX-EM101786 DTM«SQRT(RHOMN»DS"3/(SlGX»H.OM|.0*CYLn>1787 OTSFT«AMIN1(DTSFT.DTM)1786 C1789 C »•• CALCULATE BETAtl.J) FOR MESH1790 C1791 ROTEXP-2.0»SQRT(ABS(CSQ))/DS1792 IF (CSQ.LT.O.Ot RDTEXP-1.OE+101793 CTOS"DELT«R0TEXPI79H COMG-AMINI(CTOS*<2,1.0)1795 OMG1-(OMG-I.O)«COMG+1.01796 DO 60 1-2.IMI1797 DO 60 J-2.JMI1798 RHXR-tRHOFC*RH0O*F(I.J))»C€LX(I+l)+(RHOFC+RH0O»Fn*l,J))«DELX(n1799 RHXL-(RH0FC*RHOD#F(I-l,J»)«DELXU)*<RH0FC»RH0O»Fn,J>)»DELXtI-l)1600 RHYT>(RHOFC«RH0O*F(I,J))»DELY(J+l)*(RHOFC»RH0O*F(I,J*\))«DELY(J)1801 RHYB«(RHOFC*RH0O«F(I.J-l1J«DELYCJ)»(RHOFC»RHOO»F(1,J>••DELYIJ-IJ1802 XX«DELT«RDX(1)»(2.0/RHXL+2.0/RHXR)+DELT»RDY(JKM2.0/RHYT+2.0/RHYB)1803 RH0R>RHOF/(RH0FC*RH0O*FU.J>]I80H BETA(|.J)-ONGI/(XX*COMG»RCSO*RH0R/DELT)1805 60 CONTINUE1806 C1807 C ••• SET BETA!I.J)- -1.0 IN OBSTACLE CELLS1808 C MUST 8E OONE BY HAND IN GENERAL1809 C1810 C ••* PRINT BETAIl.JI ON FILM AND PAPER1811 C1812 IF (IMOVY.EO.ll GO TO 80
100
1813 WRITE (12.21011814 DO 70 J'l.JMl1815 00 70 I-1.IMI1816 WRITE 112.220) 1.J.BETAI1.Jl1817 70 CONTINUE1818 80 CONTINUE1819 WRITE (6.210)1820 00 90 J-l.JMI1821 DO 90 l-I.IMl1822 WRITE (6,220) I.J.BETA!I.J)1823 90 CONTINUE1824 C1825 C ••• CALCULATE HYDROSTATIC PRESSURE1826 C1827 DO 100 1-S,1M11828 PCI.JMAXI«0.01829 00 100 J-2.JM11830 JJ-JM1-J+21831 RH0YA«tRH0FC*RHOD»F(I.JJ))•DELY(JJ)«0.5*(RH0FC*RHOD*F<1,JJ*1))1835 I •OELYCJJ+IM0.51833 IF CNMAT.EO.l) RHOYA«(AM1NI<FlI.JJ+1>,0.5>'DELYlJJ*l1+AMAX1(0.0.F1834 1 <J.JJ)-0.5)*DELY(JJ))«RH0F1835 P(I.JJ)-P(I,JJ*1)-GY«RHOYA1836 100 CONTINUE1837 C1838 C ••• PARTICLE SET UP1839 C1840 NP«NPY»(1*NPX>1841 IF (NP.EQ.O) GO 10 1701842 OXP«(XPR-XPL»/t-XOAT(NPX)18H3 DYP«(YPT-YPB)/FLOAT(NPY)18H4 K-01845 CO 110 JN-I.NPY.21846 00 H O IN-l.NPX1BH7 K-K+l18H8 XPtK)«XPL*(FL0AT(|N)-0.5)«DXP1849 YP(K)«YPB*«FLOAT(JN)-1.0)«DYP1850 IF (YP(K).GT.YPT) YP!K)«YPT1851 110 CONTINUE1852 DO 120 JN-2.NPY.21853 «"K+11854 XPCKI-XPL1855 YP(KI"YPB*(FLOAT(JN»-I.0)»OYP1956 IF lYP(K).GT.YPT) YP(K)«YPT1857 DO 120 IN-l.NPX1858 K-K+l1859 X?(K)»XPL*FLOATUN)»DXP1860 YP(K)-YPB+(FL0AT(JN)-1.0)*DYP1861 IF (YP(K).GT.YPT) YP(K)«YPT1862 120 CONTINUE1863 NP-K1864 DO 160 K-l.NP1865 00 130 1*2,IM!1866 IF (XP(K).GE.X(I-l).AND.XP(K).LE.X(l)) IP(K)-11867 IF (X(l-l).GT.XPR) GO TO 1401868 130 CONTINUE1869 140 DO 150 J«2.JHI1870 IF IYP(KI.GE.Y(J-I).AND.YP(K).LE.Y(J)> JPIK1-J
101
IB71187?1873187418751876187718781879I860188118821863188418851886188718881889189018911892189318941895189618971898189919001901190219031904
CCC
CCC
ccc
c
150160170
180
190
200
210220
IF lY(J-ll.GT.YPT) 60 TO 160CONTINUECONTINUECONTINUE
••• SET INITIAL SURFACE PRESSURE
DO 180 J-2.JMI00 160 J-2.IMIPS(l.J)«0.0CONTINUE
••• SET INITIAL VELOCITY FIELD INTO U AND
DO 190 1-2.1MIDO 190 J-2.JM1VU.JI-VIUU.JI-UIIF (F(|.J>.GT.EMF.0R.NMAT.EQ.2> GO TO 190U(l.J)-0.0VM.JI-0.0CONTINUE
••• SET INITIAL VOID REGION QUANTITIES
DO 200 K-l.NVRMNR(K>«0PR(K>«0.0VOL(K)»0.0RETURN
FORMAT (IH1)FORMAT (2X.5HBETA(,I2.1H..I2.2H)-.!PE14.71END
V ARRAYS
102
1905 SUBROUTINE TILDE1906 'CALL COMMON11907 C1908 C ••• COMPUTE TEMPORARY U AND V EXPLICITLY1909 C1910 00 20 J-2.JMI1911 00 80 I-S.IMI1912 U(1,J)-0.019J3 «OElX«1.0/(OELX(l)*OELX(i*U!1914 ROELY«I.O/tOELYU)*OELY(J*l))1915 IF (Fn.J>*FU*l.J).LT.EMF.ANO.NMAT.EQ.n GO TO !S1916 IF (BETAU.J).LT.0-0.OR.BETAU*I.J).LT.0.0> GOTO 101917 SGU-S1GNU.0.UNU.JM1918 OUOR«(UN(I+l,J)-UN<I.J>>*RDXII+n1919 DUOL«(UN(I.J)-UN(|-l.jn»ROX(l)1920 ROXA«0ELX(l)*DELX(I*U+ALPHA«SGUMDELX(l*n-0ELX[J)>19?] ROXA«1.0/ROXA1922 FUX<*RDXA*UN(I,J)*(DELX(l)<OUOR+OCLX(I+n«OUDL*ALPHA*SGU*(OELXlI*l)1923 ! •DUDL-DELXC1)*DUDR>>1924 VBT«(DELXU)»VN<1H.J)*DELXU + 1)#VN(I,J>>»ROELX1985 VBB«<OELXUMVN<l*I.J-l>*DELXUH>»VNfl,J-l))»RDELX1986 VAV-0.5MVBT+VBB)1927 DYT-0.5MDELY<J}*0ELY(J*M)1928 DY8«0.5MDELY(J-n*OELYCJ>)1929 DUOT«(UN(I,J+1)-UN(I.J))/OYT1930 DUDB-(UN<1.J)-UN<I.J-|))/DYB1931 SGV-SIGN(1.0,VAV)1932 OYA«DYT*0YB*ALPfU»SOV*(DYT-DYB)1933 FUY»(VAV/0YAI»(DY8*DUDT*0Yr«0UDB*ALPHA«SGVMDYT«0U0B-0YB«DU0T))1934 UBOYT»(DELY(JI«UN(I,J*1)*OELY(J+1)»UN(1,J))/(OELY(J)+DELY(J*D J1935 UB0Y8«(0ELY(J-l)«UN(I,J)*DELYCJ)»UN(I,J-1))/«DELYIJ)*DELY(J-l))1936 DUDXSQ»2.0*(UN(I-l,J)*RDX(n/COELX(n«reLX(l + ]>>+UN(IH.J)*?fflXU + l1937 I )/fDeLXtI)+OeLX(I+l))-UN(I,J)«ROX(|)«ROX(I*in1938 0UOYT*(UN(I,J+l)»DELY(J)»ROY(J*ll-UN(I,J>»0ELY(J+l)«ROY(J>-UBOYT»1939 1 fOELY{J)»ROY(J*l)-DELYtJ*l)»ROYlJ))>/(0.5»<DELY(J)*DELY(J*l)))I9H0 OUDYB«(UN(1,J)»OELY(J-1)«RDYCJ)-UN(1.J-l)«DELY(J)»RDY(J-1)-UBOYB*19H1 1 (DELY(J-I )«ROY(J>-OELYJv')'>ROYIJ-l)) >/ C0.5*IDELYI J-l )*DELY( JJ))1942 OUOYSQ- C OUOYT-OUDYBI 'ROY ••19H3 DUOXL-(UN(1,J)-UN(I-I.J! »X(I)
«,J9HH DUDXR-(UN(l + l,J)-UN(l.Ji 'RDX(I + !)1945 RXOUDX-RXCI)•(DELXII•1)•DUDXL+DELXII)•DUOXRJ/(OELX(1'•DELXII+1))1946 rJXS0U-UN(I.J)«RXII)"21947 VISX-NU»(DUOXSQ*DUDYS0*CYL*RXDUDX-CYL*RXSQU)1948 RH0X-(RH0FC+RH0O*F(1,JJ)*DELX(J+l)+(RHOFC*RHOD«Ft1*1,J))»OELX(I)1949 U< I. JJ-UN( I. J)*DELT»( <f>( I, J)-P( 1 + 1. J>) ̂ .O/RHOX+GX-FUX-FUY+VISX)1950 10 CONTINUE1951 VM.J>-0.01952 IF <F(I,J)*F(I.J*\).LT.EMF.AHD.NMAT.EQ.il GO TO 201953 IF <BETA(l.J>.LT.0.0.0R.BETA(l.J+ll.LT.0.0l GO TO 201954 UBR-COELY(J*l)«UNtI,J)*DELY<J)«UNI|.J*!))*ROELY1955 UBL-(OELYCJ*I)«UNC!-KJ)*DELY<J)»UNU-I.J*M)*RDELY1956 UAV0.5MU8R+UBL)1957 OXR*0.5*(DELX(I)+DELX(I*D)1958 DXL-0.5MDELX(II+OELX(|-1))1959 SGU-SIGNI1.0.UAV)1960 DXA«OXR+DXL*ALPHA*SGUMDXR-DXL)1961 DVOR-<VN(I+1.J>-VN(!,J))/DXR1962 DVOL-IVN(I.J)-VN(I-1,J))/DXL
103
1963 FVXMUAV/0XAl»<DXt»DV0ROXR«DV0L*ALPHA«SGU*<DXR«DV0L-DXL*0V0RJ'196** SCV*SIGNCI.O.VN(1.JI)1965 OYA-OELY<JH>*DElYlJ>*AU»HA»SGVMOEt.Y<J»l)-O£LY(J>)1966 OVOT«rVN{J.J»J>-VNU.J)l'BOYU*l)1967 0V08»<VN(I.J1-VN(l.J-l>>»«0YU)1966 rVY»tVN(|.J)/OYA)M0£LY(JI»OVOT»DELY<J*I)«OV0e»ALPHA»SGV(DELYCJ»l1969 1 l«DV08-DCLY<Jl'DVDT)>1970 V90YR«(0ELX(1*1I'VKl],J)*0CLX(I>*VN(1*1,J11/lOCLXI1)*0ELXi1*1 J>1971 VSOrL»IOCLX(l1«VNC!-I.J)*0£LX<]-n*VNIl.J>l/((Ki.Xin*DCLXU-11>197? DVDXR-(VN(l»l.sl)*r£LXi;i*ROX({«II-VN(I.Jl*0Cl.Xfl*n*ROX(n-veOYR*1973 1 (0ELX(I)*fnXll«lii-DCLX(l*t)*R0X<I>l1/(0.5*CKLXir*l>*KLXil)))197H OVOXL-(VN(I.J)*Dei.Xll~l)<R0Xtn-VN(!-l.J>*0CLX(ll«ROX(t-t)-V8OYL*1975 I (0ECXU-1MBOX(N-0ELX(n»»»X(l-inJ/l0.5M0ELXn)»0eLXI1-nil1976 OVOXSO-(DVOXR-OVOJQ.)*TOX(I)1977 OVDYSQ'S.O* IVN I I . J - l 1 «ROYl J ) / IOELY< J»l)»OELYr Jl l-VM( I . JMROYJJ»l 11978 1 •flDY<JI*VN(l,J*l»»HOY<J*n/CDELYlJ*U*0ELYIJ)J»1979 OV0XRX»(V90YR-V8OY/.l*fiOX(!)*RXKl?1980 VlSY-NU*(DVOXSQ*DVDYSa*CYl_«DVOXRX>1981 flH0Y-(NH0FC»RH0O*>'< I.J) )'OELY( J*l l*(RH0FC*flH0O*F( t.J«l) > 'OELYIJ)1982 V(1.J!»VN<I,Ji*C£LTI«Pl1,JJ-Pl1.J*lJ >«a.O/HHOY*GY-FVX-FVY*VlSYl1983 20 CONTINUEI99H RETURN1985 END
104
198619871988198919901991J99?19931994199519961997399819992000800120022003200H2005200620072008200920102011201220132011301520162017201820192020202120222023202H20252026
SUBROUTINE TMS10
••• TUO MATERIAL SURFACE TENSION
••• NOTE: TH3S ROUTINE 1NTR00UCES SOME NUMERICAL NOISE••• AND MAT BE REPLACED IN THE FUTURE
00 30 1-2.!MICO 30 J-2.JM1IF <NFll,J>.EO.O.OR.NFCl.J>.GE.5.0R.8ETA(».J».LT.O.O> 00 TO 30WHTL-0.5MHTR-0.5HHTT-0.5HHTB-0.5IF INF(!.J>.GT.2> GO TO 10MHTLM.O-FU.JIIF INFI1.JJ.EQ.2) HHTL«1.O-HHTLWTR-1.0-HHTLSTFX-PSU.J>»OELY(J)IF (NFU.J).EO.l) STFX—STFXSTFY-STFX«TANTHU.J»GO TO 20
10 UHTB>!.0-F(!.J>IF (NF(l.J).EQ.H) HHTB«1.0-kHTBUHTT*1.0-tMTBSTFY»PS(I.JI*OELX(I»IF «NFI|.J).EQ.31 STFY—STFYSTFX«-STFY»TANTH»1.J>
20 CONTINUERN0XR»<RH0FC*RH0O«F(1.Jl)*OELX(t+1)•<RH0FC*RN0O«F(I•1.J))«DELX111UU.J)»U(t,Jl*2.0»0ELT«HHTR»STFX/lRHCXR»DELYU))RHOXL«CRHOFC*RHOD»Ftl-l.JH*0ELX(II*(RHOFC*RHOD»F(I.J))«OELX( 1-11Ur1-1.J)«U(1-1,J)*2.0»DELT»WHTL«STFX/?RHOXL«OCLY(J)»RHOYT-inHOFC*RHOO«F(I.JlJ«DELY(J*l)*IRHOFC+RHOO«FU.J*1))«DELy(JIV(I.J)»VI1.J)*2.0»DELT»l«TT«STFY/(RHOYT*OELXII))RH0YB-(RH0FC*RH0O»F(l.J-U)«DELYIJl*(RH0FC*RH0O'F(l.JH«0ELY(J-lJVII.J-l)«V(I.J-l)*2.0«OELT»t«re*STFY/lRHOYB«DELXCI)1
30 CONTINUERETURNEND
105
8087 SUBROUTINE VFCONV8088 'CALL.COMMONI8089 C8030 C ••• CONVECT TtC VOLUME OF FLUIO FUNCTION F8031 C8038 IF <CYCLE.LT.I) GO TO HO8033 FLGC-0.0803t DO 30 J-l .JMI8035 DO 30 1-l.lMl8036 VX-UII.J1-3CLT8037 VY»VCI.J)«DELT8038 ABVX-ABSIVX)8039 ABVY-ABSIVY)80M0 IF CA8VX.GT.0.5»OELXcn.OR.ABVY.GT.0.5«DELYlJl) FL3C-1.080HI I A - l * l80H8 10-180H3 IOM-MAX0ll-l.ll80HH RB-XMl80H5 RA-X1II*1)80H6 ND-XK!)80H7 IF (VX.GE.O.OI GO TO 1080H8 IA-I8049 10-1*18050 IDM"M1NO11*8.1MAX>8051 RA-XII1)8058 RD-XII1*!)8053 10 CONTINUE80S** IAO-1A8055 IF (NF(ID.J).EO.3.OR.NF(1D.J).EO.H) IAD-ID8056 IF IFNI1A.JI.LT.ENF.OR.FN(ION.J).LT.EHF> IAO-1AP057 FDH-AMAXlCFN(IOn.J),FN(IO.JII8056 FXI»FNUAO.JI*ABS(VX)«AHAXI((FOM-FNCIAD,J>>*ABS(VX>-IFD>1-FN<1D.J>>8059 I •DELXt101.0.018060 FX-AMIN1(FX1,FN(ID.J)'OELXIID)I8061 Ft 10.Jl-FlID.J)-FX«HOX(10)M«ABS<R8/RO))'CVL*(1.0-CYLI)8068 F(IA.J)«F<IA,J)*FX*ROXIIA)*IlABSlRB/RA))«CYL*(1.0-CYL1)8063 JA-J+1806H X-J8065 JOM-MAX0(J-l,ll8066 IF (VY.GE.O.O) GO TO 808067 JA-J8068 X-J*l8069 JDM-MIN0<J»8.JMAX)8070 80 CONTINUE8071 JAO-JA8078 IF (NFII.Xl.eQ.I.0R.NF(I.X).EQ.8> JAO-X8073 IF (FN([.JA).LT.EMF.OR.FN(t.JOM).LT.EMF> JAO-JA807H FOM-AMAXKFN(l.XM).FN(|.Xtl8075 FY1-FNII. JAD)»ABStVY)+AMAXl ((FOM-FNt I .JA0N«A8StVY)-lF0M-FNt 1 .X))8076 1 •DELYIXi.0.0)8077 FY-AniNMFYl.FNM.X)*DELYIX>)8078 F(1.X)-F(J.X)-FY«ROYIX)8079 F<t,JA>«F(l.JA)*FY«ROYtJA)2080 30 CONTINUE806) HO CONTINUE8068 00 80 J-8.JM18063 00 80 1-8.IM1806H IF fKTAH.Jl.LT.O.O) GO TO 80
106
VCHG'0.020«6 IF iFd.Ji.CT.EMF.AND.Fd.Jt.LT.EMFl) CO TO 602067 IF IFH.JI.GE.EMFII CO TO 502088 VCHC-F(t.J)2089 Fi|.J>»0.02090 GO TO 602091 50 CONTINUE2092 VCHC--U.O-Fll.JJl2093 FU.JI-l.O209>« 60 CONTINUE2095 VCHOT«VCHCT«VCHC'DELX(I)'OELYC J M (XI<11•2.0»P!«CYL»lI.0-CYLH2096 IF (FII.J).LT.EMFU GO TO 802037 IF (FU»I,J».LT,EMF) GO TO 702098 IF tFU-I.Jl.LT.ENF) CO TO 702099 IF «F(l.J*l>.LT.ENF) GO TO 702100 IF (FU.J-l).LT.EHF) GO TO 70eiOI CO TO 802102 70 F<J.JI"FI|.J)-I.I»EHF2103 VCHG»l.!«EfC2J0H VCHGT«VCHGT*VCHC»OELX( ll*0£LY{J)MXI 11 )»2.0»Pl«CYL*U .0-CYL n2105 80 CONTINUE2106 C£107 C •" SPECIAL BOUNDARY CONDITIONS FOR F2106 C2109 RETURN2110 END
107
APPENDIX B
SAMPLE CALCULATIONS
Some idea of the power and flexibility of the SOLA-VOF program can be gain-
ed by reviewing the sample calculations briefly described in this Appendix.
These examples have been selected to illustrate the wide range of problems that
SOLA-VOF can address.
1. A BREAKING BORE.
The test problem provided for checking out new SOLA-VOF codes was an undu-
lar bore generated when a stream of fluid encountered a rigid wall. One advan-
tage of the SOLA-VOF program is that it is not limited to simple free-surface
configurations. This can be illustrated by increasing the height of the bore
transition to a level where experimental data indicate a turbulent transition
occurs. An easy way to increase the transition height is to reduce the gravita-
tional acceleration used in the test problem. For example, reducing it from 1.0
to 0.4548 increases the bore transition height from 1.0 to 2.8.
A calculation for this case is shown in Fig. B—1. The computational mesh
consisted of 50 equally spaced cells in the x-direction (6x = 0.25) and 20 cells
with variable spacing in the y-direction. The variable spacing was selected to
give the greatest resolution around y = 1.0 where a shear layer is formed as
fluid flows into the bore.
Experimental evidence indicates that turbulent bore transitions have widths
that are typically five times their elevation change. This is consistent with
the calculational results, even though the calculation is not computing true
three-dimensional turbulence. A better measure of the accuracy of the calcula-
tion is the final fluid height at the wall, which is 2.91 compared to the theo-
retical value of 2.8. A brief study of the entire calculation indicates that
this 3.9% error would probably be smaller had the mesh length been increased to
allow the bore to move further away from the wall.
2. BROKEN DAM PROBLEM.
In this example, a rectangular column of water, in hydrostatic equilibrium,
is confined between two vertical walls (Fig. B-2). The water column is 1.0 unit
wide and 2.0 units high. Gravity is acting downward with unCt magnitude. At
the beginning of the calculation, the right wall (dam) is removed and water is
allowed to flow out along a dry horizontal floor. Experimental results for this
problem have been reported for the position vs time of the leading edge of the
water as it flows to the right (Fig. B-3).
108
« =
This ts a good test problem be-
cause it has simple boundary condi-
tions and a simple initial configura-
tion. The appearance of both a verti-
cal and horizontal free surface, how-
ever, provides a check on the capabil-
ity of SOLA-VOF to treat free surfaces
that are not single valued with re-
spect to x or y. Results from two
calculations are presented in Fig. B-3
in comparison with the experimental
data. In both cases, the mesh con-
sisted of 40 uniformly spaced columns
(<5x = 0-1) and 22 uniformly spaced
rows. The smallest 5y values are lo-
cated at the bottom of the mesh where
resolution is needed to define the
thin leading edge of the advancing wa-
ter. In the first calculation, the
smallest <Sy was 0.05, while in the
second it was 0.025. Figure B-3 sh-̂ 's
that the best results are obtained
with the smallest <5y case, but both
results are still quite good. The
greatest deviation from experimental results is everywhere less than one cell
width.
3. COLLAPSE OF A CYLINDRICAL FLUID COLUMN.
Although much like the Broken Dam problem, this calculation (Fig. B-4), il-
lustrates several additional features of the SOLA-VOF program. The cylindrcal
coordinate option was employed so that the resulting flow would approximate what
might occur following the failure of a cylindrical storage tank for liquid fuel.
A retaining collar surrounds the original tank, but as seen in Fig. B-4, it is
too low and a large portion of the fluid splashes outside. The collar is de-
fined by cells that are flagged as obstacles into which fluid cannot flow. It
is interesting to note that almost no fluid splashes outside the collar when its
height is increased to twice that shown in Fig. b-4.
Fig. B-l.
Velocities and free-surface configura-tions for breaking bore calculation.Times are 0.0, 6.50, 8.51, and 14.01.
109
. .'. .......\
i i i i i j 1 i i 1
Fig. B-2.Velocity vectors and fluid configurations computed for broken dam problem attimes 0.0, 0.9, 1.4, and 2.0.
4.0 -
Fig. B-S.
Comparison of calculated results withexperimental data for the broken damproblem.
110
This calculation also illustrates how the marker particle capability of the
program can be used to provide a different type of flow visualization. The ini-
tial rectangular marker particle distribution was established by defining in the
input data the region's boundaries and the number of particles wanted in each
direction. The small scale structures evident in the later particle configura-
tions must be interpreted with care because they are not adequately resolved by
the finite-difference mesh.
Fig. B-4.
Calaulational results showing the collapse of a cylindrical column, of fluid sur-rounded by a low retaining wall. Times shown are 0.0, 1.6, 2.5, 3.6y 4.2, and4.6.
Ill
4. INSTABILITY OF A LIQUID COLUMN.
For some applications, such as the breakup of a thin liquid jet, surface
tension forces must be considered. A classic problem of this type concerns the
instability of a cylindrical column of fluid. When its free surface is perturb-
ed by radial displacements, an exponential growth in perturbation amplitude may
result that eventually causes the cylinder to break up Into a series of discrete
drops. Figure B-5 illustrates a SOLA-VOF calculation of this type of surface
tension driven instability. The cylinder is initially perturbed with an axisym-
metric displacement of its free surface that is sinusoidal In the axial direc-
tion. Two axial wave lengths X are followed, with X = 4.598 D, where D Is the
diameter of the undisturbed cylinder. The initial perturbation amplitude is18
0.001 D. A comparison of the computed amplitude growth with linear theory is
shown in Fig. B-6. It is somewhat remarkable that the linear theory works so
Fig. B-5.
Fluid configurations calculated fop asurface tension driven instability of acylindrical column of fluid. Times areapproximately 0.0, 6.03, 6.49, and 7.0in units of \f D /a.
aoa
o.oi -
Fig. B-6.
Comparison of calculated perturbationamplitude vs time (dots) with lineartheory (solid line).
112
far into the range of large amplitude displacements. Nevertheless, nonlinear
effects are important because they are the cause of the secondary bulges that
develop between the crests of the original harmonic disturbance. Following
pinch-off, these secondary disturbances have resulted in small satellite drops
between each large drop.
It is a strong testimony for the SOLA-VOF program to be able to carry this
calculation completly through the pinch-off and droplet formation stage. For
this to happen it was necessary to use .the automatic time-step control provided
in the program. The exponential growth of the perturbation requires a corre-
sponding exponential decrease in time-step size to remain stable and to follow
the evolution of the instability.
5. EXTRUSION OF" IMMISCIBLE FLUIDS.
A. mixture of oil and water provides an excellent example of a two-fluid
system often encountered in practical situations. Because of their slightly
differing densities and the action of interfacial surface tension forces, the
mixture behaves dynamically quite different than either fluid separately.
Using the two-fluid and surface tension options, a variety of mixture prob-
lems can be investigated with the SOLA-VOF program. Figure B-7 contains results
from a calculation of the passage of a liquid drop through a hole in a plate.
The drop has a density equal to 9/10 of the density of the surrounding fluid.
Surface tension a at the interface between the two fluids is such that the Weber2
number (pV r/a) is equal to 0.2 based on the drop radius r and average flow rate
V. This means that surface tension forces are more significant than those of
inertia. In this example viscous forces are also relatively strong for the
Reynolds number (Vr/v) was chosen to be 1.00, and we assumed that both fluids
have the same kinematic viscosity v. If this were an oil-water mixture, it
would correspond to a small oil drop (r = 3 x 10 cm; forced rapidly (V = 46.1
cm/s) through a hole in a thin plate. To force the drop through the constric-
tion requires extra work to deform the interface against its surface tension
forces. Much of this work, however, is recovered as the drop emerges on the
downstream side of the constriction.
6. A REACTOR SAFETY APPLICATION.
•Many boiling water reactors use a large pool of water to <...ndense steam
should a major steam leak occur. In some designs, steam is forced into the pool
through long vertical pipes extending several pipe diameters below the surface
of the pool. Before steam enters the pool, however, the air already in the
113
Fig. B-7.
Caloulational results showing deformation of an oil drop in water passing througha hole in a rigid plate. Times shown in units of 2R/V are 0.0, 0.125, 0.5, and0.875. °
pipes must be pushed out. The ejection of this noncondensable air forms large
bubbles in the pool and displaces the pool surface upward. Safety considera-
tions require an understanding of the hydrodynamic forces generated during this
process. For this purpose, several small scale experimental programs have been
conducted and several groups have attempted supporting theoretical analysis.
A cross section of a single pipe apparatus used at the Massachusetts Insti-
tute of Technology (MIT)19 is shown in Fig. B-8. It consists of a cylindrical
vessel filled approximately half-way with water and an axisymmetric pipe extend-
ing down into the pool from above. At the beginning of a test, a valve is open-
ed at the top end of the central pipe exposing it to a constant pressure plenum.
Gas in the plenum flows through an orifice in the pipe and then into the lower
pressure cylindrical tank by displacing water initially in the pipe.
To model this test apparatus with the SOLA-VOF code, it is necessary to
supplement the code with calculations for the gas pressure in the pipe and for
the pressure in the closed space above the pool surface. These pressures are
then used as free-surface boundary pressures. A sequence of calculated results
illustrating the fluid dynamics associated with the air clearing process are
114
contained in Fig. B-9. The free boundaries obviously undergo severe distortion,
but the SOLA-VOF algorithm h*s no difficulty in following the fluid motion.
Pressures measured at the center of the floor are compared with the correspond-
ing calculated pressures in Fig. B-10. The agreement is reasonably good, except
for some of the details associated with the initial pressure spike. There is
some experimental evidence that the higher first spike and subsequent small
second spike is a result of elastic flexibility in the apparatus, which was not
included in the calculation. Similar results have also been obtained for many20
other test conditions and for other measured quantities.19
In some of the experimental tests, it was observed that small air bubbles
remaining in the fluid from earlier tests provided a springiness to the fluid
and qualitatively changed the pressure history on the floor of the container.
SOLA-VOF can be used to study this effect by treating the air bubbles as a mech-
anism that reduces the bulk modulus of the water. This treatment uses the lim-
ited compressibility option in the program with a fluid velocity of sound less
than that of pure water. For example, Fig. B-ll shows the computed floor pres-
sure histories from three calculations in which the only difference is the fluid
sound speed. The three cases correspond to an incompressible calculation, a
case in which the sound speed was one-fifth the normal speed of sound in pure
water, and a case in which the speed was one-tenth the normal speed. A compari-
son of these results shows that as the sound speed is lowered large pressure os-
cillations develop on the floor and these increase in both magnitude and period
as the fluid becomes more compressible.
115
Orifice
//////////////////////////////////////Wf////////////////////////////pl
MIT Test Facilty
Fig. B-8.
The MIT single vent test apparatus.
;;;;;
i
iliiiiii
'. '. '. '.'. i'• - i j i' 1
i
iii
jUi j i
l!
iIi
:: - ^
'.I
ih-1 "1 ' '
r \./ •
i-j.. .
1- -i
!: I . I
Fig. B-9.
Velocity vectors and free-surface con-figurations computed when air is forcedthrough a submerged vent pipe.
30
1 20
0?i.
10
n
-
-
i
1
' ^ ^ Floor(Exp.)
^ Floor
1O.I
Time (s)0.2
Fig. B-10.
Comparison of calculated and measured pressures on floor of pool chamber.
116
40 60Time (ms)
60 100
100
Fig. B-ll.
Pressures computed on pool chcanher floor during vent clearing (a) with an incom-pressible fluid, (b) with a fluid whose sound speed is one-fifth that of vater,and (c) with a fluid whose sound speed is one-tenth that of Water.
117