Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
Neko-TOP is an extension of the Neko library, and as such it requires the Neko library to be installed. The Neko library also has a number of dependencies, such as the JSON-Fortran library, which is used for reading and writing JSON files, and the PFUnit library, which is used for unit testing.
Here we provide a brief overview of the dependencies and how to compile the library. For more detailed information, please see the documentation for the individual libraries. In particular, the Neko library has a detailed documentation on how to compile and install the library, with support for various accelerators. Neko homepage.
We group the dependencies into two categories: system dependencies and external libraries. The system dependencies are the dependencies that are required to compile the Neko library and the Neko-TOP library. The external libraries are the libraries that are required to run the examples and the tests.
The system dependencies are the dependencies that are required to compile the Neko library and the Neko-TOP library. The system dependencies are:
The external libraries are required to be present for the compilation of Neko-TOP. However, these can be compiled and installed by the setup.sh
script if they are not already present on the system. The external libraries are:
To compile the library and all external dependencies, the user can run the setup.sh
script. This script will download and compile all dependencies and the Neko-TOP library. The script will also compile all the advanced examples and run the unit tests if desired.
The setup.sh
script is an automated setup of Neko-TOP along with Neko and other dependencies. The script relies in a number of environment variables, which can be used to modify the behaviour of the system and allow the user to specify custom install locations for the given dependencies.
Variable | Description | Default |
---|---|---|
NEKO_DIR | Location of the Neko library. | external/neko |
JSON_FORTRAN_DIR | JSON-Fortran library, required dependency of Neko. | external/json-fortran |
NEK5000_DIR | Nek5000, primarily used for meshing and for GSLib. | external/Nek5000 |
PFUNIT_DIR | Unit testing library used in Neko. | - |
CUDA_DIR | Location of the CUDA library folders, needed for Nvidia GPU support. | - |
These can be defined either on the command line by the user or in a prepare.env
file which is loaded by the setup script if it exists in the root of Neko-TOP. This preparation script will also be loaded by the run.sh
script, so it is possible to define environment variables for the execution of the examples as well. The prepare script provide a convenient way to use module systems such as spack
or similar to activate environments and such before compilation.
An example of a prepare.env
file is shown below:
Look through the following documentations:
Link 1 is the microsoft description of getting started with WSL 2. Link 2 is the NVidia guideline to how to correctly use WSL and CUDA together. Link 3 is the link to download instructions for CUDA toolkit and drivers to WSL. Remember to update NVidia graphics drivers on the windows side as well.