Close this search box.


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-CGP (Coarse Grain Particle) model, or Coarse Grain DEM, is a variation of the DEM model, where particles are grouped into coarse grained particles (CGP) to accelerate the computationally expensive tracking of individual particles. The collisions between CGPs are resolved the same way as in DEM. Some collision parameters may need to be tuned to obtain better match between DEM and Coarse Grain DEM. There need to be a sufficiently large number of particles so the CGP can accurately represent the real particles. The number of real particles per CGP (called statistical weight) is the only additional parameter needed to use MFiX-CGP compared to MFiX-DEM. A statistical weight of one reverts to the regular DEM approach. This modeling approach falls between DEM and PIC in terms of computational resources.

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.

MFiX is free for use. Please register to Download MFiX.

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