Problem with UDF
Hi, I have developed a code for finding the centroids of each individual cells in a fluid zone.But I run into the error when i try to print out the centroids of the cells, if remove that part from the code the code runs fine.If any body could help me with tis problem would greatly be appreciated. The code runs this way: # include "udf.h" FILE *fout; int id =5;//id of the fluid domain extern Domain *domain; DEFINE_ON_DEMAND(get_coords) {
cell_t c; face_t f; real x[ND_ND]; double vol; int i; Thread *thread = Lookup_Thread(domain,id); fout = fopen("coordinate.out","w"); i=0; fprintf(fout,"thread id %d\n",id); /*if(fout==NULL) { printf("error"); }*/ thread_loop_c(thread,domain) { i = i+1; begin_c_loop(c,thread) { C_CENTROID(x,c,thread); fprintf(fout,"%d %g \n",i,x[0]); i =i+1; } end_c_loop(c,thread) } fclose(fout); } Thanks in advance, Murthy |
Re: Problem with UDF
A simple workaround might be to copy the centroid x,y, and z values into the u,v,w velocity arrays:
thread_loop_c(thread,domain) { begin_c_loop(c,thread) { C_CENTROID(x,c,thread); C_U(c,thread) = x[0]; C_V(c,thread) = x[1]; C_W(c,thread) = x[2]; } end_c_loop(c,thread) } Then just export the "velocity" field. This might not be exactly what you're looking for. Regards, Keith |
Re: Problem with UDF
Hi, The function runs fine with the C_CENTROID(x,c,thread) part,but when I assign an value of x[0] to another variable, it shows me an error called segmentation violation when this program is run as an compiled/interpreted code.The domain consists of 90 2D quadrilateral cells and Iam able to loop through all the cells.The variable x is defined as real x[2]. Thanks in advance, Murthy
|
Re: Problem with UDF
Just to check, are you initializing the flowfield before you run your ON DEMAND function? It may not have any arrays for u and v yet. I usually get seg faults when I try and assign something that has not been initialized yet.
|
Re: Problem with UDF
Hi, Thanks for the reply.Apart from the aforesaid I had to include the metric.h header file and sg.h header file to get the results.Once agin thanks for every one who has contributed to my problem. Murthy
|
All times are GMT -4. The time now is 02:39. |