Implementation of simple cubic, body-centered cubic, and face-centered cubic crystalline capillaries

We present a module that implements simple cubic (SCC), body-centered cubic (BCC), and face-centered cubic (FCC) crystalline geometries as a utility to create capillaries in the Lattice Boltzmann code Ludwig. The crystalline geometries created are used as porous materials in Lattice Boltzmann simulations.

Purpose of Module

The crystalline structures represent various types of porous materials. We can attribute to them wetting properties, via which the solid parts of the geometries interact with the fluid. This module is essential for the studies of various types of flows through such materials. In particular, we focus on flows of binary fluid mixtures, driven by an externally imposed chemical potential gradient, through porous media.

Background Information

This module implements the SCC, BCC, and FCC crystalline capillaries in the Ludwig code. The latter, together with its documentation and tutorial is available on the following link: https://github.com/ludwig-cf/ludwig.

Building and Testing

The module is run by specifying the name of the output file, the output type, the crystalline type, the size of the crystalline cell, and the size of the whole system in the file capillary.c (https://github.com/ludwig-cf/ludwig/blob/master/util/capillary.c). The file is then compiled and run by:

make capillary
./capillary

This generates the output file (e.g. “capillary.001-001”). The thus generated capillary file, together with the desired output data, is then specified in the input file of the simulation. An example of this specification is:

porous_media_format BINARY
porous_media_file   capillary
porous_media_type   status_with_c_h

The latter line porous_media_type should match the output type, defined in the capillary.c file, prior to its compilation.

Source code

The module has been provided as a pull request on Ludwig’s github repository https://github.com/ludwig-cf/ludwig/pull/98.