# nanoFluidX Prep

nanoFluidX prep, shortened as nFX[p], is an auxiliary executable for nanoFluidX intended to eliminate a number of potential user errors during the pre-processing phase.

nFX[p] covers non-MPI and non-CUDA portions of nanoFluidX related to reading cfg information before running a simulation. nFX[p] does not check drivers, GPUs, file system, MPI setup, or any other runtime environment variables. nFX[p] only focuses on the cfg and related files. Being able to run nFX[p] does not mean your environment is ready to run nanoFluidX. Not running into any errors during nFX[p] run does not mean your nanoFluidX run will not run into errors. However, running your cfg through nFX[p] before an nanoFluidX run may help with identifying some issues.

nFX[p] has the same interface as nanoFluidX and to use it, one must prepare the case files as if running a nanoFluidX case. The simplest way to invoke nFX[p] is via
nFXp_SP -i relative/or/absolute/path/to/cfg.cfg > log.prerun
for Single Precision and
nFXp_DP -i relative/or/absolute/path/to/cfg.cfg > log.prerun

for double precision, after sourcing set_nFXp_environment.sh or set_nFXp_environment.csh.

It is important to note that nFX[p]:
• Does not require mpiexec or mpirun to launch
• Does not require a GPU to run
• Does not check the content of input file, unless if min_boundingbox and/or max_boundingbox are not defined. However, the input file must be present in the specified path.
• Does not check overlapping as this operation requires loading of the particles to the GPU
• Has a minimum verbosity level of VERBOSITY_STANDARD
• Can verify both clean and recon runs
• Does not produce a default log. Its output must be piped for storage.
In addition to being a standalone executable, nFX[p] is incorporated into nFX[c]. To access nFX[p] or prep mode in nFX[c], simply launch nFX[c] as
nFXc --nfxp relative/or/absolute/path/to/cfg.cfg > log.prerun

This essentially runs the single precision version of nFX[p]. You do not need the standalone version of nFX[p] to access prep mode in nFX[c]. nFX[p] or prep mode in nFX[c] is named that way only because nFX[p] standalone was developed before being integrated into nFX[c]. nFX[p] is being kept as it might be a more flexible option in certain situations than prep mode in nFX[c].