Skip to content

Commit 76a7a3a

Browse files
authored
Merge pull request #2273 from gforney/smoketemp
add changes (surrounded by pp_SMOKE3D directive - disabled) for addressing 3d smoke/temperature issue
2 parents 620bc46 + 84b8f3b commit 76a7a3a

2 files changed

Lines changed: 106 additions & 5 deletions

File tree

Source/smokeview/IOsmoke.c

Lines changed: 105 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1811,6 +1811,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
18111811
koffset = k2 - k;
18121812

18131813
kterm = (k-ks1)*nxy;
1814+
#ifdef pp_SMOKE3D
1815+
if(smoke3di->type == TEMP_index){
1816+
if(k == ks1)kterm += smoke3d_skipz*nxy;
1817+
if(k + smoke3d_skipz >= ks2)kterm -= smoke3d_skipz*nxy;
1818+
}
1819+
#endif
18141820
z1 = zplt[k];
18151821
z3 = zplt[k2];
18161822
znode[0] = z1;
@@ -1833,6 +1839,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
18331839
joffset = j2 - j;
18341840

18351841
jterm = (j-js1)*nx;
1842+
#ifdef pp_SMOKE3D
1843+
if(smoke3di->type == TEMP_index){
1844+
if(j == js1)jterm += smoke3d_skipy*nx;
1845+
if(j + smoke3d_skipy*nx >=js2)jterm -= smoke3d_skipy*nx;
1846+
}
1847+
#endif
18361848
yy1 = yplt[j];
18371849
y3 = yplt[j2];
18381850
ynode[0] = yy1;
@@ -1961,6 +1973,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
19611973
k2 = MIN(k+smoke3d_skipz,ks2);
19621974
koffset = k2 - k;
19631975
kterm = (k-ks1)*nxy;
1976+
#ifdef pp_SMOKE3D
1977+
if(smoke3di->type == TEMP_index){
1978+
if(k == ks1)kterm += smoke3d_skipz*nxy;
1979+
if(k +smoke3d_skipz >= ks2)kterm -= smoke3d_skipz * nxy;
1980+
}
1981+
#endif
19641982
z1 = zplt[k];
19651983
z3 = zplt[k2];
19661984

@@ -1983,6 +2001,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
19832001
i2 = MIN(i+smoke3d_skipx,is2);
19842002
ioffset = i2 - i;
19852003
iterm = (i-is1);
2004+
#ifdef pp_SMOKE3D
2005+
if(smoke3di->type == TEMP_index){
2006+
if(i == is1)iterm += smoke3d_skipx;
2007+
if(i + smoke3d_skipx >=is2)iterm -= smoke3d_skipx;
2008+
}
2009+
#endif
19862010
x1 = xplt[i];
19872011
x3 = xplt[i2];
19882012

@@ -2109,6 +2133,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
21092133
j2 = MIN(j+smoke3d_skipy,js2);
21102134
joffset = j2 - j;
21112135
jterm = (j-js1)*nx;
2136+
#ifdef pp_SMOKE3D
2137+
if(smoke3di->type == TEMP_index){
2138+
if(j == js1)jterm += smoke3d_skipy*nx;
2139+
if(j + smoke3d_skipy*nx >=js2)jterm -= smoke3d_skipy*nx;
2140+
}
2141+
#endif
21122142

21132143
yy1 = yplt[j];
21142144
y3 = yplt[j2];
@@ -2127,11 +2157,17 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
21272157
}
21282158

21292159
for(i = is1; i<is2; i+=smoke3d_skipx){
2130-
int i2,ioffset;
2160+
int i2,ioffset;
21312161

2132-
i2 = MIN(i+smoke3d_skipx,is2);
2133-
ioffset = i2 - i;
2162+
i2 = MIN(i+smoke3d_skipx,is2);
2163+
ioffset = i2 - i;
21342164
iterm = (i-is1);
2165+
#ifdef pp_SMOKE3D
2166+
if(smoke3di->type == TEMP_index){
2167+
if(i == is1)iterm += smoke3d_skipx;
2168+
if(i + smoke3d_skipx >=is2)iterm -= smoke3d_skipx;
2169+
}
2170+
#endif
21352171
x1 = xplt[i];
21362172
x3 = xplt[i2];
21372173

@@ -2284,6 +2320,12 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
22842320

22852321
for(k = ks1; k<ks2; k++){
22862322
kterm = (k-ks1)*nxy;
2323+
#ifdef pp_SMOKE3D
2324+
if(smoke3di->type == TEMP_index){
2325+
if(k == ks1)kterm += nxy;
2326+
if(k == ks2-1)kterm -= nxy;
2327+
}
2328+
#endif
22872329
z1 = zplt[k];
22882330
z3 = zplt[k+1];
22892331
znode[0] = z1;
@@ -2303,6 +2345,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
23032345
for(ii = ibeg;ii<iend;ii++){
23042346
i = is1+ii;
23052347
iterm = (i-is1);
2348+
#ifdef pp_SMOKE3D
2349+
if(smoke3di->type == TEMP_index){
2350+
if(i == is1)iterm++;
2351+
}
2352+
#endif
23062353
x1 = xplt[i];
23072354
x3 = xplt[i+1];
23082355

@@ -2314,6 +2361,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
23142361
jj = ipj-ii;
23152362
j = js1+jj;
23162363
jterm = (j-js1)*nx;
2364+
#ifdef pp_SMOKE3D
2365+
if(smoke3di->type == TEMP_index){
2366+
if(j == js1)jterm+=nx;
2367+
}
2368+
#endif
23172369

23182370
yy1 = yplt[j];
23192371
y3 = yplt[j-1];
@@ -2492,10 +2544,20 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
24922544
for(ii = ibeg;ii<iend;ii++){
24932545
i = is1+ii;
24942546
iterm = (i-is1);
2547+
#ifdef pp_SMOKE3D
2548+
if(smoke3di->type == TEMP_index){
2549+
if(i == is1)iterm++;
2550+
}
2551+
#endif
24952552

24962553
jj = ii+jmi+1-nx;
24972554
j = js1+jj;
24982555
jterm = (j-js1)*nx;
2556+
#ifdef pp_SMOKE3D
2557+
if(smoke3di->type == TEMP_index){
2558+
if(j == js1)jterm+=nx;
2559+
}
2560+
#endif
24992561

25002562

25012563
yy1 = yplt[j];
@@ -2681,6 +2743,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
26812743
for(jj = jbeg;jj<jend;jj++){
26822744
j = js1+jj;
26832745
jterm = (j-js1)*nx;
2746+
#ifdef pp_SMOKE3D
2747+
if(smoke3di->type == TEMP_index){
2748+
if(j == js1)jterm+=nx;
2749+
}
2750+
#endif
26842751
yy1 = yplt[j];
26852752
y3 = yplt[j+1];
26862753

@@ -2692,6 +2759,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
26922759
kk = jpk-jj;
26932760
k = ks1+kk;
26942761
kterm = (k-ks1)*nxy;
2762+
#ifdef pp_SMOKE3D
2763+
if(smoke3di->type == TEMP_index){
2764+
if(k == ks1)kterm+=nxy;
2765+
}
2766+
#endif
26952767

26962768
z1 = zplt[k];
26972769
z3 = zplt[k-1];
@@ -2870,11 +2942,20 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
28702942
for(jj = jbeg;jj<jend;jj++){
28712943
j = js1+jj;
28722944
jterm = (j-js1)*nx;
2945+
#ifdef pp_SMOKE3D
2946+
if(smoke3di->type == TEMP_index){
2947+
if(j == js1)jterm+=nx;
2948+
}
2949+
#endif
28732950

28742951
kk = jj+kmj+1-ny;
28752952
k = ks1+kk;
28762953
kterm = (k-ks1)*nxy;
2877-
2954+
#ifdef pp_SMOKE3D
2955+
if(smoke3di->type == TEMP_index){
2956+
if(k == ks1)kterm+=nxy;
2957+
}
2958+
#endif
28782959

28792960
z1 = zplt[k];
28802961
z3 = zplt[k+1];
@@ -3057,6 +3138,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
30573138
for(ii = ibeg;ii<iend;ii++){
30583139
i = is1+ii;
30593140
iterm = (i-is1);
3141+
#ifdef pp_SMOKE3D
3142+
if(smoke3di->type == TEMP_index){
3143+
if(i == is1)iterm++;
3144+
}
3145+
#endif
30603146
x1 = xplt[i];
30613147
x3 = xplt[i+1];
30623148

@@ -3068,6 +3154,11 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
30683154
kk = ipk-ii;
30693155
k = ks1+kk;
30703156
kterm = (k-ks1)*nxy;
3157+
#ifdef pp_SMOKE3D
3158+
if(smoke3di->type == TEMP_index){
3159+
if(k == ks1)kterm+=nxy;
3160+
}
3161+
#endif
30713162

30723163
z1 = zplt[k];
30733164
z3 = zplt[k-1];
@@ -3246,11 +3337,20 @@ int DrawSmoke3D(smoke3ddata *smoke3di){
32463337
for(ii = ibeg;ii<iend;ii++){
32473338
i = is1+ii;
32483339
iterm = (i-is1);
3340+
#ifdef pp_SMOKE3D
3341+
if(smoke3di->type == TEMP_index){
3342+
if(i == is1)iterm++;
3343+
}
3344+
#endif
32493345

32503346
kk = ii+kmi+1-nx;
32513347
k = ks1+kk;
32523348
kterm = (k-ks1)*nxy;
3253-
3349+
#ifdef pp_SMOKE3D
3350+
if(smoke3di->type == TEMP_index){
3351+
if(k == ks1)kterm+=nxy;
3352+
}
3353+
#endif
32543354

32553355
z1 = zplt[k];
32563356
z3 = zplt[k+1];

Source/smokeview/options.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#define pp_GPU // support the GPU
1010
#define pp_THREAD // turn on multi-threading
1111
//#define pp_FIRE_HIST // option to output histogram of 3d fire data
12+
//#define pp_SMOKE3D // tentative correction to 3D smoke using temperature
1213

1314
#ifdef pp_FRAME // turn on each frame type if pp_FRAME is set
1415
#define pp_BOUNDFRAME // turn on frame code for boundary files

0 commit comments

Comments
 (0)