CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   someon who ever used DEFINE_SOURCE (https://www.cfd-online.com/Forums/fluent/34324-someon-who-ever-used-define_source.html)

bowling August 4, 2004 04:00

someon who ever used DEFINE_SOURCE
 
I have problem about add source term in turbulent model. If you ever done it, please tell me. Thank you.

Alex Chirokov August 4, 2004 14:05

Re: someon who ever used DEFINE_SOURCE
 
it works fairly simple, below is the example from one of my codes. use c, c_thread to extract information about cells.

Alex-

DEFINE_SOURCE(FunctionName, c, c_thread, dS, i) { double dSource return dSource; }

DEFINE_SOURCE(energy_ConstantHeat, c, c_thread, dS, i) {

real source; // Watt/m3

real T;

real x[ND_ND], y;

C_CENTROID(x,c,c_thread);

T = C_T(c,c_thread); // Kelvins

y = x[1];

if( x[0]>0.095 && x[0]<0.215 &&

y<0.025 && y>0.015 )

{

// energy source and radiation in all zones

source=5000000;//-6.8*(1e-09)*pow(T,4)*pow(10,(T-13400)/16000-6.58); //

}else

{

source=0;

}

return source; }

DEFINE_SOURCE(Loretz_ForceR, c, c_thread, dS, i) {

double dXCoord;

double dYCoord;

double dE;

real x[ND_ND];

real T;

C_CENTROID(x, c, c_thread)

dXCoord = x[0];

dYCoord = x[1];

return GetArrayEx(dXCoord, dYCoord, 8); } DEFINE_SOURCE(Loretz_ForceZ, c, c_thread, dS, i) {

double dXCoord;

double dYCoord;

double dE;

real x[ND_ND];

real T;

C_CENTROID(x, c, c_thread)

dXCoord = x[0];

dYCoord = x[1];

return GetArrayEx(dXCoord, dYCoord,9); }

DEFINE_SOURCE(energy_GlobalTemp, c, c_thread, dS, i) {

double dXCoord;

double dYCoord;

double dE;

real x[ND_ND];

real T;

C_CENTROID(x, c, c_thread)

dXCoord = x[0];

dYCoord = x[1];

T = C_T(c, c_thread);

/*conductivity*/

C_UDMI(c, c_thread, 0) = GetArrayEx(dXCoord, dYCoord, 1);

/*conductivity*/

C_UDMI(c, c_thread, 1) = econd(T);

/*Ai*/

C_UDMI(c, c_thread, 2) = GetArrayEx(dXCoord, dYCoord, 2);

/*Ar*/

C_UDMI(c, c_thread, 3) = GetArrayEx(dXCoord, dYCoord, 3);

/*Ei*/

C_UDMI(c, c_thread, 4) = GetArrayEx(dXCoord, dYCoord, 4);

/*Er*/

C_UDMI(c, c_thread, 5) = GetArrayEx(dXCoord, dYCoord, 5);

/*Ac coil contribution*/

C_UDMI(c, c_thread, 6) = GetArrayEx(dXCoord, dYCoord, 15);

/*Temperature*/

C_UDMI(c, c_thread, 7) = GetArray(dXCoord, dYCoord, 0);

/*Temperature*/

C_UDMI(c, c_thread, 8) = GetArrayEx(dXCoord, dYCoord, 0);

/*Source term - Pw*/

C_UDMI(c, c_thread, 9) = GetArrayEx(dXCoord, dYCoord, 7);

/*Fr*/

C_UDMI(c, c_thread, 10) = GetArrayEx(dXCoord, dYCoord, 8);

/*Fz*/

C_UDMI(c, c_thread, 11) = GetArrayEx(dXCoord, dYCoord, 9);

/*Brr*/

C_UDMI(c, c_thread, 12) = GetArrayEx(dXCoord, dYCoord, 10);

/*Bri*/

C_UDMI(c, c_thread, 13) = GetArrayEx(dXCoord, dYCoord, 11);

/*Bzr*/

C_UDMI(c, c_thread, 14) = GetArrayEx(dXCoord, dYCoord, 12);

/*Bzi*/

C_UDMI(c, c_thread, 15) = GetArrayEx(dXCoord, dYCoord, 13);

/*|E|*/

C_UDMI(c, c_thread, 16) = GetArrayEx(dXCoord, dYCoord, 14);

/*J electric current*/

C_UDMI(c, c_thread, 17) = GetArrayEx(dXCoord, dYCoord, 1)*GetArrayEx(dXCoord, dYCoord, 14);

/*Radiation source (sink)*/

C_UDMI(c, c_thread, 18) = -radiation(T);

/*real absolute residuals*/

C_UDMI(c, c_thread, 19) = GetArrayEx(dXCoord, dYCoord, 16);

/*image absolute residuals*/

C_UDMI(c, c_thread, 20) = GetArrayEx(dXCoord, dYCoord, 17);

/*Change in Power*/

C_UDMI(c, c_thread, 21) = GetArrayEx(dXCoord, dYCoord, 18);

return (C_UDMI(c, c_thread, 9)+C_UDMI(c, c_thread, 18)); }

kevin August 13, 2004 04:27

Re: someon who ever used DEFINE_SOURCE
 
hi, Alex, what's the syntax of GetArrayEx()? Is it inherent with Fluent or you defined it in your own head file?

Alex Chirokov August 13, 2004 13:04

Re: someon who ever used DEFINE_SOURCE
 
it is just and example from my working code on how to process input perameters i DEFINE_SOURCE and supply an output , GetArrayEx() not fluent function.


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