|
|
|
# Step 1: Creating your project folder
|
|
|
|
W-SLDA codes execute calculations in specifically prepared folders for this, called *project folders*. In order to create a new *project folder* you need to make copy of the template folder. For example to create new project for static calculations (of name `st-mycalcs`) execute command:
|
|
|
|
```bash
|
|
|
|
cp -r st-project-template st-mycalcs
|
|
|
|
```
|
|
|
|
Folder with project initially contains following files:
|
|
|
|
1. [Makefile](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/Makefile) - user must modify this file to be compatible with target system (for more see *Step 2*).
|
|
|
|
2. [input.txt](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/input.txt) - template of input file for W-SLDA codes, must be modified by the user.
|
|
|
|
3. [mk.st](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/mk.st) or [mk.td](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/td-project-template/mk.td) - compilation commands. **Do not modify this file**.
|
|
|
|
4. [predefines.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/predefines.h) - here you set compilation parameters of the code.
|
|
|
|
5. [problem-definition.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/problem-definition.h) - here you specify your physical problem you want to solve. This is the most important file from user's perspective.
|
|
|
|
6. [logger.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/logger.h) - here you customize what information should be printed to *wlog* file (text file).
|
|
|
|
|
|
|
|
# Step 2: Updating Makefile (if not provided by admin)
|
|
|
|
[Makefile](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/Makefile) must be edited in order to be compatible with your target system. You can use one of existing [templates for Makefiles](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/Makefiles-templates) in order to speed up this process. For example, if your target system is `Piz Daint` then you can simply copy appropriate file:
|
|
|
|
```bash
|
|
|
|
cp ../Makefiles-templates/Makefile.st.daint ./Makefile
|
|
|
|
```
|
|
|
|
Note that typically you need to set correctly environment before compilation. If you use [templates for Makefiles](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/Makefiles-templates), in the header of Makefile you will find information about modules that needs to be loaded.
|
|
|
|
|
|
|
|
# Step 3: Setting up compilation predefines.
|
|
|
|
Before compilation you need to edit [predefines.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/predefines.h) file and set correctly hpc-engine compilation parameters. Specifically, at this stage you need to specify size of computational lattice.
|
|
|
|
|
|
|
|
# Step 4: Compiling initial version of the code
|
|
|
|
Execute
|
|
|
|
```bash
|
|
|
|
make
|
|
|
|
```
|
|
|
|
to compile W-SLDA codes. Note `make` command will compile all available versions of the code, see [here](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/wikis/Types-of-codes) for more info. In order to compile only selected version of the code use:
|
|
|
|
```bash
|
|
|
|
make 3d # to create 3D version of the only
|
|
|
|
make 2d # to create 2D version of the only
|
|
|
|
make 1d # to create 1D version of the only
|
|
|
|
```
|
|
|
|
# Step 5: Define your problem
|
|
|
|
You need to edit [problem-definition.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/problem-definition.h) in order to define your problem. Update also [logger.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/logger.h) file if you need to report more refined quantities than only basic statistics (particle number, energy, etc.).
|
|
|
|
**Remember** to recompile the code after each modification of [problem-definition.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/problem-definition.h), [logger.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/logger.h), and [predefines.h](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/predefines.h).
|
|
|
|
|
|
|
|
# Step 6: Edit input file
|
|
|
|
Prepare [input.txt](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/st-project-template/input.txt) file for computation. Meaning of each tag is provided in comments.
|
|
|
|
|
|
|
|
# Step 7: Execute code
|
|
|
|
This step is strongly dependent on the target system. General structure of execution command is (example for `st-wslda-2d` code):
|
|
|
|
```bash
|
|
|
|
mpiexec-command resource-definition ./st-wslda-2d input.txt
|
|
|
|
```
|
|
|
|
See folder [job-scripts-templates](https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/tree/public/job-scripts-templates) for examples of submission scrips. |