The domain
is defined by the initial triangulation, and
hence can be any polygonal shape.
The initial triangulation is defined in
subroutine inittr which you should place in file user.f.
Each side of the polygon is assigned a boundary segment number. This positive integer is sent to the subroutine bcond to help identify which form of the boundary condition should be used.
If your domain is rectangular, then you can use the sample
inittr provided in the files user.f.*.
The sample routine triangulates the rectangular domain
with a uniform grid consisting of
ngridx
ngridy rectangles cut into triangles along one
of the diagonals. You need only edit subroutine inittr to define
ax, bx, ay, by, ngridx and ngridy near the beginning.
ngridx and ngridy must be even.
For nonrectangular domains, definition is a little more difficult. The file inittr.L contains an example for an L shaped domain. The domain is defined by the initial triangulation. The domain is restricted to be polygonal and all corners of the polygon must be vertices of the initial triangulation. The initial triangulation is specified by providing the coordinates of the vertices and the three vertices of each triangle. This is given by six variables:
vertex
vertex
vertex of the
triangle. Vertex 3 is called the peak.
vertex of triangle j. Does
not need to be set for non-boundary sides.
The following restrictions are imposed on the initial triangulation: