Array problems
Colleagues,
I would be interesed in any suggestions on the following. I am using Fluent 12 beta release. Below is part of a udf to define a periodic boundary condition at the inlet. I've had this bc working in earlier versions of fluent. My problem concerns the initiaisation of a number arrays at the beginning of the routine. The routine starts by intialising the arrays radexp, a0, a and b. The routine compiles, builds and loads ok using ms visual c++ 2008. On intialising the flow field using the compute from 'inlet' the routine appears to read (from file) and write (to screen) the arrays radexp, a0, a and b correctly. However when I try to write a after reading b the elements of a become jumbled. This coding worked fine on versions of fluent prior to 6.4. Any help, suggestions greatly appreciated. I have tried reading and writing the arrays using pointers but I get the same result. #include "udf.h" #define M 128 #define N 13 DEFINE_PROFILE(inlet_velocity,thread,index) { FILE *fp; int i, j; float radexp[25], a0[13], a[128][13], b[128][13]; float x[ND_ND]; face_t f; float xcoord, ycoord, zcoord, radcfd; fp = fopen("PBFFT12.txt","r"); for (i=1; i<N; i++) { fscanf(fp, "%f", &radexp[i]); radexp[i] = radexp[i] * 0.001; } for (i=1; i<N; i++) { printf("%12.8f ", radexp[i]); } printf("\n"); for (i=1; i<N; i++) { fscanf(fp, "%f", &a0[i]); } for (i=1; i<N; i++) { printf("%12.8f ", a0[i]); } printf("\n"); for (j=1; j<M; j++) { for (i=1; i<N; i++) { fscanf(fp, "%f", &a[j][i]); } } for (j=1; j<M; j++) { printf("%4d ", j); for (i=1; i<N; i++) { printf("%12.8f ", a[j][i]); } printf("\n"); } for (j=1; j<M; j++) { for (i=1; i<N; i++) { fscanf(fp, "%f", &b[j][i]); } } for (j=1; j<M; j++) { printf("%4d ", j); for (i=1; i<N; i++) { printf("%12.8f ", b[j][i]); } printf("\n"); } for (j=1; j<M; j++) { printf("%4d ", j); for (i=1; i<N; i++) { printf("%12.8f ", a[j][i]); } printf("\n"); } fclose(fp); begin_f_loop(f,thread) { //NB. this is just to return a value, not the bc. F_CENTROID(x,f,thread); F_PROFILE(f,thread,index) = 0.02; } end_f_loop(f,thread) } |
Re: Array problems
Please note I'm having trouble putting in the less than symbol. All i loops are evaluated between 1 and N-1, and all j loops between 1 and M-1.
|
have you succed using array for the inlet boundary?
Yannian |
All times are GMT -4. The time now is 09:38. |