45 c_base +=
data->nn_dof[i];
50 for (i = 0; i < sff->
data_comp; i++) s_base +=
data->nn_dof[i];
62 data->node_val_item[(nodeID - 1) * tn_component + c_base + j];
65 cell->
c_data[i] = sqrt(tmp_d);
69 data->node_val_item[(nodeID - 1) * tn_component + c_base +
73 data->node_val_item[(nodeID - 1) * tn_component + c_base];
79 cell->
axis[i * 3 + 1] =
mesh->
node[(nodeID - 1) * 3 + 1];
80 cell->
axis[i * 3 + 2] =
mesh->
node[(nodeID - 1) * 3 + 2];
87 data->node_val_item[(nodeID - 1) * tn_component + s_base + j];
90 cell->
s_data[i] = sqrt(tmp_d);
94 data->node_val_item[(nodeID - 1) * tn_component + s_base +
98 data->node_val_item[(nodeID - 1) * tn_component + s_base];
103 cell->
axis[i * 3 + 1], cell->
axis[i * 3 + 2]);
107 for (i = 0; i < 8; i++) {
115 data->node_val_item[(nodeID - 1) * tn_component + c_base + j];
116 tmp_d += c[j] * c[j];
118 cell->
c_data[i] = sqrt(tmp_d);
122 data->node_val_item[(nodeID - 1) * tn_component + c_base +
126 data->node_val_item[(nodeID - 1) * tn_component + c_base];
132 cell->
axis[i * 3 + 1] =
mesh->
node[(nodeID - 1) * 3 + 1];
133 cell->
axis[i * 3 + 2] =
mesh->
node[(nodeID - 1) * 3 + 2];
140 data->node_val_item[(nodeID - 1) * tn_component + s_base + j];
141 tmp_d += s[j] * s[j];
143 cell->
s_data[i] = sqrt(tmp_d);
147 data->node_val_item[(nodeID - 1) * tn_component + s_base +
151 data->node_val_item[(nodeID - 1) * tn_component + s_base];
156 cell->
axis[i * 3 + 1], cell->
axis[i * 3 + 2]);
166 double get_value_equ(
double cont_equ[10],
int cross_type,
double x,
double y,
172 value = cont_equ[0] * x + cont_equ[1] * y + cont_equ[2] * z + cont_equ[3];
173 else if (cross_type == 2)
174 value = cont_equ[0] * x * x + cont_equ[1] * y * y + cont_equ[2] * z * z +
175 cont_equ[3] * x * y + cont_equ[4] * y * z + cont_equ[5] * x * z +
176 cont_equ[6] * x + cont_equ[7] * y + cont_equ[8] * z + cont_equ[9];
178 fprintf(stderr,
"The value of cross type is wrong\n");
193 index |= (cell->
s_data[0] >= fvalue) ? (
int)1 : (int)0;
194 index |= (cell->
s_data[1] >= fvalue) ? (
int)2 : (int)0;
195 index |= (cell->
s_data[2] >= fvalue) ? (
int)4 : (int)0;
196 index |= (cell->
s_data[3] >= fvalue) ? (
int)8 : (int)0;
197 index |= (cell->
s_data[4] >= fvalue) ? (
int)16 : (int)0;
198 index |= (cell->
s_data[5] >= fvalue) ? (
int)32 : (int)0;
199 index |= (cell->
s_data[6] >= fvalue) ? (
int)64 : (int)0;
200 index |= (cell->
s_data[7] >= fvalue) ? (
int)128 : (int)0;
203 index |= (cell->
s_data[0] < fvalue) ? (
int)1 : (int)0;
204 index |= (cell->
s_data[1] < fvalue) ? (
int)2 : (int)0;
205 index |= (cell->
s_data[2] < fvalue) ? (
int)4 : (int)0;
206 index |= (cell->
s_data[3] < fvalue) ? (
int)8 : (int)0;
207 index |= (cell->
s_data[4] < fvalue) ? (
int)16 : (int)0;
208 index |= (cell->
s_data[5] < fvalue) ? (
int)32 : (int)0;
209 index |= (cell->
s_data[6] < fvalue) ? (
int)64 : (int)0;
210 index |= (cell->
s_data[7] < fvalue) ? (
int)128 : (int)0;
214 if (!index)
return 0;
327 static int config_list[256] = {
328 0, 1, 1, 2, 1, 3, 2, 5, 1, 2, 3, 5, 2, 5, 5,
329 8, 1, 2, 3, 5, 4, 6, 6, -14, 3, 5, 7, -9, 6, 11,
330 12, -5, 1, 3, 2, 5, 3, 7, 5, -9, 4, 6, 6, 11, 6,
331 12, -14, -5, 2, 5, 5, 8, 6, 12, 11, -5, 6, -14, 12, -5,
332 10, -6, -6, -2, 1, 4, 3, 6, 2, 6, 5, 11, 3, 6, 7,
333 12, 5, -14, -9, -5, 3, 6, 7, 12, 6, 10, 12, -6, 7, 12,
334 -13, -7, 12, -6, -7, -3, 2, 6, 5, -14, 5, 12, 8, -5, 6,
335 10, 12, -6, 11, -6, -5, -2, 5, 11, -9, -5, -14, -6, -5, -2,
336 12, -6, -7, -3, -6, -4, -3, -1, 1, 3, 4, 6, 3, 7, 6,
337 -12, 2, 5, 6, 14, 5, 9, -11, -5, 2, 5, 6, -11, 6, -12,
338 -10, -6, 5, -8, -12, -5, 14, -5, -6, -2, 3, 7, 6, -12, 7,
339 13, -12, -7, 6, -12, -10, -6, -12, -7, -6, -3, 5, 9, 14, -5,
340 -12, -7, -6, -3, -11, -5, -6, -2, -6, -3, -4, -1, 2, 6, 6,
341 -10, 5, -12, 14, -6, 5, -11, -12, -6, -8, -5, -5, -2, 5, 14,
342 -12, -6, -11, -6, -6, -4, 9, -5, -7, -3, -5, -2, -3, -1, 5,
343 -12, -11, -6, 9, -7, -5, -3, 14, -6, -6, -4, -5, -3, -2, -1,
344 -8, -5, -5, -2, -5, -3, -2, -1, -5, -2, -3, -1, -2, -1, -1,
347 return config_list[index];