Skip to content

Commit a0eba12

Browse files
committed
Generating nans
1 parent 1615f57 commit a0eba12

File tree

2 files changed

+33
-17
lines changed

2 files changed

+33
-17
lines changed

example/PDE/lif1.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
<?xml version="1.0"?>
22
<CLBConfig version="2.0" output="output/" permissive="true">
3-
<Geometry nx="3" ny="3" nz="3">
3+
<Geometry nx="15" ny="15" nz="15">
44
<Collision>
55
<Box/>
66
</Collision>
7+
<None name="source">
8+
<Box dx="7" nx="1" dy="7" ny="1" dz="7" nz="1"/>
9+
</None>
710
<Wall mask="ALL">
811
<Box nx="1"/><Box dx="-1"/>
912
<Box ny="1"/><Box dy="-1"/>
1013
<Box nz="1"/><Box dz="-1"/>
1114
</Wall>
1215
</Geometry>
1316
<Model>
17+
<Param name="Source" value="1.0" zone="source"/>
1418
</Model>
15-
<Solve Iterations="1"/>
19+
<VTK/>
20+
<VTK Iterations="1"/>
21+
<Solve Iterations="30"/>
1622
</CLBConfig>

models/PDE/lif/Dynamics.c.Rt

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
?>
44

55
CudaDeviceFunction real_t getJ() {
6-
return 0;
6+
return m_7[0] + m_6[0] + m_5[0] + m_4[0] + m_3[0] + m_2[0] + m_1[0];
77
}
88

99
CudaDeviceFunction real_t getC() {
@@ -12,11 +12,14 @@ CudaDeviceFunction real_t getC() {
1212

1313
CudaDeviceFunction vector_t getU() {
1414
vector_t u;
15+
u.x = m_7[1] + m_6[1] + m_5[1] + m_4[1] + m_3[1] + m_2[1] + m_1[1];
16+
u.y = m_7[2] + m_6[2] + m_5[2] + m_4[2] + m_3[2] + m_2[2] + m_1[2];
17+
u.z = m_7[3] + m_6[3] + m_5[3] + m_4[3] + m_3[3] + m_2[3] + m_1[3];
1518
return u;
1619
}
1720

1821
CudaDeviceFunction real_t getR() {
19-
return resL2;
22+
return resL2(0,0,0);
2023
}
2124

2225
CudaDeviceFunction float2 Color() {
@@ -105,7 +108,7 @@ CudaDeviceFunction void Collision()
105108
real_t lambda[k];
106109
for (int j=0; j<k; j++) lambda[j] = 0;
107110
//lambda[0] = log(m[0]);
108-
for (int iter=0; iter<20; iter++) {
111+
for (int iter=0; iter<15; iter++) {
109112
real_t res[k];
110113
real_t mat[k*k];
111114
for (int j=0; j<k; j++) {
@@ -114,9 +117,9 @@ CudaDeviceFunction void Collision()
114117
mat[j+g*k] = 0;
115118
}
116119
}
117-
printf("lambda = [");
118-
for (int g=0; g<k; g++) printf(" %lg", lambda[g]);
119-
printf(" ]\n");
120+
//printf("lambda = [");
121+
//for (int g=0; g<k; g++) printf(" %lg", lambda[g]);
122+
//printf(" ]\n");
120123
for (int i=0; i<sph_n; i++) {
121124
real_t x = sph_points[0+3*i];
122125
real_t y = sph_points[1+3*i];
@@ -144,21 +147,23 @@ CudaDeviceFunction void Collision()
144147
for (int g=0; g<k; g++) printf(" %lg", mat[j+g*k]);
145148
printf(" ]\n");
146149
}
147-
*/
150+
148151
printf("res = [");
149152
for (int g=0; g<k; g++) printf(" %lg", res[g]);
150153
printf(" ]\n");
151-
154+
*/
152155
resL2 = 0;
153156
for (int j=0; j<k; j++) resL2 += res[j]*res[j];
154157
resL2 = sqrt(resL2);
155-
printf("iter:%d resL2: %lg\n", iter, resL2);
158+
// printf("iter:%d resL2: %lg\n", iter, resL2);
156159
chol_solve(k, mat, res);
157160
for (int j=0; j<k; j++) lambda[j] = lambda[j] - res[j];
158161
}
159-
<?R
160-
C(ms,0);
161-
?>
162+
for (int j=0; j<k; j++) {
163+
<?R for (i in seq_len(nrow(dirs))) { ?>
164+
m_<?%d i ?>[j] = 0;
165+
<?R } ?>
166+
}
162167

163168
for (int i=0; i<sph_n; i++) {
164169
real_t x = sph_points[0+3*i];
@@ -168,13 +173,18 @@ CudaDeviceFunction void Collision()
168173
<?R C(PV("poly[",1:k-1,"]"), polies); ?>
169174
real_t a = 0;
170175
for (int j=0; j<k; j++) a += lambda[j]*poly[j];
171-
real_t b = exp(a)*sph_weights[i];
176+
real_t l = exp(a) + Source;
177+
real_t b = l*sph_weights[i];
178+
real_t flux;
179+
for (int j=0; j<k; j++) {
180+
m_1[j] += poly[j]*b;
181+
}
172182
<?R for (i in seq_len(nrow(dirs))) { ?>
173-
real_t flux = <?R C(sum(PV(c("x","y","z"))*c(dirs$x[i],dirs$y[i],dirs$z[i]))) ?>;
183+
flux = <?R C(sum(PV(c("x","y","z"))*c(dirs$x[i],dirs$y[i],dirs$z[i]))) ?>;
174184
if (flux > 0) {
175185
for (int j=0; j<k; j++) {
176186
m_<?%d i ?>[j] += poly[j]*b*flux;
177-
m[j] -= poly[j]*b*flux;
187+
m_1[j] -= poly[j]*b*flux;
178188
}
179189
}
180190
<?R } ?>

0 commit comments

Comments
 (0)