|
[Sponsors] |
How to use a UDF to assign a temperature to cells that is within a range of z coord |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
January 23, 2023, 10:38 |
How to use a UDF to assign a temperature to cells that is within a range of z coord
|
#1 |
New Member
Khanh Dang
Join Date: Sep 2022
Posts: 3
Rep Power: 4 |
Hello,
Could I get help with writing my first UDF in Fluent? I have written a UDF to assign a temperature to the cells whose z-coordinates are within a specified range. But it doesn't seem to work. Could everyone take a look at my code and point what I have done wrong? I'm doing a series of transient simulations of the heat transfer between food cans and hot gas in a convection oven. I have a 228-in length filled with cans, and the can locations are periodic such that there are 19 units of cans. Each unit is 12 in long. I want to use the UDF to set an initial temperature for the first unit of cans (Unit 1) and then solve for 16 s. Then, the current temperature of the Unit 1 will be the initial temperature of Unit 2. I will repeat this procedure until Unit 19. I used DEFINE_ON_DEMAND instead of DEFINE_INIT because I'm using a steady-state solution as the initial solution for the hot gas. Thank you so much in advance for your time and help! Code:
#include "udf.h" DEFINE_ON_DEMAND(can_unit_1_temp) { /* declare domain pointer since it is not passed as an argument to the DEFINE macro */ Domain *domain; domain = Get_Domain(1); /* get the cell thread pointer by using the macro Lookup_Thread(domain, zone_id) instead of thread *ct */ int id = 55; /* ID of can solid cell zone */ Thread *ct = Lookup_Thread(domain, id); cell_t c; /* cell index - an special Ansys Fluent data type */ real pos[ND_ND]; /* loop through all the cells in the cell thread of the can solid */ begin_c_loop(c,ct) { C_CENTROID(pos,c,ct); if (0.1524 < pos[2] && pos[2] < 0.4572) /* the first 12 inch of cans (unit 1) is between 0.1524 and 0.4572 m */ C_T(c,ct) = 600.0; } end_c_loop(c,ct) } |
|
February 4, 2023, 11:52 |
|
#2 |
Senior Member
Alexander
Join Date: Apr 2013
Posts: 2,363
Rep Power: 34 |
code seems to be ok
by default fluent uses SI for all UNITs so check your values, that could be a problem Code:
if (0.1524 < pos[2] && pos[2] < 0.4572)
__________________
best regards ****************************** press LIKE if this message was helpful |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] snappyHexMesh sticking point | natty_king | OpenFOAM Meshing & Mesh Conversion | 11 | February 20, 2024 10:12 |
SimpleFoam & Theater | jipai | OpenFOAM Running, Solving & CFD | 3 | June 18, 2019 11:11 |
cellZone not taking all the cells inside | rahulksoni | OpenFOAM Running, Solving & CFD | 6 | January 25, 2019 01:11 |
[snappyHexMesh] sHM layer process keeps getting killed | MBttR | OpenFOAM Meshing & Mesh Conversion | 4 | August 15, 2016 04:21 |
[Netgen] Import netgen mesh to OpenFOAM | hsieh | OpenFOAM Meshing & Mesh Conversion | 32 | September 13, 2011 06:50 |