Skip to main content

PyDFTlj

An python library for calculations using the classical Density Functional Theory (cDFT) for Lennard-Jones fluids in 1D and 3D geometries.

Dependencies

  • NumPy is the fundamental package for scientific computing with Python.
  • SciPy is a collection of fundamental algorithms for scientific computing in Python.
  • PyFFTW is a pythonic wrapper around FFTW, the speedy FFT library.
  • PyTorch is a high-level library for machine learning, with multidimensional tensors that can also be operated on a CUDA-capable NVIDIA GPU.
  • Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
  • Optional: SciencePlots is a Matplotlib styles for scientific figures

Installation

Option 1: Using pip to install directly from the GitHub repo

You can run

pip install pydftlj

and then you will be able to access the pydftlj library.

Option 2: Using setup.py

Clone PyDFTlj repository if you haven't done it yet.

git clone https://github.com/elvissoares/PyDFTlj

Go to PyDFTlj's root folder, there you will find setup.py file, and run the command below:

pip install -e .

The command -e permits to edit the local source code and add these changes to the pydftlj library.

cDFT basics

The cDFT is the extension of the equation of state to treat inhomogeneous fluids. For a fluid with temperature T, total volume V, and chemical potential $\mu$ specified, the grand potential, $\Omega$, is written as

$$\Omega[\rho(\boldsymbol{r})] = F[\rho (\boldsymbol{r})] + \int_{V} [ V^{(\text{ext})}(\boldsymbol{r}) - \mu ]\rho(\boldsymbol{r}) d\boldsymbol{r}$$

where $F[\rho (\boldsymbol{r})] $ is the free-energy functional, $V^{(\text{ext})} $ is the external potential, and $\mu $ is the chemical potential. The free-energy functional can be written as a sum $ F = F^\text{id} + F^\text{exc} $, where $F^\text{id} $ is the ideal gas contribution and $F^\text{exc}$ is the excess contribution.

The ideal-gas contribution $F^\text{id} $ is given by the exact expression

$$ F^{\text{id}}[\rho (\boldsymbol{r})] = k_B T\int_{V} \rho(\boldsymbol{r})[\ln(\rho (\boldsymbol{r})\Lambda^3)-1] d\boldsymbol{r}$$

where $k_B $ is the Boltzmann constant, and $\Lambda $ is the well-known thermal de Broglie wavelength.

The excess Helmholtz free-energy, $F^{\text{exc} }$, is the free-energy functional due to particle-particle interactions and can be splitted in the form

$$ F^{\text{exc}}[\rho (\boldsymbol{r})] = F^{\text{hs}}[\rho (\boldsymbol{r})] + F^{\text{att}}[\rho (\boldsymbol{r})] $$ where $F^{\text{hs}} $ is the hard-sphere repulsive interaction excess contribution and $F^{\text{att}} $ is the attractive interaction excess contribution.

The hard-sphere contribution, $F^{\text{hs}} $, represents the hard-sphere exclusion volume correlation and it can be described using different formulations of the fundamental measure theory (FMT) as

The attractive contribution, $F^\text{att}$, of the Lennard-Jones potential can be described by several formulations as listed below:

where [x] represents the implemented functionals.

The thermodynamic equilibrium is given by the functional derivative of the grand potential in the form

$$ \frac{\delta \Omega}{\delta \rho(\boldsymbol{r})} = k_B T \ln(\rho(\boldsymbol{r}) \Lambda^3) + \frac{\delta F^{\text{exc}}[\rho]}{\delta \rho(\boldsymbol{r})} +V^{(\text{ext})}(\boldsymbol{r})-\mu = 0$$

When necessary, we use the MBWR1 equation of state for Lennard-Jones Fluids. We also describe the direct correlation function using the double Yukawa potential from the FMSA2.

Cite PyDFTlj

If you use PyDFTlj in your work, please consider to cite it using the following reference:

Soares, Elvis do A, Amaro G Barreto, and Frederico W Tavares. 2023. “Classical Density Functional Theory Reveals Structural Information of H2 and CH4 Fluids Adsorbed in MOF-5.” Fluid Phase Equilibria, July, 113887. ArXiv: 2303.11384

Bibtex:

@article{Soares2023, 
author = {Soares, Elvis do A and Barreto, Amaro G and Tavares, Frederico W}, 
doi = {10.1016/j.fluid.2023.113887}, 
issn = {03783812}, 
journal = {Fluid Phase Equilibria}, 
keywords = {Adsorption,Density functional theory,Metal–organic framework,Structure factor}, 
month = {jul}, 
pages = {113887}, 
title = {{Classical density functional theory reveals structural information of H2 and CH4 fluids adsorbed in MOF-5}}, 
url = {https://linkinghub.elsevier.com/retrieve/pii/S037838122300167X}, 
year = {2023} 
} 

Contact

Elvis Soares: elvis@peq.coppe.ufrj.br

Universidade Federal do Rio de janeiro - UFRJ

Programa de Engenharia Química - COPPE

Usage examples

To access the examples folder you will need to clone PyDFTlj repository if you haven't done it yet.

git clone https://github.com/elvissoares/PyDFTlj

The, you can access our examples folder and you can find different applications of the PyDFTlj.

Lennard-Jones equation of State (Example1-Phasediagram-Methane.ipynb)

Figure1 Figure2
Fig.1 - The phase diagram of the LJ fluid. The curve represents the MBWR EoS1. Fig.2 - The saturation pressure as a function of the inverse of the temperature.

Confined LJ fluid (Example2-Hardwall3D.ipynb)

Figure3
Fig.3 - The density profiles of LJ fluid near a hardwall with reduce temperature T*=1.35 and reduced density of ρ*=0.5. Symbols: MC data. Lines: Different DFT formulations.
Figure4
Fig.4 - The density profiles of LJ fluid confined in slit-like pores at reduced density of ρ*=0.5925 and reduced temperature of T*=1.2 for pore size of H = 7.5, 4.0, 3.0, 1.8$\sigma$. Symbols: MC data. Lines: Different DFT formulations.

LJ fluid Radial Distribution Function (Example4-RadialDistributionFunction.ipynb)

Figure7
Fig.7 - The radial distribution function of LJ fluid at reduced density of ρ*=0.84 and reduced temperature of T*=0.71. Symbols: MC data. Lines: Different DFT formulations.

Adsorption of CH4 inside MOF-5 (Example5-Adsorption3D_CH4_on_MOFs.ipynb)

Figure8
Fig.8 - Excess adsorbed quantity of CH4 inside the MOF-5 at 300 K. Symbols: MC data. Lines: Different DFT formulations.

References

  1. Johnson, J. K., Zollweg, J. A., & Gubbins, K. E. (1993). The Lennard-Jones equation of state revisited. Molecular Physics, 78(3), 591–618. ↩ ↩2

  2. Tang, Y., & Lu, B. C. Y. (2001). On the mean spherical approximation for the Lennard-Jones fluid. Fluid Phase Equilibria, 190(1–2), 149–158. ↩

Release files for pydftlj 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydftlj 1.0.2
File Size Uploaded
pydftlj-1.0.2.tar.gz 40.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydftlj 1.0.2
File Interpreter ABI Platform
pydftlj-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 77.1 kB

Release files / pydftlj-1.0.2.tar.gz

Download URL pydftlj-1.0.2.tar.gz
Size 40.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e0f6ebf6d4f742668eaaaaede0866b89edef8e4dea484bc6ed5016c606f1f64a
BLAKE2b-256 checksum
How to use checksums
fd0c2778dfc8d6af31eafe43cfbd916b84d46b5d63efe7f2de83384774056063
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / pydftlj-1.0.2-py3-none-any.whl

Download URL pydftlj-1.0.2-py3-none-any.whl
Size 37.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f30c8cae96a67a926be6c11472f73fcbd5f7271993bdc24bae07d6f951f0d28
BLAKE2b-256 checksum
How to use checksums
cbd9f1bad26f0e8e80163c5130374a9a7c297cd34b5a22b820a2fe38437891ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release history Release notifications | RSS feed

1.0.3

2 release files

This release

1.0.2 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page