OpenFOAM logo
Open Source CFD Toolkit

meshCutter.H File Reference


Detailed Description

View meshCutter.H
License
This file is part of OpenFOAM.

OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
Cuts (splits) cells.

Description of cut is given as a loop of 'cuts' per cell (see cellCuts).
setRefinement() takes this cut description and inserts the nessecary
topoActions (add points/faces/cells) into the polyTopoChange.

Stores added cells/faces/points.

Cut description gives orientation to cut by calculating 'anchorPoints'.
The side of the cell that contains the anchorPoints is the master cell.
Likewise the cells' edges will have the split added as a duplicate of the
master (anchor) point.
Think of it as the cell with the anchor points at the bottom. Add a face
at the bottom to split the cell and then sweep this face up to be through
the middle of the cell (inflation).


1. Start: cell with anchor points at bottom
+-------+
|       +
|       +
|       +
|       +
|       +
|       +
|       +
+-------+
anchor  anchor


2. Topo change: splitface introduced at bottom of cell, introducing a new
  cell and splitting the side faces into two.
+-------+
|       +
|       +
|       + <- addedCell
|       +
|       +
|       +
+-------+ <- splitFace
+-------+ <- original cell
anchor  anchor


3. Inflation: splitface shifted up to middle of cell (or wherever cut was)
+-------+
|       +
|       + <- addedCell
|       +
+-------+ <- splitFace
|       +
|       + <- original cell
|       +
+-------+
anchor  anchor

Anyway this was the original idea. Inflation was meant to handle
conservative properties distribution without interpolation.
(just face sweeping through space). But problem was that
only if the introduced splitface was exactly the same shape as bottom face
(so same 2D topo or perfectly flat) the volume between them was 0.

This meshCutting still uses anchorPoints though:
- the master cell is the one without the anchor points. The added cell
  (on top of the splitFace) is the with.
- the splitFace is owned by the master cell (since it has the lower number)
- the side faces get split and get either the original cell as neighbour
  or the added cell (if the faces contain the cell anchor points)

Source files

Definition in file meshCutter.H.

Go to the source code of this file.

Namespaces

namespace  Foam

Classes

class  meshCutter

For further information go to www.openfoam.org