# UDF/DPM: Displace Particle during Tracking

 Register Blogs Members List Search Today's Posts Mark Forums Read

 September 4, 2008, 03:02 UDF/DPM: Displace Particle during Tracking #1 Steffi Guest   Posts: n/a Hi, My Problem: I would like to displace a particle with a UDF during tracking. For example moving the particle at once from coordinates (1/1) to (2/1) without aborting the calculation/tracking. Is there any FLUENT standard function to move an inert particle as it is tracked? Steffi

 September 4, 2008, 13:38 Re: UDF/DPM: Displace Particle during Tracking #2 Allan Walsh Guest   Posts: n/a I don't think there is any standard Fluent function. I have done something similar by using a UDF for a specific DPM law and then just change the particle coordinates for some predetermined condition.

 September 4, 2008, 15:54 Re: UDF/DPM: Displace Particle during Tracking #3 Steffi Guest   Posts: n/a Hi Allan, thanks for your response. Did you change the particle coordinates just by allocating some new values to P_POS(p)[]? Did you use DPM_SWITCH for your condition or did you just state the condition within DPM_LAW? What kind of particles have you had? Droplets, combusting particles, inert particles? Steffi

 September 5, 2008, 12:59 Re: UDF/DPM: Displace Particle during Tracking #4 Allan Walsh Guest   Posts: n/a We use DPM_LAW for three custom laws (drying, volatiles release, and combustion) along with built-in Fluent law for inert particles. We also use DPM_SWITCH to change between laws. It works fine this way, but I still question whether we actually need the DPM_SWITCH function. In our implemention, at times we want to move material from the wall to the floor, without any reactions. My recollection in the past was that I did this by just changing the P_POS(p)[i] variable, keeping in mind that x is 0, y is 1, in the current versions of Fluent. This should work for you within a custom DPM_LAW for inert particles. In our case, we wanted to have a more general method since we don't always know the value of the y position of the floor, so we just set the y velocity to a high negative value to rapidly move the particle to the floor.

 September 8, 2008, 02:49 Re: UDF/DPM: Displace Particle during Tracking #5 Steffi Guest   Posts: n/a Hi Allan, thanks again. I tried to move inert particles (steady state tracking, Fluent 6.3) by using DPM_LAW (with and without DPM_SWITCH to state a condition). However, the solver didn't accept new particle positions. Changes in P_MASS(p), P_VEL(p) were also not possible. Do you think this may be due to "inert particles"? Would be glad if you can answer me once again. Steffi

 September 8, 2008, 15:39 Re: UDF/DPM: Displace Particle during Tracking #6 Allan Walsh Guest   Posts: n/a Not sure. But, you might look in the UDF manual at the DEFINE_DPM_EROSION example where they also include a DEFINE_DPM_LAW for stopping tracking, where they set P_MASS(p) to zero. How do you mean the solver did not accept new particle positions? What I would do is print the variables for the particle positon when your code is started just to make sure that the variables are accessible in your part of the code. Change the variable with particle position and then print it out from your code again. It is quite possible that Fluent would change the particle position in your macro and then it would change it back as it returns to its own code. You might also want to check out the values of the particle position at the previous time step and when the particle enters the cell. Or, you may have to access one of the other switches for particle tracking like abort, escape, etc. to keep it from reverting to the old condition.

 September 9, 2008, 03:02 Re: UDF/DPM: Displace Particle during Tracking #7 Steffi Guest   Posts: n/a Hi Allan, thank you again for your response. I know this UDF example in which P_MASS(p) is set to zero. However it didn't work. That's why I use "p->stream_index=-1" as in the example of DPM_OUTPUT to abort particle tracking. Concerning the changes in a particles position, you're right. If allocating some new values to P_POS(p) within a macro, these values are returned, when printing them. But for the next iteration step, when the macro is called again (for ex. DPM_SCALAR_UPDATE), Fluent returns to its "old" values. I'm not sure whether I understand your last sentence right. You mean something like PATH_ACTIVE or PATH_ABORT as in the example of DPM_BC? I'll just try it. Steffi

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Mehmet SORGUN CFX 0 February 4, 2009 14:24 yair FLUENT 0 July 15, 2008 08:27 ED FLUENT 0 August 7, 2007 01:29 nicostage CFX 1 May 4, 2006 09:08 shirley FLUENT 0 June 25, 2003 00:34

All times are GMT -4. The time now is 09:58.