casimir-tools
Open-source Python toolkit for Lifshitz-Casimir force engineering in anisotropic and chiral dielectric heterostructures.
Developed as part of the AI-driven Casimir Stiction Suppression project (Kongu Engineering College 2028, SERB CRG).
Installation
# Core (numpy + scipy only)
pip install casimir-tools
# With plotting support (matplotlib)
pip install "casimir-tools[plot]"
# Full dev install
pip install "casimir-tools[plot,dev]"
Quick Start
import casimir_tools as ct
# ── Material presets ──────────────────────────────────────────────────────────
te = ct.MATERIALS["Te"] # eps_static, eps_perp, eps_par
wte2 = ct.MATERIALS["WTe2_hex"]
# ── Standard Lifshitz energy (T = 0) ─────────────────────────────────────────
# Keyword args: eps_static1, eps_static2, d
E = ct.casimir_energy(eps_static1=te["eps_static"],
eps_static2=wte2["eps_static"],
d=10e-9)
print(f"E = {E*1e3:.4f} mJ/m²") # ~ -0.10 mJ/m²
# ── Chiral correction (κ² term) ───────────────────────────────────────────────
# kappa=0.7 drives Casimir energy toward zero / repulsive regime
E_chiral = ct.casimir_energy_chiral(eps_static1=te["eps_static"],
eps_static2=wte2["eps_static"],
d=10e-9, kappa=0.7)
print(f"E_chiral = {E_chiral*1e3:.4f} mJ/m²")
# ── Finite temperature (T = 300 K, Matsubara summation) ──────────────────────
E_300K = ct.casimir_energy_finite_T(eps_static1=te["eps_static"],
eps_static2=wte2["eps_static"],
d=10e-9, T=300.0)
# ── Anisotropic uniaxial Lifshitz (Te crystal tensor) ────────────────────────
E_aniso = ct.casimir_energy_aniso(eps_perp1=te["eps_perp"], eps_par1=te["eps_par"],
eps_perp2=wte2["eps_perp"], eps_par2=wte2["eps_par"],
d=10e-9)
# ── 2-oscillator Sellmeier model ──────────────────────────────────────────────
E_2osc = ct.casimir_energy_2osc(
**{f"{k}_1": v for k, v in ct.TE_2OSC.items()},
**{f"{k}_2": v for k, v in ct.WTE2_2OSC.items()},
d=10e-9
)
Force Sweep & Plotting
sweep_force returns a tuple (d_nm, forces) — d values are already in nm.
import casimir_tools as ct
import numpy as np
import matplotlib.pyplot as plt # requires: pip install "casimir-tools[plot]"
EPS_TE = 164.27
# Returns (d_nm_array, force_array) — do NOT pass a pre-built d array
d_nm, forces = ct.sweep_force(eps1=EPS_TE, eps2=EPS_TE,
d_min_nm=5.0, d_max_nm=100.0, n_points=100)
plt.figure(figsize=(10, 6))
plt.plot(d_nm, np.abs(forces), color='#007acc', linewidth=2.5)
# d_nm is already in nm — no * 1e9 conversion needed
plt.yscale('log')
plt.xlabel("Separation Distance (nm)")
plt.ylabel("|F| (N/m²)")
plt.title("casimir-tools: Te Quantum Force Profile")
plt.grid(True, which="both", alpha=0.3)
plt.show()
Physics
The library implements the Lifshitz (1956) formula for Casimir energy between two planar dielectric half-spaces:
E(d) = (ħ/4π²c²) ∫₀^∞ ξ² dξ ∫₁^∞ p dp
× Σ_pol ln(1 − r₁^pol r₂^pol e^{−2pξd/c})
Extensions:
- Chiral correction (Zhao et al. 2009):
E = E_Lifshitz + κ² × δE - Uniaxial anisotropy (Bimonte et al. 2009): separate ε_⊥, ε_∥ Fresnel coefficients
- Finite temperature (Lifshitz/Pitaevskii): Matsubara sum at arbitrary T
- 2-oscillator Sellmeier: resolves IR phonon + UV electronic contributions
Citation
@software{sevesh2026casimir,
author = {Sevesh SS},
title = {casimir-tools: Lifshitz-Casimir Force Engineering Toolkit},
year = {2026},
url = {https://github.com/ss-sevesh/spaceship_bubble/tree/master/casimir_tools},
version = {0.1.7},
}
License
MIT © Sevesh SS, Kongu Engineering College 2028
Metadata
Release files for casimir-tools 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| casimir_tools-0.1.7.tar.gz | 111.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| casimir_tools-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 124.8 kB
Release files / casimir_tools-0.1.7.tar.gz
| Download URL | casimir_tools-0.1.7.tar.gz |
|---|---|
| Size | 111.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
621e10e0bcf7f416837524499d90d29d42488cca84704092cf3c418d75ba1b5b
|
|
BLAKE2b-256 checksum How to use checksums |
92e88f97e980d10bbaba044b0927cc635ee94904d6cc012b7750f714c6b9858d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / casimir_tools-0.1.7-py3-none-any.whl
| Download URL | casimir_tools-0.1.7-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a92d285dd547016d795c3c0139ac1d455fb7ad92413736c14ff2f3a46dba35b
|
|
BLAKE2b-256 checksum How to use checksums |
df3257713408dcf64a44a21d11d972802e9f728c5f41a492537ca2b8796eee46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|