Please sign in to comment.
polyMesh/particle: Optionally store old-cell centres
The moving-mesh tracking algorithm needs the cell-centres at the previous time-step. These were not originally stored by the polyMesh, so they were being generated on-the-fly. In some tracking-dominated cases this caused an unacceptable overhead. The polyMesh now stores the old-time cell-centres on demand. They are not stored by default (like the old-time points), so if they are needed then the accessor should be called before any mesh motion. Typically this will be during construction of whatever functionality requires it. See Cloud.C for an example. The logic for storage and update of the old-time points has also been improved to account for the possibility of the mesh motion coming to an end.
- Loading branch information...
Showing with 105 additions and 38 deletions.
- +49 −18 src/OpenFOAM/meshes/polyMesh/polyMesh.C
- +10 −1 src/OpenFOAM/meshes/polyMesh/polyMesh.H
- +9 −5 src/OpenFOAM/meshes/polyMesh/polyMeshFromShapeMesh.C
- +25 −1 src/OpenFOAM/meshes/polyMesh/polyMeshUpdate.C
- +5 −4 src/lagrangian/basic/Cloud/Cloud.C
- +4 −1 src/lagrangian/basic/Cloud/CloudIO.C
- +3 −8 src/lagrangian/basic/particle/particleI.H