Python code for solving nonlinear PDEs from modified gravity models on unbounded domains
Project description
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.
Installation
femtoscope can be either installed from PyPI
pip install femtoscope
or from conda-forge
conda install femtoscope
Generate documentation
The documentation may be generated by running
python -m femtoscope.misc.generate_documentation
cd doc/
Alternatively, one can use the CLI Entry Point
generate-femtoscope-docs
cd doc/
Note that these two options will generate the documentation at the current directory. Additional information about femtoscope can be found in Hugo Lévy's PhD thesis, chapter 4.
Run tests
To check the installation, it is recommended to run the tests bundle with
python -m femtoscope.tests.run_tests
Alternatively, one can use the CLI Entry Point
run-femtoscope-tests
Getting started
Getting started notebooks are available at https://github.com/onera/femtoscope/tree/main/tutorials.
Development mode
Clone the femtoscope repository https://github.com/onera/femtoscope/ which contains the source files. It is recommended to run femtoscope on a dedicated virtual environment. The femtoscope.yml file can be used to automate the creation of a conda environment as follows:
- Create the environment
conda env create -f femtoscope.ymlNote that this process is likely to take several tens of minutes. - Activate the new environment
conda activate femtoscope - Verify that the new environment was installed correctly
conda env listand make sure femtoscope appears in the list.
note The project uses Python >= 3.9
Main dependencies
- 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
.vtkfiles) - 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)
Tree structure
├───doc
│
├───femtoscope
│ ├───core # weak form representation & solvers
│ ├───data # I/O files
│ │ ├───mesh
│ │ │ └───geo
│ │ ├───model
│ │ ├───result
│ │ └───tmp
│ ├───display
│ ├───images
│ ├───inout # mesh & VTK generation
│ ├───misc
│ ├───physics # Poisson & Chameleon classes
│ ├───tests # unit & integration tests
│
└───tutorials # hands-on notebooks
UML Diagram
Citing
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}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file femtoscope-0.2.0.tar.gz.
File metadata
- Download URL: femtoscope-0.2.0.tar.gz
- Upload date:
- Size: 421.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7281cb0b4d1f013c9f96b66fa16e8de1ceae145ed5db48aff2bc324c7aad83be
|
|
| MD5 |
c4299700d3b30c8e07bc6bdfd9bb8ca2
|
|
| BLAKE2b-256 |
14f4e6a158a266377bd041bfb95982a3193978633017bcc40385b8131d38b511
|
File details
Details for the file femtoscope-0.2.0-py3-none-any.whl.
File metadata
- Download URL: femtoscope-0.2.0-py3-none-any.whl
- Upload date:
- Size: 443.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
049c3dfb10a7418c7036706b889e2740048d3670c1869be32121ec9bd3237536
|
|
| MD5 |
beca4205152ab86ed57940183d48d59d
|
|
| BLAKE2b-256 |
1eb080f6f19326e6a6f617fad7fdb7aaec74b9947b551a8acaac640898197066
|