layerAdditionRemoval polyTopoChanger not working properly while used with displacementLayeredMotion solver
I found an issue while trying to use the displacementLayeredMotion solver with the layerAdditionRemoval functionality. Basically, I'm trying to use it for a toy case, which i have two moving walls, with a predetermined displacement in a certain direction, where I want to add and remove the cells to simulate the movement of these walls. Initially everything works fine, until a certain topology change is needed, at this moment the layerAdditionRemoval polyTopoChanger seems to fail to construct the new group of cells at the left side of the domain (the side that is expanding).
Steps to reproduce
The case is attached with an Allrun.
What is the current bug behaviour?
While constructing a new group of cells due to the layerAdditionRemoval, it fails, constructing wrong oriented cells with negative volume.
What is the expected correct behavior?
The expected result should be something like this:
Relevant logs and/or images
The final part of the log:
Time = 0.62 PIMPLE: iteration 1 solving for zone: top solving for zone: LAR1 solving for zone: LAR2 solving for zone: botton Executing mesh motion Point usage OK. Upper triangular ordering OK. Topological cell zip-up check OK. Face vertices OK. Face-face connectivity OK. Mesh topology OK. Boundary openness (0 -8.5572e-18 -7.54804e-16) OK. Max cell openness = 0 OK. Max aspect ratio = 1.62737 OK. Minimum face area = 1. Maximum face area = 1.62737. Face area magnitudes OK. Min volume = 1. Max volume = 1.62737. Total volume = 11500. Cell volumes OK. Mesh non-orthogonality Max: 0 average: 0 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1.42143e-14 OK. Mesh geometry OK. Mesh OK. ExecutionTime = 15.6 s ClockTime = 16 s Time = 0.63 PIMPLE: iteration 1 Executing mesh topology update solving for zone: top solving for zone: LAR1 solving for zone: LAR2 solving for zone: botton solving for zone: top solving for zone: LAR1 solving for zone: LAR2 solving for zone: botton Point usage OK. Upper triangular ordering OK. Topological cell zip-up check OK. Face vertices OK. Face-face connectivity OK. Mesh topology OK. Boundary openness (0 -9.8212e-18 -7.50515e-17) OK. ***High aspect ratio cells found, Max aspect ratio: 5.50745e+99, number of cells 125 Minimum face area = 0.326117. Maximum face area = 1.95509. Face area magnitudes OK. ***Zero or negative cell volume detected. Minimum negative volume: -0.326117, Number of negative volume cells: 125 Mesh non-orthogonality Max: 180 average: 9.58925 ***Number of non-orthogonality errors: 220. ***Error in face pyramids: 750 faces are incorrectly oriented. Max skewness = 2.63864e-14 OK. Failed 4 mesh geometry checks. Failed 1 mesh checks. ExecutionTime = 16.14 s ClockTime = 17 s Time = 0.64 PIMPLE: iteration 1 --> FOAM FATAL ERROR: negative cell volume. Error in mesh motion before topological change. V: 11500 ( list with cells volume ) From function virtual bool Foam::layerAdditionRemoval::changeTopology() const in file layerAdditionRemoval/layerAdditionRemoval.C at line 220. FOAM aborting #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::error::abort() at ??:? #2 Foam::layerAdditionRemoval::changeTopology() const at ??:? #3 Foam::polyTopoChanger::changeTopology() const at ??:? #4 Foam::polyTopoChanger::changeMesh(bool, bool, bool, bool) at ??:? #5 Foam::dynamicMotionSolverTopoFvMesh::update() at ??:? #6 ? in ~/OpenFOAM/OpenFOAM-v1812/platforms/linux64GccDPInt32Opt/bin/moveDynamicMesh #7 __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6 #8 ? in ~/OpenFOAM/OpenFOAM-v1812/platforms/linux64GccDPInt32Opt/bin/moveDynamicMesh Aborted (core dumped)
- OpenFOAM version : v1812 | v2006
- Operating system : Ubuntu 18.04.5 LTS