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.2.tar.gz (103.3 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.2-py3-none-any.whl (122.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zoomy_core-0.1.2.tar.gz
  • Upload date:
  • Size: 103.3 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.2.tar.gz
Algorithm Hash digest
SHA256 cafe18f4b4f585d39f7fe54d80616b09b2c6d1c244d140e83142882a1beb0188
MD5 be743c7b8aa87a3710792a3fa674adf3
BLAKE2b-256 2b8d2b722c36ee534ad550ad4ab1464e6f6b198c8429741f12a6e539894094aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zoomy_core-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 122.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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d5a3b5f2f13a4bd39a8a2c4c934ec91a1dc9b98630ced3f637b3c24a54aa1505
MD5 f26600476b8b3eb6dcda3bc88831bc79
BLAKE2b-256 63385b0150c0eb5941a09951a2586e9054ff195a923d988153bbc162e6f168cc

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