-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
42 lines (34 loc) · 3.68 KB
/
index.html
File metadata and controls
42 lines (34 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
---
layout: default
title: Home
---
<!-- Introduction -->
<section id="one">
<div class="container">
<header class="major">
<h2>OpenSBLI</h2>
<p>A framework for the automated derivation of finite difference solvers from high-level problem descriptions</p>
</header>
<p>Current version: Version 3.0, correponding to Lusher et al (2025) Computer Physics Communications, Volume 307 <a href="https://doi.org/10.1016/j.cpc.2024.109406">https://doi.org/10.1016/j.cpc.2024.109406</a>
<p>OpenSBLI is a Python-based modelling framework that is capable of expanding a set of differential equations written in Einstein notation and automatically generating C code that performs the finite difference approximation to obtain a solution. This C code is then targetted with the <a href="http://www.oerc.ox.ac.uk/projects/ops">OPS library</a> towards specific hardware backends, such as MPI/OpenMP for execution on CPUs, and CUDA/OpenCL for execution on GPUs. The main focus of OpenSBLI is on the solution of the compressible Navier-Stokes equations with application to shock-boundary layer interactions (SBLI). However, in principle, any set of equations that can be written in Einstein notation may be solved. </p>
<p>OpenSBLI has been through three main phases of development. Version 1 (master branch, Jacobs et al 2017) was developed by Satya Jammy and Christian Jacobs as a proof of concept, with application to a triply-periodic test case. Version 2 (cpc-release branch, see Lusher et al, 2021) was developed by David Lusher and Satya Jammy and included shock-capturing, wall boundary condition and an expanded range of applications, including a transitional shock-wave/boundary-layer interaction problem in 3D. Version 3 (jaxa-release, Lusher et al, 2025) was primarily developed by David Lusher and includes support for multiblock grids, additional filter treatments and a flagship application to an airfoil in transonic flow.</p>
<p>OpenSBLI has been tested on large CPU and GPU machines and has shown excellent per-node performance and scaling characteristics. Despite the automated code generation process it is generally able to achieve similar performance levels to hand-crafted code. In addition, by exploiting the automation process it was possible (see Jammy et al 2019) to optimise the use of small numbers of intermediate storage arrays leading to a factor of two improvement over traditional hand-written codes. Examples of applications and publications are listed in the linked pages here. The release code includes a documentation folder.</p>
<p><center>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ob4NKZgUK3U" frameborder="0" allowfullscreen></iframe>
</center></p>
</div>
</section>
<!-- Features -->
<section id="features">
<div class="container">
<h3>Key Features</h3>
<ul class="feature-icons">
<li class="fa-pencil">Express the differential equations to be solved in Einstein/index notation</li>
<li class="fa-code">OPS-compliant C code that solves the equations is automatically generated</li>
<li class="fa-plug">Code is targetted towards various backends, including MPI, CUDA, OpenCL</li>
<li class="fa-cog">Open-source project, released under the GNU General Public License</li>
<li class="fa-users">Separation of concerns: model dev kept separate from backend support</li>
<li class="fa-book">Example applications and user documentation are available</li>
</ul>
</div>
</section>