|October 22, 2007, 09:18||
Hi everybody, I am having p
Join Date: Mar 2009
Posts: 100Rep Power: 8
I am having problems with a simple Poisson equation.
I am calculating the influence of static magnetic fields on a conducting fluid, and am solving for an electrical potential epot this equation:
U=velocities, B= magnetic induction
Everything works fine in serial, but in parallel it slowly diverges. Well - the Poisson equation works - but the entire calculation involving Lorentz forces calculated later diverges. However, I traced it down until finding that in fact just that simple equation shown above yields different results.
I only have zeroGradient b.c's, so I use setReference (also testet alternatively setValues) to prevent the field from floating. In parallel, before everything diverges, I can actually see a spot in the calculated potential at the location of the reference cell, not in the serial result.
Also, if for testing purpose I apply a fixed boundary condition at some patch and omit that setReference call, results in serial and parallel are identical.
I am lost ... already tried all sorts of different solvers, discretization schemes, ...
|October 22, 2007, 09:43||
Hmm, I have fixed this bug on
Join Date: Mar 2009
Location: London, England
Posts: 1,758Rep Power: 21
Hmm, I have fixed this bug on 29/Aug/2006 in OF-1.3 The new version looks OK. Can you try and print out field.needReference() on all CPUs (using Pout): you should get a "yes" on all. The other problem may be that your cell in which you set a reference is next to a processor boundary, which is a bit more difficult (it should still work). In any case, can you change the reference cell ID to something arbitrary (I guess you've got cell 0 at the moment) and see if it makes it better.
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
|April 30, 2010, 10:53||
Using setReference on Parallel Run
Matthew J. Churchfield
Join Date: Nov 2009
Location: Boulder, Colorado, USA
Posts: 49Rep Power: 8
I am trying to use a PISO-based solver in parallel. I have gradient or cyclic pressure boundary conditions on all boundaries, therefore, I need to set the reference level of the solution. I have done so using setReference(pRefCell,pRefValue). My grid has 12000 cells, and I have divided it up over 3 processors. I want to set the pressure to zero in the 12000th cell. When I set pRefCell = 11999, and try to run in parallel, I get the message:
 Illegal master cellID 11999. Should be 0..4000
and the code stops. Is this because cell 11999 does not lie in the part of the mesh allocated to processor0? Is there a work around?
Also, if I set the reference level of the solution, the corresponding reference cell will lie in one of the processor zones. How is this reference communicated to the other processors that are not working on matrices that contain the reference cell? When in the matrix solve is processor boundary information swaped?
|April 6, 2012, 15:10||
Join Date: Jan 2010
Posts: 23Rep Power: 7
FWIW I've also posted about this on another thread: http://www.cfd-online.com/Forums/ope...ence-cell.html
If there's further information I can provide please let me know.
|Thread||Thread Starter||Forum||Replies||Last Post|
|More DPM incompletes in parallel than in serial||Paul||FLUENT||0||December 16, 2008 10:27|
|Serial vs parallel different results||luca||OpenFOAM Bugs||2||December 3, 2008 11:12|
|Problem with Parallel not with Serial||iyer_arvind||OpenFOAM Running, Solving & CFD||0||September 18, 2006 06:03|
|parallel Vs. serial||co2||FLUENT||1||December 31, 2003 03:19|
|Solution Diverges while Parallel Processing||Prateep Chatterjee||FLUENT||0||June 30, 2002 22:08|