Skip navigation links
(Wind-US Documentation Home Page) (Wind-US User's Guide) (GMAN User's Guide) (MADCAP User's Guide) (CFPOST User's Guide) (Wind-US Utilities) (Common File User's Guide) (Wind-US Installation Guide) (Wind-US Developer's Reference) (Guidelines Documents)

(Introduction) (Tutorial) (Geometry and Flow Physics Modeling) (Numerical Modeling) (Boundary Conditions) (Convergence Monitoring) (Files) (Scripts) (Parallel Processing) (Keyword Reference) (Test Options)



MULTIPHASE - Multi-phase flow (block)

MULTIPHASE
   FILE filename
ENDMULTIPHASE

The MULTIPHASE keyword block specifies that a multi-phase calculation is being done. Particle properties may be specified, and particles may be injected at specified locations, with specified injection characteristics.

It should be noted that the multi-phase capability in Wind-US is preliminary. The source code includes routines for several capabilities that are not yet fully implemented, and extensive validation tests have not yet been done.

Two different coupling options are available.

The multi-phase capability is currently available only for a perfect gas continuous phase.

FILE filename

Input for the multi-phase calculation is specified by keywords in a separate multi-phase input file, not in the input data (.dat) file itself. The FILE keyword specifies the name of the file, which by convention ends with the suffix .phz, although that isn't enforced.

Multi-Phase Keywords

In the multi-phase input file, keywords are used to specify particle properties, and nozzle injection locations and characteristics. The overall format for the file is shown below.

   General keywords
   NOZZLESET
      Keywords for nozzle set 1
   ENDNOZZLESET
   ...
   NOZZLESET
      Keywords for nozzle set n
   ENDNOZZLESET
   ...
   ENDFILE

The first part of the file, listed as General keywords above, contains input that's not specific to the particles or characteristics at a particular set of injection nozzles. This includes properties applicable to all particles, and some control input affecting the dispersed-phase solution procedure. The rest of the multi-phase input file consists of one or more NOZZLESET keyword blocks, each corresponding to a set of injection nozzles. Each NOZZLESET block contains input describing the particles and injection characteristics for a particular nozzle set. The last line of the file must be ENDFILE, signaling the end of the multi-phase input file.

In the keyword descriptions that follow, the syntax shown uses the same text conventions as all the other Wind-US keywords. Unless otherwise specified, the general keywords and the keywords for a particular nozzle set may be specified in any order.

General Keywords

DROPS mxdrop

This keyword sets the maximum number of particles in a single zone. From a performance standpoint, setting this value just at or above the maximum expected number of particles in any given zone is desirable. The default, if the keyword is not used, is 10,000.

BNDRY_DROPS mxbdrop

This keyword sets the maximum number of particles that may be transferred between zones. The value is typically a fraction of the maximum number of particles in a zone, specified with the DROPS keyword. The default, if the keyword is not used, is 2,000.

NOZSETS numnozsets

Currently the value specified with this keyword is printed out as the "number of nozzle sets", but the value is not otherwise used. The actual number of nozzle sets is found automatically, by counting the number of NOZZLESET/ENDNOZZLESET sections, and is also printed out as the "number of nozzle sets".

COUPLE {ZONE izone | ALL} flag

The COUPLE keyword specifies one-way coupling between the continuous phase and the dispersed phase. (I.e., the flow field surrounding the particles is not affected by the particles). Using COUPLE ZONE izone specifies one-way coupling in zone number izone, while COUPLE ALL specifies one-way coupling in all zones. Multiple COUPLE keywords may be used to specify one-way coupling in multiple zones.

The input flag must be either 0 or 1, as follows.

    flag   Meaning
0 Steady continuous-phase flow, with a converged solution. Only the dispersed-phase solver is run, not the continuous-phase solver.
1 Unsteady continuous-phase flow. Both the continuous-phase and dispersed-phase solvers are run each time step, but the particle/flow coupling terms are not computed.

Note that a flag value of 1 should not be used for a steady continuous-phase flow that is not yet converged. It's more efficient in that case to run without MULTIPHASE until the solution reaches steady state, then run a multi-phase solution with COUPLE ALL 0.

TWOWAYCOUPLE {ZONE zone | ALL [NOHEAT]}

This keyword specifies two-way coupling between the continuous phase and the dispersed phase in either a specified zone or all zones. (I.e., the flow field surrounding the particles is affected by the particles). Both the continuous-phase and dispersed-phase solvers are run each time step, with the same time step size. The effect of the dispersed phase on the continuous phase is modeled by particle/flow coupling terms added to the momentum and energy equation source terms in the continuous-phase solver.

By default, when this keyword is used two-way coupling is specified for both the momentum and energy equations. The NOHEAT option may be used to turn off two-way coupling for the energy equation in all zones. There is currently no way to turn off two-way energy coupling in selected zones.

PARTPROP EVAP 1

This keyword may be used to include particle evaporation and condensation effects.

Currently (Wind-US version 3.25), evaporation and condensation are not fully implemented.

SPECIES LIQUID NAME species

This keyword is intended to specify the fuel species being injected. In the current multi-phase implementation, it must be used, naming one of the fuels in the supplied database of hydrocarbon fuels, but it otherwise has no effect on the solution. The species must be one of the following:

    Fuel   species
Methane CH4
Propane C3H8
N-Heptane C7H16
N-Octane C8H18
N-Dodecane C12H26
N-Tridecane C13H28
N-Tetradecane C14H30
N-Hexadecane C16H34
Acetylene C2H2
Ethylene C2H4
Benzene C6H6
Water H2O

PARCELSIZE size

Numerically, the dispersed phase is modeled using computational particles, otherwise known as parcels. A parcel is defined as a collection of physical particles with the same diameter and trajectory. The PARCELSIZE keyword sets the number of physical particles in each parcel.

When the NOZZLEVOL keyword is used, for pulse injection the number of physical particles in a parcel is computed automatically. This will overwrite the value specified with the PARCELSIZE keyword, or vice versa, depending on the order of the keywords in the file.

In this document, unless a particle is specifically referred to as a physical particle, the word "particle" should be taken to mean a computational particle, or parcel.

PDENSITY part_rho

This keyword sets the physical particle density in g/cm3, and must be specified. This density value is used for all particles, from all nozzles.

P_SPEC_HEAT part_cp

This keyword sets the particle specific heat in J/(kg-K), for use in computing temperature/energy effects. Currently this keyword must be specified, unless TWOWAYCOUPLE ALL NOHEAT is used, with a non-zero value for part_cp.

TURBULENCE flag

This keyword specifies whether or not turbulent dispersion should be modeled when computing particle trajectories. The input flag must be either 0 or 1, as follows.

    flag   Meaning
0 Ignore turbulent dispersion.
1 Include turbulent dispersion using a continuous random walk model. This option is currently only available when the SST turbulence model is used for the continuous-phase solution.

GRAVITY gx gy gz

The GRAVITY keyword may be used to include gravitational effects on the particles. The input values gx, gy, and gz are the Cartesian components of the gravitational acceleration vector, in m/s2.

TIMESTEP [ADAPTIVE cmin ctar cmax | SUBCYCLE n] dt

For one-way coupling, this keyword sets the size of the time step to be used for the dispersed-phase solution. For two-way coupling, this keyword has no effect. The time step for the dispersed-phase solution is automatically set to the value being used for the continuous-phase solution.

If the ADAPTIVE option is not used, the time step is determined by the input value dt, in seconds. If the ADAPTIVE option is used, local adaptive time steps are computed using the input values of cmin, ctar, and cmax, defined as follows.

These adaptive local time step values are used in the dispersed-phase solution when updating particle positions and velocities, and do not depend on the input value dt. However, the specified dt value is still used to determine the number of particles to inject at the current iteration for continuous injection mode. (This may be a bug.)

The SUBCYCLE option applies to structured grids only, and ...

RESTART {ZONE izone | ALL}

This keyword is used to restart from an existing multi-phase solution, either in a specified zone or all zones. Multiple RESTART keywords may be used to specify that a restart should be done in multiple zones.

TRACK {XYZ | VEL} [SKIP freq {PART | ITER}]

Particle tracking data may be computed and written to a formatted ASCII file for use in post-processing. Either particle position (the XYZ option) or velocities (the VEL option) may be recorded, but not both.

By default, tracking data is recorded for each particle at each iteration, and thus the resulting file may grow very large. Use of the SKIP option is strongly recommended. Specifying SKIP freq PART will only write data to the file for every freq'th particle, while SKIP freq ITER will write data every freq'th iteration. You can specify frequencies for both particles and iterations by using the TRACK keyword twice.

Particle position data is written to the file fort.48, and velocity data is written to fort.49. When tracking particle positions, each line in the file consists of the following data:

    Columns   Data
1-3 Zone number containing the particle
4-11 Particle number
12-24 Accumulated time since the start of the calculation
25-34 Cartesian x coordinate
35-44 Cartesian y coordinate
45-54 Cartesian z coordinate

Velocity data is written in the same format, with the Cartesian velocity components of the particle u, v, and w replacing the coordinates x, y, and z.

FLUXCOMPUTE
   COORD_PLANE A B C D
   ...
ENDFLUXCOMPUTE

The FLUXCOMPUTE keyword block is used to specify arbitrary planar surfaces at which particle data may be computed, and written to files for later post-processing. A planar surface is defined using the COORD_PLANE keyword, where A, B, C, and D are the coefficients for the equation defining the surface.

f(x,y,z) = Ax + By + Cz + D

The COORD_PLANE keyword may be repeated inside the FLUXCOMPUTE keyword block to define as many as 100 surfaces.

Data for each surface is written to a separate ASCII file, named fluxplanen.fvp, where n is a number from 1 to 100, corresponding to the surfaces defined using the COORD_PLANE keywords. At the beginning of each file the following header data is written.

   FVPARTICLES 2 1
   Tag Names
   0
   Variable Names
   5
   Diameter
   Uvel
   Vvel
   Wvel
   Temperature
This is followed by multiple pairs of data lines, with each pair corresponding to a particle that crosses the plane. In each pair, the first line contains just the integer 1. The second line contains the actual data, in the following format:

    Columns   Data
1-16 Cartesian x coordinate, grid units
17-32 Cartesian y coordinate, grid units
33-48 Cartesian z coordinate, grid units
49-64 Particle diameter, ft
65-80 x-component of particle velocity, ft/sec
81-96 y-component of particle velocity, ft/sec
97-112 z-component of particle velocity, ft/sec
113-128 Particle temperature, °R

The file format described above is consistent with the FieldView ASCII particle path format for stationary point data.

ENDFILE

This keyword signals the end of the multi-phase input.

Nozzle Set Keywords

NOZZLESET

This keyword defines the start of a NOZZLESET block. As noted above, currently only one nozzle set may be used. If multiple NOZZLESET/ENDNOZZLESET sections are present, the computed results will be in error.

NUMNOZ num

This keyword sets the number of injection nozzles in the current nozzle set, when nozzle locations are being specified using the NOZZLELINE or NOZZLESURF keyword. If NOZZLESURF is used, the number of nozzles num must be a perfect square.

If nozzle locations are specified using the NOZLOC keyword, any value specified using NUMNOZ is ignored. Instead, the number of nozzles in the set is determined by the number of NOZLOC keywords.

NOZZLELINE ZONE izone FIRSTPT x1 y1 z1 LASTPT x2 y2 z2

This keyword may be used to specify a set of nozzles distributed evenly along an arbitrary straight line. The value izone specifies the zone containing the nozzles, and (x1, y1, z1) and (x2, y2, z2) define the end points of the line.

The NOZZLELINE keyword must follow the NUMNOZ keyword for the current nozzle set, and may not be used together with NOZZLESURF or NOZLOC.

NOZZLESURF ZONE izone {X xloc YBOUND y1 y2 ZBOUND z1 z2 | \
                       Y yloc XBOUND x1 x2 ZBOUND z1 z2 | \
                       Z zloc XBOUND x1 x2 YBOUND y1 y2}

This keyword may be used to specify a set of nozzles distributed evenly in a constant x, y, or z rectangular region, where x, y, and z are the Cartesian coordinate directions. The value izone specifies the zone containing the nozzles. For a constant x region, the option X is used, with xloc defining the x-location, and the coordinates specified with YBOUND and ZBOUND defining the y and z limits of the region. Constant y and z regions are defined similarly.

In the specified rectangular region, the same number of nozzles will be distributed evenly in both directions. Note that the number of nozzles, specified using the NUMNOZ keyword, must thus be a perfect square.

The NOZZLESURF keyword must follow the NUMNOZ keyword for the current nozzle set, and may not be used together with NOZZLELINE or NOZLOC.

NOZZLEVOL ZONE izone [PERCELL num] IJK imin imax jmin jmax kmin kmax [UNIFORM pdens]

This keyword may be used to specify a set of nozzles distributed evenly in each cell of a structured grid. The value izone specifies the zone containing the nozzles, and num specifies the number of nozzles in each grid cell. The value num must be either 1 or 8; the default is 1.

For each grid point (i,j,k) in the region bounded by (imin,jmin,kmin) and (imax,jmax,kmax), inclusive:

The value pdens must be specified in pulse injection mode, and is ???.

The NOZZLEVOL keyword must follow the NUMNOZ keyword for the current nozzle set, and may not be used together with NOZLOC, NOZZLELINE, or NOZZLESURF.

NOZLOC ZONE izone XYZ xloc yloc zloc {INDEX i j k | CELL n}

The NOZLOC keyword may be used to specify the position of a single injection nozzle. The value izone specifies the zone containing the nozzle, and the values xloc, yloc, and zloc specify the Cartesian coordinates of the nozzle location. Multiple NOZLOC keywords may be used to specify multiple nozzle locations.

Wind-US will search the grid to find the indices (for structured grids) or cell (for unstructured grids) corresponding to the specified location. For structured grids, INDEX is used to specify the starting grid indices for the search, and for unstructured grids, CELL is used to specify the starting cell number. The specified index or cell values do not need to be exact, but should be close to the nozzle location for an efficient search.

The NOZLOC keyword may not be used together with NOZZLELINE or NOZZLESURF.

NOZZLETILT XY αxy XZ αxz

The axial direction of the nozzles in a nozzle set is defined using the NOZZLETILT keyword. The angles to be specified are shown in the figure below, where Rnoz represents the nozzle axis vector. Starting with the nozzle axis pointing in the +x direction, first rotate in the xy-plane toward the +y-axis by the angle αxy, then rotate "up" (i.e., toward the +z-axis) by the angle αxz.

Note - there appears to be a bug in the application of these angles in the current multi-phase implementation.

Figure showing nozzle tilt angles


HOLLOWCONE SCONE angle_mean SDCONE angle_thick

This keyword is used to specify the spray distribution pattern at the injection nozzles. Despite the keyword name, it's used for both hollow-cone and solid-cone injection.

For a hollow-cone injection pattern, angle_mean is the mean spray cone angle, and angle_thick is the thickness of the spray region, both specified in degrees. E.g., for hollow-cone injection with a thickness of 20°, with inner and outer cone angles of 90° and 110°, we'd specify

   HOLLOWCONE SCONE 100.0 SDCONE 20.0

As a special case, when angle_mean and angle_thick are equal, a solid conical injection is assumed, with a cone angle equal to angle_thick. E.g., for a 100° solid-cone injection pattern, specify

   HOLLOWCONE SCONE 100.0 SDCONE 100.0

The nozzle axis, and hence the axis of the conical spray pattern, is defined using the NOZZLETILT keyword. To inject particles in a single direction (i.e., not in a conical spray pattern), set both angles for the HOLLOWCONE keyword to 0.0, and use the NOZZLETILT keyword to define the injection angle.

INJECTMODE {PULSE | CONTINUOUS}

This defines the particle injection mode, which must be the same for all nozzles in all zones. When PULSE is specified, a one-time simultaneous injection of particles is done at the start of the calculation, with the number of particles specified by the NPARTICLE keyword. When CONTINUOUS is specified, particles are continually injected, at the particle mass flow rate specified by the STPMASS keyword.

NUMSPECIES LIQUID 1

This keyword may eventually be used to specify the index of the species, from the supplied database of hydrocarbon fuels, that is being injected. However, in the current multi-phase implementation, the information in that database is not used. The keyword must nevertheless be specified as shown, with a value of 1.

INJCTDISTR flag

This keyword defines the physical particle size distribution. The input flag must be either 0 or 1, as follows.

    flag   Meaning
0 All physical particles have the same diameter, specified using the PDIAMETER keyword.
1 Diameters of the physical particles follow the Sauter distribution, with the mean value specified using the PDIAMETER keyword.

PDIAMETER part_diam

This keyword sets the physical particle diameter in microns. When the Sauter particle size distribution is used, this is the mean physical particle diameter.

NPARTICLE num

For PULSE injection mode, this keyword specifies the number of parcels to be injected.

STPMASS flowrate

For CONTINUOUS injection mode, this keyword specifies the injection mass flow rate for each nozzle in the nozzle set, in kg/sec.

INJCTVEL velocity

The INJCTVEL keyword sets the particle injection velocity in ft/sec.

INJCTTEMP temperature

The INJCTTEMP keyword sets the particle injection temperature in K.

ENDNOZZLESET

This keyword defines the end of a NOZZLESET block.

Last updated 1 Apr 2016