components are located at cell face centers on lines of constant x andy, ...... A. A. Amsden, P. J. O'Rourke, and T. D. Butler, "KIVA-II: A Computer Program for.
-
LA-12007-MS
RIPPLE: A Computer Program
COLLEQCT~~ REPRODUCTI •" COPY
CIC-14 REPORT
for Incompressible Flows with Free Surfaces
• ~t:
1~
Los Alamos NATIONAL
LABORATORY
Los Alamos National Laboratory is operated by the University of California for the United States Department of Energy under contract W-7405-ENG-36.
Development of the RIPPLE program was made possible through the support of the NASA Lewis Research Center, Interagency Agreement Order number C-32008-K.
An Affirmative Action/Equal Opportunity Employer
This report was prepared as an account of work sponsored by an agency of the United States Government. Neither The Regents of the University of California, the United States Government nor any agency thereof, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by The Regents of the University of California, the United States Government, or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of The Regents of the University of California, the United States Government, or any agency thereof.
LA-12007-MS UC-000 Issued: April1991
RIPPLE: A Computer Program for Incompressible Flows with Free Surfaces Douglas B. Kothe Raymond C. Mjolsness Martin D. Torrey
n©~ ~
0
n01~©~ Los Alamos National Laboratory ~ Los Alamos,New Mexico 87545
~ ~U(9JU U U
CONTENTS I. II.
INTRODUCTION . . . . . . THE NUMERICAL SCHEME A. Governing Equations B. Finite Difference Conventions C. Incompressible Hydrodynamics D. Free Surfaces . . . E. Surface Tension . . . . . . . F. Internal Obstacles . . . . . . THE COMPUTER PROGRAM III. A. Code Structure . B. Data Structure . . . . . . C. Problem Setup . . . . . . D. Performing a Calculation EXAMPLE CALCULATONS IV. A. Capillary Jet Br~akup . . B. Propellant Reorientation C. Jet-Induced Tank Flows . FUTURE ENHANCEMENTS V. VI. ACKNOWLEDGEMENTS .. VII. REFERENCES . . . . . . . . Appendix A. Surface Tension on a Planar Curve
1 3 3 5 6
22 26 35 36 37 50 66 84 85
85 90 95
104 105 106 109
LIST OF FIGURES 1
2
3
4
5
6
The location of variables in a RIPPLE computational cell follows that of the MAC scheme. The x- and y-velocities are located at vertical and horizontal cell faces, respectively, and the pressure Pi,j and VOF function Fi,j are located at cell centers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RIPPLE momentum control volumes in each cell are centered about the (A) top face for y-momentum transport and (B) the right face for x-momentum transport. Flux velocities Uf! and Vf! at momentum control volume boundaries are obtained from interpolation of neighboring fluid velocities. . . . . . . . . The crosshatched regions shown, areas bounded by the velocity curves above and the flux volumes on the left, are the amount of constant density momentum (velocity) advected from the discrete data in (A) using the RIPPLE conservative momentum advection algorithm for (A) donor cell, (B) centered difference, and (C) van Leer approximations. . . . . . . . . . . . . . . . . . . On the right are three examples of free surface reconstructions used in the x-advection of F through the right cell face. The donor free surface is reconstructed vertically in (A) and (B) and horizontally in (C) from the fluid configurations on the left. The crosshatched regions on the right are the actual amount of F fluxed in each case. . . . . . . . . . . . . . . . . . . . . . In the CSF model for surface tension, a cell-centered volume force due to surface tension, ff.v, is derived from a free surface curvature K, at the cell center and unit normals n at the 4 cell vertices. . . . . . . . . . . . . . . . . Magnified view of a static fluid free surface in contact with a wall in the presence of wall adhesion, which forces the contact line to form an angle Beq with the wall. Wall tangent iw, wall normal nw, and Beq define the free surface normal n at a point xw on the wall. . . . . . . . . . . . . . . . . . . . . . . .
7
9
15
25 29
33 v
7
8 9 10 11 12 13
14
15 16 17
18 19
20
RIPPLE treatment of the wall adhesion boundary condition on a "right" wall. The boundary condition is applied at two rightmost vertex normals, and since the free surface makes an angle f) i- f)e at the wall, a nonzero wall adhesion force results that tends to pull the fluid into a f) = Beq configuration. . . . . . 34 Flow diagram for the calculation sequence performed in subroutine SETUP during RIPPLE problem initialization. Subroutines performing an individual task are in parentheses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Flow diagram for a RIPPLE computational cycle. Subroutines performing an individual task are in parentheses. . . . . . . . . . . . . . . . . . . . . . . . . 39 Nonuniform mesh generated for RIPPLE with the example input to namelist MESH.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 The hemispherical end caps on this cylindrical tank, shown as the dark line overlaid on the computational mesh, form interior obstacle boundaries for RIPPLE that are created with the example input to namelist OBSTCL. . . . 77 Square liquid drop initialized for RIPPLE with the example input to namelist FREESURF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Free surface (F = 1/2 contour) plots of the capillary jet at times of (top-tobottom, left-to-right) 0.0, 3.42, 6.84, 10.26, 13.67, 17.09, 18.80, 19.83, 20.17, 20.51, 20.85, 21.20, 22.22, 23.93, 27.35, and 30. 77. The jet is computed on a low resolution 30 X 40 mesh. . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Free surface (F = 1/2 contour) plots of the capillary jet at times of (top-tobottom, left-to-right) 0.0, 3.42, 6.84, 10.26, 13.67, 17.09, 20.51, 23.93, 27.35, 29.06, 29.40, 29.74, 30.08, 30.43, 30.77, and 31.11. The jet is computed on a high resolution 30 x 140 mesh. . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Fluid velocity vectors and free surface configurations for the reorientation problem at times of (left-to-right, top-to-bottom) 0.1, 0.5, 0.7, 0.9, 1.0, 1.1, 94 1.2, 1.5, 1.9, and 3.0 s. . . . . . . . . . . . . . . . . . . . . . . . . . . . At a time of 0.2 s are vector plots of velocity V (left), normal ii = \7 F (middle), and volume force Fsv (right) for the reorientation problem. . . . . . 95 Fluid velocity vectors and free surface configurations at times of (left-to-right, top-to-bottom) 0, 250, 750, 1000, 1500, 2000, 2500, and 3000 s for the jetinduced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 1 cm/s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 At a time of 3000 s are velocity vectors V (left), stream function (middle), and velocity potential (right) for the jet-induced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 1 cm/s. . . . . . . . . . . . . . . 100 Fluid velocity vectors and free surface configurations at times of (left-to-right, top-to-bottom) 200, 600, 1200, 1400, 1600, 2000, 2200, 2400, 2600, and 3000 s for the jet-induced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 4 cm/s. . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Illustration of the surface tension forces exerted at a point is on a planar interface separating two fluids. . . . . . . . . . . . . . . . . . . . . . . . . . . 109
LIST OF TABLES 1 2 3 4
Vl
Contents and logical unit numbers (LUN) of input/output files connected to RIPPLE during the course of a calculation. . . . . . . . . . . . . . . . . . . . Linear stability time step constraints in RIPPLE. . . . . . . . . . . . . . . . Integer values of the NF array are used to designate the type of each cell and its relation to neighboring cells. . . . . . . . . . . . . . . . . . . . . . . . . . Input variable ALPHA controls the finite difference representation of the advective terms in the momentum equation. A linear combination of the ALPHA=O.O and ALPHA=l.O options results when O.O 0,< 1, at the free surface; 0,
(85)
in the void.
For incompressible flow, the VOF function might be regarded as the normalization F(i, t) =
p(i, t)j pr, where pr is the constant fluid density. The discontinuity in F is a Lagrangian invariant, propagating according to
dF 8F
_,
-dt = -8t + (v . v) F = o'
(86)
where F(i, 0) at timet= 0 is assumed to be given (see Section III.C.7).
2.
VOF Advection.
While the exact partial time derivative ofF satisfies
(a:;)
= -
(v. v) F,
(87)
exact
it is convenient for numerical purposes to take advantage of the conservative differencing possible for
(88) where we have retained the velocity divergence, since V' · V is not zero but 0( E) (Eis a small number set by the machine epsilon and the convergence criterion of the PPE solution). Clearly,
8F) (8t
= exact
(8F) 8t
_, F. + (v. v)
(89)
calc
Thus if the advection is begun by defining a tilde value ofF,
(90) it may be completed with a "divergence correction,"
(91) bringing
F to pn+l.
This sequence insures a volume-conservative advection ofF, and is the
default action taken by RIPPLE (see input variable IDIV in Section III.C.3). 23
Equation 90 is discretized by integrating over the mass control volume, whose boundaries are the cell boundaries, giving
F.·. t,J (92) where subscripts B, T, L, and R denote quantities taken at the bottom, top, left, and right sides, respectively, of cell (i,j), and the superscript E on the radius r is a constant equal to 1 in cylindrical and 0 in Cartesian geometry. In RIPPLE, VOF advection is computed at the end of each computational cycle, completing the "second step" of the projection method, so the velocities advecting F in equation 92 above are those at the time
tn+l.
Bracketed
quantities ((F)) are the fractional fluid volumes crossing each cell boundary. These quantities are estimated with a free surface reconstruction. RIPPLE expressions for (F)R when u~:11; 2 ,j
>
Given below, as an example, are the
0. Calculation of (F) values follow directly
from the H-N reconstruction algorithm, as stated previously. Further details are in the literature. 1· 3· 4 · 11 The VOF function fluxed at the right face of cell (i,j) is the sum of an "upstream" value Fiad,j
plus an increment EF:
(F)R =
Fiad,j
(93)
+ 5F,
where the VOF increment,
w = 0.0 0.0
lu~t1 ; 2 ,j5tl; < lu~:1 ; 2 .i5tl. or
w 1
(94)
depends upon the relative value of a "void width" w, defined nonzero only when the reconstructed surface is parallel to the fluxing direction, given by
(95) The quantity
Fiad,j
is not necessarily the upstream VOF, as seen in the examples of Figure 4.
The free surfaces on the right of Figure 4 represent H-N reconstructions of exact free surface shapes on the left. In Figure 4(A) and (B), the free surface reconstruction in cell (ij) is vertical, causing
Fiad,j
to be the downstream VOF because iad is set equal to i
in (C), where the free surface reconstruction is horizontal, is
Fiad,j
+ 1.
Only
the upstream VOF and
iad set to i. The donor (id), acceptor (ia), and donor-minus (idm) cell indices are always 24
-juotl-
(A)
donor
acceptor
idm
id
ia,iad
idm
id
ia,iad
idm
id,iad
ia
-juotl-
(B) /
donor
acceptor
-juotl-
(c)
donor
acceptor
Figure 4: On the right are three examples of free surface reconstructions used in the x-advection of F through the right cell face. The donor free surface is reconstructed vertically in (A) and (B) and horizontally in (C) from the :fluid configurations on the left. The crosshatched regions on the right are the actual amount ofF fluxed in each case.
i, i + 1, and i - 1, respectively. The void width w is nonzero only in (A) and (B) where the reconstructed free surface is perpendicular to the :fluxing direction. Geometrically, w in Figure 4(A) and (B) is the distance from the :flux boundary (xi+l/ 2 ) to the vertical portion of the reconstructed free surface. The increment 8F, nonzero only in (A), is the block of :fluid stacked on top of the horizontal base of the reconstructed step function. It has height
Fidm,j - Fiad,j and width lu~_;{12 ,j8tl - w. To prevent creation of spurious wisps of fluid by the advection algorithm, 8F is set to 0.0 if the value of both Fidm,j and Fid,j is less than 0.10 in the above expressions. 1 Similar free surface reconstructions are performed for estimates of :flux quantities (F)L, (F)T, and (F)s, resulting in expressions analogous to equations 93-95 used for the calculation of (F)R·
RIPPLE VOF advection, as well as the momentum advection discussed previously, is
25
approximated explicitly in time, hence subject to a Courant condition. This constraint must be enforced along both coordinate directions, so the RIPPLE Courant time step limit
8tc is taken as the minimum of the x-limit Stc:c and the y-limit 8tcy:
The multiplier C above should be less than 1.0 in theory, or, more conservatively, less than 1/2 in practice. It is defaulted to 0.3 in RIPPLE, but can be altered easily by the user (see input variable CON in Section III.C.3).
E.
Surface Tension
Surface tension at free surfaces is modeled in RIPPLE with a localized volume force prescribed by the recent CSF (continuum surface force) modeL 12 Ideally suited for Eulerian interfaces of arbitrary topology, the CSF model's volume reformulation is a new and radical departure from conventional finite difference representations of surface tension. Instead of a surface tensile force or a surface pressure boundary condition applied at a discontinuity, a volume force
Fsv in equation 14 acts on fluid elements lying within finite
thickness transi-
tion regions replacing the discontinuities. The CSF formulation makes use of the fact that numerical models of discontinuities in finite volume and finite difference schemes are really continuous transitions within which the fluid properties, or "color"
c,
vary smoothly from
one fluid to another over a distance of 0( h), where h is a length comparable to the resolution afforded by a computational mesh with spacing 8x. It is not appropriate, therefore, to apply in finite difference schemes a pressure jump induced by surface tension at a free surface "discontinuity." Surface tension should act everywhere within the transition region, namely through the volume force
Fsv·
The volume force in the CSF model is easily calculated by taking first and second order spatial derivates of the color data, which for RIPPLE is the VOF function F. point within the free surface transition region, a cell-centered value
Fsv
At each
is defined which is
proportional to the curvature "' of the constant VOF surface at that point. The force is normalized to recover the conventional description of surface tension as the local product
"'h
-t
0. Its line integral directed normally through the free surface transition region is
approximately equal to the surface pressure in equation 11. Wall adhesion is incorporated by enforcing a simple boundary condition. Surface tension modeled with the continuum method eliminates the need for interface reconstruction, so restrictions on the number, complexity, or dynamic evolution of interfaces
26
having surface tension are not imposed. Direct comparisons between modeling surface tension with the CSF model in RIPPLE and with a popular interface reconstruction model1, 11 show that the CSF model makes more accurate use of the free surface VOF data. 12 The volume force always tends to force the free surface to seek a minimum surface energy configuration. Reconstruction models, on the other hand, tend to induce numerical noise from computed graininess in the surface pressures, often leading to unphysical free surface disruptions. In addition to providing a more accurate finite difference representation of surface tension without the topological restrictions, the CSF model is easy to implement computationally. Surface tension is easily included by calculating and applying an extra body force,
Fsv' in the momentum equation.
This task is performed in RIPPLE by a few separate
subroutines occupying less than 5% of the RIPPL~ source code. The application of Fsv completes the change of the
vn velocity field to the v velocity field occurring over one time
step (see Figure 9). In the majority of RIPPLE calculations, only a few percent of extra CPU time is spent computing surface tension efi'ects. Below we discuss briefly the RIPPLE finite difference expressions for the volume force Fsv, the manner in which wall adhesion forces are imposed, and the specification of a minimum energy free surface as an initial condition.
1.
The CSF Model.
By setting the color function c(£) in the CSF model equal to the
VOF function F(i): c2
c( i)
-
1
= F( i) = > ~ , ~ {
c1 = 0,
in the fluid; c2
at the free surface;
(97)
in the void,
the volume force used in RIPPLE, from equation 14, becomes
Fsv(i)
= m~(£)\7 F(i)g(x),
(98)
where the additional function g(x) is one of the two functional forms 9 (£) = 1
or
F(i)/(F),
with (F) = 1/2 being the average of the two colors, ( c1
+ c2 )/2.
(99) From equation 99, the
function g(x) can take on one of two values, as directed by the user (see input variable GFNCTN in Section III.C.3).
Both options for g(x) maintain the equality in equation
12. The first option, g(x) = 1, centers the force in the transition region at the point of 27
maximum
IV Fl, near the F = 1/2 contour.
The second option, g(i)
= 2F,
biases the force
toward the fluid side of the transition region, on a F contour between 1 and 1/2. Better results are obtained in practice when the second option is used for g(i) in RIPPLE, because fluid accelerations due to surface tension are then proportional to density gradients, not the density itself. The volume force in equation 98 is then a true body force, and its application on fluid elements in the transition region does not result in expansion or compression of the transition region.12 The free surface curvature ,.., follows from the expression
,.., = - (V · n) =
where the unit normal
1~1 1~1 [ (
n,
·
v) lnl- (V · n)]
(100)
,
.... -
n
( 101)
n= lnl' is derived from a normal vector
n, ii=VF,
( 102)
that is the gradient ofVOF data. A derivation of equation 100 can be found in the CSF paper by Brackbill, Kothe, and Zemach. 12 A similar derivation for two-dimensional interfaces (planar curves) is in the Appendix. The curvature in equation 100 is rewritten in terms of nand lnl to insure that principal contributions to finite difference approximation of,.., come from the center of the transition region rather than the edges. The volume force in RIPPLE is located at cell centers, which, from equation 98, means that the curvature ,..,, the function g(i), and an average normal vector
n must
also be cell-
centered: (103) The force
Fsv
can be located arbitrarily on the computational mesh. The volume force,
might, for example, be located at the center of the momentum control volume, which is at cell vertices for ALE (arbitrary Lagrangian-Eulerian) schemes and cell faces for MAC schemes. Since RIPPLE is essentially a MAC scheme, this prescription leads to a placement of the x-component of the force at the right face and the y-component at the top face. In practice, however, a component-separated force
i~
found to misrepresent free surface geome-
tries somewhat, giving less favorable comparisons with theory, 12 relative to a "co-located" force having both components at the same location. The difference is especially pronounced on coarse meshes where K-h is approximately 10% or greater.l2 The more compact stencil resulting from a finite difference approximation of a component-separated force (8 cells are
28
needed around each face) may in fact play a role in this misrepresentation, because very often the use of more free surface information (a larger stencil) leads to a better estimate of curvature. This appears to be the case for
Fsv
at cell centers, which requires a 9 cell
.stencil when the normal vectors ii are co-located at vertices (as they are in RIPPLE). A face-centered force is obtained by interpolating between the two neighboring cell-centered forces, which brings the effective stencil to 12 cells. The "optimal" :finite difference representation of
Fsv
in the CSF model is likely to be
one that properly accounts for the duality of needing a large stencil for accurate curvature estimates and a compact stencil for maintaining the locality of volume force. The difference expressions given below for
Fsv in the current version of RIPPLE are the ones we have found
to give the best results in practice. They are not necessarily optimal, and certainly by no means unique. Some comparisons with theory using various difference expressions for
Fsv
can be found elsewhere.12
Figure 5: In the CSF model for surface tension, a cell-centered volume force due to surface tension, Fsv, is derived from a free surface curvature K. at the cell center and unit normals n at the 4 cell vertices. The CSF model for surface tension is implemented in RIPPLE by placing the normal vector at vertices and the curvature
K.
at cell centers, as shown in Figure 5. Using equation
102, ii is computed from (Fi+l,i+l- Fi,i+l)oyi
+ (.Fi+l,i- Fi,i)oyi+ll i
+ 0Yi+l) oxi+l/2 + [(Fi+l,j+l- Fi+l,j) OXi + (Fi,j+l- Fi,j) oxi+ll j. (oxi + oxi+l) oyi+l/2 [
(oyi
(104) 29
The curvature follows from an indirect differentiation of the unit normal
n,
as given by the
two terms on the RHS of equation 100. The first term, the directional derivative of the cell-centered unit normal
(
~i,j
·I
in·•.3
•
v) ini
ni,j'
ini along
is given by
(Bini) (ny) (Bini) (nz) In\ '·3. . ax '·3.. + \n\ •.3. . ay •.J..
=
ny
2
+ lni ..
(
)
(
~,J
where the spatial derivatives of
In!
8ny 8y
)
(105)
.. '
l,J
have been evaluated analytically to avoid finite differ-
encing square roots. The derivatives of ii components follow easily from knowledge of
n at
vertices, and are given by (106)
and
( aa~) .. = •.J
2;yj
[nyi+l/2,j+l/2
+ nyi-l/2,j+l/2- nyi+l/2,j-l/2- nyi-l/2,j-l/2]
(107)
for the diagonal derivatives, and (108)
and
(~n:) ..
=
t,]
2;-;r,i
[nyi+l/2,j+l/2
+ nyi+l/2,j-1/2- nyi-1/2,j+l/2- nyi-1/2,j-1/2]
(109)
for the cross-derivatives. The cell-centered normal is the average of vertex normals,
(110) The second term, the divergence of of
n,
is also easily computed from vertex-centered values
n: ....
1
a (r 6
(\7 ·n)i,j =~-a r, ;r,
30
nz
)
i. ,J
8ny) + ( -8 y .. ' •.3
(111)
where
a(
1 - rn 5 ) "' •,J .. r-5 Bx
•
(112)
As stated previously, face-centered values of
F.v are needed for the computation of fluid
acceleration due to surface tension in RIPPLE. The required face-centered values are easily obtained by interpolating from the two nearest cell-centered values, giving
(113)
for the x-component at the right face of cell (ij), and
(114)
for the y-component at the top face. The face-centered components of compute fluid accelerations using
av
~
F.v
are then used to
(115)
pOt = Fsv' completing the first step of the two-step projection method. A smoothed value of the curvature smoothed VOF function
K,
can be computed from equation 100 by using a
F to derive the normals needed in equations 105 and 111 (see input
variables SMOOTH and NSMOOTH in Section III.C.7). The smoothed VOF function is computed in RIPPLE with an expression of the form n
'""' x·· h) s 0.0). The user should use the default values given in the following tables as a practical guide.
1.
Memory Size Parameters.
The user must first pay attention to parameters in the
code that control memory size in the declaration of one- and two-dimensional arrays. The 66
array dimensions should be set no smaller than the problem dimensions. When they are set larger than the problem dimensions, RIPPLE will use more memory than is strictly necessary to run the problem. Listed below are brief descriptions of the RIPPLE memory size parameters that are set by the user in FORTRAN parameter statements at the beginning of the r..ource files. IBAR2 is the upper dimension bound for element "i" in common block arrays of the form ARRAY(ij) or X(i), where ARRAY is some field variable array and X is some xcoordinate mesh array. IBAR2 must be greater than or equal to the total number of cells in the x (r) direction, satisfying an inequality of the form NKX
IBAR2
2 2+
L
[NXL(i)
+ NXR(i)]
'
(124)
i=l
where NKX, NXL(i), and NXR(i) are MESH namelist input variables defined below. If this inequality is not satisfied, the calculation terminates prematurely from subroutine MESHSET. JBAR2 is the upper dimension bound for element "j" in common block arrays of the form ARRAY(i,j) or Y(j), where ARRAY is some field variable array and Y is some ycoordinate mesh array. JBAR2 must be greater than or equal to the total number of cells in the y ( z) direction, satisfying an inequality of the form NKY
JBAR2 2 2 +
L
[NYL(j)
+ NYR(j)] '
(125)
i=l
where NKY, NYL(j), and NYR(j) are MESH namelist input variables defined below. If this inequality is not satisfied, the calculation terminates prematurely from subroutine MESHSET. MESHX is upper dimension bound for common block arrays used in generating mesh quantities in the x (r) direction. MESHX must be greater than or equal to the MESH namelist input variable NKX defined below, otherwise the calculation will fail in subroutine MESHSET. MESHY is upper dimension bound for common block arrays used in generating mesh quantities in they (z) direction. MESHY must be greater than or equal to the MESH namelist input variable NKY defined below, otherwise the calculation will fail in subroutine MESHSET. NOBD is the upper dimension bound for the obstacle conic function coefficient arrays. NOBD must be greater than or equal to OBSTCL namelist input variable NOES defined below, otherwise the calculation will fail in subroutine ASET. NFRSRFD is the upper dimension bound for the free surface conic function coefficient arrays. NFRSRFD must be greater than or equal to FREESURF namelist input variable NFRSRF defined below, otherwise the cakulation will fail in subroutine INITVOFF. When the preceding parameters have been set, RIPPLE will calculate the derived parameters below to serve as upper dimension bounds on various common block arrays. MSHX is equal to MESHX
+ 1. 67
MSHY is equal to MESHY
+ 1.
NXY is equal to IBAR2*JBAR2. NEQUIB is equal to 5*NXY.
2. Problem Name. The problem name, a description of the problem being computed, is used by RIPPLE to label graphics and I/0 for future reference. PRBNAME is a character string describing the problem to be computed. It can have a maximum of 80 characters and must occupy the first line of the INPUT file, which consists of PRBN AME and the six namelists.
Numerical Parameters. Input variables controlling the numerical algorithms in RIPPLE reside in namelist NUMPARAM. Brief descriptions of the NUMP ARAM namelist variables are given below in alphabetical order. Defaults for these variables are given in 3.
Table 6. ALPHA controls the finite difference representation of the advection terms in the momentum equation. Table 4 lists the accepted values for ALPHA and the resulting finite difference approximations that are made. AUTOT is a flag which set to zero preserves the initial time step and set nonzero causes an automatic time step adjustment during the course of a calculation. The time step for the next cycle is taken as the minimum of all the time step constraints in subroutine DELTADJ.
Table 4: Input variable ALPHA controls the finite difference representation of the advective terms in the momentum equation. A linear combination of the ALPHA=O.O and ALPHA=l.O options results when O.O 0.0, < 1.0) is the fraction of the fluid density, RHOF, below which solutions to the N a vier Stokes equations are not obtained. Pressures and velocities in those cells satisfying p < FRCTN * RHOF are set to PSAT and zero, respectively. GFNCTN is a logical flag controlling the form of the g( x) in equation 99. The function 9i,i is set to 2Fi,j or 1 for GFNCTN equal to true or false, respectively. IDIV is a flag set nonzero to enable a divergence correction to the VOF function after advection. The correction term is added in those cells with V · V f. 0 to counteract truncation and rounding errors. ITMXICCG (> 0) is the maximum number of iterations allowed in the ICCG solution of the PPE. KB, KT, KL, and KR are boundary condition flags for the bottom, top, left, and right boundaries, respectively. Table 5 lists the boundary conditions that are applied for each of the 6 possible boundary flag values. See reference 21 for a fuller discussion of velocity boundary condition implementation. NPACK is a flag set nonzero to activate a biased packing (vertical, top-to-bottom) of the VOF function after advection. This flag should be used with caution since the packing alters the free surface without regard to the current fluid flow field. The fluid is forcibly packed down until all surface cells ( Fi,j < 1) lie above all fluid cells. NRESTART is the restart dump number. NRESTART~ 0 results in the start of a new calculation from t = 0. NRESTART>O causes RIPPLE to restart from binary dump #NRESTART on TAPE10. PLTDT (> 0.0) is the time increment between calls to subroutine PLOTOUT, which generates graphics if input variable PLOTS is set to true. 69
Table 5: Values of boundary flags KB, KT, KL, and KR and the associated boundary conditions that are accepted in RIPPLE.
KB,KT,KL,KR
Boundary Condition
1
Rigid Free-Slip
2
Rigid No-Slip
3
Continuative Outflow
4
Periodic
5
Applied Pressure
6
Specified Inflow /Outflow
PRTDT (> 0.0) is the time increment between calls to subroutine PRTPLT, which writes various arrays (i.e., velocity, pressure, etc.) to the EDIT file. SYM is a logical flag informing the ICCG solver of the PPE if the operator matrix to be inverted is symmetric (SYM=true) or nonsymmetric (SYM=false). SYM needs to be false only when mixed Dirichlet and Neumann boundary conditions are being enforced for the pressure. TWFIN (> 0.0) is the problem finish time.
4.
Fluid Parameters.
Input variables controlling the fluid properties in RIPPLE reside
in namelist FLDPARAM. Brief descriptions ofthe FLDPARAM namelist variables are given below in alphabetical order. Defaults for these variables are given in Table 7. CANGLEB (> 0.0, < 180.0) is the equilibrium contact angle (in degrees) used on the bottom boundary for wall adhesion effects. CANGLET (> 0.0, < 180.0) is the equilibrium contact angle (in degrees) used on the top boundary for wall adhesion effects. CANGLEL (> 0.0, < 180.0) is the equilibrium contact angle (in degrees) used on the left boundary for wall adhesion effects. CANGLER (> 0.0, < 180.0) is the equilibrium contact angle (in degrees) used on the right boundary for wall adhesion effects. GX is the body acceleration in the positive x (r) direction. GY is the body acceleration in the positive y (z) direction. ICYL is the problem geometry indicator, set to 0 for Cartesian coordinates and 1 for cylindrical coordinates.
70
Table 6: Defaults for input variables in namelist NUMPARAM. Variables in boldface are required input.
Input Variable
Default
Input Variable
Default
ALPHA
1.0
GFNCTN
true
AUTOT
1.0
IDIV
1
CON
0.3
ITMXICCG
1000
CONSERVE
true
KB,KT,KL,KR
1
CRAY
false
NPACK
0
DELT
none
NRESTART
-1
DMPDT
TWFIN
PLTDT
none
PRTDT
none
SYM
true
TWFIN
none
-
-
DTMAX ERRICCG
X
1.0
X 10- 8
FCVLIM FRCTN
10- 3
1.0
0.39
s.o
x 10- 7
ISURFlO is the surface tension indicator, set nonzero to impose surface tension on all free surfaces. PBC(n) is the pressure to be applied at a constant pressure boundary (KB, KT, KL, or KR equal to 5). The value of index n in array PBC corresponds to a specific boundary: l=bottom; 2=top; 3=left; 4=right. PSAT is the constant void pressure. Fluid pressures are scaled relative to this value. RHOF (> 0.0) is the fluid density in the F = 1.0 regions. SIGMA (> 0.0) is the surface tension coefficient. UI is the initial fluid velocity in the positive x (r) direction. UINF(n) is the flow velocity in the positive x (r) direction at a specified inflow or outflow boundary (KB, KT, KL, or KR equal to 6). The value of index n in array UINF corresponds to a specific boundary: l=bottom; 2=top; 3=left; 4=right. VI is the initial fluid velocity in the positive y (z) direction. . VINF(n) is the flow velocity in the positive y (z) direction at a specified inflow or outflow boundary (KB, KT, KL, or KR equal to 6). The value of index n in array VINF corresponds to a specific boundary: l=bottom; 2=top; 3=left; 4=right. XNU (> 0.0) is the fluid coefficient of kinematic viscosity. 71
Table 7: Defaults for input variables in namelist FLDPARAM.
Input Variable
Default
Input Variable
Default
CANGLEB
goo
PSAT
CANGLEL
goo
RHOF
CANGLER
goo
SIGMA
CANGLET
goo
UI
GX
0.0 0.0 0 0 0.0
UINF(i),i=1,4 VINF(i),i=1,4
0.0 1.0 0.0 0.0 0.0 0.0 0.0
XNU
0.0
GY ICYL ISURFlO PBC(i),i=1,4
VI
-
-
Input variables PBC, UINF, and VINF allow the user to set pressure or velocity boundary conditions along any one of the 4 boundaries marking the limits of the computational domain. The conditions are applied in every cell comprising a particular boundary; for example, if the user specifies PBC(3)=7.5, then a pressure of 7.5 is applied in every cell along the left boundary. With this convention, however, the user cannot directly employ the FLDPARAM namelist to apply specialized boundary conditions, such as along an interior obstacle boundary or along only a portion of one of the domain boundaries. Specialized boundary conditions require small programming additions to the RIPPLE source file, most of which can be inserted at the end of subroutine BC.
5.
Mesh Generation.
Input variables controlling the generation of the computational
mesh in RIPPLE reside in namelist MESH. The computing mesh is constructed from anumber of "submeshes" defined in each coordinate direction. The MESH namelist input specifies the boundaries, the number of cells, the minimum cell dimension, and the convergence point of each submesh. Arbitrary variable cell spacing is achieved by linking submeshes together. The number of cells in each submesh is specified by supplying cell numbers to the left and right of the convergence point. Cells directly adjacent to the convergence point will have a cell spacing equal to the minimum value, specified as either DXMN or DYMN. The cell spacing is then expanded quadratically from these cells to the left and right edges of the
72
submesh in accordance with the desired number of cells (NXR,NXL or NYR,NYL) in the input list. If the number of cells specified on the left (right) should produce a uniform cell size less than the minimum size DXMN (or DYMN), a uniformly spaced mesh is generated with ox
< DXMN (or oy < DYMN). The chosen mesh spacing is then determined by the
user-specified number of cells (NXR,NXL or NYR,NYL). The number of cells to the left and right of the convergence point need not be equal, but there must be at least one on both sides. Because reciprocals of coordinates are used in RIPPLE, a calculation will fail with a "divide-by-zero" error if a cell face or cell center coordinate in a real
fl~id
cell coincides with
zero. This circumstance is most easily prevented by the requirement that XL(m) and YL(m) be non-negative, increasing sequences of numbers. Of course, in cylindrical coordinates it is also required that x 2: 0. The trigonometric functions in equation 126, used in the OBSTCL and FREESURF namelists, require as well that XL(m), YL(m)2: 0. When two or more submeshes are linked together, the location of the left edge of the right submesh must coincide with the location of the right edge of the left submesh. Large disparities in cell spacing should be avoided across submeshes and within a submesh itself. As a general rule, the spacing of adjacent cells should not differ by more than rv10-20%. Cell aspect ratios (oxjoy) greater than 1/2 and less than 2 are more desirable. Brief descriptions of the MESH namelist variables are given below in alphabetical order. An example MESH namelist then follows, which generates the computational mesh displayed in Figure 10. DXMN(m),DYMN(m) (> 0.0) are the minimum space increments in the x-direction and y-direction, respectively, for submesh m. NKX,NKY (> 0) are the number of submesh regions in the x- andy-directions, respectively. NXL(m) (> 0) is the number of cells between locations XL(m) and XC(m) in submesh m. NYL(m) (> 0) is the number of cells between locations YL(m) and YC(m) in submesh m. NXR(m) (> 0) is the number of cells between locations XC(m) and XL(m+1) in submesh m.
NYR(m) (> 0) is the number of cells between locations YC(m) and YL(m+1) in submesh m. XC(m),YC(m) (> 0.0) are the x- and y-coordinates of the convergence point in submesh m. XL(m) (2: 0.0) is the location of the left edge of submesh m. NKX+1 values of XL(m) are necessary because the right edge of submesh m is equivalent to the left edge of submesh m+l, XL(m+l). The values should be given as an increasing sequence of numbers. 73
YL(m) (~ 0.0) is the location of the bottom edge of submesh m. NKY +1 values of YL(m) are necessary because the top edge of submesh m is equivalent to the bottom edge of submesh m+1, YL(m+l). The values should be given as an increasing sequence of numbers.
Figure 10: Nonuniform mesh generated for RIPPLE with the example input to namelist MESH. As an example, assume we want to partition a 152.4 $mesh nkx=4, xl=O.O, nxl=1, 6, 23, 1, nky=4, yl=O.O, nyl=1, 6, 23, 1, $end
2.4, 76.2, 150.0, nxr=1, 23, 6, 1, 2.4, 76.2, 150.0, nyr=1, 23, 6, 1,
152.4, xc=l.2, 10.0, dxmn=1.2, 1.2, 1.2, 152.4, yc=l.2, 10.0, dymn=l.2, 1.2, 1.2,
X
152.4 (arbitrary units) square
142.4, 151.2, 1.2, . 142.4, 151.2, 1.2,
domain with a nonuniform computational mesh that has minimal spacing at the limits of each coordinate direction. Convergence points are placed near the boundaries (minimum and maximum values of x and y) and at small distances away from the boundaries. This forces a gradual increase in mesh spacing from .the boundaries toward the center of the square. A total of 4 submeshes, then, is needed in each direction. This MESH namelist input, given above, generates the computational mesh shown in Figure 10.
6.
Internal Obstacles.
Input variables controlling the generation of interior obstacles
in RIPPLE reside in namelist OBSTCL. Interior obstacles are defined as any nonflow regions
74
within the computational mesh. Obstacle surfaces are generated in namelist OBSTCL with a series of conic sections that may overlap one another to form boundaries that are arbitrarily complex. Cells are then designated as flow or nonflow regions, depending upon which side ofthe surface f(x,y) = 0 they reside, where f(x,y) is a modified conic function of the form
+d1 cos [(n:z:k:z:rn) x] + d2 sin [(m:z:k:z:rn) x]
(126)
+e1 cos [(nykym) y] + e2 sin [(mykym) y] , and k:z:rn and kym are the mesh wavenumbers in the x- and y-directions, respectively:
k ym
=~ Yrnax
(127)
where Xrnax = XL(NKX + 1) and Yrnax = YL(NKY + 1) are the maximum x and y mesh coordinates, respectively, assuming that the LLH corner of the mesh is at (0.0,0.0). The modified conic function in equation 126 differs from the general conic function in NASAVOF2Dl by the sine and cosine terms. These terms have been added in the present version of RIPPLE to give the function f(x, y) more generality. The coefficients nx, ny and mx, my, in general real numbers, can be used to generate harmonics of kxm and kym· Coefficients of the modified conic function f( x, y) are chosen such that some portion of the defined surface coincides with that of the desired internal obstacle. Cells satisfying
f(x,y) < 0 (for any (x,y) within the cell) are then flagged closed to flow, partially closed to flow, or fully open to flow depending upon the flag IOH associated with each function. Functions can be used to remove unwanted obstacle cells created by other functions. This concept is used in the example OBSTCL narr.dist given later. After all sets of obstacle data have been processed, the computing mesh is swept and individual cell area and volume "open-to-flow" variables are assigned, which range from 0.0 (fully closed to flow) to 1.0 (fully open to flow). Brief descriptions of the OBSTCL namelist variables are g1ven below in alphabetical order.
Default values for all obstacle conic function coefficients are zero.
Any nonzero
coefficients needed to define an interior obstacle must therefore be specified by the user. An example OBSTCL namelist follows, which generates the interior obstacle displayed in Figure 11. NOBS (~ 0) is the number of conic functions defining any flow obstacles interior to the computational mesh. 75
IOH(n) is the interior obstacle indicator flag on cells satisfying f(x,y) < 0 (for any (x,y) within the cell) for obstacle function n. A nonzero value adds obstacles in those cells; a value of 0 subtracts obstacles. MXO(n) is the real number coefficient of the mesh wavenumber in the x-direction (k.,rn) for the x-direction sine term in obstacle function n. MYO( n) is the real number coefficient of the mesh wavenumber in the y- direction ( kym) for the y-direction sine term in obstacle function n. NXO(n) is the real number coefficient of the mesh wavenumber in the x-direction ( k.,m) for the x-direction cosine term in obstacle function n. NYO(n) is the real number coefficient of the mesh wavenumber in they-direction (kyrn) for they-direction cosine term in obstacle function n. OAl(n) is the coefficient of the x term in obstacle function n. OA2(n) is the coefficient of the x 2 term in obstacle function n. OBl(n) is the coefficient of they term in obstacle function n. OB2(n) is the coefficient of the y 2 term in obstacle function n. OCl(n) is the constant term in obstacle function n. OC2(n) is the coefficient of the xy term in obstacle function n. ODl(n) is the amplitude of the x-direction cosine term in obstacle function n. OD2(n) is the amplitude of the x-direction sine term in obstacle function n. OEl(n) is the amplitude of they-direction cosine term in obstacle function n. OE2(n) is the amplitude of the y-direction sine term in obstacle function n. An example of interior obstacle generation is given below in the MESH and OBSTCL namelists, $mesh nkx=1, xl=0.0,2.0, xc=l.8, nxl=ll, nxr=2, dxmn=0.10, nky=3, yl=0.0,2.0,7.0,9.0, yc=l.0,4.5,8.0, nyl=4,10,4, nyr=4,10,4, dymn=0.27,0.27,0.27, $end $obstcl nohs=4, oal( 1)=O.O,oa2( 1)=O.O,ob1 (1)= l.O,ob2( 1)=0.0, oc1(1 )=-2.,oc2( 1)=O.O,ioh(1 )= 1, oa1(2)=0.0,oa2(2)=0.0,ob1(2)=-1.,ob2(2)=0.0, oc1(2)=7 .O,oc2(2)=0.0,ioh(2)= 1, oal(3)=0.0,oa2(3)=1.0,obl(3)=-4.,ob2(3)=1.0, oc1(3)=0.0,oc2(3)=0.0,ioh(3)=0, oal( 4)=0.0,oa2( 4)=1.0,obl( 4)=-14.,ob2( 4)= 1.0, ocl( 4)=45.,oc2( 4)=0.0,ioh( 4)=0, $end
76
which result in the mesh and interior obstacle shown in Figure 11. The first and third obstacle conic functions form the bottom hemispherical obstacle, while the second and fourth form the top hemispherical obstacle. In both cases, obstacles are first added on the appropriate side of a horizontal line, then subtracted in the interior of a circle.
Figure 11: The hemispherical end caps on this cylindrical tank, shown as the dark line overlaid on the computational mesh, form interior obstacle boundaries for RIPPLE that are created with the example input to namelist OBSTCL.
7.
Free Surfaces.
Input variables controlling the free surface initialization in RIPPLE
reside in namelist FREESURF. This namelist is a new feature relative to the predecessor NASA-VOF2D, allowing the user more flexibility and generality in initializing the free surface. Free surface initialization centers around input variable NRFSRF, which is the number of free surface conic functions the user wishes to employ in specifying the free surface. If NFRSRF=O, then a horizontal free surface will be initialized if the vertical fluid height, FLHT, is specified to be within the limits of the domain y-coordinates. This option is identical to the option available in NASA- VOF2D. If NFRSRF>O, however, then fluid initially occupies the entire domain open to flow and the free surface is initialized with coefficients of the modified conic function in equation 126. The initialization is performed in a manner exactly equivalent to the procedure followed in namelist OBSTCL. Cells satisfying
f(x,y) < 0 (where (x,y) is any point within the cell) are either fluid or void if the flag IFH
77
is 0 or nonzero, respectively, for that function. A series of conic sections may overlap one another to form free surfaces that are arbitrarily complex. Functions can be used to remove unwanted fluid cells created by other functions. This idea is demonstrated later with the example FREESURF namelist. Other free surface features that can be controlled with the FREESURF namelist include the options to initialize the free surface in a minimal energy configuration (either with IEQUIB or EMIN) and smooth the VOF function before computation of free surface curvature (with SMOOTH). Brief descriptions of the FREESURF namelist variables are given below in alphabetical order. Defaults for FREESURF variables are given in Table 8, with the exception of all the free surface conic function coefficients, which are zero. Any nonzero coefficients needed to define the free surface must therefore be specified by the user. An example FREESURF namelist follows, which generates the free surface displayed in Figure 12. NFRSRF (2: 0) is the number of conic functions used in initializing free surfaces. Fluid initially occupies the entire domain if conic functions are used to specify the free surface. IFH(n) is the fluid indicator flag on cells satisfying f(x, y) < 0 (for any (x, y) within that cell) for free surface function n. A value of 0 adds fluid in those cells; a nonzero value subtracts fluid. MXF(n) is the real number coefficient of the mesh wavenumber in the x-direction (k,m) for the x-direction sine term in free surface function n. MYF(n) is the real number coefficient of the mesh wavenumber in they-direction (kym) for the y-direction sine term in free surface function n. NXF(n) is the real number coefficient of the mesh wavenumber in the x-direction (k,m) for the x-direction cosine term in free surface function n. NYF(n) is the real number coefficient of the mesh wavenumber in they-direction ( kym) for the y-direction cosine term in free surface function n. FAl(n) is the coefficient of the x term in free surface function n. FA2(n) is the coefficient of the x 2 term in free surface function n. FBl(n) is the coefficient of the y term in free surface function n. FB2(n) is the coefficient of the y 2 term in free surface function n. FCl(n) is the constant term in free surface function n. FC2(n) is the coefficient of the xy term in free surface function n. FDl(n) is the amplitude of the x-direction cosine term in free surface function n. FD2(n) is the amplitude of the x-direction sine term in free surface function n.
78
FEl(n) is the amplitude of the y-direction cosine term in free surface function n. FE2(n) is the amplitude of they-direction sine term in free surface function n. DELTEMIN (> 0.0) is the initial iteration time step used in the surface energy minimization routine SRFEMIN (see input variable EMIN). EMIN is a logical flag set to true for allowing the user-initialized free surface to change shape and evolve toward a minimal surface energy configuration before the computation begins. Surface energy minimization routine SRFEMIN computes the free surface evolution by iterating ITMXEMIN times with a typical computational cycle, resetting fluid velocities to zero every ITSKPEMNth iteration. This option is a more general substitute for IEQUIB. FLHT (> 0.0, < Yrnax) is the vertical fluid height in the positive y (z) direction relative to they= Yrnin position. This input variable applies only when NFRSRF=O. IEQUIB is a flag set nonzero for initializing the fluid free surface in an equilibrium meniscus configuration, subject to the contact angle CANGLER and a nonzero fluid height FLHT. This initialization requires that NFRFSRF=O, and is valid only in the absence of interior obstacles along the left and right portion of the problem boundaries that contain the free surface. ITMXEMIN (> 0) is the total number of iterations used in the surface energy minimization routine SRFEMIN (see input variable EMIN). ITSKPEMN (> 0,::; ITMXEMIN) is the number of iterations to skip in the surface energy minimization routine SRFEMIN before resetting fluid velocities to zero (see input variable EMIN). NSMOOTH (> 0) is the number of times per computational cycle the VOF function F is smoothed with equation 116 when input variable SMOOTH=true. SMOOTH is a logical variable set to true to use the smoothed VOF function 116) for the calculation of free surface curvature.
F (equation
UPRIGHT is a logical variable set to false for redefining input variable FLHT as the vertical fluid height in the negative y (z) direction relative to they= Yrnax position. As a result, the fluid is initialized in an inverted position. This input variable applies only when NFRSRF=O. As an example, consider how one might use the free surface conic functions to initialize $free surf nfrsrf=4, fal(l)=l.O, fa1(2)=0.0, fal(3)=-1.0, fa1(4)=0.0, $end
fbl(l)=O.O, fb1(2)=1.0, fb1(3)=0.0, fb1(4)=-1.0,
fcl(l)=-2.0, fc1(2)=-2.0, fc1(3)=5.5, fc1(4)=5.5,
ifu(l)=l, ifu(2)=1, ifu(3)=1, ifu(4)=1,
a square drop. Given that the default initial value of the VOF function is 1.0 in the entire domain when NFRSRF>O, the process of creating a square drop involves subtracting fluid outside two lines of constant x (left and right sides of the drop) and two lines of constant y
79
Table 8: Defaults for input variables in namelist FREESURF.
Input Variable
Default
Input Variable
Default
NFRSRF
0
ITMXEMIN
DELTEMIN
DELT
ITSKPEMN
500 50
EMIN
false
NSMOOTH
1
FLHT
0.0
SMOOTH
false
IEQUIB
0
UPRIGHT
true
(top and bottom sides of the drop). The FREESURF namelist given above specifies conic functions that perform this subtraction, resulting in the square drop of Figure 12. The rounded corners of the square drop are produced artificially by the F = 1/2 contouring algorithm in subroutine SURFPT.
8.
Graphics.
Input variables controlling the dynamic graphics generation in RIPPLE
reside in namelist GRAPHICS. This namelist is also a new feature relative to the predecessor NASA-VOF2D. With the GRAPHICS namelist input variables, the user gains simple access to a executive plotting routine, PLOTOUT, that is not tied to any particular type of graphics software. In the current version of RIPPLE, PLOTOUT calls subroutines (i.e.,
PLOT2D, PLOT3D, etc.) in the graphics library that use DISSPLA graphics software,33 but PLOTOUT itself should not change if a different choice is made for the software. For example, if a user does not have access to DISSPLA, then suitable replacements in the graphics library should be written using an alternative software package. With the lOUT array, the user can dictate the types of plots that are generated by
PLOTOUT for an arbitrary set of plot variables (see Tables 9 and 11). Logical variable DUMP is useful if the user wishes to graphically analyze binary data at the end of a calculation (graphics post-processing). Optional color is available with input variable !COLOR. Brief descriptions of the GRAPHICS namelist variables are given below in alphabetical order. Defaults for these variables are given in Table 12. DUMP is a logical flag set to true for a binary dump to TAPES of all the plot variables listed in Table 9.
80
Table 9: Variables that can be plotted during the course of a RIPPLE calculation. Each plot variable is associated with an element i of the lOUT array.
Plot Variable for IOUT(i)
Array( s) Plot ted
1
Mesh
[X,Y]
2
V vectors
[U,V]
3
x-velocity (u)
4
y-velocity (v)
u v
5
pre_ssure (p)
p
6
VOF function (Fl
F
7
surface tension force ( Fsv)
FSV
8
V'·V
DIV
9
right obstacle flag (B)
AR
10
top obstacle flag (B)
AT
11
center obstacle flag (B)
AC
12
V'xV
CURLU
13
curvature ( ~)
KAPPA
14
stream function ('if;)
STREAMF
15
volume
CVOL
16
potential ( ¢)
VPOT
17
stress tensor (T:c:c)
TAU XX
18
stress tensor (Tyy)
TAUYY
19
stress tensor ( T :cy)
TAUXY
20
smoothed VOF function (F)
FTILDE
30
Fsv vectors
[TENSX,TENSY]
31
ii vectors
[GRADROX,GRADROY]
1
32 33
...
...
nwall
vectors
F = 1/2 contour
[GRADNWX,GRADNWY] [XFRSRF,YFRSRF]
81
Figure 12: Square liquid drop initialized for RIPPLE with the example input to namelist FREESURF.
!COLOR is an integer color parameter for all graphics. Table 10 lists the accepted values for ICOLOR and the resulting color options.
Table 10: Color graphics options that are invoked with various values of input variable !COLOR.
!COLOR
Fluid Color
Obstacle Color
0
No Color
No Color
1
F = 1 Blue; F = 0 White; F =/= 0,1 Blue- White
Brick Red
2
F > 1/2 Blue; F < 1/2 White
Brick Red
IOUT(i) is the executive plotting array for all available plot variables. Each plot variable is associated with a specific element i of lOUT as seen in Table 9. Array IOUT(i) has integer values in the range 0-7, yielding, for plot variable i, the plot combinations listed in Table 11. IXSKIP (~ 1) is the integer number of cells to skip in the x (r) direction before the next cell data is plotted. A value of IXSKIP greater than 1 displays data for a given plot variable on a coarser grid that is a subset of the actual computational grid.
82
Table 11: Plotting conventions for the lOUT array. An integer value of IOUT(i) ranging from 1 to 7 results in combinations of 1-D :v and y slices, contour plots, and 3-D surface plots for a given plot variable. Integer Value
Plot Type
of IOUT(i)
1-D x andy Slices
Contour
3-D Surface
0
-
-
-
1
-
..j
-
2
~
-
-
3
-
-
4
-
5
..j
..j ..j
..j ..j
6
~
-
7
..j
..j
-
..j ..j
IXSYMPLT is an integer flag set to 1 for plots symmetric about the x-axis. IYSKIP (2: 1) is the integer number of cells to skip in the y ( z) direction before the next cell data is plotted. A value of IYSKIP greater than 1 displays data for a given plot variable on a coarser grid that is a subset of the actual computational grid. IYSYMPLT is an integer flag set to 1 for plots symmetric about the y-axis. PLOTS is a logical flag that, if true, permits the generation of graphics during the calculation. SCALE(> 0.0) is a dimensionless multiplier on the length of all vectors in the vector plots. The length of any plotted vector is a product of SCALE, the actual vector magnitude, and the minimum time scale in the system (minimum mesh spacing/ maximum vector magnitude) at that time. UNFRMMSH is a logical flag enabling a more accurate and inexpensive generation of surface plots and contours by the DISSPLA plotting routines. It can be set to true only in those calculations with a uniform mesh ( 5x = 5y ). VMXFRCTN (> 0.0) is the plotting threshold for all vector plots. Vectors are not plotted if their magnitude is below the product of VMXFRCTN and the maximum vector magnitude at that time.
83
Table 12: Defaults for input variables in namelist GRAPHICS.
D.
Input Variable
Default
Input Variable
Default
DUMP
false
IYSYMPLT
0
!COLOR
0
PLOTS
false
IOUT(i), i=1,33
0
SCALE
2.0
IX SKIP
1
UNFRMMSH
false
IXSYMPLT
0
VMXFRCTN
1.0 x 1o- 3
IYSKIP
1
-
-
Performing a Calculation To perform a RIPPLE calculation, the user must execute a binary executable file that
originates from source file compilation and loading. Two versions of the source are available: one that compiles on the Gray CTSS operating system, therefore being compatible with Gray supercomputers, and one that compiles on the UNIX operating system, therefore being compatible with most workstations. The UNIX version of RIPPLE was developed on a Sun SPARCstation 1 running under SunOS 4.0.3, an operating system derived from the AT&T System V and 4.3 BSD (Berkeley) UNIX operating systems. The Gray version of RIPPLE includes 3 main source files: ripple. f, the main code; iccg.f, the ICCG library; and disp.f, the graphics library. Compilation and loading is performed by a control file runrip, which is written in the COSMOS control language.34 These files can be found in the . /ripple/cray directory. The UNIX version of RIPPLE resides in 3 main directories: . /ripple, for the mam code; ./ripple/lib/iccg, for the ICCG library; . /ripple/lib/graphics, for the graphics library; and . /ripple/lib/system, for the system library. Individual subroutines in each of the 3 directories are in separate files of the form name . F, where "name" is the subroutine name. The UNIX make utility performs compilation and loading with appropriate commands in the file Makefile. RIPPLE measures CPU time spent during a calculation with a "grind" time, defined as the average CPU time per cell required to complete a computational cycle. The grind time, calculated every cycle in NEWCYC using system timing routines, is printed (in 84
milliseconds) every 25 cycles to the standard output. The majority of RIPPLE calculations require about 0.15-0.20 ms of Cray Y-MP /832 CPU time per cell per cycle. For a 10-15 MIP workstation such as the Sun SPARCstation 1, the grind times are about a factor of 10-30 larger, in the range of 2-6 ms of CPU time per cell per cycle. With the grind time, problem execution times can be estimated with reasonable accuracy ( ,...._,10-20%) prior to performing the calculation. The only knowledge needed for the estimate is the total number of cells in the calculation and an approximate number of computational cycles required to reach the desired termination time. Further details about installing RIPPLE and performing a calculation are m the file README.
IV.
EXAMPLE CALCULATONS
Three example RIPPLE calculations are presented in this section: ( 1) a capillary jet breakup, (2) a propellant reorientation, and (3) tank flows induced by an internal jet. The calculations display the ability of RIPPLE to compute a wide variety of incompressible flows with free surfaces. The required input deck (containing the namelist input variables) for each problem is given along with any necessary code modifications. The focus of the discussion is on basic aspects of using RIPPLE, i.e., exerdsing different portions of the code, and not on the detailed physics of the computed fluid flows. We will emphasize aspects of the user interface, or the procedure by which a problem is computed with the user's desired options. The capillary jet calculation illustrates the ability of RIPPLE to compute through pinchoff and to compare favorably with linear theory. The propellant reorientation and jet-induced tank mixing calculations are examples of low-gravity flows for which RIPPLE is ideally suited. Other examples of incompressible flows computed with RIPPLE, i.e., in the course of developing the code, can be found in the literature. 1· 12
A.
Capillary Jet Breakup Rayleigh35 developed in the late nineteenth century the first quantitative theory for the
growth of a radial perturbation on a small, cylindrical column of liquid (a capillary stream). The stream, or "jet," is pinched inward by surface tension forces in the r - z plane at points z along the jet surface satisfying r(z) the jet, and driven outward where r( z)
< R, where R is the unperturbed radius of
> R. This is a direct consequence of the cylindrical
surface tension force being proportional to 1/r. The jet, after time, develops "bead-like contractions and swellings" ,36 until the radius of the pinched regions eventually approaches 85
zero, at which point the jet breaks up into detached drops. Nonlinearities do not typically dominate the flow until just prior to breakup.37 They do, however, cause the jet to break up into nonuniform drops, as observed in experiment,38 typified by smaller "satellite" drops lying between larger main drops. For comparison purposes, we choose parameters for the capillary jet that are similar to the recent calculation of Mansour and Lundgren (ML )37 using a boundary integral method. The problem is expressed in dimensionless form by normalizing length with the initial radius R ofthejet and velocity with (2ujpR) 112 • From Rayleigh's linear analysis,35 an initial axial
perturbation of the jet surface given by
r(z) = 1 + t:cos(kz),
(128)
will grow like
r(z,t) = 1 + t:cos(kz) cosh(wt),
(129)
where r is the radius of the jet, k is the perturbation wave number,
E
= 0.05 is the initial
amplitude of the perturbation, and 10 , 11 are modified Bessel functions of the first kind. We choose k
= 0.30, giving w 2 = 2.025 x 10- 2 from equation 129.
to the ML parameters, except that
E
These parameters are identical
is 50 times larger than the 0.1% perturbation used in
the ML calculation. With a larger initial perturbation amplitude, the jet breaks up sooner, reducing computational expense. The "break" time tb occurs when the capillary jet pinches off into a main drop and a satellite drop. An estimate for tb follows from Rayleigh's linear theory by solving equation 129 with r
= 0 and kz = 1r, giving
tb
The capillary jet is computed with RIPPLE using water (p
= 25.92
when k
= 1.0 g/cm 3 ,
dynes/em) as the liquid stream with a zero pressure void background.
= 0.30. (T
= 73.05
We choose, for
the first calculation, the ML parameters of 80 points along a wavelength resolving flow in the z-direction. The zone aspect ratio 5r / 5z is kept reasonably small ( ,. ,_, 2.6) with 30 zones resolving flow in the r-direction. The size and cost of the calculation are reduced by computing a half wavelength with reflective boundary conditions, using a 30 x 40 uniform mesh. A full wavelength calculation (30
X
80 mesh) with periodic boundary conditions
displays results essentially identical to the >./2 calculation presented here, with the only exception being a slight loss of symmetry in the drop shapes after breakup. The RIPPLE input deck for this calculation, given below, shows that surface tension ML Capillary Jet Breakup: kR=0.30; eps=5%; van Leer advection $numparam
86
conserve=.true., alpha=2.0, idiv=O, twfin=0.9, prtdt=l.e+10, pltdt=0.10, autot=l., delt=0.00001, dtmax=0.000225, nrestart=-1, dmpdt=0.10, cray=.true., $end $fldparam icyl=1, isurf10=1, canglel=90., cangler=90., canglet=90., cangleb=90., xnu=O.O, rhof=l.O, sigma=73.05, $end $mesh nkx=1, xl=0.0,1.5, xc=0.75, nxl=15, nxr=15, dxmn=0.05, nky=1, yl=0.0,5.236, yc=2.618, nyl=20, nyr=20, dymn=0.1309, $end $obstcl nobs=O, $end $free surf nfrsrf=1, iequib=O, fa1(1)=-1.0, fa2(1)=0.0, fb1(1)=0.0, fb2(1)=0.0, fc1(1)=0.5, fe1(1)=-0.025, nyf(1)=0.5, ifh(1)=1, $end $graphics plots=.true., dump=.false., unfrmmsh=.false., iout = 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, o, 0, 0, 0, 1, 1, 0, 1, ixsymplt=1, iysymplt=1, $end
is modeled at all free surfaces since ISURFlO is nonzero. The fluid is given the properties of water (cgs units) in namelist FLDPARAM, with the exception of viscosity, which is neglected. Wall adhesion effects are ignored by setting the contact angle on all boundaries to 90 degrees. The conservative, second-order van Leer-limited scheme, with input variables CONSERVE and ALPHA set to true and 2.0, respectively, is chosen for momentum advection to minimize numerical dampening of the jet perturbation growth. The perturbed jet free surface is initialized with a conic function in namelist FREESURF. Volume conservation of the standard VOF advection algorithm is scrutinized by disabling the divergence correction (IDIV=O). Plots and restart dumps are generated 10 times during the calculation. The plots are reflected about the r and the z axes with input variables IXSYMPLT, IYSMPLT=l. The calculation is performed on a Cray supercomputer, so input variable CRAY is true. The series of time snapshots of the computed Jet free surface displayed in Figure 13 clearly shows the "sausage" instability ofthe jet. From Rayleigh's linear theory, the jet should begin to pinch at kz =
1r,
as seen from Figure 13 for times less than t '"" 15. A computed linear
growth rate, extracted from the exponentiation of the total jet kinetic energy in the range
87
I
I
I
I
I
I
I I I
~
I
!
-----------
I
I
q
I
~~ o=o~c=
P=q
pcl
p p
p
~ D
0
0
0
0
0
0
0
0
c
cl c 0
0.5 and< 2.0). With the high-resolution 30 x 140 mesh, the jet behaves in an entirely different manner because higher harmonics of the nonlinear flow are now resolvable. The penalty, however, for the high-resolution calculation is the required CPU time, which is about 5 times more than the 30 x 40 calculation of Figure 13. The extra expense is in part due to a decreased
ot. constraint (1.4 X
10- 4 s), forcing a
smaller maximum time step (DTMAX) of 1.0 x 10- 4 s. From Figure 14, we see that by a time of,..._, 23, the jet has developed 2 radial contractions, at kz ""
1r
/2 and 37r /2. The contractions pinch off at '""" 29.7, forming one large satellite,
as opposed to the two smaller ones computed previously. The satellite then pinches off two sub-satellites at t "-' 30.5. Computed RIPPLE results on the high-resolution mesh display a breakup time("-' 29.7) that is later than the Rayleigh prediction (25.92), not earlier as in the low-resolution calculation ( ,.._, 20.5), which is in general agreement with the ML results. One should not expect exact agreement with the ML results for the jet breakup; the present calculation, starting with a perturbation amplitude 50 times larger than ML, is a different problem that quickly generates more high harmonics in the nonlinear flow than does ML. For the ML calculation to be continued past jet breakup, the computational domain must be cut in a prescribed manner at the proper time.37 RIPPLE, however, is able to self-consistently compute through pinch-off of the capillary jet, owing to the power and versatility of the VOF method. The CSF model for surface tension also maintains accuracy through breakup, where the surface tension forces pinch off the jet in Figures 13 and 14 into drops similar to those in the highly accurate ML calculation.37
B.
Propellant Reorientation Large tanks (approaching 10-10 3 cubic meters in volume) with complex internal struc-
tures will be used to store, handle, and transport large quantities of liquid cryogens and propellants in future long-term space missions. 39 The storage, transfer, and handling processes of these tanks in a low-gravity environment gives rise to complicated flow patterns of the internal tank liquids, which are in part driven by the forcing conditions and the tank boundaries. Modeling these low-gravity fluid flows poses a significant challenge, because an accurate treatment of surface tension is constrained by the complex interface topologies and the multiple length scales of the flow. Reorientation ofliquids stored in partially-filled tanks might be necessary in a low-gravity environment before pumping and transfer can occur if the bulk liquid internal to the tank is not located in the neighborhood of the outlet pipe. One scenario proposed to alleviate 90
Figure 14: Free surface ( F = 1/2 contour) plots of the capillary jet at times of (top-to-bottom, left-to-right) 0.0, 3.42, 6.84, 10.26, 13.67, 17.09, 20.51, 23.93, 27.35, 29.06, 29.40, 29.74, 30.08, 30.43, 30.77, and 31.11. The jet is computed on a high-resolution 30 X 140 mesh.
91
this problem is a temporary, impulsive acceleration of the tank (provided, for example, by thrusters) to reorient the fluid around the outlet. RIPPLE can address some of the key parameters in this process, such as the magnitude and duration of the thrust necessary to efficiently reorient the fluid. The low-g reorientation process can be studied in full gravity environments with a drop tower facility, where a small-scale tank model can experience brief periods of weightlessness during free fall. We here compute one such experiment, 4 0 in which a small cylindrical container (radius 2 em, height 9 em) with hemispherical end caps, filled 33% with ethanol, is subjected during free fall to an impulsive upward acceleration of 29.4 cm/s 2 . The Bond number ofthis system is Bd=4.1. The ethanol is initially in an inverted equilibrium meniscus position at the top of the tank. The equilibrium shape is based on the balance of surface tension and wall adhesion forces (with Beq =5° in this example). The applied impulse will cause the ethanol to flow along the sides of the container to the opposite end, meeting at the axis. The RIPPLE input deck, given below, Propellant Reorientation; van Leer advection $nurnpararn conserve=.true., alpha=2.0, twfin=3.0, prtdt=l.e+10, pltdt=0.10, autot=l., delt=O.OOOl, dtmax=0.001, nrestart=-1, dmpdt=l.O, frctn=l.Oe-05, cray=.true., $end $fldpararn gy=-29.40, icyl=1, isurfl0=1, cangler=5.0, canglel=90.0, canglet=5.0, cangleb=5.0, xnu=1.52e-02, rhof=0.793, sigma=22.6, $end $mesh nkx=1, xl=0.0,2.0, xc=l.8, nxl=ll, nxr=2, dxrnn=0.10, nky=3, yl=0.0,2.0, 7.0,9.0, yc=l.0,4.5,8.0, nyl=4, 10,4, nyr=4,10,4, dyrnn=0.27,0.27,0.27, $end $obstcl nobs=4, oal(l)=O.O, oa2(1)=0.0, ob1(1)=1.0, ob2(1)=0.0, ocl(l)=-2., oc2(1 )=0.0, ioh( 1)=1, oal(2)=0.0, oa2(2)=0.0, ob1(2)=-1., ob2(2)=0.0, oc1(2)=7.0, oc2(2)=0.0, ioh(2)=1, oal(3)=0.0, oa2(3)=1.0, ob1(3)=-4., ob2(3)=1.0, oc1(3)=0.0, oc2(3)=0.0, ioh(3)=0, oa1(4)=0.0, oa2(4)=1.0, obl(4)=-14., ob2(4)=1.0, ocl( 4)=45., oc2( 4)=0.0, ioh( 4)=0, $end $free surf nfrsrf=O, iequib=1, flht=2.62, upright=.false., $end
92
$graphics plots=.true., dump=.false., iout = 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, iysymplt=1, $end
shows that the reorientation flow is resolved in cylindrical geometry on a nonuniform, 13 x 36 mesh, having finer zones along the tank axis of symmetry and wall. This choice of zoning is made to adequately resolve the wall adhesion forces along the wall and the surface tension forces near r = 0, which are sensitive at small radii because of the proportionality to 1/r. The fluid is given in namelist FLDPARAM the properties of ethanol in cgs units, and is initially inverted in an equilibrium meniscus position since input variables UPRIGHT and IEQUIB in namelist FREESURF are set equal to false and 1, respectively. The hemispherical end caps of the container are set as interior obstacles with conic functions in namelist OBSTCL. All contact angles in namelist FLDPARAM are set equal to 5°, except the left angle, CANGLEL, which is 90° because of symmetry conditions at the axis. Momentum advection is computed with the conservative, second-order van Leer-limited algorithm since input variables CONSERVE and ALPHA in namelist NUMPARAM are equal to true and 2.0, respectively. The flow is computed for 3.0 s, with graphics and restart dumps generated every 1.0 s. This reorientation is energetic, driven by the relatively large gravitational force (GY =
-29.4 cm/s 2 ), and therefore likely to generate small amounts of "foam" throughout the domain, where foam is defined loosely to be those cells with residual amounts of fluid left behind after the violent, axial collision of the two streams. 5
FRCTN is therefore set to 10- instead of the default 5 x 10and pressure in any cell with F
The fluid cutoff paramater 7
,
which causes the velocity
< 10- 5 to be set to zero. By neglecting these foam cells,
which do not impact significantly the bulk fluid motion, the overall solution procedure is strained less, decreasing calculation expense. From the computed flow shown in Figure 15, it is evident that the applied acceleration is enough to reorient the ethanol at the tank bottom. The fluid gains significant kinetic energy as it flows down the tank walls, colliding violently on axis between 0.8 and 0.9 s, then jetting back upward with velocities in excess of 45 cm/s at 0.9 s. These large velocities are enough to eject a blob of fluid that is pinched off from the upward-moving "jet" by surface tension at
r-.J
1.0 s. The blob continues upward until its initial momentum is offset by the applied
gravitational force, then falls back down to rejoin the bulk reoriented fluid at ""' 2.0 s. By 3.0 s, the fluid has been effectively reoriented, retaining at that time energy gained from the
93
n
\;_:)
0
Figure 15: Fluid velocity vectors and free surface configurations for the reorientation problem at times of (left-to-right, top-to-bottom) 0.1, 0.5, 0.7, 0.9, 1.0, 1.1, 1.2, 1.5, 1.9, and 3.0 s.
acceleration in the form of small axial oscillations about the equilibrium shape. While the major features of the reorientation are well predicted by the calculation shown in Figure 15, details of the solution (e.g., the maximum height of the axial blob of fluid, or the dynamics of the fluid in the foam cells not visible in the F = 1/2 contour) are very sensitive to discretization errors. The finite time step leads to an overestimate of the impact pressure (the pressure generated when the streams collide) at the bottom of the tank. An underestimate, on the other hand, is due to the approximate treatment of wall adhesion forces along the tank wall section represented as interior boundaries and the "numerical wall friction" induced by the VOF advection algorithm. The source of the wall friction is apparently the crudeness of the free surface reconstruction, because neither a horizontal nor a vertical orientation is necessarily an optimal choice for a free-slip advection of the fluid sliding down the tank walls.
94
This calculation is very difficult for other numerical treatments of surface tension (i.e., Lagrangian, boundary integral, interface tracking, etc.) because of the complex interface topologies. The CSF model has no difficulty with this complexity since interface geometries are estimated solely from the unit normal to the free surface, computed easily from the gradient of VOF data, ii = '\1 F.
Figure 16 gives an example of the volume forces
Fsv
computed with the CSF model in the reorientation problem. The vertex-centered normal
••••• • • I'
f
f
o
"•••••
I''''
. ''
l
.
'.
I
I
Figure 16: At a time of 0.2 s are vector plots of velocity V (left), normal ii = 'V F (middle), and volume force Fsv (right) for the reorientation problem. vector ii gives rise to the cell-centered forces
Fsv, which
are shown overlaid on the mesh in
Figure 16. The RIPPLE executable file used to perform this reorientation calculation occupies about 2.0 Mbyte of memory. Approximately 1.3 minutes of Cray Y-MP /832 CPU time is required to compute this problem. When graphics are generated during the course of the calculation, the computation time is longer by about a factor of 5 to 6 because of the expense in using DISSPLA graphics software.
C.
Jet-Induced Tank Flows A number of fluid flow scenarios in a reduced gravity environment call for the use of
a jet, for example, to fill tanks to full capacity or to induce mixing of fluid in partiallyfilled tanks. Jet-induced mixing helps to prevent excessive thermal stratification of tank
95
fluid that is heated by tank walls exposed to the sun. The jet enhances thermal transport by inducing mix, insuring a more uniform fluid temperature. Jets might also be used in "no-vent fill" processes, in which a tank is filled to capacity without venting the remaining vapor. 41 The residual vapor must be condensed during the fill process to make room for incoming liquid. An important jet design component that can be addressed with RIPPLE is the optimal velocity of the jet, which depends upon the application. For example, an optimal jet velocity might be one that maximizes fluid recirculation without penetrating or disrupting the free surface, which could destroy the mixing process. On the other hand, penetration of the free surface might be desired, which allows the jet to impinge upon the opposite tank walls and promote vapor condensation as an aid to the no-vent fill process. As an example of low-gravity tank flows induced by an internal jet, consider a large tank (radius 210 em, height 1020 em) that is half full of liquid hydrogen (LH 2 ). The tank is a model of a prototype design to be carried on orbital transfer vehicles. 40 An internal jet (radius 10 em, height 60 em) is centered on the cylindrical axis at the "bottom" of the tank. The jet velocity is set at either 1 or 4 cm/s, corresponding to Weber numbers (We= pRV 2 /0', where R is the jet radius) of approximately 0.4 and 6, respectively. The LH 2 , prior to turning on the jet, is initially in an equilibrium meniscus position with
(}eq
= 5°
as the equilibrium contact angle. The jet-induced tank flow is coarsely resolved with a nonuniform, 14 Jet-Induced Tank Flow: 1 cm/s; van Leer advection $numparam nrestart=-1, conserve=.true., alpha=2.0, twfin=3000.0, autot=l., delt=0.01, dtmax=3.0, dmpdt=500.0, prtdt=l.e+10, pltdt=250.0, cray=. true., $end $fldparam gy=O.O, icyl=1, isurf10=1, canglel=90., cangler=5., canglet=5., cangleb=5., xnu=O.O, rhof=0.0701, sigma=l.813, $end $mesh nkx=2, xl=0.0,105.,210., xc=20.,190., nxl=2,5, nxr=5,2, dxmn=10.,10., nky=1, yl=0.0,1020., yc=30., nyl=1, nyr=33, dymn=30., $end $obstcl nohs=4, oa1 ( 1)=O.O,oa2( 1)=0.0 ,ob1 ( 1)= 1.0,ob2(1 )=0.0, ocl ( 1)=-21 0. ,oc2( 1)=O.O,ioh( 1)=1, oa1(2)=0.0,oa2(2)=1.0,ob1(2)=-420.,ob2(2)=1.0, oc1(2)=0.0,oc2(2)=0.0,ioh(2)=0, oa1 (3)=0.0,oa2(3 )=0.0,ob1(3)=-l.,ob2( 3) =0.0, ocl (3)=810.0,oc2( 3) =0.0,ioh(3)= 1, oa1( 4)=0.0,oa2( 4)=1.0,ob1( 4)=-1620.,ob2( 4)=1.0, ocl( 4)=6.12e+05,oc2( 4)=0.0,ioh( 4)=0,
96
X
34 mesh that is
$end $free surf nfrsrf=O,iequib=l,flht=510.,upright=.true., $end $graphics plots=.true., dump=.false., iout = 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, iysymplt=1, $end
refined along the tank axis of symmetry and wall. The fluid is giVen, in namelist FLDPARAM, the properties ofinviscid LH 2 in cgs units, and is initially upright in an equilibrium meniscus position with input variables UPRIGHT and IEQUIB in namelist FREESURF set equal to true and 1, respectively. Gravity is zero. The hemispherical end caps of the tank are set as interior obstacles with conic functions in namelist OBSTCL. All contact angles in namelist FLDPARAM are set equal to 5°, except the left angle, CANGLEL, which is 90° because of symmetry conditions at the axis. Momentum advection is computed with the conservative, second-order van Leer-limited algorithm since input variables CONSERVE and ALPHA in namelist NUMPARAM are true and 2.0, respectively. The flow is computed for 3000 s, with graphics and restart dumps generated every 250 and 500 s, respectively. Accurate time resolution over this flow period follows from limiting the time step to a value of DTMAX equal to 3.0 s or 2.0 s, depending upon whether the jet velocity is 1.0 cm/s or 4.0 em/ s, respectively. The RIPPLE input deck is given above. Instead of using the OBSTCL namelist, the obstacle enclosing the jet is characterized c .... Jet-induced tank mix modification c after "do 230" loop in ASET c
ijl=1+imax do 11 i=1,2 ac(ijl)=O.O ac(ijl+ 1)=0.0 ar(ijl)=O.O ar(ijl+ 1)=0.0 at(ijl)=O.O at(ijl+ 1)=0.0 ijl=ijl+imax 11 continue c
c .... Jet-induced tank mix modification c after "9999 continue" statement in BC c (velocities are in em/sec) c v(2*imax+ 1)= 1.0 v(2*imax+2)=1.0 at(2*imax+1)=1.0
97
at(2*imax+2)=1.0 c
c .... Jet-induced tank mix modification c at the beginning of VOFADV c
ac(2*imax+ 1)= 1.0 ac(2*imax+2)=1.0 f(2*imax+ 1)=1.0 f(2*imax+2)=1.0 fn(2*imax+ 1)=1.0 fn(2*imax+2)=1.0 c
c .... Jet-induced tank mix modification after c the "call VOFERR" statement in VOFADV c
ac(2*imax+ 1)=0.0 ac(2*imax+2)=0.0 f(2*imax+1)=1.0 f(2*imax+2)=1.0 fn(2*imax+ 1)=1.0 fn(2*imax+2)=1.0
with small modifications to the RIPPLE source code given above. The first modification, in subroutine ASET, establishes the jet as an interior obstacle in a 1 x 2 array of cells along the axis at the bottom of the tank. This is achieved by setting the partial flow flags (AR, AT, AC) in those cells to zero. The second modification, in subroutine BC, sets the jet velocity and the partial flow flag AT(ij) in the 2 cells (ij indices equal to 2*IMAX+1 and 2*IMAX+2) at the top of the jet obstacle. The AT flag is set to allow fluid to flow from the jet into the domain. The final modification in subroutine VOFADV allows fluid to be advected from inside the jet obstacle into the tank. Partial flow flag AC(ij) is set to 1.0 and 0.0 prior to and after advection, respectively, and the VOF function F(ij) is set to 1.0 to insure that fluid is continually replenished inside the jet obstacle. The only modification conflicting with other subroutines is the assignment of the AC flag to 1.0, prior to VOF advection, in those cells that are actually part of the jet obstacle. The AC flag is therefore reset to 0.0 after VOF advection so the ICCG pressure solver in IMPLCTP can recognize the cells inside the jet as part of an internal obstacle. Figure 17 displays a time sequence of the computed laminar fluw field induced by a jet with a velocity of 1 cm/s (a slow fill rate of about 314 cm 3 /s). The noticeable "dead spots" in Figure 17, where no velocity vectors are plotted, are locations in the mesh where fluid velocities are less than 0.1% of the jet velocity. From Figure 18, where the velocity field, stream function, and velocity potential are shown at a time of 3000 s, it is evident that a steady state, recirculating flow field is induced as a result of the jet. For this case, which is a We of 0.4, the jet does not penetrate the free surface, and the free surface
98
••••••• •••• t
'····· ............... ····'
....... ····' ........... '········ ...... ...... ·····' .
...... ......
...... .......
• • • ..... ..... • • •
• • . • . •' .. . . • . .
....... ······.
....... .....
....... ......
••••••• •••••
. . . . . . . . . . . . . . . . . . . . . . . . . f. . . . . . . . . . . . . . . . . . . . . . . . . .
.. ................................................ ,1......................... . ~
. • . . . .• •. . . . . • .
. ...... ·····..
...•.•••.. •' '• ...•.••. ···! i·· ..•.• ' . ' . '. .'' ' ..•••. ''
······. ····· ····· ..... ..
. ...... ·····..
Figure 17: Fluid velocity vectors and free surface configurations at times of (left-to-right, top-to-bottom) 0, 250, 750, 1000, 1500, 2000, 2500, and 3000 s for the jet-induced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 1 cm/s. retains its equilibrium shape. A free surface disruption, on the other hand, occurs in this calculation when a VOF reconstruction model is used to compute surface tension effects at the free surface. 12 In the reconstruction model, a crudely reconstructed free surface is used to estimate the curvature, and, as a result, an incorrect sign for
is sometimes obtained. When this happens, the surface tension effects are unphysical, pulling the free surface apart. 12 The K.
CSF model makes more accurate use of the same VOF data, leading to surface forces that cause the free surface to seek a minimum energy configuration. For a jet velocity of 3 cm/s (We "' 3.5), RIPPLE calculations indicate that surface tension forces are just able to hold back the laminar jet. As shown in Figure 19, the case is different for a laminar jet of 4 cm/s (We"" 6). (The RIPPLE input deck for this calculation 99
..
.,
·'··
··'•
·····.I. 1
.. ', .... I
.....
' • ' ~ I • ' I ~,I
o' • • '" "
'
"
•
I
ooo o o
•
o
~
o ooI
••••••
1
l •••••• 0
' I I ' • ' " • ' •• ~
........... ···' ............ . .......... ···' '··· ......... .......... ···' '··· ......... . .......... ···' '··· ......... . ......... .... '··· ........ . o
I • I
I ' I
'
I o o o o
,.
•
•
• oo•
t
"
o
o o o oo
Figure 18: At a time of 3000 s are velocity vectors V (left), stream function (middle), and velocity potential (right) for the jet-induced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 1 em/ s.
is identical to the one previously shown, except that DTMAX is set to a slightly smaller value of 2.0 s.) Blobs of fluid are detached from an intense central geyser of fluid. At times later than 3000 s (where Figure 19 ends), blobs are thrown against the top of the tank. The first blob wets the tank fairly evenly, while the second accumulates around the jet impingement region. However, a more accurate treatment of wall adhesion might diminish this central accumulation, forcing more fluid to wet the walls. Corresponding tot = 1200 sin Figure 19 is the numerical printout for several contiguous rows of cells given in Tables 13 and 14. The rows listed in these tables are those containing the central geyser of fluid. For each cell given, the fluid velocity components, the pressure, the VOF function, and the volume force components are tabulated to five significant figures. These Tables are provided to serve as an aid in porting RIPPLE to new computing environments. By making specific comparisons of computed numbers with those given in Tables 13 and 14, the user can use this calculation as a test problem to verify that RIPPLE is computing correctly. Jet-induced flows are excellent examples of fluid flows that can be modeled more realistically when turbulent effects are included. The jet in these calculations would tend to diffuse radially, dissipating a portion of its kinetic energy into turbulent energy, with the addition
100
~. .
'
.. \
......
....... :::::
ffh
) ·: ..
···········' ............
~-···' ::::~:li:L:::::::.:::::.. ::.:::: ::::1·1·::::: :::.:: ...................... ·····' '····. ······· ........ ···' '··· ................ ···' '··· ...... .. :::::::::::, ,::::::::::: ····· .. ····' '····· ······· ...... . ... ····' '···· .... .. ... ····' '····· ' .. ......·····' ····' '···· .... . ....... · '···· ... . ... ····' '···· ... . '···· ... . ... ····' '···· ... . ·····. '····· ...... . ... ····' '···· ... . . . . ..... '···· ... .......·····' ···' '··· . ...... . ... ····' '···· ... . ' ' . '····' '···· ... . .. ····' '···· ... '···· .. . .. ...... · '···· .. . .... .. ····' ····' '···· .. . .. ·····' '····· .. , , . , , , . , •• ,!
,.,,, • , , , , , I ! , , , , , , ' ' " '
,1
.......
•••'•,
o
'····.
,
,,,,t
1,, ••
......
,
oooooo
••••o•
'····.
'·····
.......
• • • • , .. t
, , . , , , ••
' • • ,,,,!
T,,,, • ' •
o,
ooo,l
1,,,,
••••
····'
'···· ••••
,.,.,
0
,,.,,!
o,
oo
f , , , , , , ,,,.,
••••••
···"'
'····.
••
oooo,l
'···· •••
••
oooo,l
'···· •••
• " ' ' , , ,.,,1
•••••••
····'
'···· . . . . . . . . . . . . .
• • • .,1
\,,,
,.oooo,
,,.,t
1,.,,,
,,
0
oo,l
1,, . . . . . . . . . . . . . . . . . . . . .
,,
0 ,.,,
.
.... t
00
!,., • • • ,,., • •
• •
,,,,! '···· ••
····'
l,ooo..
•
····'
'·····.
•• ····'
'····..
. . ····' '····..
• • ••• ,1
'···· ••
. . ····' '···· ..
.• ····'
'o'''.
••
'····
• • • • • • ,1 •
'····...
0
t,,,, • .....,
'···· ••••••
'····
····'
' · · · · • • oo • ., ,
.,., . . . , , , , . t
•••••••
,.,,1
0
" ' • ' , , , , •• ,. .... , , , , , , , \ \ I t , , , , , ...•.
II,,, . . . . . . . . . . . . . , ... t
0
•• -····' 1,,... •• •
•••••• • • • • "
'····· .............. ' •... 1
.o
····'
. . . . . . . •• .,1 ••''•
I,
!, ... , . , •••••
•••••• • .... 1 t , . , , • . . . . . . . . . . . . · · · · · '
•
····'
••
,,,,.
.,,,,
0
0
, 0
•••••••
! , , , , , , ,,,.., 1.,._,
•
•••••••
·····'
'···· .. '···· . '···· . .
'···· .. '···· .. '···· ..
'····'.
0
·····'
I' • • '
'
•
'····
•••
•
0
···'
.....
• •
.,T
1, •. , , , , , , , ,
,,,.! 1 . , . , , , ,,,,,. ... • • , , , , , .. T
' " · · . . . . . ..
. . ····' '···· .. ····' •.... ····' '···· . . ····' '···· .. • • ••• ,1
•••••••
• • • ' ' ••~
, . , , . , , ,,,,1 I , , , , . , ' ' " • , . , o o o , , • • • • 1 !. . . . . . . . . . . . . . . . . .
.............
1 t , . , , , , , , , , . . • • ' ' ' ' , , ,,,.1
. ·····' . ····' •••o' .• .. ..... .. ..····' ····' . ·····'
.............
1, •.
'···· ••
. .. ····' '···· ...
, •
• ........... t
• ••••• '
t , . , , , , , • • .. 1. . . . . . . . . ..
1. . . . . .
• ,,,.,:
!,,.. • .
.
'·"'
'
,
, ,,, T I,,,,,
•
'
•••• t
••
.... · '···· .. . . ····' '···· ..
Fluid velocity vectors and free surface configurations at times of (left-to-right, top-to-bottom) 200, 600, 1200, 1400, 1600, 2000, 2200, 2400, 2600, and 3000 s for the jet-induced tank flow problem. The velocity of fluid exiting the jet at the tank bottom is 4 cm/s. Figure 19:
101
Table 13: Computed values of velocities, pressures, VOF function, and volume forces in selected computational cells at t = 1200 s (cycle 648) for the 4.0 em/ s jet-induced tank flow problem shown in Figu!e 19. I
102
J
u
v
p
F
TENS X
TENSY
2 3 4 6 6 7 8 9 10 11 12 13 14 15
21 O.OOOOe+OO O.OOOOe+OO 1.4883e-26 21 O.OOOOe+OO O.OOOOe+OO 9.3926e-27 21 O.OOOOe+OO O.OOOOe+OO 3.2905e-27 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 21 -6.2088e-03 O.OOOOe+OO -3.9407e-27 21 -5.8983e-03 -3.8806e-01 -4.2360e-04 21 O.OOOOe+OO 1.6077e-01 -3.1783e-03
O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 3.8022e-01 1.0000e+OO
-9.4540e-04 -7.9039e-04 -7.2245e-04 -1.5671e-04 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -3.8148e-05 -3.0228e-04 4.5788e-04 -6.1676e-04
-3.1356e-03 -1.0270e-03 -5.5527e-04 -7.0519e-05 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 1.7167e-05 1.0389e-04 -1.8818e-04 2.2941e-04
2 3 4 5 6 7 8 9 10 11 12 13 14 15
20 20 20 20 20 20 20 20 20 20 20 20 20 20
2.1013e-01 1.5224e-01 1.0150e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 1.4294e-03 1.3542e-03 8.1857e-02 O.OOOOe+OO
-2.1990e-01 4.0614e-02 -1.2666e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -1.2685e-01 -3.8806e-01 1.7804e-01
9.7596e-02 3.9091e-02 6.6464e-03 3.2961e-26 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 1.6949e-28 -4.9653e-27 -4.4747e-03 -1.2800e-02 -1.6104e-02
1.0000e+OO 6.3268e-01 3.3974e-01 O.OOOOe+OO O.OOOOe+OO o:ooOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 3.6712e-01 9.8990e-01 1.0000e+OO
-2.9177e-03 -4.8608e-03 -2.9015e-03 -7.3588e-04 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -3.5950e-05 2.6042e-04 -9.4948e-04 -1.1732e-03 -2.8278e-04 -6.4983e-05
-5,4078e-03 -2.5089e-03 -6.8137e-04 -8.5829e-05 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 2.4566e-05 -3.8223e-04 9.2655e-04 5.2043e-04 9.1841e-05 2.0968e-05
2 3 4 6 6 7 8 9 10 11 12 13 14 15
19 19 19 19 19 19 19 19 19 19 19 19 19 19
2.8907e-01 6.7479e-02 -9.4264e-02 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -7.8847e-02 -7.0797a-02 -9.4955e-02 -8.8623a-02 -3.1505a-02 O.OOOOe+OO
1.0409e+OO 2.2932e-01 -1.2666e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -1.3178e-01 2.9932e-01 -1.2685a-01 -1.4015a-01 -6.1546a-02
1.2799e-01 5.7820e-02 6.5487e-03 4.6413e-26 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -3.8812e-27 -6.7753e-27 2.2059a-04 -6.5187e-03 -1.6917e-02 -1.9819e-02 -1.9902e-02
1.0000e+OO 1.0000e+OO 2.3294e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 4.9909e-01 7.3628e-01 1.0000e+OO 1.0000e+OO 1.0000e+OO
-1.5480e-03 -4.7407e-03 -3.1709e-03 -4.7220e-04 O.OOOOe+OO O.OOOOe+OO -2.0906e-05 4.6850e-06 -2.6867e-04 2.3178e-04 -8.3785e-04 -4.0646a-04 -6.8878e-05 -1.0327e-06
-6.0400e-04 -4.0283e-04 -9.7019e-05 5.2004e-06 O.OOOOe+OO O.OOOOe+OO 1.6725e-05 -6.7533e-06 3.2762e-04 -3.5921e-04 9.1789e-04 2.0960e-04 2.3684e-05 3.4424e-07
Table 14: Computed values of velocities, pressures, VOF function, and volume forces in selected computational cells at t = 1200 s (cycle 648) for the 4.0 cm/s jet-induced tank flow problem shown in Figure 19. I
J
u
v
p
F
TENS X
TENSY
2 3 4 6 6 7 8 9 10 11 12 13 14 16
18 18 18 18 18 18 18 18 18 18 18 18 18 18
4.0880e-02 -6.4744e-02 -1.1075e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 1.8409e-01 1.4984e-01 4.4392e-02 3.1826e-02 -6.4093e-02 -6.9318e-02 -3.9644e-02 O.OOOOe+OO
2.7763e+OO -7.8907e-02 -6.2796e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 1.3538e-01 1.6847e-01 -1.3178e-01 2.3128e-01 -1.2464e-01 2.1968e-02 3.0664e-02
7.9932e-02 4.0661e-02 3.0643e-03 1.6998e-26 -1.7441e-27 -3.6080e-27 -9.3061e-27 -1.5324e-03 -6.2910e-03 -6.5691e-03 -1.6239e-02 -1.9617e-02 -1.9776e-02 -1.9663e-02
1.0000e+OO 1.0000e+OO 2.8253e-01 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO 2.5936e-01 9.4336e-01 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO
-3.2307e-55 -3.8812e-03 -2.2899e-03 1.0749e-03 -3.9889e-09 -3.1174e-05 -1.4689e-04 -3.2559e-04 1.0673e-04 3.2826e-05 -3.7013e-04 -2.8438e-05 O.OOOOe+OO -5.0532e-26
-2.5854e-41 -1.4927e-04 -2.6082e-04 1.0352e-03 -1.3901e-05 2.4863e-04 3.7550e-04 4.5525e-04 -1.3049e-04 -5.0747e-05 3.2423e-04 9.4794e-06 O.OOOOe+OO -4.4210e-27
2 3 4 6 6 7 8 9 10 11 12 13 14 15
17 2.6221e-02 3.0206e+OO 3.3979e-02 17 8.1836e-02 -4.1965e-01 1.1806e-02 17 3.2408e-01 -8.7129e-01 -2.2035e-03 17 3.4065e-01 -4.2713e-02 -2.6262e-03 17 2.1778e-01 1.5734e-01 -2.5181e-03 17 2.5677e-01 1.2890e-02 -3.7655e-03 17 3.4879e-02 -6.7294e-02 -6.4521e-03 17 -1.1126e-01 1.3538e-01 -1.0992e-02 17 -3.3774e-03 3.5080e-02 -1.3232e-02 17 2.0273e-02 -1.4625e-01 -1.4698e-02 17 4.2119e-03 1.6376e-02 -1.7235e-02 17 1.1406e-02 -1.6184e-01 -1.8027e-02 17 1.3714e-03 1.0260e-01 -1.8331e-02 17 O.OOOOe+OO 1.4670e-01 -1.8300e-02
1.0000e+OO 1.0000e+OO 5.2657e-01 5.6996e-01 5.7638e-01 5.6812e-01 7.8659e-01 9.9947e-01 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO
-3.2307e-55 -2.1811e-03 5.0131e-04 1.0999e-04 -9.0217e-09 -8.0391e-05 -7.4239e-05 -2.1833e-04 -5.6918e-05 -4.4572e-06 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -5.0532e-26
-2.5854e-41 -3.1134e-04 2.1413e-04 6.7332e-04 -2.7802e-05 5. 1848e-04 1.8891e-04 3.1281e-04 4.5678e-05 2.5257e-06 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -4.4210e-27
2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 16 16 16 16 16 16 16 16 16 16 16 16 16
1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO 1.0000e+OO
-3.2307e-55 -6.6899e-04 7.5785e-04 2.8508e-06 -5.1900e-09 -5.8623e-05 -8.2261e-05 -1.2714e-05 -3.0588e-08 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -5.0532e-26
-2.5854e-41 -2.2300e-04 7.8770e-04 -5.9187e-05 -1.3901e-05 2.8862e-04 1.2416e-04 1.0218e-05 2.0902e-08 O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO O.OOOOe+OO -4.4210e-27
1.9249e-02 2.2228e-01 3.0029e-01 -3.2692e-02 -8.9930e-02 -4.7324e-02 3.7229e-02 5.3200e-02 -5.2388e-02 -4.8710e-02 -3.6891e-02 2.3574e-02 2.4694e-02 O.OOOOe+OO
3.1779e+OO -1.4475e-01 9.9160e-02 2.6541e-01 1.0159e-01 1.7056e-01 -2.9761e-01 -5.7066e-02 1.8062e-01 -1.0283e-01 -1.8230e-02 -1.2912e-01 7.3478e-02 1.4268e-01
-1.1419e-03 -8.6251e-03 -1.4052e-02 -8.8163e-03 -1.1076e-02 -1.5489e-02 -1.8092e-02 -1.8876e-02 -1.7024e-02 -1.6805e-02 -1.7050e-02 -1.7136e-02 -1.7238e-02 -1.7328e-02
103
of a turbulence model such as the k-
€
modeL 42 The turbulent jet velocities required to
geyser the free surface would likely be higher than the laminar jet velocities computed with the standard version RIPPLE. In lieu of a turbulence model, however, turbulent effects can be estimated with RIPPLE by using a turbulent eddy viscosity, Zit
"'f sk 1 12 ,
where
f
Zit.
One estimate for
Zit
is
is the fraction of jet kinetic energy dissipated into turbulence, s is the
turbulent length scale, and k is the turbulent kinetic energy density. Reasonable values for the jet are f = 0.10; s = Rj/2, where Rj is the jet radius; and k = fv} /2, where
Vj
is the jet
velocity. With a 4.0 cm/s jet velocity, the addition of a turbulent eddy viscosity with these values dissipates the jet enough to prevent its pe!:etration through the free surface. In comparison with the reorientation problem, the jet-induced tank flow problem takes approximately 1.6 minutes of Cray Y-MP /832 CPU time to compute to the finish time of 3000 s. Approximately 1000 computational cycles are required to reach 3000 s, with an average time step limited by a DTMAX value of 3 s that is only 25% less than the surface tension time step constraint ("' 4 s) dictated by equation 117.
V.
FUTURE ENHANCEMENTS A number of improvements, the two most important being a new conservative, direct
solution procedure and a new model for surface tension, have driven the evolution of the NASA-VOF2D computer program to the current version, RIPPLE, documented in this manual. Further enhancements, however, are
de$~rable
and possible within the framework
of the RIPPLE methodology. The following task list specifies (in random order) additional physics as well as upgrades in the current model that should give RIPPLE more accuracy and an improved capability of modeling a wide variety of incompressible flows with free surfaces. • Adding turbulence and thermal energy transport models to the basic solution procedure. • Adding the tangential surface force at free surfaces to allow modeling variable surface tension flows. • An alternate treatment of interior obstacles using a technique similar to Sulsky and Brackbill.43 With this technique, rigid waJ,1s are replaced by particles of large mass and small size. Velocity boundary conditions are replaced by a large hydrodynamic drag induced by the particles, modeled as a body force exerted by the particles on fluid elements in their proximity. 104
• A new VOF advection algorithm, i.e., the Youngs algorithm,28 in which surface cell flux volumes are computed with a reconstructed free surface that can have nonzero slope. • Rewriting the code to minimize usage of memory and CPU time. • A self-consistent calculation of surface cell fluid velocities, rather than the current assignment of velocities as a free surface boundary condition. • An implicit treatment of viscosity to allow modeling of low Reynolds number flows (i.e., Re :S 1). • An implicit treatment of the surface tension to alleviate the frequently restrictive surface tension time step. constraint. • A more rigorous application of the wall adhesion boundary condition along internal obstacle boundaries. • A fully second-order solution procedure, ir, time as well as in space, implemented in a manner prescribed by Dukowicz_44 • Providing user-friendly pre-processor and post-processor codes to enable an easier interface with RIPPLE, both when setting up a problem (pre-processor) and when analyzing the results of a calculation (post-processor). Some items in the above list are more easily accomplished than others. For example, an algorithm for the implicit treatment of surface tension does not, to the knowledge of the authors, currently exist, but appears possible within the framework of the CSF model. Finally, for many programmatic purposes (and especially for low-gravity design purposes) it is essential to have a robust, accurate code that can model a fully three-dimensional incompressible flow field. It is therefore imperative to extend the present RIPPLE code to three dimensions, thereby creating a robust, fle:xjble, and highly useful design tool. It would also be helpful to add the enhancements discussed above to the 3-D code.
VI.
ACKNOWLEDGEMENTS
The authors would like to express their appreciation to Jerry Brackbill, Dan Butler, Klaus Lackner, Rick Rauenzahn, and Chuck Zemach at the Los Alamos National Laboratory. Dan Butler and Klaus Lackner provided stimulating conversation and helpful suggestions during the development of RIPPLE. Rick Rauenzahn offered invaluable suggestions regarding the
105
form and implementation of the van Leer advection model. We are indebted to Jerry Brackbill, who was especially helpful in providing his finite difference formulation of the PPE and the ICCG solution technique. One of us (DBK) would also like to thank Jerry Brackbill and Chuck Zemach for their collaboration on development of the CSF model. Finally, we wish to thank John Hochstein and Mike Wendl at Washington University in St. Louis, Missouri, for exercising and debugging developmental versions of the code.
VII.
REFERENCES
1. M. D. Torrey, 1. D. Cloutman, R. C. Mjolsness, and C. W. Hirt, "NASA-VOF2D: A
Computer Program for Incompressible Flows with Free Surfaces," LA-10612-MS, Los Alamos National Laboratory (1985). 2. B. D. Nichols and C. W. Hirt, "Methods for Calculating Multi-Dimensional, Transient Free Surface Flows Past Bodies," Proc. of the 1st Int. Conf. Num. Ship Hydrodynamics, Gaithersburg, Maryland, October 1975. 3. B. D. Nichols, C. W. Hirt, and 'R. S. Hotchkiss, "SOLA- VOF: A Solution Algorithm for Transient Fluid Flow with Multiple Free Boundaries," LA-8355, Los Alamos N a.tional Laboratory (1980). 4. C. W. Hirt and B. D. Nichols, J. Comput. Phys. 39, 201 (1981). 5. W. E. Johnson, "Development and Application of Computer Programs Related to Hypervelocity Impact," 3SR-353, Systems, Science and Software (1970). 6. J. D. Ramshaw and J. A. Trapp, J. Comput. Phys. 21, 438 (1976). 7. W. H. McMaster and E. Y. Gong, "PELE-IC User's Manual," UCRL-52609, Lawrence Livermore National Laboratory ( 1979). 8. W. H. McMaster, D. F. Quinones, C. S. Landram, D. M. Norris, E. Y. Gong, N. A. Machen, and R. E. Nickell, "Applications of the Coupled Fluid-Structure Code PELEIC to Pressure Suppression Analysis- Annual Report to NRC for 1979," NUREG/CR1179, UCRL-52733, Lawrence Livermore National Laboratory (1980). 9. J.D. Kershner and C. 1. Mader, "2DE: A Two-Dimensional Continuous Eulerian Hydrodynamic Code for Computing Multicomponent Reactive Hydrodynamic Problems," LA-4846, Los Alamos National Laboratory (1972). 10. W. H. Noh and P. Woodward, "The SLIC (Simple Line Interface Calculation)," in Lecture Notes in Physics, Proc. Fifth Int. Conf. on Num. Methods in Fluid Dynamics (Springer-Verlag, 1976), A. I. van de Vooren and P. J. Zandbergen, editors, vol. 59, p. 330. 11. R. S. Hotchkiss, "Simulation of Tank Draining Phenomena with theN ASA SOLA-VOF Code," LA-8163-MS, Los Alamos National Laboratory (1979). 12. J. U. Brackbill, D. B. Kothe, and C. Zemach, "A Continuum Method for Modeling Surface Tension," submitted to J. Comput. Phys. (1990). 13. D. S. Kershaw, J. Comput. Phys. 26, 43 (1978). 14. B. van Leer, J. Comput. Phys. 32, 101 (1979). 106
15. J. F. Hawley, L. L. Shaw, and J. R. Wilson, Astrophys. J. 55, 211 (1984). 16. L. D. Landau and E. M. Lifshitz, Fluid Mechanics {Pergamon Press, New York, 1959). 17. F. H. Harlow and J. E. Welch, Physics Fluids, 8, 2182 (1965). 18. A. J. Chorin, Math. Comput., 22, 745 (1968). 19. J. U. Brackbill and H. M. Ruppel, J. Comput. Phys. 65, 314 (1986). 20. A. A. Amsden, P. J. O'Rourke, and T. D. Butler, "KIVA-II: A Computer Program for Chemically Reactive Flows with Sprays," LA-11560-MS, Los Alamos National Laboratory (1989). 21. F. L. Addessio, D. E. Carroll, J. K. Dukowicz, F. H. Harlow, J. N. Johnson, B. A. Kashiwa, M. E. Maltrud, and H. E. Ruppel, "CAVEAT: A Computer Code for Fluid Dynamics Problems with Lar&e Distortion and Internal Slip," LA-10613-MS, Los Alamos National Laboratory (1986 ). 22. R. M. Rauenzahn, private communication, Los Alamos National Laboratory (1990). 23. F. H. Harlow and A. A. Amsden, "Fluid Dynamics: A LASL Monograph," LA-4 700, Los Alamos National Laboratory ( 1971). 24. J. U. Brackbill and J. S. Saltzman, J. Comput. Phys. 46, 342 (1982). 25. C. W. Hirt, J. L. Cook, and T. D. Butler, J. Comput. Phys. 5, 103 (1970). 26. B. J. Daly, J. Comput. Phys. 4, 97 (1969). 27. J. M. Floryan and H. Rasmussen, Appl. Mech. Rev. 42, 12 (1989). 28. D. L. Youngs, "Time-Dependent Multi-Material Flow with Large Fluid Distortion," in Numerical Methods for Fluid Dynamics, K. W. Morton and M. J. Baines, Editors (Academic Press, New York, 1982). 29. C. de Boor, A Practical Guide to Splines (Springer-Verlag, New York, 1967). 30. E. B. Dussan V, Ann. Rev. Fluid Mech. 11, 371 (1979). 31. R. Hoffman, ]. Colloid Interface Sci. 50, 228 (1975). 32. M. J. Merchant, FORTRAN 77: Language and Style (Wadsworth, Belmount, CA, 1981). 33. "CA-DISSPLA User's Manual," Version 11.0, Computer Associates International, Inc. (1988). 34. "CTSS Mini-Reference," CIC #205, Computing and Communications Division, Los Alamos National Laboratory (1988). 35. Lord Rayleigh, Proc. London Math. Soc. 10, 4 (1879). 36. Sir Horace Lamb, Hydrodynamics (Cambridge University Press, Cambridge, 1932). 37. N. G. Mansour and T. S. Lundgren, Phys. Fluids A 2, 1141 (1990). 38. M. Orme and E. P. Muntz, Phys. Fluids A 2, 1124 (1990). 107
39. J. C. Aydelott and W. Devol, Editors, "Cryogenic Fluid Management Technology Workshop," NASA Conference Publication 10009, NASA Lewis Research Center (1987). 40. J. I. Hochstein, private communication, Washington University, St. Louis, Missouri (1990). 41. J. C. Aydelott, J. P. Gille, and R. N. Eberhardt, "On-Orbit Cryogenic Fluid Transfer," 20th Joint Propulsion Conference, AIAA-84-1343, Cincinnati Ohio (1984). 42. B. E. Launder and D. B. Spalding, Mathematical Models of Turbulence (Academic Press, New York, 1972). 43. D. Sulsky and J. U. Brackbill, "A Numerical Method for Suspension Flow," submitted to J. Comput. Phys. (1990). 44. J. K. Dukowicz and A. S. Dvinsky, "Approximate Factorization as a High Order Splitting for the Implicit Incompressible Flow Equations," submitted to J. Comput. Phys. (1990).
108
Appendix.
Surface Tension on a Planar Curve
In this appendix we show that surface tension effects on a planar interface are easily derived by summing the tensile forces on an arc length element of the interface. A more general derivation of surface tension effects on a three-dimensional surface can be found in a recent paper detailing the CSF model.12 Consider the forces due to surface tension at a point X5 on an planar interface separating fluids 1 and 2 (Figure 20). The net surface force per unit length at 5 , F5 (xs), can be
x
/'..
n
fluid 2
___,.
A.
___x_.si-;~;;;;;;;;::-t~>- - - .
OS
F\ (t)
fluid 1 Fs(n)
I
interface
Figure 20: Illustration of the surface tension forces exerted at a point X5 on a planar interface separating two fluids. expressed as the sum of the normal and tangential components of the surface force, (130) The normal and tangential surface forces on an element 5s can be found by computing the resultant of the tensile forces per unit length pulling on the left ( FL) and right ( FR) endpoints of 5s, respectively: (131) Fs(is) = .f}t + FR · The left and right tensile forces per unit length are given by (132) where (J"L, fL and (J"R, fR are the surface tension coefficients and unit tangent vectors at the left and right endpoints, respectively. The curve is assumed to be parameterized by the arc length s(is), with the unit tangent ito the curve taken to be positive in the direction of increasing s. The values of the () and i at the left and right endpoints of element 5s are estimated with Taylor series expansions in powers of 5s about X5 • For example, at the right endpoint, the expansions (133)
109
and (134) apply for o-R and iR, respectively. Similar expressions hold for o-1 and £1 . With the help of the above Taylor expansions, the net surface force on Ds, to 0 (5s 3 ), is found to be
(135) The surface force per unit interfacial area, F.n(i.), using equation 135, is then given by
. . (Xs. . ) = hm . .F.(x.) (. . )di .... ) do-( ... )' .... D = o- Xs -d (x. + -d x. t(x.). cs-+0 S S S
Fsa
(136)
By comparing equation 135 with equation 130, it is apparent that ( 137) is the normal component of the surface force, and (138) is the tangential component of the surface force. From equation 137, the curvature vector, ;;;,, is given by
..
di
~>,=-=
- ds
(~t·\1 ) t~
(139)
'
x.
which is the change in the unit tangent vector i to the surface at with respect to the arc length s along the surface. The magnitude of K,(i.), the curvature, is usually defined as the inverse radius of curvature, R,
K(Xs) = i(t · \l)ti (is)=
110
(~)
(is).
(140)
This report has been reproduced directly from the best available copy. It is available to DOE and DOE contractors from the Office of Scientific and Technical Information, P.O. Box62, Oak Ridge, 1N 37831. Prices are available from (615) 576-8401, FfS 626-8401. It is available to the public from the National Technical Information Service, U.S. Department of Commerce, 5285 Port Royal Rd., Springfield, VA 22161.
n@CQ? /6:-
lb
n0'\rr=;(il@~ Los Alamos National Laboratory ~ ~Ul9JU U U ~ Los Alamos,New Mexico 87545