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.9.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.9-py3-none-any.whl (109.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zoomy_core-0.1.9.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.9.tar.gz
Algorithm Hash digest
SHA256 e1b1f5410290b0febeda697bf48943ed99b33238d48322c139574f175e2c5fa6
MD5 66ccbdc800d6950069ed0e59b3badd24
BLAKE2b-256 48e1f6f168017158c4e5435b63ddaa89cdbf26c007f525192a2e5c0fca4790b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zoomy_core-0.1.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 256c07b2c80035a16e2d191f023d665155cb7dc2c8eb569d3f32865cf58c9938
MD5 d346e3e57cd829d68deb5d5562250cb0
BLAKE2b-256 cd5a808ac6eec5d7c782232e448e01b41e693c87c58002a3d29de1e5d1fec7ef

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