The models described in this section are selected on the Fluid Pairs tab when creating a domain containing particles in CFX-Pre. For details, see Fluid Pair Models Tab in the CFX-Pre User's Guide.
Particles can be either fully coupled to the continuous fluid or can be one-way coupled. Fully coupled particles exchange momentum with the continuous phase, enabling the continuous flow to affect the particles, and the particles to affect the continuous flow.
Full coupling is needed to predict the effect of the particles on the continuous phase flow field but has a higher CPU cost than one-way coupling. One-way coupling simply predicts the particle paths as a post-process based on the flow field and therefore it does not influence the continuous phase flow field. For details, see Interphase Transfer Through Source Terms in the CFX-Solver Theory Guide.
The choice of one-way or full coupling for particles depends on the mass loading, that is, the ratio of the mass flow rate of particles to the mass flow rate of fluid. One-way coupling may be an acceptable approximation in flows with low mass loadings where particles have a negligible influence on the fluid flow. If the particles influence the fluid flow significantly, then you should use full coupling.
To optimize CPU usage, you can create two sets of identical particles. The first smaller set should be fully coupled and is used to enable the particles to influence the flow field. The second larger set should use one-way coupling and provides a more accurate calculation of the particle volume fraction as well as local forces on walls. When postprocessing these types of cases, you should not, for example, sum the forces on the wall from both sets of particles because each set fully represents all the particles.
The CPU cost of tracking particles is proportional to the number of particles tracked multiplied by the number of times tracked. One-way coupled particles are tracked only once, at the end of the solver run. The number of times fully coupled particles are tracked depends on the iteration frequency set on the Solver Control tab and the number of iterations required for the simulation to converge.
You can define multiple sets of one-way coupled particles without affecting the flow field. For example, if you were conducting a parametric study with various different particle sizes, you can create multiple particle materials with the same properties and then use each one to define a set of particles with different diameters. This is not true of fully coupled particles, because each set influences the flow field.
There are three ways in which the drag forces between the continuous phase and the particle phase can be modeled:
Use the Schiller-Naumann, Ishii-Zuber, or Grace correlations.
Use Particle Transport Drag Coefficient and specify the drag coefficient using one of the following options:
Drag Coefficient - specify a constant value (CEL expressions are not permitted)
User Defined - specify a drag correlation using a particle user routine. See Particle User Source Example for an example of how to do this.
Set the drag to
None
and set your own drag force using a particle user routine.
A description of these particle models is available in Interphase Drag for the Particle Model, along with models for Euler-Euler flows.
This example is a basic routine used to calculate the particle drag coefficient using the Wen Yu Drag Model. The Schiller-Naumann correlation is used with a modified particle Reynolds number and a power law correction, both functions of the continuous phase volume fraction. The input arguments to the routine are Particle Reynolds number and volume fraction of the particle phase. The Fortran subroutine returns the particle drag coefficient, C_d. You can copy the routine (pt_drag_factor.F) from the <install_dir>\examples\UserFortran directory.
The Fortran for this example is:
#include "cfx5ext.h" dllexport(pt_drag_factor) SUBROUTINE PT_DRAG_FACTOR (NLOC,NRET,NARG,RET,ARG,CRESLT, & CZ,DZ,IZ,LZ,RZ) CC CC -------------------- CC Input CC -------------------- CC CC NRET - number of components in result CC NARG - number of arguments in call CC ARG() - (NARG) argument values CC CC -------------------- CC Modified CC -------------------- CC CC Stacks possibly. CC CC -------------------- CC Output CC -------------------- CC CC RET() - (NRET) return values CC CC -------------------- CC Details CC -------------------- CC CC====================================================================== C C ------------------------------ C Preprocessor includes C ------------------------------ C C ------------------------------ C Global Parameters C ------------------------------ C C ------------------------------ C Argument list C ------------------------------ C INTEGER NLOC,NARG,NRET C REAL ARG(NLOC,NARG), RET(NLOC,NRET) C CHARACTER CRESLT*(*) C INTEGER IZ(*) CHARACTER CZ(*)*(1) DOUBLE PRECISION DZ(*) LOGICAL LZ(*) REAL RZ(*) C C ------------------------------ C External routines C ------------------------------ C C ------------------------------ C Local Parameters C ------------------------------ C C ------------------------------ C Local Variables C ------------------------------ C C ------------------------------ C Stack pointers C ------------------------------ C C======================================================================= C C --------------------------- C Executable Statements C --------------------------- C C======================================================================= C C Argument variables stack: C ------------------------- C Reynolds number : RE_PT = ARG(1,1) C Particle volume fraction : VOLFRN_PT = ARG(1,2) C C Return variables stack: C ----------------------- C Drag coefficient : CD = RET(1,1) C C======================================================================= C C----------------------------------------------------------------------- C Calculate the momentum source and source term coefficient C----------------------------------------------------------------------- C CALL USER_CD(RET(1,1),ARG(1,1),ARG(1,2)) END C SUBROUTINE USER_CD(CD,RE_PT,VOLFRN_PT) C C======================================================================= C Calculate the momentum source and source term coefficient C======================================================================= C C ------------------------------ C Preprocessor includes C ------------------------------ C #include "cfd_sysdep.h" #include "cfd_constants.h" C C ------------------------------ C Argument list C ------------------------------ C REAL CD, RE_PT, VOLFRN_PT C C ------------------------------ C Local variables C ------------------------------ C REAL VOLFRN_C, RE_S C C ------------------------------ C Executable statements C ------------------------------ C C---- Clip continuous phase volume fraction [0,1] C VOLFRN_C = 1. - MAX(0.0,MIN(1.0,VOLFRN_PT)) C C---- Correct Reynolds number C RE_S = RE_PT*VOLFRN_C C C---- Calculate the Schiller-Naumann drag coefficient C IF (RE_S .LT. 1000.) THEN CD = 24./RE_S*(1+0.15*RE_S**0.687) ELSE CD = 0.44 ENDIF C C---- Correct drag coefficient to account for high particle volume C loading C CD = VOLFRN_C**-1.65*CD C END
For details, see Particle User Sources.
Virtual mass force can be modeled with the specification of a virtual mass coefficient. The virtual mass force is proportional to the continuous phase density, hence, is most significant when the dispersed phase density is less than the continuous phase density. Also, by its nature, it is only significant in the presence of large accelerations, for example, in transient flows, and in flows through narrow restrictions. Additional information on the implementation and usage for this model is available in Virtual Mass Force. For particle transport, the virtual mass coefficient defaults to 0.5.
Turbulent dispersion forces result in additional dispersion of particles
from high volume fraction regions to low volume fraction regions due to
turbulent fluctuations. The Particle Dispersion
model
is available to account for the turbulent dispersion force. This force is
only important for small particles (approximately smaller than 100 microns
for water drops in air) and when you want to see the dispersion. For
example, even when the particle tracks are affected by turbulence, the
effect of the particles on the continuous phase is usually the important
process, and this is not affected by the turbulence.
The turbulent dispersion force is only active in regions where the turbulent viscosity ratio is above the value specified by Eddy Viscosity Ratio Limit. The default value is 5.
Note: Turbulent dispersion can only be used if a drag force is specified. Therefore, it is not possible to combine turbulent dispersion with a user-specified momentum source term for the drag.
The pressure gradient force is small for particles of much higher density than the continuum fluid and need not be included when this is the case. For details, see Pressure Gradient Force in the CFX-Solver Theory Guide.
The only available heat transfer option between the continuous phase and the
particles is Ranz Marshall
. The Ranz Marshall correlation
is also applicable to Eulerian multiphase flow. For details, see Particle Model Correlations for Overall Heat Transfer Coefficient.
For details, see Particle User Sources.
If Opaque
is chosen, the radiation transfer can be
either one-way coupled or fully coupled (if the overall coupling is fully
coupled). For details, see:
When a reacting particle case has been defined, two parameters exist to account for the change as the reacting particle changes its composition. For details, see Multiphase Reactions and Combustion. Base Emissivity and Blended Emissivity must both be supplied. The present model assumes a linear variation in the emissivity from the reference material (for example, raw coal) value to the value of the reaction product (for example, char). For details, see Radiative Preheating in the CFX-Solver Theory Guide.
There are a number of choices available for mass transfer in Ansys CFX. The
choices available for mass transfer depend on the type of particles that have
been selected for the simulation. For any particle, simple mass transfer can be
modeled with the Ranz Marshall
model. Mass transfer from
liquid drops can be modeled with the Liquid Evaporation
Model
. Coal combustion also uses mass transfer, but is set up
using multiphase reactions, so no component pair information should be set at
this point. For details, see Multiphase Reactions and Combustion.
Important: Regardless of the mass transfer option chosen, whenever mass transfer takes place, the particle diameter is automatically changed to reflect the change in mass.
This option is analogous to Additional Variable species transfer, and uses the Ranz Marshall correlation on the continuous phase side of the interface and a zero resistance on the particle phase side of the phase interface. For details, see Ranz-Marshall Correlation. A mass fraction equilibrium ratio can be set, analogous to that described in the multiphase mass transfer section. For details, see Equilibrium Models in the CFX-Solver Theory Guide.
This option is used to model evaporation of a liquid species in particles
to the respective gas phase species in the continuous phase. This model is
designed for evaporation of a single species and commonly used for spray
dryer and oil combustion applications. However, it can be extended to
multi-component evaporation. For details, see Extension of the Liquid Evaporation Model in the CFX-Solver Theory Guide. A template CCL
outline has been provided for general liquid evaporation. The
evaporating_drops.ccl file (located in the
etc/model-templates/
directory of your
Ansys CFX installation) can be selected when starting a new simulation using
the Library User mode. The template sets up a continuous gas phase
containing H2O
and Air Ideal Gas
,
and defines a homogeneous binary mixture for the phase change of
Water at 25 C
to H2O
. It also
creates and specifies a domain named Domain 1
that
includes the continuous and particle phases. Templates have also been
provided for the Spray Dryer
and Oil
Combustion
. For details, see:
To complete the domain specification, you would need to create a material to define the particle phase (step 1, below) and import an appropriate mesh.
Should you choose not to use the template, a general outline of the steps
to set up a liquid evaporation model, including Water at 25
C
evaporating from a particle into a gas mixture of
H2O
and Air Ideal Gas
follows.
You can substitute the materials below for the materials you are modeling in
your simulation.
Create a pure substance or variable composition mixture that will be the particle phase. In the case of a variable composition mixture, it should contain the solid material(s) from which water evaporates, and the evaporating liquid (
Water at 25 C
).Create another variable composition mixture that will be the continuous fluid. This mixture must include the gas phase component of the evaporating liquid selected in step 1 (
H2O
from theGas Phase Combustion
material group), as well as a constraint material (Air Ideal Gas
).Create a homogeneous binary mixture to set the mass transfer properties of the evaporating material. For the case of water, the homogeneous binary mixture contains
Water at 25 C
andH2O
. The rate of evaporation in the liquid evaporation model is controlled by the binary mixture settings defined in the Material details view. Information on the creation of homogeneous binary mixtures is available in Material Details View: Homogeneous Binary Mixture in the CFX-Pre User's Guide.When creating the domain, define a fluid (or select an existing fluid) and set the Morphology > Option to
Continuous Fluid
.Define a particle and set the Morphology > Option to
Particle Transport Fluid
.On the Fluid Models form, set Heat Transfer Model to
Fluid Dependent
.When setting up the Fluid Specific Models for the continuous mixture set
H2O
to use aTransport Equation
andAir Ideal Gas
toConstraint
. Set Heat Transfer to useThermal Energy
for the continuous phase, andParticle Temperature
for the particle phase.On the Fluid Pairs tab, set Heat Transfer to
Ranz Marshall
(to enable interphase heat transfer). Under Component Pairs, enable the check mark for H2O | Water at 25C, and set Option toLiquid Evaporation Model
.The
Latent Heat
setting for Latent Heat can be selected if the reference enthalpies of the liquid and gas materials are inconsistent.
The evaporation of liquid from droplets containing a solid substrate is a
common industrial application. The
spray_dryer.ccl template is the same as the
general liquid evaporation model, but includes the particle phase
Coffee Mixture
, which includes a new material
Coffee
and Water at 25 C
. For
details, see Liquid Evaporation Model.
The simulation of evaporating oil droplets is set up in a very similar way
to the liquid evaporation model, with a Modification
parameter named Light Oil
, which is enabled to control
the physical properties used in calculating the heat and mass transfer from
the droplet. For details, see Liquid Evaporation Model. This parameter
should be set for all oil evaporation simulations. Enabling combustion
involves creating a reaction for the gas phase mixture and then defining the
gas phase mixture as a reacting mixture when setting up its material
properties. For details, see Material Details View: Reacting Mixture in the CFX-Pre User's Guide.
The oil_combustion.ccl template contains the
material JetA Liquid
(as the liquid oil) as a pure
substance particle that evaporates into its gas phase equivalent
JetA
. JetA
is part of the gas
phase variable composition mixture named Gas Mixture
.
The Gas Mixture
material itself is defined using a
single-step reaction JetA Oxygen WD1
(a
reaction that specifies JetA
and oxygen as reactants,
and carbon dioxide and water as products, with an additional non-reacting
N2
component). A homogeneous binary mixture,
JetAlg
, exists to model the evaporation of
JetA Liquid
to JetA
.
A domain named Domain 1
is set up in a very similar
way to a general liquid evaporation specification, with the Light
Oil Modification
set for the mass transfer of JetA
Liquid
to JetA
. Additional information
on the Light Oil
treatment is available in Light Oil Modification in the CFX-Solver Theory Guide.
In general, you can select From Material Properties
for the Latent Heat option. The reference enthalpies
will be used to determine latent heat if this option is selected. You can
optionally set a latent heat by entering a value (for example, if the
reference enthalpies of the liquid and gas materials are not
consistent).
The Particle User Source functionality allows you to use a User Fortran subroutine to calculate sources of momentum, heat and mass transfer. General information on creating user routines is available in User Fortran.
In the
<install_dir>\examples\UserFortran
directory, you can find routines and CCL templates to calculate sources for
momentum (pt_mom_source.F,
pt_mom_source.ccl), heat
(pt_heat_source.F,
pt_heat_source.ccl), and mass transfer
(pt_mass_source.F,
pt_mass_source.ccl). These routines can
be used as starting points for your own modifications. A particle user routine
example is presented later in this section.
To use a particle user routine, you should first write the Fortran routine and
create a shared library. Next, you should create a User Routine
(Insert > User Routine)
of type Particle User Routine
in CFX-Pre. When defining
the domain, particle user sources are selected by selecting the
Particle User Source check box for the appropriate
quantity, and selecting the routine from the drop-down list. For details,
see:
The Argument Variables list should contain the fluid and
particle variables needed to calculate the source (help on how to use variable
names in Ansys CFX, as well as a list of all variables, can be found in the
VARIABLES
file, in the
/etc/
directory of your Ansys CFX
installation).
The Return Variables list can only contain four quantities: the source itself, its derivative with respect to the associated variable in the particle, its derivative with respect to the associated variable in the fluid, and for mass sources only its derivative with respect to the temperature in the particle. The latter three quantities are optional, and the derivative with respect to the associated variable in the fluid can only be used when the overall coupling and the coupling set for the user source are both set to Fully Coupled. For momentum sources the associated variable is velocity, for heat transfer the associated variable is temperature, and for mass transfer the associated variable is mass fraction of species. Additional information on general source specification is available in Sources in Basic Capabilities Modeling.
Important: This example is a basic routine used to calculate a Schiller-Naumann
drag force and is intended for demonstration purposes. If you want to
use this example, you should set the Drag Force
option to None
on the Fluid
Pairs tab.
This example uses a subroutine to calculate a user drag force between a
particle phase Red Sand
, and the fluid
AirSTP
. The Fortran subroutine returns a source and
a source coefficient with respect to the particle and fluid. The input
arguments to the routine are:
Mean particle diameter, velocity, particle Reynolds number and slip velocity for the particle
Red Sand
.Density and velocity for the fluid
AirSTP
.
You can copy the routine
(pt_mom_source.F) from the
<install_dir>\examples\UserFortran
directory. The Fortran for this example is:
#include "cfx5ext.h" dllexport(pt_momsource) SUBROUTINE PT_MOM_SOURCE (NLOC, NRET, NARG, RET, ARG, CRESLT, & CZ,DZ,IZ,LZ,RZ) CC CD User routine: template for particle user routine CC CC -------------------- CC Input CC -------------------- CC CC NRET - number of components in result CC NARG - number of arguments in call CC ARG() - (NARG) argument values CC CRESLT - Result CC CC -------------------- CC Output CC -------------------- CC CC RET() - (NRET) return values CC CC -------------------- CC Details CC -------------------- CC CC====================================================================== C C ------------------------------ C Argument list C ------------------------------ C INTEGER NLOC,NARG,NRET C REAL ARG(NLOC,NARG), RET(NLOC,NRET) C CHARACTER CRESLT*(*) C INTEGER IZ(*) CHARACTER CZ(*)*(1) DOUBLE PRECISION DZ(*) LOGICAL LZ(*) REAL RZ(*) C C ------------------------------ C Local Variables C ------------------------------ C C======================================================================= C C --------------------------- C Executable Statements C --------------------------- C C======================================================================= C C Argument variables stack: C ------------------------- C C Particle diameter : DIAM_PT = ARG(1,1) C Particle velocity : VEL_PT = ARG(1,2:4) C Reynolds number : RE_PT = ARG(1,5) C Slip velocity : SLPVEL_PT = ARG(1,6) C Fluid density : DENSITY_FL = ARG(1,7) C Fluid velocity : VEL_FL = ARG(1,8:10) C C Return variables stack: C ----------------------- C C Source term : SOURCE = RET(1,1:3) C Source coefficient : COEF_PT = RET(1,4) C Source coefficient : COEF_FL = RET(1,5) C C======================================================================= C C----------------------------------------------------------------------- C Calculate the momentum source and source term coefficient C----------------------------------------------------------------------- C CALL USER_MOMENTUM_SOURCE (RET(1,1),RET(1,4),RET(1,5), & ARG(1,1),ARG(1,2),ARG(1,5),ARG(1,6), & ARG(1,7),ARG(1,8)) C END SUBROUTINE USER_MOMENTUM_SOURCE (SOURCE,COEF_PT,COEF_FL, & DIAM_PT,VEL_PT,RE_PT,SLPVEL_PT, & DENSITY_FL,VEL_FL) C C======================================================================= C Calculate the momentum source and source term coefficient C======================================================================= C C ------------------------------ C Preprocessor includes C ------------------------------ C #include "cfd_sysdep.h" #include "cfd_constants.h" C C ------------------------------ C Argument list C ------------------------------ C REAL SOURCE(3), COEF_PT, COEF_FL, & DIAM_PT, VEL_PT(3), RE_PT, SLPVEL_PT, & DENSITY_FL, VEL_FL(3) C C ------------------------------ C Local variables C ------------------------------ C REAL AREA, CD, FACT C C ------------------------------ C Executable statements C ------------------------------ C C---- Calculate the particle reference area C AREA = PI*DIAM_PT**2*QUARTER C C---- Calculate the Schiller-Naumann drag coefficient C IF (RE_PT.LT.1000.) THEN CD = 24./RE_PT*(1+0.15*RE_PT**0.687) ELSE CD = 0.44 ENDIF C C---- Calculate the momentum source term and linear coefficients C FACT = HALF*DENSITY_FL*AREA*CD*SLPVEL_PT C SOURCE(1) = FACT*(VEL_FL(1)-VEL_PT(1)) SOURCE(2) = FACT*(VEL_FL(2)-VEL_PT(2)) SOURCE(3) = FACT*(VEL_FL(3)-VEL_PT(3)) C COEF_PT = -FACT COEF_FL = FACT C END
Outlined instructions for the Fortran file is available in Creating the Shared Libraries.
The specification of the input and output variables occurs in CFX-Pre.
The definition for the user routine is created, setting the
Option to Particle User
Routine
, setting the calling name to
pt_momsource
and specifying the
Library Name and Library Path
as appropriate.
On the Fluid Pairs form in the Mass and
Momentum frame, Particle User Source
is
created and chosen from the drop-down list.
The Argument Variables List contains the following variables:
Red Sand.Mean Particle Diameter
Red Sand.Velocity
Red Sand.Particle Reynolds Number
Red Sand.Particle Slip Velocity
AirSTP.Density
AirSTP.Velocity
The Return Variables List contains all of the available options:
Source
Source Coefficient with respect to Particle Variable
Source Coefficient with respect to Fluid Variable