next up previous contents
Next: Utilities Up: Scene description file Previous: parameter   Contents


Objects

Objects are used to describe the geometry of the simulation domain and to specify initial and boundary conditions. There are four basic object types, box, sphere, cylinder and halfspace. Additional geometries and obstacles can be created with the CSG operations union, difference and intersection. There exists one restriction for obstacle cells, namely two opposite faces are not allowed to touch fluid cells.

As already mentioned in section [*], objects are just another type of blocks. The commands given in table [*] can be used inside any object-block.

Table: valid commands inside an object-block
Name Description
   
coords <$ X_1$,$ Y_1$,$ Z_1$>,<$ X_2$,$ Y_2$,$ Z_2$> sets the size of box, sphere or cylinder objects to $ [X_1,X_2]\times[Y_1,Y_2]\times[Z_1,Z_2]$. The default unit used is one cell. This can be changed by the command absolute
absolute allows use of absolute coordinates given by length
fluid marks the concerning cells as fluid cells. This command makes it possible for example to cut quite easily holes into other objects. fluid can not be defined on ghost cells (e.g. $ i\in\{0,M+1\}$) with non-periodic boundary conditions in the specific direction
init <$ u_0$,$ v_0$,$ w_0$>,$ p_0$ initializes the concerning cells with velocity values $ (u_0,v_0,w_0)$ and pressure $ p_0$. The default initialization is $ u_0=v_0=w_0=p_0=0$. These values are not concerned as Dirichlet boundary condition
noslip defines the Dirichlet boundary condition $ {\bf u}=0$ (see [*]) for the concerning cells. This is the default value. Homogeneous Neumann boundary conditions are set for temperature and scalars. This is the difference to inflow <0,0,0> (see below) where also $ {\bf u}=0$ is set
slip defines Slip boundary condition (see [*]) for the concerning cells
inout $ n$,$ v_\Gamma$ defines Outflow boundary condition of type $ n$, $ 1\leq n\leq 2$, where the additional parameter $ v_\Gamma$ is ignored if $ n=1$. See section [*] for an explanation of the different types. If $ n = 2$ and $ v_\Gamma = 1$ the velocity field at the outflow boundaries is corrected to enforce the compatibility condition (set $ v_\Gamma$ to 0 if you do not want this).
inflow <$ u_0$,$ v_0$,$ w_0$> defines Dirichlet boundary condition $ {\bf u}=(u_0,v_0,w_0)$ (see [*]) for the concerning cells. When temperature or scalars are computed, Dirichlet boundary conditions for these quantities are set. You must specify the particular values by temperature and/or cheminit
temperature $ T_{\mbox{\footnotesize init}}$ defines Dirichlet boundary conditions on boundary cells for the temperature $ T_{\mbox{\footnotesize init}}$ or initializes fluid cells with temperature $ T_{\mbox{\footnotesize init}}$
cheminit $ c_1,\dots,c_{n_C}$ defines Dirichlet boundary conditions for scalars $ c_1,\dots,c_{n_C}$ on boundary cells or initializes fluid cells with these values
   
 

Now we describe the differences between the object-types.

box:
The command box defines the box $ [X_1,X_2]\times[Y_1,Y_2]\times[Z_1,Z_2]$ except one of the keywords north, south, west, east, top or bottom is given. In this case, the box is the appropriate ''wall'' (see figure [*]):
Figure: wall naming scheme
\includegraphics[width=0.5\textwidth,keepaspectratio]{p5.eps}
north $ \{M+1\}\times \{0,..,N+1\}\times \{0,..,K+1\}$
south $ \{0\}\times \{0,..,N+1\}\times \{0,..,K+1\}$
west $ \{0,..,M+1\}\times\{N+1\}\times\{0,..,K+1\}$
east $ \{0,..,M+1\}\times\{0\}\times\{0,..,K+1\}$
top $ \{0,..,M+1\}\times\{0,..,N+1\}\times\{K+1\}$
bottom $ \{0,..,M+1\}\times\{0,..,N+1\}\times\{0\}$

sphere:
The command sphere defines the ellipsoid which touches all faces of the box $ [X_1,X_2]\times[Y_1,Y_2]\times[Z_1,Z_2]$ defined by coords. The main axes are parallel to the coordinate axes.

cylinder:
In the same way, cylinder defines a cylinder whose rotation axis is defined by one of the commands x, y or z.

halfspace:
The command halfspace defines the set of cells

$\displaystyle \{p\in{\cal C}\mid ax_p+by_p+cz_p+d\geq 0\},$

where $ a,b,c,d$ are given by the command

hesse <$ a$,$ b$,$ c$>,$ d$

and $ (x_p,y_p,z_p)$ is the middle of the corresponding cell $ p$.

poly:
The command poly defines a polytope bounded by polygons. The points are specified using the command

points $ n$,<$ a_0$,$ b_0$,$ c_0$>,$ \dots$,<$ a_{n-1}$,$ b_{n-1}$,$ c_{n-1}$> .

The first point indexed with 0. After defining points, the polygons have to be be specified using the command

vertices $ n$,$ p_1$,$ p_2$,...,$ p_n$

where $ n$ is the total number of indices (including control indices $ -1$). One polygon is defined by enumerating the points in clockwise or counterclockwise order, where the first point has to be enumerated once again as last point. Then this series is finished with index $ -1$. The following example defines a cube:
    poly {
      points 8,<0.0,0.0,0.0>,
               <1.0,0.0,0.0>,
               <1.0,1.0,0.0>,
               <0.0,1.0,0.0>,
               <0.0,0.0,1.0>,
               <1.0,0.0,1.0>,
               <1.0,1.0,1.0>,
               <0.0,1.0,1.0>
      vertices 36,0,1,2,3,0,-1,           
               1,5,6,2,1,-1,           
               4,5,6,7,4,-1,           
               0,4,7,3,0,-1,           
               3,2,6,7,3,-1,           
               0,1,5,4,0,-1           
    }

CSG-operations

The blocks union, difference and intersection define a CSG-operation on two of the objects described above. Such an operation is defined as a block in which two object-blocks are defined, for example

    union {
      box { 
        ... 
      }
      box { 
        ... 
      }
    }

The cells of the first given object are called $ {\cal O}_1$ and the cells of the second are called $ {\cal O}_2$. Then, the CSG-commands define the following cells:

union $ {\cal O}_1\cup {\cal O}_2$
difference $ {\cal O}_1\setminus{\cal O}_2$
intersection $ {\cal O}_1\cap {\cal O}_2$


next up previous contents
Next: Utilities Up: Scene description file Previous: parameter   Contents
Martin Engel 2004-03-15