Skip to content

Dark matter-electron interactions in graphene targets

License

Notifications You must be signed in to change notification settings

temken/Darphene

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status codecov License: MIT

Darphene - Modelling general dark matter - electron interactions in graphene targets

DOI arXiv

Darphene calculates predicted signal rates for dark matter detection experiments using graphene as target material using the tight-binding approximation. Details on the physics can be found in the corresponding publication.

General notes

  • The material properties of the graphene target are modeled using the tight-binding approxmation, which uses atomic orbitals of carbon as a basis for the initial wavefunction of the electrons in graphene.
  • The final electron states are approximated as plane-waves.
  • Darphene is written in C++ and build using CMake.
  • Parts of the calculations, in particular tabulation of event rates, are parallelized using MPI.
Repository content

The included folders are:

  • bin/: This folder contains the executable after successful installation together with the configuration files.
  • data/: Contains additional data necessary for the simulations, e.g. the solar model tables.
  • external/: This folder will only be created and filled during the build with CMake and will contain the obscura library necessary for all direct detection computations.
  • include/: All header files of Darphene can be found here.
  • results/: Each run of Darphene generates result files in a dedicated sub-folder named after the run's simulation ID string, which is specified in the configuration file.
  • src/: Here you find the source code of Darphene.
  • tests/: All code and executable files of the unit tests are stored here.

Getting started

1. Dependencies

Before we can install Darphene, we need to make sure that a few dependencies are taken care of.

  • arb: For the evaluation of hypergeometric functions.
  • boost: For numerical integration (used by libphysica).
  • CMake: Darphene as well as the libraries libphysica and obscura are built with CMake.
  • eigen: For the numerical procedure to find eigenvalues and eigenvectors of the generalized eigen problem.
  • libconfig: For the configuration files, Darphene uses the libconfig library (required version at least 1.6). This will be installed by libphysica, if it is not already installed.
  • libphysica: Automatically downloaded to /external/obscura/external/, compiled, and linked by CMake.
  • MPI: The tabulation of DM observables is accelerated via parallelization using MPI.
  • obscura: Automatically downloaded to /external/, compiled, and linked by CMake.

On macOS, the dependencies can be installed using homebrew.

>brew install arb boost cmake eigen libconfig open-mpi

On Linux machines, we can use APT:

>sudo apt-get update -y
>sudo apt-get install -y arb libboost-all-dev libeigen3-dev libconfig-dev openmpi-bin openmpi-doc libopenmpi-dev
Notes on libconfig

The installation of libconfig is optional, since libphysica will install it automatically, if it is not available. Alternatively, it can be built from the source files via

>wget https://hyperrealm.github.io/libconfig/dist/libconfig-1.7.2.tar.gz
>tar -xvzf libconfig-1.7.2.tar.gz
>pushd libconfig-1.7.2
>./configure
>make
>sudo make install
>popd

2. Download & Installation

The *Darphene* source code can be downloaded by cloning this git repository:

>git clone https://github.com/temken/Darphene.git 
>cd Darphene

The code is compiled and the executable is created using CMake.

>cmake -E make_directory build
>cd build
>cmake -DCMAKE_BUILD_TYPE=Release -DCODE_COVERAGE=OFF ..
>cmake --build . --config Release
>cmake --install .

If everything worked well, there should be the executable Darphene in the /bin/ folder.

3. Usage

Once *Darphene* is installed, it can run by running the following command from the */bin/* folder:

>./Darphene Darphene.cfg

Alternative, one can use MPI to speed up calculations.

>mpirun -n N Darphene Darphene.cfg

where N is the number of desired MPI processes.

Version History

  • 27.03.2023: Release of version 0.1.0

Everything else

Citing Darphene

If you decide to use this code, please cite the latest archived version,

Emken, T., 2023, Darphene [Code, v0.1.0], [DOI:10.5281/zenodo.7774374]

BibTeX entry

@software{Darphene,
  author = {Emken, Timon},
  title = {{Darphene [Code, v0.1.0]}},
  year         = {2023},
  publisher    = {Zenodo},
  version      = {v0.1.0},
  doi          = {DOI:10.5281/zenodo.7774374},
  url          = {https://doi.org/10.5281/zenodo.7774374},
  howpublished={The code can be found under \url{https://github.com/temken/Darphene}. Version 0.1.0 is archived as \href{https://doi.org/10.5281/zenodo.7774375}{DOI:10.5281/zenodo.7774375}}
}

As well as the original publication,

R. Catena, T. Emken, M. Matas, N.A. Spaldin, E. Urdshals , 2023, Direct searches for general dark matter-electron interactions with graphene detectors: Part I. Electronic structure calculations, [arXiv:2303.15497].

Author & Contact

The author of Darphene is Timon Emken.

For questions, bug reports or other suggestions please open an issue.

License

This project is licensed under the MIT License - see the LICENSE file.