# Olaflow

Ce dossier regroupe l'ensemble des scripts nécessaires à l'éxécution du modèle Olaflow ainsi qu'au post-traitement des
données.

## Scripts

### Animate
`animate.py` permet d'obtenir une animation de `alpha.water` et `U` en sortie du modèle Olaflow.

```python -m processing.animate -o OUTPUT [-v] [-m] [-i]```

* `-o OUTPUT` : choix du dossier de sortie dans lequel travailler
* `-v` : verbose
* `-m` : au-lieu d'une animation, tracer le maximum de chaque grandeur dans le modèle
* `-i` : au-lieu d'une animation, tracer la valeur initiale de chaque grandeur

### Bathy

`bathy.py` permet de générer la bathymétrie utilisée par Olaflow.

```python -m processing.bathy [-c CONFIG] [-v]```

* `-c CONFIG` : choix d'un fichier de configuration
* `-v` : verbose

```
[bathy]
bathy : bathymétrie générée dans data
hstru : hauteur de poreux générée dans data
scale* : échelle de la bathymétrie en [x,y,z]
translate* : translation de la bathymétrie en [x,y,z]
out : dossier de sortie de la bathymétrie
```

### Diff

`diff.py` permet de comparer les sorties de plusieurs modèles Olaflow.

```python -m processing.diff -o OUTPUT ... [-t TIMESTEP] [-f FUNCTION] [-y FIELD]```

* `-o OUTPUT` : dossier des sorties de Olaflow à utiliser (répéter pour les modèles à comparer)
* `-t TIMESTEP` : instant auquel comparer les modèles
* `-f FUNCTION` : fonction de post-traitement à comparer (`graphUniform` ou `graphUniform2`)
* `-y FIELD` : champs à comparer (`alpha.water` ou `U`)

### Flow velocity

`flow_velocity.py` permet de tracer la vitesse du courant pour un post-traitement du modèle Olaflow.

```python -m processing.flow_velocity -o OUTPUT [-f FUNCTION]```

* `-o OUTPUT` : dossier des sorties de Olaflow à utiliser
* `-f FUNCTION` : fonction de post-traitement à comparer (`graphUniform` ou `graphUniform2`)

### Olaflow

`olaflow.py` définit la classe Python OFModel permettant de traiter les données de sortie de Olaflow.

### Pickle

`pickle.py` permet de lire les données de sortie d'un modèle Olaflow et de les convertir en objet `OFModel`, puis
d'enregistrer cet objet pour une utilisation efficace avec Python.

```python -m processing.pickle -i INPUT -o OUTPUT [-z]```

* `-i INPUT` : dossier de sortie d'Olaflow
* `-o OUTPUT` : dossier de sortie à utiliser
* `-z` : activer la compression gzip (déconseillé)
