Loop over the faces of a cell in UDF
Hi everybody,
Does someone know how to do a loop over the faces of a cell in an UDF ? or what is the macro to name the face of a given cell ? I have found the instruction "C_FACE(cell,thread,i)" where I suppose that "i" corresponds to face number i of the cell. Therefore, I tried a thing like : for (i=0;i less C_NFACES(cell,thread);i++) { f0=C_FACE(cell,thread,i); ... } (I write "less" otherwise errors occurs in the text, but in the C source, I obviously used the sign, thus don't mind about that, the problem is not here!!) but it doesn't seem to work. Any help would be really appreciated. Thanks in advance Anthony |
Re: Loop over the faces of a cell in UDF
The integer variables C_NNODES and C_NFACES return the number of nodes or faces, respectively, for a given cell. The integer variable F_NNODES returns the number of nodes associated with a face.
So this is not the appropriate macro for looping over faces in a cell. Use : begin_f_loop(f,t) end_f_loop(f,t) ---> which loops over faces in a face thread. |
Re: Loop over the faces of a cell in UDF
Hi Ravi,
Thank you for your contribution. Unfortunetaly, your answer does not correspond to what I would like to do. I know very well the command : begin_f_loop(f,t) end_f_loop(f,t), which as you mentioned as well, is useful for a loop over faces in a FACE THREAD. But I am concerned with loop over faces of a CELL, not of a thread : this is completely different. I have been using "begin_f_loop(f,t) end_f_loop(f,t)" efficiently for a long time in simpler situations, when I would like to do a loop over faces of a face thread. If you have any other suggestion concerning how to write a "LOOP OVER FACES OF A CELL", thank you in advance Anthony |
Re: Loop over the faces of a cell in UDF
Ok here's how to do it:
int numbf; cell_t cf; Thread *tf,*f_thread; face_t face; /* cf,tf is cell & cell thread */ c_face_loop(cf,tf,numbf) { face = C_FACE(cf,tf,numbf); f_thread = C_FACE_THREAD(cf,tf,numbf); /* do what you like with face numbf with face & f_thread */ /* -- eg temp = F_T(face,thread); */ } Greg |
Re: Loop over the faces of a cell in UDF
Thanks Greg !!
Anthony |
Quote:
However, I am struggling to implement the code written here. I am trying to implement a code able to calculate the mass flow in different planes created by the user, not boundaries. My idea is integrate through a volumen and then divide for the width of the volumen. The code is created in a way that if the cell is located in the section then a loop through all the faces wants to be done. Because the mass flow importance for this problem is only the one in the direction Z, I calculate the normal vector of the face an multiply the Z component by the mass flow, for each face. I am having problems because I need to initialize two times the variables, for the first bucle and for the second bucle. I would really appreciate to get some help in this problem. Attached can be found the code. Code:
#include "udf.h" Thank you very much |
Hey,
I think I will need to implement something as the code you wrote. What I dont get is the meaning of the numbf, how does it change and where does it come from to work as an input. Kind regards, Diogo |
All times are GMT -4. The time now is 04:30. |