Skip to content

The Casimir Effect in the plane-sphere geometry.

License

Notifications You must be signed in to change notification settings

michael-hartmann/caps

Repository files navigation

CaPS

version 0.5 manual status arXiv:1803.05791 license: GPLv2

What is CaPS?

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.

Features

  • 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.

Installation

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.

Usage

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.

Documentation

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/.

Bugs, developing and contributing

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.

Authors

For a full list, see CREDITS.

License

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)

Publications using CaPS