CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   How to remove the error:FLUENT received a fatal signal (SEGMENTATION VIOLATION). (https://www.cfd-online.com/Forums/fluent/62802-how-remove-error-fluent-received-fatal-signal-segmentation-violation.html)

Conan March 20, 2009 05:31

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.

paka March 20, 2009 13:51

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

zdunol August 9, 2015 05:21

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: () :(

LuckyTran August 10, 2015 12:28

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.

Bruno Machado August 11, 2015 05:30

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.

Turbo_hrf November 26, 2015 06:28

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;
}

alinik November 3, 2016 13:49

Hi Angela,

Did you find any solution to this problem?


Quote:

Originally Posted by Turbo_hrf (Post 575073)
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;
}


alinik November 3, 2016 21:35

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:

Originally Posted by Bruno Machado (Post 559066)
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.


alinik November 5, 2016 15:55

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.

Shoonya December 20, 2019 12:31

gradient calculation, C_UDSI_G, segmentation fault
 
Quote:

Originally Posted by alinik (Post 624075)
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

I also was facing the same issue of UDSI_G causing segmentation fault. This error is coming because C_UDSI_G(c,t,0) used in UDF is not initialized. To do so following way of writing the code would solve the segmentation fault error:


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.