# Swan
SWAN is a third-generation wave model for obtaining realistic estimates of wave parameters in coastal areas, lakes and estuaries from given wind, bottom and current conditions. The model is based on the wave action balance equation with sources and sinks. SWAN allows to use two types of grids (structured and unstructured) and nesting approach. SWAN is not recommended to use in on ocean scales.
Manual can be found [here](https://swanmodel.sourceforge.io/online_doc/swanuse/swanuse.html) and more about SWAN settings can be found [here](https://swanmodel.sourceforge.io/settings/settings.htm).
## Quickstart
---
1. Load the module
module load green/all
module load Swan
2. Copy the examples
cp -r $SWANDIR/../Examples Swan-examples
3. Unpack one example
cd Swan-examples
tar xf refrac.tar.gz
cd refrac
4. Download the [swan.slurm](swan.slurm) script
curl https://hpc.pages.taltech.ee/user-guides/engineering/swan.slurm
5. Adjust `ntasks`, `nodes` and `cpus-per-task` submit it:
sbatch swan.slurm
Contents of the `swan.slurm`:
#!/bin/bash
#SBATCH --partition=green-ib ### Partition
#SBATCH --job-name=Swan ### Job Name -J
#SBATCH --time=00:10:00 ### WallTime -t
#SBATCH --nodes=1 ### Number of Nodes -N
#SBATCH --ntasks-per-node=2 ### Number of tasks (MPI processes)
#SBATCH --cpus-per-task=4 ### Number of threads per task (OMP threads)
#SBATCH --mem-per-cpu=100 ### Min RAM required in MB
#set up enviroment
module load green/all
module load Swan
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
MACHINEFILE="machinefile"
# Generate Machinefile for mpi such that hosts are in the same order as if run via srun
srun -l /bin/hostname | sort -n | awk '{print $2}' > $MACHINEFILE
# do the swan simulation
swanrun -input a11refr.swn -mpi $SLURM_NTASKS -omp=$SLURM_CPUS_PER_TASK
#rm $MACHINEFILE