No convergence with buoyantBoussinesqPisoFoam
Hello everyone,
I am having a ton of trouble trying to figure out how to use buoyantBoussinesqPisoFoam. For whatever reason I cannot get any convergence, my courant number skyrockets after a few intervals and my timestep is really low so I know that's not the problem. I was able to simulate my problem (simple heated plate in air) with buoyantPisoFoam without any problems but I can't figure out buoyantBoussinesqPisoFoam. I've read around other threads and they say the problem may be related to my 0/p file in that the program has a hard time compensating for hydrostatic conditions if I may all my initial conditions constant. My 0/p file looks like this: dimensions[0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { heatedPlate { type buoyantPressure; rho rhok; value uniform 0; } atmosphere { type buoyantPressure; rho rhok; value uniform 0; } frontAndBack { type empty; } } Any help would be really appreciated! |
Does anyone have any suggestions for this? I've been dealing with this problem for a while and would love to find a solution to it.
Thanks in advance! |
Dear jeff osborne,
You must describe your problem in detail, otherwise nobody can understand you. You'd better give some picture about your problem, domain or boundary . If your problem have an inlet and outlet, then in outlet you must give an distribution for pressure like this : p0-g*z. in OpenFOAM's buoyant solver, the pressure have been stratifacated. |
1 Attachment(s)
Hi Jiang,
Sorry about that. I am trying to simulate a heated plate in atmosphere. The bottom of my CV is the heated plate at 400K and the sides and top are all an atmosphere patch. In that sense they are all outlet patches except for the heated plate. What is the boundary condition format for specifing a pressure distribution? This is what my 0/p file looks like at the moment : dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { heatedPlate { type buoyantPressure; rho rhok; value uniform 0; } topatmosphere { type buoyantPressure; rho rhok; value uniform 0; } sideatmosphere { type buoyantPressure; rho rhok; value uniform 0; } frontAndBack { type empty; } } Also, the fluid I am trying to simulate is air at 300K, so does that mean for the pressure BCs instead of putting "0" as the value I would put 87274 (101325kPa/1.161kg/m^3, Patmos/density). Also, I read elsewhere that I would need to initialize the pressure field, how do I do that? Thanks for the help and sorry for the stupid questions, I'm really new to OF and to CFD in general. Thanks! |
1 Attachment(s)
Dear jeff osborne,
"for the pressure BCs instead of putting "0" as the value I would put 87274 (101325kPa/1.161kg/m^3, Patmos/density). ", This is not right. In the 0/p file, the pressure is a relative pressure, which is (p-p0)/density. so the defalt 0 is OK ,don't need to change to 87274. Second , buoyantPressure is mostly used for wall , whick will apropriately set pressure gradient in the wall. I think for outlet buoyantPressure is not good. http://www.cfd-online.com/Forums/ope...implefoam.html eugene Senior Member Eugene de Villiers Join Date: Mar 2009 Posts: 604 Rep Power: 6 http://www.cfd-online.com/Forums/ima...tation_pos.gif Hi Andrea, I suggest you not use fixedValue for pressure as outlet unless it is perpendicular to the direction of gravity. In the new solvers, p = P - pRef, so p will be stratified. Using a fixed value outlet will give rather odd results. There is a new boundary called uniformDensityHydrostaticPressure that will do a better job. Eugene said "I suggest you not use fixedValue for pressure as outlet unless it is perpendicular to the direction of gravity. In the new solvers, p = P - pRef, so p will be stratified. Using a fixed value outlet will give rather odd results. There is a new boundary called uniformDensityHydrostaticPressure that will do a better job. " So you can try this boundary condition. in my simylation, I have a inlet and outlet, I just set a distribution p0-g*z for outlet to make the pressure stratified. This is my pressure picture. |
1 Attachment(s)
Hello Jiang,
Thanks for the help. I've tried changing my BCs in my p file to what you suggested, not 100% sure on the format though. Perhaps you could take a look: dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { heatedPlate { type buoyantPressure; rho rhok; value uniform 0; } topatmosphere { type buoyantPressure; rho rhok; value uniform -1.138941; //-rho*g*h } leftsideatmosphere { type uniformDensityHydrostaticPressure; rho 1.161; pRefValue 101325; pRefPoint (0 0 0); value $internalField; } rightsideatmosphere { type uniformDensityHydrostaticPressure; rho 1.161; pRefValue 101325; pRefPoint (0.1 0 0); value $internalField; } frontAndBack { type empty; } } When I do this I still don't get the nice pressure stratification like you do for my initial condition. Attached is also a picture of my initial pressure field, do I need to initialize my pressure field/how do I do that? Thanks a lot for the help. -J |
Dear jeff osborne,
Acoording to my experience , initial value is so important, but boundary condition is very is important. In my case, I juse give an 0 initial value in the whole field for pressure, and it will ajust very quickly. If you want to initial your field using a good evaluated, there is a utility called "funkySetFields" in the form, you can search it. This utility can set an good value for any field variable using an function. Good luck! |
Hi there,
i have a question for "panda" how do you initialize a pressure field in order to have pressure layers? Greatings |
All times are GMT -4. The time now is 07:54. |