4.1.1.2 : Le header naive_propagation.h



Écrivons le fichier naive_propagation.h :



Comme d'habitude, il faut commencer par définir des macro qui éviterons les inclusions multiples de notre header :

1
2
#ifndef __NAIVE_PROPAGATION_H__
#define __NAIVE_PROPAGATION_H__


Un petit include des familles :

1
#include <iostream>


Le prototype de notre fonction :

1
2
3
void grayscott_propagation(float * outMatU, float * outMatV, const float * matU, const float * matV, long nbRow, long nbCol,
		       const float * matDeltaSquare, long nbStencilRow, long nbStencilCol,
		       float diffudionRateU, float diffusionRateV, float feedRate, float killRate, float dt);


Où :
  • outMatU : est le résultat du calcul pour l'espèce U
  • outMatV : est le résultat du calcul pour l'espèce V
  • matU : est la concentration initiale de l'espèce U
  • matV : est la concentration initiale de l'espèce V
  • nbRow : est le nombre de lignes des matrices précédentes
  • nbCol : est le nombre de colonnes des matrices précédentes
  • matDeltaSquare : est la matrice de poids que nous avons évoqués précédemment (section 4.1.1.1)
  • nbStencilRow : le nombre de lignes de cette matrice de poids (pour nous ce sera 3)
  • nbStencilCol : le nombre de colonnes de cette matrice de poids (pour nous ce sera 3)
  • diffudionRateU : le taux de diffusion de l'espèce U
  • diffusionRateV : le taux de diffusion de l'espèce V
  • feedRate : la vitesse du processus qui nourrit U et tue V et P
  • textbfkillRate : le taux de conversion de V en P
  • dt : l'intervalle de temps du calcul (plus il est petit plus le calcul sera précis noteBien sûr, si vous mettez un nombre dénormalisé comme pas de temps ça n'a aucun sens et vos résultats seront tout pourri, mais je me comprends.)


Et finalement la fin de la condition du préprocesseur :

1
#endif


Le fichier naive_propagation.h complet :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************
	Auteur : Pierre Aubert
	Mail : pierre.aubert@lapp.in2p3.fr
	Licence : CeCILL-C
****************************************/

#ifndef __NAIVE_PROPAGATION_H__
#define __NAIVE_PROPAGATION_H__
#include <iostream>

void grayscott_propagation(float * outMatU, float * outMatV, const float * matU, const float * matV, long nbRow, long nbCol,
		       const float * matDeltaSquare, long nbStencilRow, long nbStencilCol,
		       float diffudionRateU, float diffusionRateV, float feedRate, float killRate, float dt);

#endif


Vous pouvez le télécharger ici.