|
[Sponsors] |
February 10, 2009, 12:43 |
Array problems
|
#1 |
Guest
Posts: n/a
|
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) } |
|
February 10, 2009, 13:43 |
Re: Array problems
|
#2 |
Guest
Posts: n/a
|
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.
|
|
March 5, 2012, 16:11 |
|
#3 |
Member
Yolk
Join Date: Nov 2011
Posts: 38
Rep Power: 15 |
have you succed using array for the inlet boundary?
Yannian |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
array in UDF | Kamal | FLUENT | 1 | November 7, 2013 02:15 |
can we initialize an array in UDF? | blueberry | Fluent UDF and Scheme Programming | 2 | April 14, 2009 13:00 |
UDF array problem | Malachy | FLUENT | 0 | February 10, 2009 11:41 |
Array of fields | r2d2 | OpenFOAM Running, Solving & CFD | 11 | January 30, 2008 13:40 |
Why I can not allocate five 256*256 array in VC++ | Aspens | Main CFD Forum | 4 | March 1, 2000 05:06 |