A Python-based solver for Laplace and Helmholtz scattering by multiple disjoint spheres, utilizing spherical harmonic decomposition and local multiple trace formulations.
Its main routines are for:
- Computing boundary integral operators evaluated and tested against spherical harmonics.
- Building Calderón operators.
- Solving transmission problems using the multiple trace formulation.
- Coupling the problems with ordinary differential equations in time.
Tested with Python 3.10 to 3.13 on Linux and macOS.
We recommend to install the package in its own python environment.
For the minimum installation:
pip install biosspheres
For the installation including the dependencies necessary for running jupyter notebooks:
pip install "biosspheres[all]"
git clone https://github.com/iamartineza/biosspheres
cd biosspheres
pip install -e ".[dev]"
pytest
The biosspheres-notebook Docker image runs biosspheres with Python 3.12 and JupyterLab. It can be built and run with:
docker build -t biosspheres-notebook .
docker run -v $(pwd):/root/shared -w "/root/shared" -p 8888:8888 biosspheres-notebook
The file requirements.txt has the list of required package for biosspheres to work,
they can be installed using pip install -r requirements.txt
The documentation, with the API reference and the notebooks rendered, is at https://iamartineza.github.io/biosspheres/. The notebooks are also in the folder "notebooks".
Read the file CONTRIBUTING.md and also see the Jupyter notebooks.
Library for arrays, vectors and matrices in dense format, along with routines of linear algebra, norm computation, dot product, among others. It also computes functions like sine, cosine, exponential, etc.
Library for special functions, as the spherical Bessel and spherical Hankel functions.
Library for sparse arrays.
All Legendre's functions are computed using the package pyshtools (documentation of pyshtools).
Library used in the examples for plotting.