Sample configuration files and geometry input files are provided with the binary to test the proper system setting
and see if the simulation starts correctly on the system.

nanoFluidX uses two files to setup a simulation. Apart from the configuration file, which defines all relevant simulation parameters
and phase properties, a geometry file is required that defines the initial discretization of the problem with
particles.

Energy equation in nanoFluidX is implemented so that it accommodates for conduction and convection heat transfer with initial or Dirichlet boundary
conditions.

New viscosity-temperature coupling (viscTempCoupling) has been introduced into the nanoFluidX code as an option. Three models were implemented: polynomial, Sutherland, and power law.

The prescribed motion (transient wall boundary condition or 'position file' moving wall) is a capability of nanoFluidX which allows to prescribe any motion of a moving wall using an input .txt file.

CONROD motion is the only motion which defines a motion for two phases. This is done because conrods and pistons share
a number of common parameters necessary to define their respective movement.

It is possible to define a rigid body motion in nanoFluidX such that the body is freely interacting with the fluid (exchanging momentum and heat with the fluid).

Standard SPH interpolation heavily depends on the basic premise that each particle has the so called “full support.”
Full support implies that the owner particles can “see” particles all around itself within the smoothing length of
the particle, which mathematically implies that the sum of the kernel (also known as Shepard coefficient) is
equal to one.

Improving torque estimates in nanoFluidX is of high importance. Currently, prediction of accurate absolute values of torque for general geometries has a
series of quantitatively varying results.

The Riemann problem can be defined as a category of initial value problems that involve a conservation equation and
a piecewise data set with a single discontinuity.

nanoFluidX companion (also known as, nFX[c]) is a post-processing tool developed to accompany the nanoFluidX solver and allow for an easier execution of certain post-processing tasks.

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.

The Riemann problem can be defined as a category of initial value problems that involve a conservation equation and
a piecewise data set with a single discontinuity.

The Riemann problem can be defined as a category of initial value problems that
involve a conservation equation and a piecewise data set with a single
discontinuity.

In terms of SPH, you can solve a Riemann problem for each pair of particles, yielding
a more isotropic particle distribution and smoother gradients in the solution. The
following depiction is based on the work of ^{9}. Given the Riemann problem definition, you start off
by constructing a unit vector ${e}_{ij}$ between two particles $i$ and $j$.
The two particles can then be assumed to be the “left” and “right” sides of the
Riemann problem, such that the physical values of density ($\rho $), velocity ($U$) and pressure ($p$) are expressed as:(1)

Where, $v$ is the velocity vector of the respective particle,
which is illustrated in Figure 1^{9}.

The discontinuity is assumed to be located at the interface (Figure 1), half
way between the particles. Assuming that particles are moving with arbitrary
velocity vectors, the consequent solution of their motion is either a rarefaction or
compression wave. However, there is a third wave solution at the interface denoted
with * exponent, where ${U}_{L}^{\ast}={U}_{R}^{\ast}={U}_{}^{\ast}$ and ${p}_{L}^{\ast}={p}_{R}^{\ast}=p$, as indicated by the dashed link in Figure 2.

From these basic assumptions, you can derive the ${U}^{*}$ and ${p}^{*}$ values as:(2)

Where, the $avg$ index denotes the mean value of the respective value
between the two particles.

With these two solutions to the Riemann problem, you can modify the continuity
equation and the pressure gradient term in the momentum equation as
follows:(4)

It is well-known that 1st order Riemann solvers such as the one illustrated here are
dissipative. To that extent, nanoFluidX is using a limiter so that
the Riemann solutions are provided only when the fluid is under compression. This
effectively reduces the dissipation and has been shown to improve the results in
various situations.^{9}

Note: Although the Riemann solver option is experimental, canonical test cases,
simple geometries, and problems involving single phase runs such as tank
sloshing or water management should still greatly benefit from the new
formulation. However, industrial gearboxes and violent multiphase flows in
complex moving geometries in general are likely to experience local
instabilities. This will be addressed in the coming versions of nanoFluidX.

Density filtering is an integral part of the Riemann solver implementation. In SPH
simulation, the consistency between mass, density, and occupied area cannot be
strictly enforced. Several density filtering schemes have been developed to tackle
this. In nanoFluidX, two versions are implemented:
INCREMENTAL and INSTANT filtering.

INSTANT

The instant density filtering is basically a 0th-order Shepard filter.
At each evaluation point (according to the number set by
RM_freq_rho_init), the density is re-calculated
by:(5)