How to remove the error:FLUENT received a fatal signal (SEGMENTATION VIOLATION).
Everytime when I am post-handling data, the message will be happened after I click any button:
Error: FLUENT received a fatal signal (SEGMENTATION VIOLATION). Error Object: () How to remove/repair the error? Thanks. |
That's what sometimes happens on machines with Windows system. I guess there problem in memory handling. Because I used to use Windows on my Mac, that was the most probable reason, not enough memory for my Windows partition. The way I used to do it was to relaunch it couple times or just reboot Windows.
Someone here sometime ago advised to run Fluent with -serv option, which means, run Fluent from command line such as: fluent 2ddp -serv if it doesn't help try to run with -driver option and select appropriate driver. Krst |
Hello,
could it be somehow related to having two fluid zones, or shadow wall boundary? I'm asking because I solved a case where I used udf file and everything was fine and now I changed the mesh so I have two fluid parts and interface between them and when I run calculations now I get: Error: FLUENT received a fatal signal (SEGMENTATION VIOLATION). Error Object: () :( |
Sometimes it can be caused by a udf that is designed for serial mode but crashes when you run Fluent in parallel because the udf is not compatible with parallel variables. Try running in serial mode to see if you no longer get segmentation faults.
|
If you are using UDF, this is probably because your UDF is trying to access some information that is not available. For example: you can not access gradients in the first iteration, so you need to add a line to avoid this problem.
Check your variables if they are all initialized in your code and if you properly defined all UDM/UDS in your case. |
fatal error
hi, I have written a UDF about standard ke turbulence model and compiled successfully, but when i try initialize, it shows error: received a fatal signal (segmentation fault), does anyone help me remove this error?
my UDF code as follows: #include "udf.h" /*#include "math.h"*/ /* Turbulence model constants */ const real C1e=1.44; const real C2e=1.92; const real C_mu=0.09; const real SIG_k=1.0; const real SIG_e=1.3; /* User-defined scalars */ enum { TK, TE, N_REQUIRED_UDS }; /*Define source term in k equation */ DEFINE_SOURCE(TK_SOURCE, c, t, dS, eqn) { real source; dS[eqn]=0.0; source= C_MU_T(c,t)*C_STRAIN_RATE_MAG(c,t)*C_STRAIN_RATE_M AG(c,t)-C_R(c,t)*C_R(c,t)*C_mu*C_UDSI(c,t,TK)*C_UDSI(c,t,T K)/C_MU_T(c,t); return source; } /* define source term in eplison equation */ DEFINE_SOURCE(TE_SOURCE, c, t, dS, eqn) { real source, Pk; Pk=C_MU_T(c,t)*C_STRAIN_RATE_MAG(c,t)*C_STRAIN_RAT E_MAG(c,t); dS[eqn]=0.0; source=C1e*C_UDSI(c,t,TE)*Pk/C_UDSI(c,t,TK)-C2e*C_R(c,t)*C_UDSI(c,t,TE)*C_UDSI(c,t,TE)/C_UDSI(c,t,TK); return source; } /* define diffusion coefficienct */ DEFINE_DIFFUSIVITY(KE_diffusivity,c,t,i) { real diff; real mu_t; int nscalar=i; mu_t=C_R(c,t)*C_mu*C_UDSI(c,t,TK)*C_UDSI(c,t,TK)/C_UDSI(c,t,TE); if (nscalar==TK) diff= mu_t/SIG_k + C_MU_L(c,t); else diff = mu_t/SIG_e + C_MU_L(c,t); return diff; } /*define turbulent viscosity */ DEFINE_TURBULENT_VISCOSITY(turbVis,c,t) { real mu_t; mu_t=C_R(c,t)*C_mu*C_UDSI(c,t,TK)*C_UDSI(c,t,TK)/C_UDSI(c,t,TE); return mu_t; } |
Hi Angela,
Did you find any solution to this problem? Quote:
|
Hi Bruno,
I have gradient of a user defined scalar(C_UDSI_G) in my UDF and I am receiving the segmentation violation error. I am suspecting that this might be the issue. I have initialized the two UDS that I have in my UDF with the hope that I do not get that error again but apparently it did not work. Fluent does not allow me to initialize the gradient (C_UDSI_G). You said by adding a line we can find a solution. Can you please say how? Thanks, Ali Quote:
|
Thanks for your repsonse but I am pretty sure that it is not a graphic card issue. It has to be related to the way the parameters are stored in the code.
|
gradient calculation, C_UDSI_G, segmentation fault
Quote:
DEFINE_ADJUST(adjust_sources,d) { Thread *t; cell_t c; real grad1,grad2; /*========================================== *ADD THE FOLLOWING TWO RED lines below "if condition" PART AND THIS PLACE AND IT WILL SOLVE THE PROBLEM *=========================================*/ if (NULL != THREAD_STORAGE(t,SV_UDS_I(0) ) && NULL != T_STORAGE_R_NV(t,SV_UDSI_G(0))) thread_loop_c(t,d) { begin_c_loop(c,t) { /* now here you can use C_UDSI_G as below*/ grad1 = C_UDSI_G(c,t,0)[0]; grad2 = C_UDSI_G(c,t,0)[1]; ------ ------ so on } } see this also https://www.afs.enea.it/project/nept...df/node247.htm Best Wishes |
All times are GMT -4. The time now is 16:04. |