CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > ANSYS > FLUENT

UDF array problem

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 10, 2009, 11:41
Default UDF array problem
  #1
Malachy
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];

real x[ND_ND];

face_t f;

real 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; //0.001 converts from mm to m

}

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<3; 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) /* loops over all faces in the thread passed in the DEFINE macro argument */

{

// get the co-ordinates of tri-face centre

F_CENTROID(x,f,thread);

// set velocity at the tri-face centre

F_PROFILE(f,thread,index) = 0.02;

}

end_f_loop(f,thread) }
  Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
array in UDF Kamal FLUENT 1 November 7, 2013 02:15
Array problems Malachy FLUENT 2 March 5, 2012 16:11
can we initialize an array in UDF? blueberry Fluent UDF and Scheme Programming 2 April 14, 2009 13:00
Array declaration kdarc OpenFOAM Running, Solving & CFD 0 August 24, 2007 00:21
Increasing the F-array - Problem! Bernardo Santos Aflalo Phoenics 2 April 25, 2006 15:07


All times are GMT -4. The time now is 03:03.