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.0.tar.gz (15.7 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.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zoomy_core-0.1.0.tar.gz
  • Upload date:
  • Size: 15.7 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.0.tar.gz
Algorithm Hash digest
SHA256 58b945b9b1d16aeb858f920c015f5768642807b555a4d6c251d313bcafe7202c
MD5 746369975443bed285d80ac768bee748
BLAKE2b-256 6b95a9b172284daba03103b9d7cd394e3d0f6f47db0f6029507db11fcbfe9779

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zoomy_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75565a81e9d6b7fc6c8abbe537eef978146f93665a4f506eca6835a6ec74dc6e
MD5 8515362fe3d7c084405d18f0a41b20ba
BLAKE2b-256 27bd8d24d4c2cdf161270558358348c8bd0719a094b2bead92dff5a384940e09

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