The femtoscope software was written as part of Hugo Lévy's PhD thesis (2021-2024). This Python code can be used to investigate different models of modified gravity within complex geometries on unbounded domains.
YAML (stands for YAML Ain't Markup Language) is a serialization language which is often used as a format for configuration files. Anaconda allows the creation of an environment file (with .yml extension) in order to share with others.
>> conda env export --name femtoscope > femtoscope.yml
This will create femtoscope.yml at current location. This file can then be used by another Anaconda user to re-create the same environment. The steps to follow (from official conda online documentation) are:
- Create the environment
>> conda env create -f femtoscope.yml
- Activate the new environment
>> conda activate femtoscope
- Verify that the new environment was installed correctly
and make sure femtoscope appears in the list. This process is likely to take several tens of minutes.
>> conda env list
note The project uses Python >= 3.9
- Python >= 3.9
- meshio == 4.4.6 (read & write mesh files)
- numpy < 2 (sfepy is not yet compatible with numpy 2.x)
- pandas >= 1.5.3
- pyevtk (creation of
.vtk
files) - pyvista (visualization of FEM results)
- scipy
- sfepy >= 2024.3 (FEM engine)
- pdoc >= 14.5.1 (patch against polyfill.io malicious CDN)
- gmsh == 4.11.1 (some features of femtoscope are broken in newer versions)
├───data # I/O files
│ ├───mesh
│ │ └───geo
│ ├───model
│ ├───result
│ └───tmp
│
├───doc
│
├───femtoscope
│ ├───core # weak form representation & solvers
│ ├───display
│ ├───inout # mesh & VTK generation
│ ├───misc
│ ├───physics # Poisson & Chameleon classes
│ ├───tests # unit & integration tests
│
├───images
│
├───script # Examples
│
└───tutorials # hands-on notebooks
If you would like to cite femtoscope in a paper or presentation, please use the following reference:
@article{hlevy:femtoscope,
doi = {10.1103/PhysRevD.106.124021},
url = {https://link.aps.org/doi/10.1103/PhysRevD.106.124021},
author = {Lévy, Hugo and Bergé, Joël and Uzan, Jean-Philippe},
title = {Solving nonlinear Klein-Gordon equations on unbounded domains via
the Finite Element Method},
month = {09},
year = {2022}
}
The documentation is generated using pdoc by running the Python script "generate_documentation.py" located in the "script" directory.