tut3d_03

TUTORIAL 3: flow in open channel with obstacle

Goals of this Unit:
  • Discussion of "open Edges".
  • Understanding the normals and volume relation (while making geometry with GMSH).
The fluid-mechanical problem: In this example the fluid flows around a cylinder and generates a small hump at the free surface. Now we have to take into account that the height of the fluid at the outflow wall is not fixed and might vary in time. In particular it might overflow the original box. In order to avoid that the fluid flows over an edge of thickness zero we have to extend the geometrical model (which is called roof in the formation of the geometry). We briefly have a look at the changes needed to be done in USER_common_variable.dat. Here should be a picture
Figure 12: sketch of the problem
It can be easily observed that the roof above the cube is necessary to provide proper closing of the geometry in order to avoid that the fluid flows over the wall. Healing wrong orientation of geometry items: While defining aliases in USER_common_variable.dat, boundaries whose orientation is wrong, need to be equipped with the flag REV_ORIENT . If you are working with GMSH, the boundary orientation can be easily seen if displaying the normals of the geometry: Here should be a picture
Figure 13: showing orientations and directions of the normals
If working with different preprocessing tools, usually there is a way to display boundary orientations in most of the systems, sometimes however not easy to find. Figure 13 shows the front look of the 3D geometry of this tutorial and also the normals of the surface of the cylinder (please observe the inconsistent formation of the boundary normals, the normals always how to point to the interior of the flow domain, however GMSH displays the normals the other way around ). Thus, for the appropriate face, we turn around the orientation by REV_ORIENT:
"cylinder_1" = " BC$wallCyl$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$MatUSER$ TOUCH%TOUCH_always% MOVE$NO_MOVE$ CHAMBER1 " "cylinder_2" = " REV_ORIENT BC$wallCyl$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$MatUSER$ TOUCH%TOUCH_always% MOVE$NO_MOVE$ CHAMBER1 " "cylinder_3" = " REV_ORIENT BC$wallCyl$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$MatUSER$ TOUCH%TOUCH_always% MOVE$NO_MOVE$ CHAMBER1 " "cylinder_4" = " REV_ORIENT BC$wallCyl$ ACTIVE$init_always$ IDENT%IDENT_slip% MAT$MatUSER$ TOUCH%TOUCH_always% MOVE$NO_MOVE$ CHAMBER1 "
Closing the geometry on the top: The "roof" should not contribute in the formation of the point cloud, therefore, the aliases of these walls should be for example defined as follows :
"roof_in" = " BC$free0$ ACTIVE$noinit_always$ IDENT%IDENT_outflow% MAT$MatUSER$ TOUCH%TOUCH_geometrical% MOVE$NO_MOVE$ CHAMBER1 " "roof_out" = " REV_ORIENT BC$free0$ ACTIVE$noinit_always$ IDENT%IDENT_outflow% MAT$MatUSER$ TOUCH%TOUCH_geometrical% MOVE$NO_MOVE$ CHAMBER1 " "roof_back" = " REV_ORIENT BC$free0$ ACTIVE$noinit_always$ IDENT%IDENT_outflow% MAT$MatUSER$ TOUCH%TOUCH_geometrical% MOVE$NO_MOVE$ CHAMBER1 " "roof_front" = " BC$free0$ ACTIVE$noinit_always$ IDENT%IDENT_outflow% MAT$MatUSER$ TOUCH%TOUCH_geometrical% MOVE$NO_MOVE$ CHAMBER1 " "roof_top" = " REV_ORIENT BC$free0$ ACTIVE$noinit_always$ IDENT%IDENT_outflow% MAT$MatUSER$ TOUCH%TOUCH_geometrical% MOVE$NO_MOVE$ CHAMBER1 "
The ACTIVE statement in the alias definition is ACTIVE$noinit_always$ which tells MESHFREE that this boundary shall not be active during MESHFREE initialization/startup, but has to be active during time integration/simulation. Suggestions for exploring MESHFREE:
  • work with more or less MESHFREE points by adapting the smoothing length
  • work with different speeds of the liquid
Advanced Example: FormationFreeJet (recommended after successful training according to the basic units) Note: In order to reproduce Figure 12, load the state file tut03_figure12.pvsm in ParaView and choose 'Search files under specified directory'. Then, select the correct data directory (MESHFREE results folder).