Bonjour,
j'ai un problème tout bête, tout d'abord, voici le code
Il s'agit d'une petite classe pour gérer un noeud d'une future grille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class NodeD2Q9 { //================================================================ //Class for a node with a 2 dimensions and 9 directions //name convention: // f22 f12 f21 // \ | / // f13 -- f00 -- f11 // / | \ // f23 f14 f24 //================================================================ #ifndef Node2DQ9_h #define Node2DQ9_h class NodeD2Q9 { private: double density; public: //the distribution functions are public, so they can be modified easily double f00, f11, f12, f13, f14, f21, f22, f23, f24; //compute and save the density of the node double Density() { density = f00 + f11+f12+f13+f14 + f21+f22+f23+f24; return density; } double print() {return density;} //Be careful to compute the density before using this function inline double SpeedX() { return (f11-f13 + f21+f24-f22-f23)/density;} inline double SpeedY() { return (f12-f14 + f21+f22-f23-f24)/density;} }; #endif
Le problème se situe au niveau de la fonction Density(), elle retourne bien la bonne densité, mais density n'est pas modifié durablement. Si bien que lorsque j'appelle ensuite SpeedX(), je n'obtient pas le bon résultat.
D'où cela vient t'il et comment y remédier?
Remarques:
J'utilise ubuntu et je compile avec g++
Une solution que j'ai trouvé est de faire deux fonctions:
j'ai le warning suivant du compilateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void ComputeDensity() { density = f00 + f11+f12+f13+f14 + f21+f22+f23+f24; } double GetDensity() { return density; }
pourtant la ligne 7 est un commentaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 In file included from main.cpp:5: NodeD2Q9.h:7:1: warning: multi-line comment
Code : Sélectionner tout - Visualiser dans une fenêtre à part // / | \
Partager