CFD Study on water flow and distribution in the dishwasher
The original motivation for this study was the requirement of dishwasher designer to have an OpenFOAM® methodology for CFD simulations of dishwashers. The methodology creation process was quite difficult even for experienced OpenFOAM® developers because of complexity of the model.
There were several problems to deal with. Those were namely: dynamic mesh required combination of two motions together with dynamic mesh refinement, snappyHexMesh and AMI interpolation having non-overlapping boundary faces, mesh refinement together with AMI interpolation, special cellLevel refinement approach and many more.
The following visualization shows developed model behavior on the simplified dishwasher geometry:
We have prepared complete methodology for simulating the dishwasher. The new OpenFOAM® solver is based on interFoam which uses Volume of Fluid method (VOF).
How we did this?
OpenFOAM® development tasks that had to be solved
Two independent motions were combined. There is one big cylinder rotating and another smaller one is rotating inside the big one.
Two different dynamic mesh classes had to be used at the same time (mesh motion and mesh refinement). C++ technique called virtual inheritance was employed to create new class solidBodyMotionDynamicRefinementFVMesh
Both cylinders are rotating inside other meshes. When using the original AMI interface, each time each face needs to have its neighbour on the other patch. In the real practice the mesh created using snappyHexMesh is never perfectly symmetric. This leads to annoying problems with face covering at the interface. We have introduced modified cyclicAMI boundary condition called fuzzyAMI. FuzzyAMI allows leaving behind uncovered faces with e.g. zeroGradient and avoids blowing up the simulation.
Mesh refinement class needed to be made to work together with AMI. OpenFOAM® class dynamicRefineFvMesh was completed with addressing update calling function cyclicAMI::resetSBM. Set to be public function before.
dynamicRefineFvMesh also needed to be modified to accept non-hexahedral cells
dynamicRefineFvMesh also needed to be modified to accept non-hexahedral cellsdynamicRefineFvMesh also needed to be modified to accept non-hexahedral cells
The original OpenFOAM® solver interDymFoam was slightly modified to take all the above changes.