## Fluids

#### UDFs for modify thickness in shell conduction and solve an equation

• mardott
Subscriber
Hi,nI aim to simulate the growth of deposit in an industrial furnace by implementing a mechanistic deposition model through UDFs.nI run 3D steady state simulations, use the DPM for the particles and I capture/make them bounce them on the surface that interest me with DEFINE_DPM_BC.nUnfortunately I am not sure if using the ?shell conduction? to simulate the different layers of the growing deposit on that surface is the right approach for my case.nIndeed, I see that I can only put a parameter as ?thickness? of the shell. But the thickness will be different along my surface. How can I modify this?nMoreover, I should impose the temperature of my deposit surface (i.e. the outer shell surface) by solving a 4th degree equation. That temperature depends, among other things, on the just mentioned deposit thickness. How can I ask FLUENT to solve the equation for me?nWill I be able to do so with the shell conduction?nOr do you have any another idea for my case?nThank you!n
• Rob
Ansys Employee
Doesn't look DEFINE_PROFILE will work. If we use the Fluent wall temperature, assume an external convection boundary what else can we alter to adjust the heat transfer to the outside? n
• mardott
Subscriber
I am not sure I understand your comment.nWhy does not it work? I do obtain the deposition rate with DEFINE_PROFILE and I can apply the sickness efficiency on the surface.nOr do you mean that DEFINE_PROFILE won't work if I write an UDF to modify the FLUENT wall temperature to impose as BC for the shell under Thermal?nAnd, the heat transfer formula is from the internal surface of the deposit towards the outer one.nIs the shell conduction the right approach for the case?nAlso, what about modifying the thickness parameter and solving the equation?n
• Rob
Ansys Employee
I was trying to hook a DEFINE_PROFILE into the shell conduction thickness earlier, and the hook wasn't seeing the profile. nThat leaves expressions, but they won't easily allow you to vary the thickness based on DEFINE_PROFILE results unless you make the value available and Expressions can see User Memory and the like. Expressions are being revised with every release at the moment and I've lost track as I'm testing 2021R1 with a variety of bonus features.nThe issue you may find is that shell zones can't be zero thickness so you may also need to add a very thin layer to the whole domain. nI think shell conduction is probably the best approach for a simple model, but am struggling to work out how it would be done and remain within the restrictions imposed on us by the Export Compliance team. nGiven heat transfer due to conduction is a function of dT, thickness and material properties what else can you alter in the model if the thickness is fixed? n
• DrAmine
Ansys Employee
We have done some work for ice rim growing . Dynamic mesh could be interesting for you. I do no think that shell model is the right choice here but you might vary the thicknes via scheme, the value in scheme can be steered via udf. But only single valued field will be then accepted.n
• mardott
Subscriber
Arrayisn't the dynamic mesh available only for transient simulations? My domain is too large for solving the flow and have a reasonable not-too-heavy transient simulation: I need to stick with steady solving.nArrayI need the thickness to change, otherwise there is no point of using the shell conduction.n I was consequently thinking to drop the shell conduction approach and write two UDFs: one that stores the data from the particle deposition (e.g. the mass of the deposit) for simulation n and one that reads this data and implements a new temperature as BC at the considered surface for simulation n+1. The thickness of my deposit would appear only inside the UDF then.nBasically I would write two DEFINE_PROFILE UDFs. But I am not sure how:nI can make this iterative process quasi-transient from the journal file. Can I use for loops in there?nStore and then the values on the surface. I guess through UDMs?nI can solve the 4th degree equation I need for taking the heat transfer into account.nCould this work?.
• Rob
Ansys Employee
The dynamic mesh is transient, but if you read up on the moving mesh erosion model you may see a way to take advantage of the techniques. However, you'll need to be very careful with the way you deform the mesh to avoid very skew cells. nYour UDF method should work, the question then is how does the layer of stuff build up in the real furnace: ie what causes particles to stick rather than just bounce off? Similarly are you going to report a mass or mass rate of impacts? Both then need a timescale deciding to then alter the pseudo thickness. For the journal approach I'd look into how many cycles you want to model. You might find it's easier to run the cycle, recalculate the temperature then re-run the cycle manually. The whole process will be steady state, the question is how frequently you need to update the temperature field. Using a single UDF would simplify things. n
• mardott
Subscriber
For the sticking probability and other properties of the deposit I implement some mechanistic models through UDFs.nI would like to store the mass rate of impact. Can that be done with TP_FLOW_RATE(tp)? From the FLUENT manual I do not exactly understand what it exactly means.nThe UDF for the stickiness works already, I just have troubles with the heat transfer and re-iterating the process i.e. storing the new surface data from simulation n and then use them as initial conditions for simulation n+1.nI do not know yet the time scales for the full boiler. Right now I am testing the functions and approach on a smaller setup that runs for only 15 min, so I guess I will not have to update the temperature too often.nIt's just it seems a bit risky to re-insert the conditions manually every time, as the chances of making an error are higher. No loops allowed in the journal then?n
• Rob
Ansys Employee
Impact mass would be stored in a UDM, impact rate would need some thinking about to work out a time scale for the impact. Look at the DEFINE_DPM_EROSION example in the manual. n