CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)
-   -   Temperature Gradient UDF file not compiling (https://www.cfd-online.com/Forums/fluent-udf/234488-temperature-gradient-udf-file-not-compiling.html)

SugarOnichan March 14, 2021 00:43

Thanks for your reply but I have already solved that part.

SugarOnichan March 14, 2021 00:44

Thanks for your reply but I have already corrected that part.

SugarOnichan March 14, 2021 00:47

Right now I think I have solved that nmake error. Now whenever I build and load the file I am getting following messages :

https://imgur.com/shobqf9

ssetay March 14, 2021 01:55

Define mass source on boundary cells used UDF
 
Hi, friends

I am using UDF to define a mass source on the boundary cells, here's my code.
My case is this: particles and water flow in a pipe, and I want to define a mass source for the particle phase in the pipe wall cells.
When I compile this UDF, it works normally, but the volume fraction of particles at the wall has not changed. According to my UDF, the volume fraction of the particle phase in the pipe wall cells should be reduced. I don't know where the error is, but the UDF can work well after compilation. Can anyone help me?

//* You are storing source in User defined memory under DEFINE_ON_DEMAND. Then you are using UDMI(c0,t0,0) in DEFINE_SOURCE *//
#include "udf.h"
//get the boundary cells
DEFINE_ON_DEMAND(selecting_the_cells)
{
#if !RP_HOST
Domain *d;
Thread *t, *tc, *t0;
face_t f;
cell_t c, c0;
d = Get_Domain(1);
tc = Lookup_Thread(d, 9); //Get boundary thread, wall zone ID is 9
//Loop through all the cell threads in the domain
thread_loop_c(t, d)
{
//Loop through the cells in each cell thread
begin_c_loop(c, t)
{
C_UDMI(c, t, 0) = 0;
}
end_c_loop(c, t)
}

begin_f_loop(f, tc)
{
c0 = F_C0(f, tc);
t0 = THREAD_T0(tc);
C_UDMI(c0, t0, 0) = 1;
}
end_f_loop(f, tc)
#endif
}

DEFINE_SOURCE(mass_source, c, t, dS, eqn)
{
real source;
if (C_UDMI(c, t, 0) > 0.)
{
source = -1000.;
dS[eqn] = 0.;
}
else
{
source = 0.;
dS[eqn] = 0.;
}
return source;
}

pakk March 14, 2021 04:23

You forgot to tell what kind of variable d is.

Domain *d; (if I remember correctly)

SugarOnichan March 14, 2021 06:00

It is the variable which is used to get the domain in DEFINE_ON_DEMAND macro.

pakk March 14, 2021 06:20

Yes I know that, but you did not tell Fluent, so you have to add that code.

Yasser March 14, 2021 08:42

Look in your photo ... the error is coming from the 4 lines above "Done"

SugarOnichan March 15, 2021 00:04

I have solved this error and it is working perfectly. Thank you for all of your help. This is the final code.

Code:

#include "udf.h"

DEFINE_ADJUST(tempgrad,d)
{
        Thread *t;
        cell_t c;
        face_t f;

        thread_loop_c(t, d)
        {
                begin_c_loop(c,t)
                {
                        C_UDSI(c,t,0)=NV_MAG(C_T_G(c,t));
                }
                end_c_loop(c,t)
        }
}

DEFINE_ON_DEMAND(store_gradient)
{
        Domain *d;
        d = Get_Domain(1);
        cell_t c;
        Thread *t;
       
        thread_loop_c (t,d)
        {
                begin_c_loop (c,t)       
                {
                C_UDMI(c,t,0) = NV_MAG(C_UDSI_G(c,t,0));
                }
                end_c_loop (c,t)
        }
}


SugarOnichan March 15, 2021 00:38

UDF is loading and compiling perfectly but I can't seem to find this variable anywhere. Do you know where to look for ?

AlexanderZ March 17, 2021 21:37

results -> contours -> contours of: user-defined scalar/user-defined memory -> select surface or zone


All times are GMT -4. The time now is 03:31.