Problems with radiation (discrete ordinates model)
Hi guys I am stuck and I could really use some help.
I want to simulate material melted by a laser beam. For testing purposes, i set up a very simple 2-dimensional case.
on the top wall (modeled as a semi-transparent wall), a radiation source heats the domain.
Now to simulate the melting process (apart from the solidification and melting model which I also use) I try to adjust the absorption coefficient of the material. As soon as the material is considered as melted (temperature higher than melting temperature) the absorption coefficient is reduced. Like this, the "laser" beam travels through the material and heats up volumes which lie further away from the boundary condition.
I already tested this with space-dependent values of the absorption coefficient which worked perfectly.
Now my problem seems to be the temperature-dependency of the absorption coefficient.
When the first cell reaches its melting temperature, the solution begins to oscillate:
This is related to the absorption coefficient in the cell, which changes each iteration.
Now I am not a beginner in CFD, I tried everything I could think of to get the solution to converge: timestep size, under-relaxation, discretization schemes, cell size, smearing the change in the absorption coefficient over a wider temperature range...
Nothing worked, so I am stuck. ANY idea would be helpful.
This could be an idea how to achieve convergence in this case or a totally different approach to model the melting process.
This is a really interesting problem. Does it seem like the cell temperature is is fluctuating, so that the cell is fluctuating between being in a melting state and a solid state?
I am not quite sure I understand the problem. More explanation of the specific problem would help. I am also an expert in CFD, so I think together we can probably figure out whats going on.
Have you tried refining the cells? You can use an adapted mesh so you can avoid gambit.
You are right, the cell temperature is also fluctuating (the absorption coefficient is a function of temperature). Actually, the cell temperature is limited to 1K by the solver as soon as the solution diverges.
But let me first clarify what i want to achieve.
The proces i am trying to simulate is called laser fusion cutting.
The laser beam melts the material, the melt is blown away by a nitrogen jet.
So one of my first ideas was to modify the mesh so it only contains the solid fraction of the material. I imagined it like this:
The laser beam is just a heat flux boundary condition. Whenever a cell is considered as melted, it is removed from the domain and the heat flux BoCo moves to the next face in beam direction.
But since I don't have any knowledge about mesh manipulation as a part of the solution process and nobody was able to help me, I tried something else.
This is where the radiation model comes in. Instead of the heat flux boundary condition, I use an incident radiation boundary condition from the discrete ordinates model in fluent.
Now, whenever a cell is considered as melted, its absorption coefficient goes down, making the cell "transparent" for the incoming radiation.
This way, if the first cell away from the surface is melted, the radiation heats the second cell until it melts. And so on...
This works perfectly when i set the absorption coefficient as a time-constant, space dependent value. The radiation passes the cells with the low absorption coefficient and heats the cells with higher absorption coefficients.
But when I try to link the absorption coefficient to a flow variable (like temperature or liquid fraction), the computation becomes unstable.
The size of the cells in the picture is quite huge, I agree. This was just to allow quick feedback on simulation settings.
With a smaller cell size, the divergence occurs earlier since the liquidus temperature is reached earlier.
Anyway, thanks in advance for supporting me with this problem.
To clarify what I want to simulate, I ran a simulation where the absorption coefficient is a function of time.
As time progresses, the absorption coefficient is reduced starting from the top of the domain where the laser beam hits the surface.
On the left picture you see the temperature distribution, and on the right picture you have a visualization of the laser beam.
This kind of simulation works great.
Now all I need is get it running stable when the absorption coefficient is not a function of time, but is evaluated using some kind of flow variable like temperature or liquid fraction.
Thanks for the update!
This is a very interesting problem indeed. Do you mind posting your UDFs for all two (or three) scenarios? One where the absorption is time dependent, and the other where it is temperature/liquid fraction dependent.
I would expect adding the liquid fraction to the UDF should be a final step. Lets first work on the adsorption coefficient as a function of temperature.
also feel free to PM me for my email.
So here is the UDF for the time-dependent absorption coefficient:
For the liqiud fraction instead of temperature
But you are right, this will be one of the next steps.
In addition, the thermal conductivity of the "molten" (melted? english is not my first language) material should be lowered as a function of temperature, but this was not done in the previous simulations:
I figured out in the last few days that adding a heat source to the fused (ah, that's the word :rolleyes:) material can stabilize the solution process. It keeps the temperature from oscillating.
Since I feared running into a dead end with the radiation modeling, I came up with a new approach which only involves heat sources. This one, i even got to run to convergence.
I encountered a strange problem here with the limited value range of a returned variable (see here)
For now, I can only manipulate the material data to circumvent this problem.
But still, I feel like manipulating the mesh (deleting fused cells or "moving" them to another domain) would be an approach with less restrictions for modeling the other physical effects involved in the process.
I just don't know how to do this.
Anyway, thanks for sharing interest in my problem. I sent you a private message, but still I would like to discuss the problem here so others can feel free to join the discussion.
Can you have fluent plot the temperature in a cell affected by the temperature dependent udf for each iteration? You may just need to write a command that saves an xy plot text document with the temperature, you may even have to define a line along the laser axis or something...
Anyway, I want to see what kind of fluctuations you are getting in your temperature. I wonder if you need to increase the size of the range between T1 and T2. Can you try making T1=900 (or T2 = 1400). Right now there is a large effect on absorption coefficient as a function of T, I am wondering if that is causing large changes in residuals and making it difficult for fluent to find a solution. For example, if T=1105, in your method absorption coefficient = 950, which makes sense. But I wonder if the change is too large for fluent to handle (a .5% change in temperature results in a 5% change in absorption coeff).
The values of T1 and T2 that I am proposing are not very physically real, but we can worry about that after you find the issue.
I think keeping the discussion here is a great idea.
I already tried to increase the range between the two temperatures. I think 1000K to 2000K was the widest range I checked. No converging solution, even when combined with an unreasonably small timestep.
I sense that the Discrete Ordinates model itself might caust the trouble here.
In fact, I had to cheat a little bit to get the solution in the animation in this thread.
The DO-model, as indicated by the name, calculates radiation only along a finite number of ordinates. If I set this number of ordinates to 1 and rotate the geometry by 45°, the laser beam appears sharp and directional and the solution converges nicely (because the beam direction coincides with the only ordinate calculated by the model)
However with any other setup, the beam is "smeared" along all discrete ordinates (although the incident radiation is has only 1 clearly defined direction) and the convergence of the radiation equations is rather crappy.
But all the other radiation models in fluent are not capable of solving cases with high optical thicknesses or semi-transparent walls.
So unless we find an expert for radiation modeling in fluent, I would rather like switching back to a model with only conductive heat transfer.
I think your right, this problem is beyond my abilities. A DO expert would be much more help.
I'm trying to simulate the moving laser beam on the line(a high viscous fluid) which are lied on a solid plate.(please see the picture below)
Would you please tell me how can i use DO model for having the laser beam on the line?
As you told above,you used 1 ordinate and rotate the geometry 45 degrees to simulate this situation. can you explain a little bit more? I couldn't find any option for setting the ordinates to 1 . Furthurmore, i dont know where the radiation boundary condition should be applied?
on the top wall of the air(big block) ,, or top wall of the line?
Because the line is not solid and somehow it is not possible to set anything to its BC.
As i mentioned above, using the DO model to simulate a sharply defined laser beam was more of a workaround. I doubt that it will yield quantitatively correct results the way I abused it.
If you want to do it anyway: The DO model calculates only a finite number of ordinates;)
Increasing this number, I only got "smeared" beams and long computing times.
If you set the number to one, only one ordinate per quadrant will be calculated. I turned my model to match this ordinate with the direction of the laser beam.
Setting the boundary condition to a confined moving spot on a surface was done with the UDF I posted somewhere else in this forum. This works for the DO model as well as for any other kind of energy source. You wont need a seperate line for this.
Anyway, I used a completely different approach for my final model, without the DO model. It used volumetric heat sources for the laser and a temperature-dependent thermal conductivity to "suppress" molten material.
But I am no longer in charge of this project, not because my approach was crappy;), but because this was just a short-term project for me.
How can i set the ordinate number to 1? i couldnt find this in DO's options.
And about BC,it should be applied on the top wall of my fluid line?therefore i dont need the Air(big block) anymore?
(Because i though that a wall on the air domain is needed for fluxing the radiation to the FluidLine in the air domain)
The number of ordinates is controlled via the Theta and Phi Divisions.
Could you post a more schematic image of your problem setup? I dont really understand what you want to simulate.
If you are lucky, you wont need any of hte radiation models.
Thank you for your attention.
I want to have heat transfer simulation of the sintering process.
In this process, a moving laser beam heats a high-visous fluid(mixture of ethylen glycol +silver nanoparticles) on a solid plate .
As you see in the picture below, there are 2 blocks.the bigger one(blue one) is solid plate. and the other one(green one) is the high-viscous fluid.
The laser beam should heat the top part of the fluid line(high-viscous fluid).
I think i cannot use the 'heat flux BC' because my 'fluid line' is not solid and i cannot set any constant BC on the topwall.furthurmore i should probably consider melting and it's the other reason that i cannot use the heat flux BC.
(In the previous post and picture, i added an air block to surround the fluid line,But i dont know it is necessary or not)
So i dont know how can i heat the 'fluid line' by a moving laser beam.
I hope i could clarify my problem.
I would appreciate if you have any idea about my problem.
If the problem is not clarified, please tell me.
Thank you in advance.
I totally forgot...
If you dont want to to go too deep (no free surface analysis, no real melting process...), a thermal boundary condition will be enough. You can apply it to the whole surface and restrict the area where heat is actually transferred with a UDF.
For more advanced simulations, I dont feel competent enough to provide any help.
In your opinion, is it needed to surround the fluid line(green block) with a 'big air block'? Due to these 2 reasons:
After melting or boiling the meshes coordinates should be changed and i cannot imaging without having an air block , how it can be deformed? (without having a surrounded AirBlock, no geometry exists for letting the 'fluid line' to be deformed)
Also The fluidline would be fluid and cannot maintain its position on the solid plate after running.So how can this fluid changes in a space without any geometry existance.
This is exactly the point when the whole thing becomes comlicated:D
You will need a surrounding medium. And the simulation will be some kind of multiphase including melting, radiation...
In a brief literature study, I found some papers with simulations including "all" effects that actually occur.
A good one to start from could be "Gross et al. - determination of the lower complexity limit for laser cut quality modeling"
Unfortunately, I cannot help you any further because my analysis did not go beyond the point mentioned above
Currently, I am doing a laser beam simulation using Fluent.
In my case, the laser beam passes through the reactor and provide a constant heat flux.
I wonder how to specify this external radiation source under the semi-transparent boundary condition. The beam has a diameter 1 mm. I do not know where to give this value.
Could you please give any help ?
|All times are GMT -4. The time now is 22:19.|