Scalar Field¶
Introduction¶
Scalar fields are continuous field variables that evolve according to the advection-diffusion-reaction equation. Within this framework, the time-evolution of the local scalar field concentration is governed by the host fluid’s motion through advection, the local concentration differences causing diffusion, and the processes occurring locally as reactions. Scalar fields are typically used to model species mixing and transport processes, like blending and dispersion; but this feature is also useful when modeling interfacial mass transfer processes, such as dissolution, dissolved gas transfer, and solids drying applications.
Download Sample File: Scalar Field
In the above Scalar Field model, the figure on the left shows a time-evolving velocity field in a 2000 L bioreactor. The figure on the right shows the time evolution of glucose concentration following a bolus addition at the top of the vessel. The fluid transport and scalar transport processes are solved in tandem. The glucose is homogenized over time due to the ongoing effects of advection and diffusion.
Scalar fields represent a continuous scalar value, or species concentration, defined at all points across the fluid domain. This means that all lattice voxels possess a local scalar field concentration (including zero concentration). Each scalar field represents a single species, such that the local value/magnitude of the scalar field characterizes the local concentration of the species represented. The magnitude of the species can be can be mensurated in moles, volume, or mass.
Scalar fields can be coupled to the fluid to inform the local fluid density and viscosity. They can also occupy the particles; they can be coupled to bubbles or particles to describe mass transfer processes and reaction/dissolution processes. As such, species contained within the fluid can interact with species in the particles via particle-scalar coupling. Multiple scalar fields can participate in reactions, with local reaction rates informed by the local fluid properties and species concentrations.
Scalar fields are defined using the parent-child relationship. The parent defines the overall properties of the scalar field, such as scalar field representation, species diffusion coefficient, advection scheme, scalar field density, etc. The parent also defines how species are added to the system along the boundary condition surface and/or within any child geometry. Children geometry define the shape, geometry, and extent of any localized species addition/removal during the simulation. Children geometries can be added to scalar family sets via the Add Geometry form on the context-specific toolbar.
Download Sample File: Scalar Recirculation
In the above Scalar Recirculation model, the figure on the left shows a time-evolving scalar field in a recirculating vessel. The recirculation intake is positioned on the bottom left of the vessel, while the return is positioned on the top right. The figure on the right shows the time evolution of scalar concentration realized at the recirculation intake. The fluid transport and scalar transport processes are solved in tandem.
The time evolution of each scalar field within each voxel is defined by the advection-diffusion equation reaction:
where \(c_{i j}\) is the concentration of species \(i\) within fluid voxel \(j\), \(D_i\) is the species diffusion coefficient, \(\vec{V}_j\) is the fluid velocity, \(\dot{n}_{i j}\) is the local gas-liquid mass transfer rate, and \(\dot{r}_{i j}\) is the local aqueous reaction rate. The advection-diffusion equation is advanced in tandem with the fluid flow model, using the same fluid lattice and simulation time step. As such, the velocity \(\vec{V}_j\) evoked in the equation is the local and instantaneous fluid velocity, while the species concentration \(c_{i j}\) computed from the equation can be used as input to the flow model. In this manner, changes to the local fluid density or rheology due to changes in the local species concentration can be modeled explicitly via a custom fluid viscosity UDF.
In principle, the code can support an arbitrary number of scalar fields and associated species concentrations. In practice, however, each field introduces a 10–20% reduction in runtime, relative to a system with no scalar fields. Although these effects can be minimized by selecting a larger update frequency, effort should be made to minimize the number of scalar fields included in the model.
Specifying Species Concentrations¶
Species can be added to a scalar field using (i) a children geometry, (ii) an inlet boundary condition, (iii) a background injection, (iv) reaction kinetics, or (v) interfacial mass transfer.
A child geometry injection represents the addition of species onto the scalar field within a sub-volume of the fluid domain. Fluid flow sweeps this added species from the initial injection region within the child geometry to other regions in the system.
An inlet boundary condition represents the concentration of species along the boundary condition surface. Flow through the boundary condition advects species from the initial injection region along the boundary condition surface to other regions in the lattice.
A background injection produces a uniform distribution of species across the full fluid field. This addition, which is applied at the start of a process, represents a system with an initially well-mixed concentration.
Reaction kinetics can be used to produce (or consume) species across the scalar field. Reactions are modeled on a voxel-by-voxel basis. The ongoing effects of advection and diffusion move species produced in one voxel to other regions of the lattice.
Interfacial mass transfer is used to model mass transfer across a solid/liquid, liquid/liquid, or gas/liquid interface. For two-fluid Eularian-Eularian immiscible fluids, this transfer is handled via the scalar transfer functionality. For a system with Lagrangian particles, this is handled via particle scalar coupling.
When using a child geometry injection, users have three options for adding geometry to the particle parent: (i) via the Add Geometry form, which opens automatically when a new particle parent is created; (ii) by importing geometry through the Assembly Explorer; or (iii) by importing geometry from a spreadsheet. See the Geometry page for more details.
For an already-existing parent component, you can add children via the Add Geometry command found on the Context Specific Toolbar. Children geometry can also be extracted from an assembly file.
Property Grid¶
General
¶
- Base Units
This parameter defines the base unit used to characterize the local species concentration. The base unit of the species can be specified in terms of moles, volume, or mass.
- Moles
Defines the local species concentration in terms of moles. Within this framework, species concentrations will be defined in terms of mols/liter and any species addition or removal rates will be defined in terms of mols/second. This unit representation is commonly used when modeling reacting systems.
- Volume
Defines the local species concentration in terms of volume (\(m^3\)). Within this framework, species concentrations will be defined in terms of volume fraction relative to the fluid. Any species addition or removal rates will be defined in terms \(m^3\)/second. This unit representation is commonly used with passive mixing and systems with density-driven stratifications. The volume representation is incompressible, meaning the maximum volume fraction realized in each voxel will not exceed one. This limit on occupancy applies to systems with multiple scalar fields, as the sum of all volume fractions in a given voxel will not exceed one.
- Fluid Density Option
This option allows the user to specify a unique density associated with the scalar field. Within each voxel, the effective local density \(\rho_e\) is then calculated from the corresponding local scalar field volume fraction \(\alpha_s\) via:
\[\rho_e = \rho_f (1 - \alpha_s) + \rho_s (1 - \alpha_s)\]where \(\rho_f\) is the density of the base fluid. This functionality is useful when modeling two-fluid miscible systems with differing densities. This workflow is illustrated in the Multi Fluid Model.
- Density
The density of the fluid represented by the scalar field. Larger density differences between the two fluids can lead to stratification and long blend times. See reference publication.
- Mass
Defines the local species concentration in terms of mass. Within this framework, species concentrations will be defined in terms of mass/liter and any species addition or removal rates will be defined in terms of mass/second. This unit representation is commonly used when modeling dissolving systems.
- Diffusion Coefficient Type
There are two options for defining the species diffusion coefficient: Constant and UDF.
- Constant
The diffusion coefficient is a constant value that is uniform through the simulation domain.
- Diffusion Coefficient
m 2 /s | Diffusion coefficient of the scalar through the base fluid. Typical liquid-liquid diffusion coefficients range from \(10^{-9}\) to \(10^{-8}\) \(m^2/s\), depending on temperature and composition. Typical gas-gas diffusion coefficient ranges from \(10^{-6}\) to \(10^{-5}\), again depending on temperature and composition.
- UDF
The diffusion coefficient is a user-defined function that can be time-varying and non-uniform.
- Diffusion Coefficient UDF
m 2 /s | This UDF defines the local species diffusion coefficient. One output must be defined within the UDF: a floating-point variable named
D
. This output variable defines the local species diffusion coefficient within the fluid. This is a voxel-based local UDF, calculated on a voxel-by-voxel basis using the local fluid properties.Download Sample File:
Diffusion Coefficient
Note
Scalar fields can be susceptible to numerical diffusion. Numerical diffusion occurs when the simulated fluid presents a higher diffusivity than the physical fluid. The effects of numerical diffusion can be minimized by reducing the simulation resolution, applying a flux limiter, or increasing the scalar field update interval. When running scalar fields in a simulation, resolution tests should be performed to ensure that the effects of numerical diffusion are negligibly small. This point is discussed in Application of flux limiters to passive scalar advection for the lattice Boltzmann method
If Immiscible Two Fluid is selected, the following setting will launch:
- Phase Containment
This setting specifies which fluid hosts the scalar field. Unless Interfacial Scalar Transfer is active, the scalar field will remain contained within the selected fluid phase throughout any advection and diffusion processes. Users can select either Fluid 1 or Fluid 2 as the host fluid for the scalar field.
- Off
No phase containment.
- Fluid 1
If selected, this fluid hosts the scalar field.
- Fluid 2
If selected, this fluid hosts the scalar field.
Initial Background Value
¶
This parameter defines the initial concentration of the species across the scalar field. The addition is applied at the start of a simulation and represents an initially well-mixed distribution.
- Specification
This parameter defines the units of measure applied to the background concentration. The specification can be either (i) a concentration or (ii) a number. The base unit defines which unit to apply to the specification. The relationship between the specification, base unit, and corresponding background concentration unit is summarized in the following table:
- Initial Background Value UDF
base units | This UDF defines the initial species background concentration. These values will be assigned uniformly to all fluid voxels. This is a System UDF.
Download Sample File:
Initial Background Value
If a Free Surface is present, the following section will launch:
Free Surface Boundary Condition
¶
- Flux Option
This setting defines the scalar flux boundary condition at the free surface. By default, the free surface acts as a zero-flux boundary condition, implying that species does not cross the interface. Alternatively, a non-zero-flux value can be specified, implying that scalar is transported across the interface. This interfacial transport rate is modeled on a voxel-by-voxel basis and can be a function of the local fluid properties, the local species concentration, and any global variables or parameters.
- No Flux
No flux across the free surface interface.
- Automatic
Convective flux across the free surface interface is modeled using a semi-empirical convective mass transfer coefficient:
\[\dot{q}'' = k_l(S_s C_g - C_l)\]where \(\dot{q}''\) is the scalar flux, \(k_l\) is the local convective mass transfer coefficient, \(S_s\) is the solubility of the gas in the (empty) headspace, \(C_g\) is the concentration of species in the (empty) headspace, and \(C_l\) is the local concentration of the species in the fluid. The units on the flux and concentration are set by the base units. The local convective mass transfer is calculated from the local Sherwood number, \(Sh\), via:
\[Sh \equiv \frac{kl \Delta x}{D} = CR e^{1/2} Sc^{1/3}\]where \(\Delta x\) is the lattice spacing, \(D\) is the scalar diffusion coefficient, \(C\) is a semi-empirical cofactor, \(Re\) is the local Reynolds number, and \(Sc\) is the local Schmidt number. The local Reynolds number is calculated from:
\[Re = \frac{V \Delta x}{\nu}\]where \(V\) is the local fluid velocity and \(\nu\) is the local kinematic viscosity. The diffusion coefficient \(D\) and kinematic viscosity \(\nu\) are set to user-defined values. Likewise, the local fluid velocity \(V\) and local species concentration \(C_l\) are calculated at runtime. The corresponding semi-empirical co-factor \(C\), dimensionless solubility \(S_s\), and (empty) headspace concentration \(C_g\) are user-defined.
- Cofactor
dimensionless | Semi-empirical co-factor linking local Sherwood number to local Reynolds number and Schmid number. This parameter is typically between 0.1–1. See additional resources.
- Dimensionless Solubility
dimensionless | Dimensionless solubility of the species in the empty headspace.
- Head Space Concentration
mol/L | Concentration of the species in the empty headspace. The headspace concentration is assumed to be constant and well-mixed.
- UDF
Transport across the interface is modeled via a user-defined function.
- Interface Flux UDF
mol/(m 2 \(\cdot\) s) | This UDF defines the species flux rate along the free surface interface. One output must be defined within the UDF: a floating-point variable named
flux
. This output variable defines the local interfacial species transport rate. Positive values implyflux
entering the fluid. Negative values implyflux
leaving the fluid. This is a voxel-based local UDF, calculated on a voxel-by-voxel basis using the local fluid properties. The flux specified in this UDF will only be applied along cells interacting with the free surface interface.Download Sample File:
Injection
If a child geometry is present, the following section will launch:
Child Geometry Injection
¶
This parameter defines how species concentrations are modified inside the child geometry attached to the scalar field parent. Options are available to specify a set species concentration or a set species addition/removal rate. These values can be defined to occur either (i) across the interior volume of the child geometry or (ii) along the surface of the child geometry.
- Specification
This parameter defines the units of measure applied to the species concentration. The specification can be either a concentration (per unit volume), a number, or a rate. The base unit defines which unit to apply to the specification. The relationship between the specification, base unit, and corresponding species concentration unit is summarized in the following table:
- Per Unit Volume
Species addition is defined on a per-volume basis (concentration). The injection specification may be mol/L, volume fraction, or g/K, depending on the base units. This option is useful when modeling two miscible fluids with a set initial configuration.
- Number
Species addition is defined on a number basis. The injection specification may be mol, m 3, or g, depending on the base units. This option is useful when modeling pulse additions of species to the system.
- Rate
Species addition is defined on a rate basis. The injection specification may be mol/s, m 3 /s, or g/s, depending on the base units. This option is useful when modeling feed additions of species to the system.
- UDF
Species addition is defined on a per-volume basis (concentration) per a user-defined expression.
- Injection Location
This parameter defines where the species addition/removal will occur with reference to the child geometry.
- Inject In Volume
The scalar boundary condition is imposed on all points contained inside the geometry.
- Inject At Surface
The scalar boundary condition is imposed on the surface of the child geometry.
- Child Geometry Value UDF
base units | This UDF defines how the species concentration will be added (or removed) from the system along the child geometry. The behavior of the system is informed by the injection specification. The UDF output units are determined by scalar field background specification. This can be either a System UDF or a Local UDF, depending on the Child Geometry Injection Specification.
Download Sample File:
Child Geometry UDF
If the Child Geometry Injection Specification is set to Per Unit Volume (concentration) or Number, the values defined in the UDF will overwrite any existing scalar field values within (or along) the child geometry. When applied at the start of the simulation, it can establish a non-uniform initial species distribution. When applied later, it can simulate a bolus-type species addition. This configuration uses a System UDF.
If the Child Geometry Injection Specification is set to Rate, the UDF-defined rate will be superimposed onto any existing scalar field values within (or along) the child geometry. The UDF specifies the rate at which the local species concentration changes over time. This setup models processes like pouring, where an ongoing addition supplements the local species concentration. This configuration also uses a System UDF.
If the Child Geometry Injection Specification is set to UDF, the values defined in the UDF will overwrite any existing scalar field values within (or along) the child geometry. The UDF defines the local and instantaneous concentration across the child geometry over time. One output must be specified: a floating-point variable named
{scalar}
, where {scalar} is the dynamic name of the scalar field. This configuration uses a local UDF, calculated on a voxel-by-voxel basis within the child geometry using local fluid properties.
- Injection Time Span
This setting defines the duration of the child geometry addition.
- Entire Simulation
Maintains the Child Geometry UDF over the entire simulation. The UDF will be evaluated at each simulation time step.
- Impulse
Applies the Child Geometry UDF at a single time step. The UDF will be evaluated once at this set impulse time.
- Injection Impulse Time
Injection Impulse Time.
- Time Window
Applies the Child Geometry UDF over a user-defined time window. The UDF will be evaluated over the duration of this time window.
- Injection Window Start
Injection Window Start.
- Injection Window Stop
Injection Window Stop.
- Delayed Start
Following an initial delay, maintains the Child Geometry UDF over the entire simulation. The UDF will be evaluated at each simulation time step later than the time specified here.
- Injection Window Start
Injection Window Start.
- UDF
Offers a user-defined start and stop time.
- Injection Start Time UDF
s | This UDF defines the time at which to begin the addition process within the child geometry. This is a System UDF.
- Injection Stop Time UDF
s | This UDF defines the time at which to stop the addition process within the child geometry. This is a System UDF.
Download Sample File:
Injection Start & Stop Time
If a moving child geometry is present, the following section will launch:
Moving Injection Condition
¶
- Moving Child Geometry Value UDF
base units | This UDF defines how the species concentration will be added (or removed) from the system along the child geometry. The behavior of the system is informed by the injection specification. The UDF output units are determined by scalar field background specification. This is a System UDF.
Download Sample File:
Moving Child Geometry UDF
If a static inlet or outlet is present, the following section will launch:
Static Inlet Outlet Boundary Conditions
¶
- {Inlet/Outlet} Boundary Condition Type
This parameter defines which scalar field values or fluxes will be applied at each static inlet/outlet. Inlet and outlet boundary conditions are defined along two-dimensional surfaces. For each scalar field, users can enforce either a Dirichlet or Neumann boundary condition along the surface. A Dirichlet boundary condition is a fixed condition that defines a set scalar field value along the surface. A Neumann boundary condition defines the scalar field gradient normal to the surface. Scalar field boundary conditions can also be linked to model recirculating systems using a modified form of the Dirichlet boundary condition.
- Specified Value
This value is the Dirichlet boundary condition, which is a fixed value. This defines the connection of the species entering the system along the boundary condition surface. This is typically used for inlet boundary conditions. The units of this concentration are defined by the base unit.
- Zero Gradient
With a zero gradient, the concentration along the boundary condition surface is automatically calculated at runtime to match the concentration within the adjacent fluid. This setting is typically used to model outlet/outflow boundary conditions or recirculation intakes where the concentration is defined by upstream conditions.
- Zero Flux
With this flux, no species will cross the boundary condition surface. Interactions with the boundary condition surface will not add or remove species from the system.
- Recirculation
Recirculation is used to model recirculation loops and to connect species flux exiting the system via one outlet to species reentering via one or more inlets.
If a moving inlet or outlet is present, the following section will launch:
Moving Inlet Outlet Boundary Conditions
¶
- Moving Inlet/Outlet Boundary Condition Type
This parameter defines which scalar field values or fluxes will be applied at each moving inlet/outlet. Inlet and outlet boundary conditions are defined along two-dimensional surfaces. For each scalar field, users can enforce either a Dirichlet or Neumann boundary condition along the surface. A Dirichlet boundary condition is a fixed condition that defines a set scalar field value along the surface. A Neumann boundary condition defines the scalar field gradient normal to the surface. Scalar field boundary conditions can also be linked to model recirculating systems using a modified form of the Dirichlet boundary condition.
- Specified Value
This value is the Dirichlet boundary condition, which is a fixed value. This defines the connection of the species entering the system along the boundary condition surface. This is typically used for inlet boundary conditions. The units of this concentration are defined by the base unit.
- {Moving Inlet/Outlet} Specified Value UDF
base units | This UDF defines the species concentration of the fluid entering/exiting the system through the moving inlet/outlet. The output units are determined by the scalar field background specification. This selection has a dynamic name that is linked to the name of the component in the model tree. This is a System UDF.
Download Sample File:
{Moving Inlet/Outlet} Specified Value
- Zero Flux
With this flux, no species will cross the boundary condition surface. Interactions with the boundary condition surface will not add or remove species from the system.
If a static body is present, the following section will launch.
Static Body Boundary Conditions
¶
- Boundary Condition Type
This parameter defines what type of boundary condition will be applied to the scalar field along the solid surface. This field is presented for each static body and identified by name. Users can specify either a Dirichlet or Neumann boundary condition for each static body. A Dirichlet boundary condition defines a scalar field value along the solid surface. A Neumann boundary condition defines a scalar field concentration gradient normal to the surface.
Most simulations will evoke a zero-flux boundary condition, implying that species does not cross the solid surface. A custom flux can also be specified, however, implying that species is transferred to or from the solid surface at a user-defined rate. This condition is useful when modeling chemically reacting surfaces or media that are preferentially porous to the species defined by the scalar field. A zero gradient condition is also available. This condition will match the local species concentration along the wall to the local species concentration in the adjacent fluid. This condition can also be useful for modeling transport at or near membranes.
- Zero Flux
No species transport across the solid surface boundary. Interactions with the solid surface will not add or remove species from the system.
- Custom Flux
UDF for the species flux across the solid surface boundary. This expression can be a function of the position, time, local fluid properties, and the local orientation of the solid surface. This expression will only be evaluated along the surface of the solid. If set to a non-zero value, these surface interactions will add or remove species from the system.
- Flux Specification
This flux boundary condition can be specified as either (i) the total mass flow over the child geometry surface area or (ii) a mass flow per unit area. In the first approach, the user provides the total mass flow rate between the scalar field and the solid surface. At runtime, the code will divide this total flow rate by the surface area to compute a corresponding flux. The wall concentration will vary in time to satisfy this constraint. In the second approach, the user explicitly provides the mass flow rate per unit area along the solid surface. This value is used directly in the code to define the scalar field boundary condition.
- Total
base units /s | This is the total mass flow rate between the scalar field and the solid surface. At runtime, the code will divide this total flow rate by the surface area to compute a corresponding flux.
- Areal
base units /m 2 s | This specified flux is defined as a mass flow per unit area. This value will be used in the code to define the scalar field boundary condition.
- Custom Flux UDF
base units or base units/s | This UDF defines the species flux along the surface of a static body. One output must be defined within the UDF: a floating point variable named
flux
. This output variable can be specified as either an Aeral flux (per unit surface area) or a Total flux (flow).If the Custom Flux Specification is set to Areal, this value will be used directly in the code to define a local flux field boundary condition along the solid surface. The corresponding units on the output variable are either mol/s, g/s, or m 3/s, depending on the Base Units of the scalar field.
If the Custom Flux Specification is set to Total, this value will be divided by the local solid surface area to define a local flux field boundary condition along the solid surface. The corresponding units on the output variable are either mol, g, or m 3, depending on the Base Units of the scalar field. This is a local UDF, calculated on a voxel-by-voxel basis using the local fluid properties. The UDF is only applied to cells adjacent to the solid surface.
Download Sample File:
Custom Flux
- Specified Value
This value defines a Dirichlet (set concentration) boundary condition for the scalar field along the surface of the solid body. This constant value boundary condition is analogous to a constant temperature boundary condition in a thermal transport problem. Species will be locally added or removed to the scalar field within voxels bordering the static boundary to maintain this set concentration value.
- Set Value
The set concentration along the surface of the solid body. This value is maintained throughout the simulation.
- Zero Gradient
A zero gradient boundary condition will match the local species concentration along the wall to the local species concentration in the adjacent fluid. The wall concentration will vary in time to satisfy this constraint.
Advanced
¶
- Stencil
This setting defines the stencil type used to define the direction of species advection. Two options are available: Lattice and Finite Volume. The larger stencil associated with the Lattice option will necessarily reduce performance relative to the Finite Volume approach. However, taking larger advection time steps alleviates this performance gap while also improving accuracy. Finite Volume methods are attractive due to their low memory requirements, efficiency, and conservative property. Unfortunately, they can result in numerical dispersion due to divergence error of the Lattice Boltzmann (LB) velocity field. Approaches based on the underlying LB distribution function are preferred because they can avoid this source of error. See reference publication.
- Lattice
When the Lattice option is selected, advective transport is modeled along each microscopic velocity vector. The solver uses the associated microscopic velocity along each velocity vector to compute the advective flux.
- Finite Volume
When the Finite Volume option is selected, transport is only considered in cells adjacent to each voxel in the +/- x, y, and z–directions. When this option is active, the solver uses macroscopic velocity in the three Cartesian directions to compute the advective flux.
- Flux Limiter
Flux limiters are used to reduce the effects of numerical diffusion when modeling advection-diffusion processes. Flux limiters address this issue by adaptively blending high-order (accurate but oscillation-prone) and low-order (stable but diffusive) schemes, which controls the numerical flux between cells to ensure the solution remains bounded and physically realistic.
Flux limiters can be classified into both first-order and second-order schemes, each offering advantages depending on the balance needed between accuracy and stability. First-order limiters prioritize stability, introducing more numerical diffusion but remaining reliable in challenging simulations. Second-order limiters increase accuracy, particularly in smooth flow regions, though they may require adjustments to handle oscillations. In most species advection cases, a second-order scheme should be selected.
- VanLeer
Blends between first-order upwind and higher-order schemes based on the gradient. Second-order accurate.
- Minmod
Uses a limited slope to prevent oscillations. Good for systems with highly oscillating concentration gradients. Second-order accurate.
- MUSCL (Monotonic Upstream-centered Schemes for Conservation Laws)
Captures shocks and discontinuities in concentration fields. Adaptively adjusts the flux to prevent oscillations while retaining detail in smooth regions of the flow. Second-order accurate.
- Superbee
Captures steep gradients while maintaining stability. Achieves second-order accuracy in regions where the solution is smooth, but reduces to first-order near steep transitions.
- Lax Wendroff
Achieves accuracy by using a Taylor series expansion in time, combined with spatial derivatives calculated from species fluxes. Second-order accurate.
- Donor Cell
Determines fluxes based on the direction of flow using values from the upwind cell. Inherently stable and simple to implement, but introduces substantial numerical diffusion. Only valid for systems with a Peclet number greater than two. First-order accurate.
- Update Interval
This setting defines the interval, relative to the simulation time step, at which the advection-diffusion equation is solved. An update interval of 1 implies that the scalar field is updated every simulation time step. (Likewise, an update interval of 8 implies that the scalar is updated every eight simulation time steps, etc.)
This setting can be tuned to balance simulation fidelity with simulation speed. In principle, species advection should be linked directly to fluid velocity. In practice, however, the fluid velocity field changes very slowly relative to the simulation time step. As such, solving the advection-diffusion equation every two to eight time steps has the same net effect on species transport as solving the advection-diffusion equation every time step. A value between 2 and 8 is recommended to balance simulation speed and physical fidelity.
A decrease in the update interval is associated with a decrease in computational burden modeling scalar field advection. An increase in the update interval tends to increase overall simulation speed. A larger interval will also reduce the effects of numerical diffusion. See reference publication.
- Slip Velocity Option
The Slip Velocity is the difference in the speed at which solid particles and fluid move through the system. This method simulates solid transport within a fluid by representing the solid phase as a continuous concentration field rather than tracking individual particles. This is particularly useful with a large number of particles where individual tracking becomes computationally prohibitive. Slip velocity can be caused by factors like gravity pulling the particles down, particle inertia causing a lag, or drag forces between the particles and the fluid. To model, a flux based on the specified Slip Velocity is used in the advection-diffusion process.
Download Sample File:
Slip Velocity
The above Slip Velocity model shows a comparison of a 2% by volume solid settling vessel compared with a 2% scalar with a slip velocity representation. The slip velocity is the calculated Stokes Law terminal settling velocity for the particles. The scalar representation in the left frame compares well with the DEM particles shown in the center frame and volume fraction of the solids in the right frame.
- Off
No scalar slip velocity.
- On
A user-defined slip velocity is used.
- Slip Velocity UDF
m/s | This UDF defines the slip velocity of the scalar field.Three floating-point output variables must be specified:
slip_vx
,slip_vy
, andslip_vz
, representing the x-, y-, and z-components of the particle slip velocity. This functionality is useful when scalar fields are used to model particle fields subjected to external accelerations. This is a local UDF, calculated on a voxel-by-voxel basis using the local fluid properties.
Download Sample File:
Slip Velocity
- Transport Start Time
This parameter specifies the time at which to start solving the advection-diffusion questions. By default, if a scalar field is present in the model, the solver will attempt to solve the advection-diffusion equations beginning with the first simulation time step (e.g., simulation time 0). With this option, users can choose to delay the time at which species begin to advect and diffuse until the time specified.
Scalar Field Toolbar¶
Context-Specific Toolbar Forms |
Description |
---|---|
|
The Add Geometry form adds child geometry by importing from external CAD files, extracting from external CAD assemblies, or defining internally using built-in parametric geometry. |
|
The Move form enables three-dimensional rigid body transform of object through free drag or point-to-point snapping. |
|
The Rotate form enables three-dimensional rotation of geometry. |
|
The Scale form enables volumetric scaling of a geometry about a set anchor point. |
|
The Mate form allows surface-to-surface mating and alignment. |
|
The Add Child Fill Point selects which space will initially be 3D-filled with a liquid. |
|
The Add Scalar Injection adds an injection to a particle or scalar parent. |
|
The Help command launches the M-Star reference documentation in your web browser. |
For a full description of each selection on the Context-Specific Toolbar, see Toolbar Selections.
Additional Resources¶
Publications¶
For more on this subject, check out the following: