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.
Currently (Wind-US version 3.25) a bug in subroutine addpsrc involving the addition of the heat of formation hto(lsp) for the added mass prevents two-way coupling from working correctly.
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.
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.
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 TemperatureThis 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:
where Δx, Δy, and Δz are the average values for the cell.
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.
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