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.8.tar.gz (90.9 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.8-py3-none-any.whl (109.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zoomy_core-0.1.8.tar.gz
  • Upload date:
  • Size: 90.9 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.8.tar.gz
Algorithm Hash digest
SHA256 3455f954ee21d57e191c2d8d4db549d8c311466df4712e2062ef7100bc569e69
MD5 ec8a93ede2d623e95dd67fc6a8e3c5aa
BLAKE2b-256 ca3d2f7567ac8ba697e6705431faa0b2a823cf34979fd62a08f38c4710148bcd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zoomy_core-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 109.9 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ea69c850e936ac01301175274f0f515c232da3cfb6df63da27acc2bef92c5e14
MD5 3d781cb573f61a724e882bdfc3ec5644
BLAKE2b-256 a6ad7f9ed4a77de7ec3856b0579f77ba6b5cd535608adebdced6343e380db7b0

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