CaPS is a package for the analysis of the Casimir effect in the plane-sphere geometry. The Casimir force arises due to quantum and thermal fluctuations of the electromagnetic field and is closely related to the van der Waals force.
CaPS allows to compute the Casimir interaction in the plane-sphere geometry as a function of the sphere radius R, the minimal separation L between sphere and plane, the temperature T, and the material properties of plane and sphere. It is assumed that both objects are non-magnetic and placed in vacuum. The code is highly optimized and allows - depending on parameters and the available resources - to compute the free energy for aspect ratios up to R/L~5,000 (in some cases even higher!).
The picture shows an overview of the experiments carried out in the plane-sphere geometry. The blue area denotes the aspect ratios that are accessible using CaPS. The inset depicts the plane-sphere geometry.
In addition, CaPS can compute the Casimir free energy for the plane-cylinder geometry at zero temperature for perfect reflectors.
- Computation of the free energy for aspect ratios used in typical experiments.
- Full support for perfect reflectors, metals described by the Drude and plasma model, and generic materials described by a user-defined dielectric function.
- Calculate the free energy in the high temperature limit for perfect reflectors, the Drude and plasma model.
- Support for parallelization using MPI.
- Computation of the free energy in the plane-cylinder geometry at zero temperature for perfect reflectors.
- Computation of the free energy for two spheres with equal radii at zero temperature for perfect reflectors.
- CaPS is fast and reliable.
- ready to use programs: you don't have to modify the code.
- CaPS is free software – you may use it or even modify it.
If you use Linux or Unix, you need the gcc and development libraries and header files for the standard C library, and MPI. On a Debian-like Linux the command
$ sudo apt-get install gcc g++ libc-dev libc++-dev cmake make libopenmpi-dev openmpi-bin liblapack-dev
will install all dependencies. Here, the dollar sign indicates the shell prompt. You can compile the sources with:
$ mkdir build
$ cd build
$ cmake ..
$ make
This will build the executables caps
, caps_logdetD
, capc
, and cass
.
The executables can be run either directly from the build directory or you can
install them using:
$ sudo make install
You can find more information about building the software in the user manual.
You can compile and run the tests with:
$ make tests
$ ./caps_tests
Running the tests takes about 9 minutes (depending on your hardware). All tests should pass.
To compute the Casimir free energy between a sphere of radius R=150µm and a plane separated by a distance L=1µm at room temperature T=300K assuming that both objects are perfect reflectors, use the command:
$ mpirun -n 8 ./caps -R 150e-6 -L 1e-6 -T 300
# version: 0.5
# compiler: gcc
# compile time: Nov 19 2019 06:07:55
# compiled on: Linux host.name 5.0.0-36-generic x86_64
# git HEAD: 46c49c4
# git branch: master
# pid: 13955
# start time: Tue Nov 19 08:12:48 2019
#
# LbyR = 0.006666666666666667
# RbyL = 150
# L = 1e-06
# R = 0.00015
# T = 300
# using Matsubara spectrum decomposition (MSD)
# cutoff = 1e-09
# epsrel = 1e-06
# iepsrel = 1e-08
# ldim = 1050
# cores = 8
# model = perfect reflectors
#
# xi*(L+R)/c=0, logdetD=-42.60020778315535, t=0.466361
# xi*(L+R)/c=124.2980585533627, logdetD=-7.390574126086727, t=36.6145
# xi*(L+R)/c=248.5961171067254, logdetD=-1.397506009518924, t=39.6049
# xi*(L+R)/c=372.8941756600882, logdetD=-0.2684860665174791, t=41.3722
# xi*(L+R)/c=497.1922342134509, logdetD=-0.05172439672511596, t=41.5685
# xi*(L+R)/c=621.4902927668136, logdetD=-0.009968722298954673, t=40.6447
# xi*(L+R)/c=745.7883513201764, logdetD=-0.001921057457708089, t=39.6954
# xi*(L+R)/c=870.0864098735391, logdetD=-0.0003701100141037046, t=36.9724
# xi*(L+R)/c=994.3844684269018, logdetD=-7.127997261108949e-05, t=34.6741
# xi*(L+R)/c=1118.682526980265, logdetD=-1.37218303284775e-05, t=30.9301
#
# 1125 determinants computed
# stop time: Tue Nov 19 08:18:31 2019
#
# L/R, L, R, T, ldim, E*(L+R)/(hbar*c)
0.006666666666666667, 1e-06, 0.00015, 300, 1050, -1203.6057063667
Due to parallelization you might not get the exactly same numerical value for the free energy.
CaPS is documented by a user manual and an API documentation.
The user manual describes how to build and use the programs that come with
CaPS. The user manual is available online. You
can also build the user manual using Makefile provided in docs/manual
.
The API of CaPS are documented using doxygen. The API documentation is
available online as
html or
PDF. You can also build the
API documentation using the doxygen.conf
file provided in src/
.
The latest version of CaPS is available at github.
We are always happy to get support and feedback from the community. If you find a bug, please create an issue. If you have improvements, create a pull request. For more details see CONTRIBUTING.md.
-
Michael Hartmann, [email protected] main developer
-
Gert-Ludwig Ingold, [email protected] ideas, documentation, JOSS paper, testing, bugfixes
For a full list, see CREDITS.
The code is licensed under GPLv2, see LICENSE.
Also, CaPS uses some third-party software:
- HODLR: Fast direct solver and determinant computation for dense linear systems (MPL2)
- libeigen: C++ template library for linear algebra (MPL2)
- cquadpack: C port of the QUADPACK software originally written in Fortran for solving integrals (public domain)
- cephes: Software collection with special functions. CaPS uses the implementation for the modified Bessel functions I0(x), I1(x), K0(x), and K1(x) (see src/bessel.c). (No license, probably BSD licensed.)
- LAPACK: Linear algebra library. LAPACK may be used to calculate the determinant of the scattering matrices. However, for small separations using HODLR is much faster. (Modified BSD)
- buf: Growable memory buffers for C99. (public domain)
- argparse: Command line arguments parsing library in C (MIT)
-
Casimir effect in the plane-sphere geometry: Beyond the proximity force approximation
Michael Hartmann, PhD thesis (Universität Augsburg, 2018) -
Advancing numerics for the Casimir effect to experimentally relevant aspect ratios (on arxiv)
Michael Hartmann, Gert-Ludwig Ingold, Paulo A. Maia Neto,
Phys. Scr. 93, 114003 (2018), DOI: 10.1088/1402-4896/aae34e -
Plasma versus Drude Modeling of the Casimir Force: Beyond the Proximity Force Approximation (on arxiv)
Michael Hartmann, Gert-Ludwig Ingold, and Paulo A. Maia Neto,
Phys. Rev. Lett. 119, 043901 (2017), DOI: 10.1103/PhysRevLett.119.04390 -
Disentangling geometric and dissipative origins of negative Casimir entropies (on arxiv)
Stefan Umrath, Michael Hartmann, Gert-Ludwig Ingold, and Paulo A. Maia Neto,
Phys. Rev. E 92, 042125 (2015), DOI: 10.1103/PhysRevE.92.042125 -
Geometric origin of negative Casimir entropies: A scattering-channel analysis (on arxiv)
Gert-Ludwig Ingold, Stefan Umrath, Michael Hartmann, Romain Guérout, Astrid Lambrecht, Serge Reynaud, and Kimball A. Milton,
Phys. Rev. E 91, 033203 (2015). DOI: 10.1103/PhysRevE.91.033203