Open Source Multiphase Flow Modeling for Real-world Applications
The National Energy Technology Laboratory’s (NETL’s) computational fluid dynamics (CFD) code, MFiX —Multiphase Flow with Interphase eXchanges— is central to the laboratory’s multiphase flow reactor modeling efforts. This open-source software has over three decades of development history and more than 7,000 registered users worldwide. MFiX has become the standard for comparing, implementing, and evaluating multiphase flow constitutive models and has been applied to an extremely diverse range of multiphase flows applications. The successes achieved in modeling complex multiphase flow systems have led to new and improved key attributes such as drag, polydispersity, attrition, and agglomeration models, among other significant advances.
The NETL MFiX suite of codes includes the following set of complementary modeling tools that can be brought to bear on multiphase flow technologies:
MFiX-TFM (Two-Fluid Model)
MFiX-TFM (Two-Fluid Model) is an Eulerian-Eulerian model which supports a broad range of capabilities for dense, reacting, multiphase flows by representing the fluid and solids as interpenetrating continua. This is the most mature MFIX model and is capable of modeling multiphase reactors ranging in size from bench top to industry-scale. Approximation of the solid phase as a continuum typically allows for faster simulation time than Lagrangian techniques, however it also introduces the need for accurate mathematical models to capture realistic solids phase behavior. This includes transport properties, heterogeneous reaction kinetics, and constitutive relations for interaction between fluid and solid phases, e.g., solids phase drag and interphase heat transfer.
The MFiX Theory Guide contains the hydrodynamic theory used in this modeling approach, including: the conservation equations, constitutive relations, and the initial and boundary conditions. The Summary of MFiX Equations document contains the latest update of the model equations in MFiX-TFM.
MFiX-DEM (Discrete Element Model)
Treats the fluid phase as a continuum and models the individual particles of the solid phase. This is a relatively new variation on MFiX. While the treatment of individual particles can provide higher fidelity over a broad range of flow regimes (from dilute to packed), it also very challenging when dealing with very large numbers of particles for large-scale simulations. These large-scale applications will require high performance computing (HPC) resources and large amounts of computer time. Code optimization and speed up are critical research fronts to support industrial scale applications. The document Documentation of Open-Source MFiX-DEM Software for Gas-Solids Flows provides detailed descriptions of the modeling approach, governing equations and the details on their numerical implementation.
MFiX-CGP (Coarse Grain Particle) model, or Coarse Grain DEM
MFiX-PIC (Multiphase Particle-In-Cell)
MFiX-PIC (Multiphase Particle-In-Cell) – is another Eulerian-Lagrangian model that represents the fluid as a continuum while using “parcels” to represent groups of real particles with similar physical characteristics. The MFiX-PIC approach offers reduced computational cost over MFiX-DEM as there are typically few parcels to track and parcel collisions are not resolved. However, the added modeling approximations impact the overall accuracy of the method. Development, validation, and optimization of modeling approximations are critical research fronts. The document entitled Documentation of Open-Source MFiX-PIC Software for Gas-Solids Flows provides detailed descriptions of the modeling approach, governing equations and details on their numerical implementation.
MFiX-GUI (Graphical Users Interface)
MFiX-GUI (Graphical Users Interface) – was designed to act as a front end tool that allows users to quickly set-up MFiX computational fluid dynamic models. The MFiX-GUI is not required to run MFiX and does not need a valid MFiX source code to function. However, having a valid MFiX source code allows the MFiX-GUI to extract keyword documentation for error checking and documentation.
The MFiX-GUI is written in Python, leveraging the strengths of Python for quick code development, extensive existing libraries, and flexibility. The MFiX-GUI will run on any operating system that Python can be installed on including Linux, Windows, and Mac. Please see the documentation for further details and dependencies.
List of MFiX Features
- Mass, momentum, energy and species balance equations for gas and multiple solids phases
- Granular stress equations based on kinetic theory and frictional flow theory
- Three-dimensional Cartesian or cylindrical coordinate systems with nonuniform mesh size
- Impermeable and semi-permeable internal surfaces
- Set up the simulation with an input data file
- Define chemical reactions and kinetics with the input data file or with a user-defined subroutine
- Error checking of user input
- Multiple, single-precision, binary, direct-access output files that reduces disk space and increases data retrieval speed
- Post-processing codes for the animation and retrieval of output data
- Fortran 90 code base with allocatable arrays
- Generate serial, shared-memory parallel (SMP) or distributed-memory parallel (DMP) executables from the same code base
Click on “Register” at the top-right corner of the home page or go directly to https://mfix.netl.doe.gov/register. Complete the form, read the notice and click on “Register” to submit your application. Once your application has been reviewed and accepted, you will receive an email notification, and instructions to download the code.
Send all administrative queries to email@example.com
The MFiX GUI requires a Python environment to run, and the Anaconda python distribution is recommended. To build the custom solver, a Fortran compiler is required. Although Fortran knowledge is not required to run MFiX, it will be needed if you intend to modify the code.
Yes, the MFiX 17.1 and later run on Linux, macOS and Windows.
A newly redesigned GUI is available in the MFiX 17.1 version. The GUI serves as a front-end to setup and run an MFiX simulations.
The MFiX source code is available from the download page.