A snippet from neXtSIM_DG : next generation sea-ice model with DG
- 1. Otto-von-Guericke Universität Magdeburg, Magdeburg, Germany
- 2. Université Grenoble Alpes, Institut des sciences de la Terre, Grenoble
Description
A snippet from neXtSIM_DG : next generation sea-ice model with DG
This archive contains the software described and required to reproduce the numerical results of the manuscript "The neXtSIM-DG dynamical core: A Framework for Higher-order Finite Element Sea Ice Modeling" by Thomas Richter, Véronique Dansereau, Christian Lessig and Piotr Minakowski.
We strongly recommend that you access nextsim-DG's GitHub page https://github.com/nextsimdg/nextsimdg instead of this archive for the latest version of the code. The software is still under active development and this excerpt contains only a very small part of it. In the present form, it is provided for self-contained reproducibility.
neXtSIM-DG is created as part of SASIP: The Scale-Aware Sea Ice Project which is funded by Schmidt Futures, a philanthropic initiative founded by Eric and Wendy Schmidt that bets early on exceptional people making the world better, particularly through innovative breakthroughs in science and technology. It is a project of Schmidt Futures' Virtual Earth System Research Institute (VESRI).
Installation
The main requirements for compiling the neXtSIM_DG and the test cases from the manuscript are
- the cmake build environment
- a C++17 compiler. We made best experience with gcc (but clang also works)
- the template linear algebra library Eigen version 3.4 or newer
We assume that .../nextsim/
is the path to the directory where this readme is located. To configure and compile neXtSIM_DG:
- create a build directory
mkdir BUILD
- In
BUILD
configure neXtSIM_DG withcmake .../nextsim
. You can adjust the settings by issuingccmake .
within the build directory. In particular, consider to setCMAKE_BUILD_TYPE
toRelease
for optimal performance and turningWITH_THREADS
toON
for OpenMP multithreading support. - In
BUILD
compile neXtSIM_DG by callingmake
.
The executables for running the numerical tests will all be located within the build directory at BUILD/dynamics/tests
.
Detailed installation instructions for the complete neXtSIM_DG project can be found here.
Running the test cases
The test cases do not depend on any external data and can be started from any working directory.
Advection Testcase I
This reproduces Testcase I specified in Section 5.1.1 of the manuscript. A smooth initial condition is advected in a rotational velocity field using discontinuous Galerkin DG(0), DG(1) and DG(2) discretizations on sequences of refined meshes.
BUILD/dynamics/tests/example1-sasipmesh
The output shows the number of DG degrees of freedom (1 for DG(0), 3 for DG(1) and 6 for DG(2)), the number of time steps and the number of grid cells in each grid direction. This is followed by the error in mass conservation as well as the discretization error and the discretization error stored in the program. The outputs correspond to Figure 4 of the manuscript (see also the documentation).
vtk-outputs of the solution are written out in folders named Example1_DG_NX
, where again DG is the number of DG degrees of freedom and NX is the number of mesh elements in each direction.
Advection Testcase II
This reproduces Testcase II specified in Section 5.1.2 of the manuscript. An initial condition that represents four shapes with different smoothness (see Figure 6 of the manuscript) is advected in a ring domain. The test is repeated using discontinuous Galerkin DG(0), DG(1) and DG(2) discretizations on sequences of refined meshes.
BUILD/dynamics/tests/example2-sasipmesh
The output is corresponding to Testcase I. The vtk's correspond to Figure 7 in the manuscript.
LKF Benchmark
This example reproduces the sea ice benchmark configuration that is described in Section 5.2 of the manuscript and that first has been introduced by Mehlmann and Richter in A modified global Newton solver for viscous-plastic sea ice models and that has been used for comparing different sea ice implementations in Simulating Linear Kinematic Features in Viscous-Plastic Sea Ice Models on Quadrilateral and Triangular Grids With Different Variable Staggering.
BUILD/dynamics/tests/example2-sasipmesh
The benchmark is defined on a domain of size 512km x 512km for 2 days simulation time. VTK output is generated every hour and stored in Benchmark_CG_DG_NX
where CG
stands for the degree of the velocity discretization (1 or 2) and DG
for the number of DG degrees of freedom (1, 3 or 6). NX
is the number of elements in each direction.
These three parameters are adjusted in the file benchmark_mevp.cpp
within the main function.
Multithreading
If configured with WITH_THREADS ON
, neXtsim_DG will take the maximum number of available threads. You can control the number of threads by setting the environment variable OMP_NUM_THREADS
.
Files
README.md
Files
(15.9 MB)
Name | Size | Download all |
---|---|---|
md5:86d3f3a95c324c9479bd8986968f4327
|
11.4 kB | Download |
md5:3a761735f18c829fdf0f166c1f2f5ea1
|
15.9 MB | Download |
md5:976da52d0d23a95b8fa2a986f2cb9327
|
5.3 kB | Preview Download |