PhoenixLecture  2.0.0
Set of tools to make lectures
naive_propagation.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 /*{
8 Comme d'habitude, il faut commencer par définir des macro qui éviterons les inclusions multiples de notre header :
9 }*/
10 #ifndef __NAIVE_PROPAGATION_H__
11 #define __NAIVE_PROPAGATION_H__
12 /*{
13 Un petit include des familles :
14 }*/
15 #include <iostream>
16 
17 /*{
18 Le prototype de notre fonction :
19 }*/
20 void grayscott_propagation(float * outMatU, float * outMatV, const float * matU, const float * matV, long nbRow, long nbCol,
21  const float * matDeltaSquare, long nbStencilRow, long nbStencilCol,
22  float diffudionRateU, float diffusionRateV, float feedRate, float killRate, float dt);
23 
24 /*{
25 Où :
26 \begin{itemize}
27  \item \textbf{outMatU} : est le résultat du calcul pour l'espèce \textbf{U}
28  \item \textbf{outMatV} : est le résultat du calcul pour l'espèce \textbf{V}
29  \item \textbf{matU} : est la concentration initiale de l'espèce \textbf{U}
30  \item \textbf{matV} : est la concentration initiale de l'espèce \textbf{V}
31  \item \textbf{nbRow} : est le nombre de lignes des matrices précédentes
32  \item \textbf{nbCol} : est le nombre de colonnes des matrices précédentes
33  \item \textbf{matDeltaSquare} : est la matrice de poids que nous avons évoqués précédemment (section \ref{secNaiveImplStencil})
34  \item \textbf{nbStencilRow} : le nombre de lignes de cette matrice de poids (pour nous ce sera 3)
35  \item \textbf{nbStencilCol} : le nombre de colonnes de cette matrice de poids (pour nous ce sera 3)
36  \item \textbf{diffudionRateU} : le taux de diffusion de l'espèce \textbf{U}
37  \item \textbf{diffusionRateV} : le taux de diffusion de l'espèce \textbf{V}
38  \item \textbf{feedRate} : la vitesse du processus qui nourrit \textbf{U} et tue \textbf{V} et \textbf{P}
39  \item textbf{killRate} : le taux de conversion de \textbf{V} en \textbf{P}
40  \item \textbf{dt} : l'intervalle de temps du calcul (plus il est petit plus le calcul sera précis \footnote{Bien 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.})
41 \end{itemize}
42 
43 Et finalement la fin de la condition du préprocesseur :
44 }*/
45 #endif
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)
Propagate the U and V species in the matU and matV.