About Ocellaris

Ocellaris is a mass-conserving DG FEM solver for sharp-interface multiphase free-surface flows. Ocellaris can simulate water entry and exit of objects in ocean waves with accurate capturing of the force on the object and the behaviour of the free surface. Some examples of what Ocellaris can do, including videos of the results, are shown in the Ocellaris Blog. Ocellaris is named after the Amphiprion Ocellaris clownfish and is released under the Apache License, version 2.0.

Picture a cylinder in waves from an Ocellaris simulation

Cylinder in waves; from Ocellaris via Paraview and Blender.

Ocellaris is implemented in Python and C++ with FEniCS as the backend for the mesh and finite element assembly. PETSc is used for solving the resulting linear systems. The code is developed in Python and C++ on Bitbucket by use of the Git version control system. If you want to contribute to Ocellaris, please read the guide to contributing. Ocellaris is automatically tested on CircleCI and the current CI build status is circleci_status.

Documentation and user guide

For help installing/running Ocellaris, please use the issue tracker and select Component = User help. Please read this user guide first. We may start a user forum in the future if there are sufficient requests (let us know). Also, please let us know if there documentation is unclear (or wrong) in certain areas, or if you would like to see more documentation on a specific topic. This documentation will not replace a basic course in PDEs or CFD, but if you have taken those courses we hope you will be able to use Ocellaris for your purposes without any prior exposure to DG FEM.

This documentation is written by Tormod Landet and the Ocellaris contributors and is under the same license as the rest of the Ocellaris source code repository contents. See Citing Ocellaris for how to reference Ocellaris in your research.