OpenFOAM logo
Open Source CFD Toolkit

cellCuts.H File Reference


Detailed Description

View cellCuts.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
Description of cuts across cells.

Description of cut is given as list of vertices and
list of edges to be cut (and position on edge).

Does some checking of correctness/non-overlapping of cuts. 2x2x2
refinement has to be done in three passes since cuts can not overlap
(would make addressing too complicated)

Introduces concept of 'cut' which is either an existing vertex
or a edge.

Input can either be
A. list of cut vertices and list of cut edges. Constructs cell circumference
walks ('cellLoops').

B. list of cell circumference walks. Will filter them so they
don't overlap.

C. cellWalker and list of cells to refine (refineCell). Constructs cellLoops
and does B. cellWalker is class which can cut a single cell using a
plane through the cell centre and in a certain normal direction


CellCuts constructed from cellLoops (B, C) can have multiple cut-edges
and/or cut-point as long as there is per face only one (or none) cut across
a face, i.e. a face can only be split into two faces.

The information available after construction:
- pointIsCut, edgeIsCut.
- faceSplitCut : the cross-cut of a face.
- cellLoops : the loop which cuts across a cell
- cellAnchorPoints : per cell the vertices on one side which are considered
    the anchor points.

AnchorPoints: connected loops have to be oriented in the same way to 
be able to grow new internal faces out of the same bottom faces.
(limitation of the mapping procedure). The loop is cellLoop is oriented
such that the normal of it points towards the anchorPoints.
This is the only routine which uses geometric information.


Limitations:
- cut description is very precise. Hard to get right.
- do anchor points need to be unique per cell? Very inefficient.
- is orientation guaranteed to be correct? Uses geometric info so can go
  wrong on highly distorted meshes.
- is memory inefficient. Probably need to use Maps instead of
  labelLists.

Source files

Definition in file cellCuts.H.

Go to the source code of this file.

Namespaces

namespace  Foam

Classes

class  cellCuts

For further information go to www.openfoam.org