Dishwasher OpenFOAM® Study

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.
  • dishwasher openfoam cfd study model view
  • 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
  • openfoam class virtual inheritanceopenfoam class virtual inheritance
  • 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
  • The original computational mesh was created in snappyHexMesh with different cell levels. Now having dynamic mesh refinement, we do not want to refine all the mesh cells. We only want to refine the "big" cells already working with the information of cellLevel from snappyHexMesh. The cellLevel list (labelList) is converted to volScalarField and dynamicRefineFvMesh can use it.
  • The original OpenFOAM® solver interDymFoam was slightly modified to take all the above changes.

Please contact us for further information.

Stay Informed about news in OpenFOAM® and our company. We do not like Spam. You can unsubscribe anytime.

   Yes, I have read the Privacy & Cookie Policy
and agree to receive occasional email updates from CFD SUPPORT.

This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.

  • Škoda Power
  • Doosan
  • Porsche
  • Honeywell
  • logo ZVVZ Machinery