View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003833 | OpenFOAM | Bug | public | 2022-05-02 11:31 | 2022-05-05 11:39 |
Reporter | michael.mueller-wrd | Assigned To | will | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | GNU/Linux | OS | centOS | OS Version | (please specify) |
Product Version | dev | ||||
Fixed in Version | dev | ||||
Summary | 0003833: decomposition of fields very slow | ||||
Description | With recent dev version (as of 2022/04/11) the case decomposition has become drastically slower compared to previous versions. Apparently, the fields decomposition takes a lot more time than before... for some applications (with mesh size < 100M cells) this may actually take several hours up to 1 day with dev version. What may be the reason for that? Is using -copyZero option already the solution/workaround for this issue? | ||||
Steps To Reproduce | Tried to reproduce it with shellAndTubeHeatExchanger tutorial, and increased blockMesh refinement by factor 2. 1. $> ./Allmesh.layers (yields ca 5M cells) 2. $> reconstructParMesh -allRegions -constant 3. $> rm processor.* 4. $> time decomposePar -allRegions -noFields 5. $> time decomposePar -allRegions -fields Timings show: real time for v9: -noFields option = 19.8s / -fields option = 3.9s real time for dev: -noFields option = 20.9s / -fields option = 12.2s | ||||
Tags | No tags attached. | ||||
|
Can you trace which commit in OpenFOAM-dev has caused this problem? |
|
Did not try to trace it yet... but I may at least state that for a former dev version (as of 2021/12/14), it was working as expected. |
|
For dev version download as of 2022/02/18, it was working just fine as well (sth. like 4s real time for the given example). |
|
The difference between version 9 and dev is that the flowRateInletVelocity is now using a profile, which requires the calculation of a patch wall distance. This is being done within decomposePar in order to generate values on the field. This is unavoidable. If you want equivalent behaviour to version 9, then you need to remove the profile from the velocity inlet boundary conditions. If I do this then decomposePar takes a similar amount of time to version 9. There is something we can fix here, though. I have changed the mapping constructor of flowRateInletVelocity so that the wall distance is mapped from the complete to the processor meshes, instead of being re-calculated. This cheapens it up field decomposition a bit (down from approx 9 s to 6 s on my machine). It is also more correct. You can't do the wall distance calculation properly on the processor meshes, because the relevant walls might be on another processor. Commit here: https://github.com/OpenFOAM/OpenFOAM-dev/commit/38262243ccdd13bd936541d2373ccfd1974db597 |
|
Note that following discussion on the OpenFOAM hub, another bug which was negatively affecting the speed of decomposition was discovered and subsequently fixed. Commit in question: https://github.com/OpenFOAM/OpenFOAM-dev/commit/fc74899204654184a79e2dc9437c2f7518cf0ea3 |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-05-02 11:31 | michael.mueller-wrd | New Issue | |
2022-05-02 12:56 | henry | Note Added: 0012567 | |
2022-05-02 13:16 | michael.mueller-wrd | Note Added: 0012568 | |
2022-05-02 14:16 | michael.mueller-wrd | Note Added: 0012569 | |
2022-05-03 12:31 | will | Assigned To | => will |
2022-05-03 12:31 | will | Status | new => resolved |
2022-05-03 12:31 | will | Resolution | open => fixed |
2022-05-03 12:31 | will | Fixed in Version | => dev |
2022-05-03 12:31 | will | Note Added: 0012573 | |
2022-05-05 11:39 | will | Note Added: 0012574 |