User Tools

Site Tools


howto:mfix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howto:mfix [2016/02/26 11:20]
agill
howto:mfix [2021/05/05 11:46] (current)
ccrosby [MFix-20.3.0]
Line 1: Line 1:
 ======Using MFIX at the CHPC====== ======Using MFIX at the CHPC======
 ===== Introduction ===== ===== Introduction =====
-MFIX is an open-source multiphase flow solver written in FORTRAN 90. It is used for simulating fluid-solid systems such as fluidized beds. As it appears to have numerous potential uses in chemical engineering and mineral processing applications,​ a limited level of support for the use of the package is now available at the CHPC, at /opt/gridware/non-supported/mfix.+MFIX is an open-source multiphase flow solver written in FORTRAN 90. It is used for simulating fluid-solid systems such as fluidized beds. As it appears to have numerous potential uses in chemical engineering and mineral processing applications,​ a limited level of support for the use of the package is now available at the CHPC, at /apps/chpc/compmech/CFD/​MFIX ​.
  
 Alternatively,​ users may download the code and install it in their home directory. Alternatively,​ users may download the code and install it in their home directory.
Line 8: Line 8:
 bottom of the home page or go directly to https://​mfix.netl.doe.gov/​registration.php. bottom of the home page or go directly to https://​mfix.netl.doe.gov/​registration.php.
  
-This wiki page details those issues specific to running MFIX on the Sun cluster at CHPC.+This wiki page details those issues specific to running MFIX on the Lengau ​cluster at CHPC.
 For a more general explanation of the use of MFIX, consult the documentation and example cases included with the source tarball. For a more general explanation of the use of MFIX, consult the documentation and example cases included with the source tarball.
  
Line 43: Line 43:
 Below is an example of a simple PBS submit script for an mfix job. Below is an example of a simple PBS submit script for an mfix job.
  
 +<file bash mfix.qsub>​
   #!/bin/sh   #!/bin/sh
   #PBS -P projectid   #PBS -P projectid
Line 48: Line 49:
   #PBS -q normal   #PBS -q normal
   #PBS -l walltime=01:​00:​00   #PBS -l walltime=01:​00:​00
-  #PBS -o /home/username/scratch/foamJobs/​job01/​stdout +  #PBS -o /mnt/lustre3p/users/username/​job01/​stdout 
-  #PBS -e /home/username/scratch/foamJobs/​job01/​stderr+  #PBS -e /mnt/lustre3p/users/username/​job01/​stderr
   #PBS -m abe   #PBS -m abe
   #PBS -M username@email.co.za   #PBS -M username@email.co.za
-  ​ +  module add chpc/compmech/mfix/20.1.0
-  ​module add gcc/​5.1.0 ​chpc/openmpi/gcc/65/1.8.8-gcc5.1.0+
   cd ${PBS_O_WORKDIR}   cd ${PBS_O_WORKDIR}
   exe="​mfix.exe"​   exe="​mfix.exe"​
   nproc=`cat $PBS_NODEFILE | wc -l`   nproc=`cat $PBS_NODEFILE | wc -l`
   mpirun -np $nproc -machinefile $PBS_NODEFILE $exe -parallel >"​coarse.log"​ 2>&1   mpirun -np $nproc -machinefile $PBS_NODEFILE $exe -parallel >"​coarse.log"​ 2>&1
 +</​file>  ​
 Remember to edit or add the following line to your mfix.dat file: Remember to edit or add the following line to your mfix.dat file:
  
Line 65: Line 65:
 where NX, NY and NZ should be replaced by the number of partitions along each physical principle axis of the model, so that NX*NY*NZ is the total number of cores requested in the submit script. In general, it is best to choose NX, NY and NZ where NX, NY and NZ should be replaced by the number of partitions along each physical principle axis of the model, so that NX*NY*NZ is the total number of cores requested in the submit script. In general, it is best to choose NX, NY and NZ
 such that largest number of partitions occur along the axis/axes corresponding roughly with the average flow direction. such that largest number of partitions occur along the axis/axes corresponding roughly with the average flow direction.
 +
 +====  MFix-20.3.0 ====
 +Please be advised that there is now also a version 20.3.0 in ''/​apps/​chpc/​compmech/​CFD/​MFIX/​20.3.0''​. ​ There is a source script in that directory, setMFix, which will load the correct gcc and MPI modules and append the $PATH to make the executable ''​mfixsolver''​ available. ​ This binary supports both thread-level (OpenMP) and distributed memory (MPI) parallel. ​ It uses mpich, and it is necessary to use the ''​-iface ib0''​ option to ensure the use of the Infiniband network. ​ A machinefile should not be used.  The following job script should work, but has not been tested:
 +
 +<file bash mfix.qsub>​
 +  #!/bin/sh
 +  #PBS -P projectid
 +  #PBS -l select=3:​ncpus=24:​mpiprocs=24:​mem=12GB:​nodetype=haswell_reg ​
 +  #PBS -q normal
 +  #PBS -l walltime=01:​00:​00
 +  #PBS -o /​mnt/​lustre3p/​users/​username/​job01/​stdout
 +  #PBS -e /​mnt/​lustre3p/​users/​username/​job01/​stderr
 +  #PBS -m abe
 +  #PBS -M username@email.co.za
 +  . /​apps/​chpc/​compmech/​CFD/​MFIX/​20.3.0/​setMFix
 +  cd ${PBS_O_WORKDIR}
 +  exe="​mfixsolver.exe"​
 +  nproc=`cat $PBS_NODEFILE | wc -l`
 +  mpirun -iface ib0 -np $nproc $exe -parallel >"​coarse.log"​ 2>&1
 +</​file>  ​
  
 ===== Postprocessing ===== ===== Postprocessing =====
/var/www/wiki/data/attic/howto/mfix.1456478427.txt.gz · Last modified: 2016/02/26 11:20 by agill