Skip to main content

A simulation software for dimensionally-reduced free surface flows.

Project description

Zoomy

Flexible modeling and simulation software for free-surface flows.

Zoomy's main objective is to provide a convenient modeling interface for complex free-surface flow models. Zoomy transitions from a symbolic modeling layer to numerical layer, compatible with a multitude of numerical solvers, e.g. Numpy, Jax, Firedrake, FenicsX, OpenFOAM and AMReX. Additionally, we support the PreCICE coupling framework in many of our numerical implementations, to allow for a convenient integration of our solver with your existing code.

Documentation

See our Documentation for details on

  • how to get started
  • tutorials
  • examples
  • API
  • ...

License

The Zoomy code is free open-source software, licensed under version 3 or later of the GNU General Public License. See the file LICENSE for full copying permissions.

BibTex Citation

T.b.d.

Installation

Conda/Mamba

The project is composed out of different environment files. We start by installing the base and than adding 'flavors', depdening on the solver backend that you want to use.

Default solver (Linux / Mac)

Base Installation

cd install
conda env create -f install/zoomy.yml
./conda_config_setup.sh

Mesh support for Numpy/Jax solver

conda env update -f install/env-mesh.yml

** CPU/GPU solver with JAX**

conda env update -f install/env-jax.yml

FenicsX (Linux / Mac)

Base Installation

cd install
conda env create -f install/zoomy.yml
./conda_config_setup.sh

FenicsX

conda env update -f install/env-fenicsx.yml

Firedrake (Linux / Mac)

Base Installation

cd install
conda env create -f install/zoomy.yml
./conda_config_setup.sh

Firedrake

Activate the environment before installing any Firedrake dependencies.

conda activate zoomy

Mainly follow the instructions on the Firedrake Webpage.

Deviating from the instructions on the webpage, we use

python3 ../firedrake-configure --show-petsc-configure-options --with-pnetcdf=0 | xargs -L1 ./configure

to compile PetSc without PNetCDF and then install Firedrake inside our conda environment

pip install --no-binary h5py 'firedrake[check]'

AMReX (Linux / Mac)

Base Installation

cd install
conda env create -f install/zoomy.yml
./conda_config_setup.sh

AMReX

Note that the AMReX installation is completely indepdenent and the AMReX solver does not depend on the Conda/Mamba environment. Follow the instructions on the AMReX Webpage

OpenFOAM 12 (Linux / Mac)

T.b.d

Activation

conda activate zoomy

Docker

T.b.d

Apptainer

T.b.d

Manual installation

See the install/zoomy.yml for a complete list of requirements. Once the requirements are fulfilled, simply clone the repository.

The following environment variables need to be set

PYTHONPATH=/path/to/Zoomy
ZOOMY_DIR=/path/to/Zoomy
JAX_ENABLE_X64=True
PETSC_DIR=/path/to/petsc/installation
PETSC_ARCH=architecture used for compiling petsc

External dependencies

PreCICE

T.b.d.

Working in Jupyter Notebooks

Make sure to export the environment variables

PYTHONPATH=/path/to/Zoomy
ZOOMY_DIR=/path/to/Zoomy
JAX_ENABLE_X64=True //(if you use JAX)
PETSC_DIR=/path/to/petsc/installation
PETSC_ARCH=architecture used for compiling petsc

Testing

T.b.d.

Publications

T.b.d.

Dependencies and acknowledgements

This

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zoomy_core-0.1.5.tar.gz (91.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zoomy_core-0.1.5-py3-none-any.whl (111.1 kB view details)

Uploaded Python 3

File details

Details for the file zoomy_core-0.1.5.tar.gz.

File metadata

  • Download URL: zoomy_core-0.1.5.tar.gz
  • Upload date:
  • Size: 91.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for zoomy_core-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e9e0b4b409c76d5325d548b954b8830a573ca07953fe2a72112ab2aee2e5980f
MD5 6229123ad1921a7428af8aa0c6e61f51
BLAKE2b-256 15173500b5ee3f49b8b7329e00e4c1960b5218a6243ebc124ed9ab18e8d605f7

See more details on using hashes here.

File details

Details for the file zoomy_core-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: zoomy_core-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 111.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for zoomy_core-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9a9838560386669fca6850b58a58ea424ad6a08a9e737803c9ef23c689cb2488
MD5 5d012626f5b98ce67c1fb64336be1ae1
BLAKE2b-256 aad245eefaca36daa52e65f4cf91efa613b78a8ab0cfd9cb14b272fcf2b67536

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page