A fatal signal (segmentation violation)
Hi everyone,
I need to control the geometry of boundary in function of pressure in fluent by using the UDF in deform function, but fluent show massage that "A fatal signal (segmentation violation)", I really don't know about this error, this is my UDF #include "udf.h" DEFINE_GEOM(deform, domain, dt, position) { Thread *t; face_t f; real x[ND_ND]; real NV_VEC (A); real ho=0.000001, hc, def; real presur[1000],xx[1000]; int max; int i,j; if (!Data_Valid_P ()) return; i=0.; begin_f_loop (f, t) { F_CENTROID(x,f,t); xx[i]=x[0]; presur[i]=F_P(f, t); i=i+1; max=i; } end_f_loop (f, t) i=0.; j=0.; begin_f_loop (f, t) { for(i = 0; i < max;i++) { def=(xx[j+1]-xx[j])*presur[j]*ln(fabs((xx[i+1]+xx[i])/2.-xx[j]*fabs((xx[i-1]+xx[i])/2.-xx[j])); } hc=def/(2.*3.14); position[1]=ho+xx[j]*xx[j]/2.+hc; j=j+1; } end_f_loop (f, t) return position[1]; } Many thanks |
Probably your vectors are smaller than the total number of faces from your mesh. Do a grid->check to see how many faces do you have and let me know.
Do |
Hi Dohander,
My gird has the data as following; Level Cells Faces Nodes Partitions 0 64902 98278 33377 1 1 cell zone, 6 face zones. Thanks you so much for your suggestion. Sutthinan |
OK,
Check if the total numbers of faces (not zones) is less than 1000. I think this is why you have the memory error, specifically here: real presur[1000],xx[1000]; |
Thank you for your advices, and I wonder that if I need to use the presure for calculating. Does which one appropriate between C_P(c,t) and F_P(f, t) ? (because both of them, I can get the same pressure)
:confused: |
One is for the pressure at the center of a cell and one for the pressure at a face of a cell.
Try changing this line: real presur[1000],xx[1000]; to real presur[98280],xx[98280]; It should get rid of the memory violation error, at least I hope so. Do |
what is the face thread t in the face loop? The pointer t is not initialized or assigned a valid value, which absolutely returns you a "segmentation fault" error.
Quote:
|
All times are GMT -4. The time now is 20:59. |