KLOVE

  • Easy to use interface — simply define the plate and scatterers (pins, masses, mass-spring or beam resonators).

  • Multiple scattering simulations — with plane wave and point load excitation.

  • Far field quantities — with plane wave excitation.

  • Diffraction by gratings — with calculation of efficiencies.

  • Quasi-normal mode analysis and expansion — by solving a nonlinear eigenvalue problem.

  • Calculation of phononic band diagrams — with utilities to define the path along the edges of the Brillouin zone.

  • Auto-differentiable — allowing for gradient-based optimization of elastic wave propagation.

Installation

From Pypi

Simply run

pip install klove

If you want more numerical backends (pytorch, autograd and jax), including auto-differentiation and GPU acceleration, install the full version:

pip install klove[full]

From conda/mamba

For the full installation including GPU/autodiff support

mamba install -c pytorch -c nvidia pytorch pytorch-cuda=12.1 jaxlib=*=*cuda* jax 
pip install klove[full]

From source

Clone the repository

git clone https://gitlab.com/benvial/klove.git
cd klove

Install the package locally

pip install -e .

For the full version:

pip install -e .[full]

From gitlab

Basic:

pip install -e git+https://gitlab.com/benvial/klove.git#egg=klove

Full:

pip install -e git+https://gitlab.com/benvial/klove.git#egg=klove[full]