Boundary conditions with thermal engine

Asked by Rioual

Hello,

I want to impose a constant heat flux at a surface which constitutes the boundary of a confined granular packing.
My surface has a cylindrical shape.
How can I code this with yade ?

thermal.thermalBndFlux=[a,b,c,d,e,f] ??
What does the 6 component vector represent ?? we can only treat the case of a cubic box maybe ?

if I fix temperature, I need in this case to add both instructions in the code:
thermal.bndCondIsTemperature=[a,b,c,d,e,f]
thermal.thermalBndCondValue=[a',b',c',d',e',f']
restriction to cubic boxes also ?

Thank you very much for your assistance,

V.

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Robert Caulk
Solved:
Last query:
Last reply:
Revision history for this message
Robert Caulk (rcaulk) said :
#1

Hello,

>>I want to impose a constant heat flux at a surface which constitutes the boundary of a confined granular packing.

The code does not currently allow for imposing a heat flux as a boundary condition. Only dirichlet boundary conditions are supported. However, it is possible to add neumann bcs but requires modifying the source code.

>>thermal.thermalBndFlux=[a,b,c,d,e,f] ??
What does the 6 component vector represent ?? we can only treat the case of a cubic box maybe ?

This simply reports the flux passing through each of the 6 boundaries of the cube. This is not a boundary condition assignment.

>> if I fix temperature, I need in this case to add both instructions in the code:
thermal.bndCondIsTemperature=[a,b,c,d,e,f]
thermal.thermalBndCondValue=[a',b',c',d',e',f']
restriction to cubic boxes also ?

Yes these are the functions you use to assign the constant temperature coundary conditions for the solid phase. This is designed for cubic packings but can also be used for cylindrical or spherical shapes (anything that does not have a cavity). You just need to ensure your boundary walls are spaced enough to contain your sphere/cylinder.

Cheers,

Robert

Revision history for this message
Rioual (francois-rioual-v) said :
#2

...Thanks for your input, Robert.

1>> the boundary conditions are adapted to packings of different shapes: "anything that does not have a cavity" as you say.
In my case, my granular packing is confined between two concentric cylindrical boundaries >> this is not adapted to this case so ?
is that what you say ?

2>> is it a big job to modify the source code to add neumann's boundary conditions ? (in case question 1 is favourable to my case)

My Best regards,

Vincent,

Revision history for this message
Robert Caulk (rcaulk) said :
#3

>>In my case, my granular packing is confined between two concentric cylindrical boundaries >> this is not adapted to this case so ?

Boundaries as concentric cylinders does not make sense. It seems I do not understand your geometry. Please clarify the geometry of the packing as well as the exact types of boundary conditions you are trying to apply.

>> is it a big job to modify the source code to add neumann's boundary conditions ? (in case question 1 is favourable to my case)

Depends on your C++ coding skills I suppose. I already started working on this functionality, but it was buggy and I did not see any direct need to spend time debugging it [1].

Cheers,

Robert

[1]https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/pfv/Thermal.cpp#L273

Revision history for this message
Rioual (francois-rioual-v) said :
#4
Revision history for this message
Rioual (francois-rioual-v) said :
#5
Revision history for this message
Best Robert Caulk (rcaulk) said :
#6

Hey Vincent,

This type of geometry/boundary condition is not supported in FlowEngine or ThermalEngine right now. It seems you will need to add this functionality yourself.

Cheers,

Robert

Revision history for this message
Rioual (francois-rioual-v) said :
#7

Thanks Robert Caulk, that solved my question.