Aranea, a User's guide

 
 



Table of contents
 

1. What is Aranea.

2. Installation and execution.

3. Menu bar.

3.1 Project.

3.2 Components.

4. Visual tool bar.

5. Edition tool bar.

6. Utility panel.

7. Output files.

8. Tutorial.
 

1. What is Aranea
 

Aranea is a general purpose mesh generator for producing 2D unstructured triangular meshes. The program was written in Java 1.1 with full graphics user interface. It has tools for representing physical systems, from which a computational domain can be defined and delimited. It also allows a definition of the mesh density at different locations of the domain, from which a mesh is constructed.
 
 

2. Installation and execution
 

The code is provided as a compressed file named "aranea.jar". It should be copied in an appropriate directory, say "ARANEA". There are two possibilities for installing and running the program. One is with JRE; which is the minimal Java Runtime Environment required to run Java applications. The other is with a full Java development environment, such as provided by the JDK (Java Development Kit) for Windows (95/98/NT). For more information concerning java, and for downloading software, please refer to the following: http://www.javasoft.com/. Assuming that JRE only is available, set ARANEA to be the default directory. Then type "jre -cp aranea.jar Aranea".
 
 

3. Menu bar
 

The principal items on the menu bar are the "Project" and "Components".
 

3.1 The project is used to control the entire session of work. Its principal functions are to "Save" a current session and "Open" a former one.
 

3.2 Components contain the various ingredients required to construct a mesh. These are the "Structure", the "Scalar Field", the "Boundary", the "Metric" and the "Final mesh". The first two are not essential. They may be ignored or, depending on the application, they may be useful in constructing a mesh. The last three components are essential. The following is a brief description of each component.
 

3.2.1 Structures are intended to represent physical components of the system for which a mesh is generated. For example, when considering a river, a parametrisation of the river shore, and of any island present could be read as structure components. These components could include other structures, such as dams, bridges, city boundaries, etc. These structure elements represent the physical system to model. They will help construct the mathematical boundaries necessary to define and delimit the computational domain.
 

3.2.2 The "Scalar Field" is a 2D scalar field, also intended to "guide the eye" in the construction of a mesh. In a strongly anisotropic diffusion transport problem, for example, this field should be such that its contour lines be aligned with the direction of the strong diffusivity. This component could in principle be used to display solutions to a 2D partial differential equation, which could then guide the construction of a mesh. The functionality associated with this component is not yet fully implemented.
 

3.2.3 Boundaries are an essential component in the construction of a mesh. They may be open or closed, and they serve the following purposes:

IMPORTANT!

1. Only closed boundaries may be "domain delimiting".

2. All "domain delimiting" boundaries must be "boundary condition bearing".

3. The very first boundary to be parametrised by the user must be closed, boundary delimiting, and it must enclose all other boundaries. Also, boundaries should not intersect one another.
 

3.2.4 The "Metric" is used specify the desired size of triangles at different locations of the simulation domain. This is done (in the Edit mode, after clicking on the Add button), by clicking on at the desired locations on the screen, and dragging a circle of radius equal to the desired local triangles. This action automatically enters the point and radius in a Delauday "Metric" which is displayed on the screen, and which is used to calculate the desired triangle sides everywhere in the domain, by linear interpolation.
 

3.2.5 The "Final mesh" may finally be created once an appropriate "Boundary" and "Metric" has been defined.
 
 

4. Visual tool bar
 

The visual tool bar is located vertically on the left of the Aranea frame. It includes four buttons.

4.1 The Refresh button is used to "refresh" the screen. This is useful whenever the scale of the problem, or the size of the Aranea frame has been modified.

4.2 The Zoom button is used to look at a subset of the worksheet. A zoom rectangle is defined with a click and drag of the mouse.

4.3 The third button is used to unzoom. This action may be done in one step by choosing "full page", or incrementally, by selecting a percentage.

4.4 The "Print" button serves to print the content of the worksheet.
 
 

5. Edition tool bar
 

The edition tool bar is horizontal and it is located just below the menu bar. It contains six buttons useful for manipulating the various components described above. These buttons are only enabled when one of the components is in the edit mode. This is achieved when "Create" or "Edit" is selected from the menu bar for any such component (except for Equilibrium).

NOTE: Only one component may be edited at any one time.
 

5.1 Add is used to add elements or features to a component.
 

5.2 Delete is used to delete elements or features to a component.
 

5.3 Move is used to move points that are used to parametrise certain components (Structure and Boundary).
 

5.4 Merge is used to move points that serve to parametrise certain components (Structure and Boundary) so that they coincide exactly with other points (belonging to any component) on the worksheet.
 

5.5 Attributes refer to boundary properties. We distinguish between metric and geometric attributes.

5.5.1 Metric attributes refer to the disposition of mesh points along a given boundary. Two parameters are currently supported.

The "Minimal corner angle" is used to determine if a node joining two boundary segments will be treated as a corner. If the angular deviation between these two segments exceeds the specified angle in degrees, the node is a corner and it will coincide with a node in the final mesh.

The "Angular distribution in a curve" specifies the density of the distribution of the final mesh nodes along a smooth curve. More precisely, along a smooth curve (one without corners) the code will place a node every time it deviates by the specified angle (in degrees) compared with the preceding point.

5.5.2 Geometric attributes refer to the topology and function of a boundary. These attributes include "Closed", "Domain delimiting", and. "Boundary condition bearing".
 

5.6 End edit is used to exit from the edit mode on any component.
 
 

6. Utility panel
 

The Utility panel is oriented vertically and it appears on the right side of the Aranea frame. It is used to make some selections in the edit mode, in particular, following a click on Add, Delete, Merge, and Attributes. The options to choose from are self explanatory. When capturing components on the screen, or when doing certain operations (Move and Merge) in Edit mode, a text area also appears on this panel to display the coordinates of the points involved. In many instances, the coordinates in this text area may be edited by the user. When the changes are accepted (after a click on the Accept button), the values appearing in the text area are the ones that prevail.
 
 

7. Output files
 

The code produces two kinds of output files. One which defines the project. It is produced when the entire project is saved and it serves to restore a project. This file is only intended to be read by Aranea. The other files are those which serve to store every of the four possible components (the Scalar Field component is not considered here). These are written as ASCII files which can be read by Aranea and possibly by other programs. The most important such file is the one for the Final mesh, which should eventually be read by a finite element code. Its format is explained below:
 

$coordinates [identifier]
number of coordinates=1700 [number of nodes in the mesh]
1 0.5278254 0.80364245 [List of coordinates for all the nodes]
2 0.2536485 0.77220273
3 0.15836902 0.90486115
4 0.16156614 0.93523127
...
1697 0.95749253 0.14306542
1698 0.88605446 0.82360435
1699 0.82558626 0.88020164
1700 0.5017315 0.92034936
$fin [end of list identifier]

$elements nodes (1-3) and adjacency (1-3) [identifier]
number of elements=3124 [number of elements]
1 1211 1210 542 906 2144 2145 [for every element, the three node indices
2 210 207 209 197 195 -1 The counter clockwise direction, followed
3 506 504 505 731 582 229 by the three indices of the elements
4 1200 313 412 2123 346 827 adjacent to the three sides.]
...
3121 1699 234 22 222 -1 3122 [Convention: side 1 connects nodes 1 and 2,
3122 1699 22 235 3121 -1 222 side 2 connects 2 and 3, and side 3
3123 1700 246 25 1349 -1 3124 connects 3 and 1.]
3124 1700 25 247 3123 -1 233
$fin

$boundary segments
1  0  1  0
2  0  0  0
3  0  0  0
4  0  0  0
5  0  0  0
6  0  0  0
7  0  1  0
8  0  0  0
9  0  0  0
10  0  1  0
11  0  0  0
12  0  0  0
13  0  1  0
14  0  0  0
15  0  2  0
16  0  0  0
...
$fin

Explanation: for every element, list boundary segment that every side is adjacent to. "0" indicates that the side is not adjacent to any boundary segment (no boundary condition may be imposed on this side). "n" with n positive, indicates that a side is adjacent to side n.
 
 

8. Tutorial
 

The following is a short guided tour through the program via an example.
 

8.1 Start the program execution.
 

8.2 Create a Structure.

8.2.1 Click on the Components, Structure and Create menu to start create a structure.

8.2.2 Because the scale of the worksheet is not yet defined, you will be asked to define it. Accept the default values.

8.2.3 Immediately after accepting the worksheet scale, you will have to choose which type of structure to add. First select a polygon. Click on "Polygon (closed)" and than on "OK". Draw a small polygon in the upper left corner by clicking successively at each node. As you click, coordinates appear in the Utility panel. Draw one of the sides nearly (but not quite) vertical. Then go to the text area in the Utility panel and manually edit one of the x coordinates so that the latter side is exactly vertical. The structure name may also be edited to be more descriptive. You may continue drawing a few more sides. Note that you may zoom and unzoom while drawing sides on the screen. Try zooming to draw very tiny sides, then come back to "Full page". When finished, click on the "Accept" button in the Utility panel.

8.2.4 Add a small polyline in the upper right corner. To do this, click on the "Add" button. The procedure is then essentially the same as for drawing a polygon.

8.2.5 Add a small circle in the lower left corner. Click on the "Add" button, then on "Circle" in the Utility panel, and finally on "OK". A circle will be parametrised by a number of segments, or points. The default number is in a small text field on the Utility panel. It may be edited if desired, prior to clicking on "OK". A circle is created by clicking at the desired centre position, and dragging the mouse to the desired radius. The x, y coordinates and the radius which appear in the text area of the Utility panel are editable. When done, click on "Accept".

8.2.6 Add an arc in the lower right corner. This is done in much the same way as for a circle. The main difference is that an arc is defined by first clicking on the arc's two extremities, and then, dragging the mouse to the desired curvature.

8.2.7 Experiment with the "Delete", "Move" and "Merge" buttons. With Merge, please limit the action to single nodes. Merging segments will be discussed below. Also, please leave some non trivial Structure elements in every corner of the page. These will be useful later.

8.2.8 Exit the Edit mode of Structure with a click on the "End edit" button in the Edit tool bar. The same can be done with the menu, via Components, Structure, End edit. Note that while in the edit mode for Structure, none of the other components may be edited or created. This is because a "Create" automatically switches a component to be in the edit mode, and Aranea only allows one component to be edited at any given time.
 

8.3 Create a Boundary. This process bears many similarities with the creation of a Structure, because Boundary is a subclass of Structure.

8.3.1 First create a polygon somewhere in the middle of the worksheet. Make sure that the following attributes are selected: "Domain delimiting" and "Boundary condition bearing".

8.3.2 Then add a circle inside the polygon. Turn off the "Domain delimiting" attribute, but retain "Boundary condition bearing".

8.3.3 Add two polylines between the circle and the first polygon. Note that because an open curve may not be domain delimiting, this attribute is disabled in the Utility panel. Select "Boundary condition bearing" for one of the polyline, and turn off that attribute for the other.

8.3.4 Add a small circle inside the circle drawn above. Make sure the attributes "Domain delimiting" and "Boundary condition bearing" are selected.
 

IMPORTANT REMARKS

1- The very first boundary to be constructed must be closed, domain delimiting and boundary condition bearing. It must include all other boundaries.

2- Boundaries may not intersect one another.

3- Only the boundaries with the "Boundary condition bearing" attribute are numbered. As the name suggests, these are the ones on which boundary conditions will be imposed.

4- Domain delimiting boundaries serve to delimit the interior and the exterior of the simulation domain in which a mesh is to be generated. Boundaries without this attribute will have mesh elements on either side.
 

8.3.5 Merge segments: Select the Merge button on the Edit tool bar, and select "Merge segment" on the Utility panel. This operation enables the user to take a segment of a curve (Structure or Boundary) and "stretch" it so that it coincides with another segment of a curve. Either curve may be closed or open. The operation is performed by clicking an one end point of the segment on the curve to be modified. Let us chose the outer Boundary polygon (the first one that was drawn). The corresponding end segment on the destination curve must also be identified with a mouse click. The same procedure applies to the second end of the segment on either curve. If the two curves are open, these four clicks define the merge operation unambiguously, and the merge must be accepted or cancelled. If one (or both) of the curve is closed, the identification of the segment on the closed curve must be completed with a click somewhere between the two ends.

Experiment merging segments of the outer polygon with the four elements of Structure drawn previously. Remember that the resulting boundary must not cross itself or any other boundary.

8.3.6 Add "Boundary partition". This is used to partition, or fragment boundary condition bearing boundaries so that different types of boundary conditions may easily be imposed on their different parts. Note that the code only allows partition points to be added to boundaries with the "Boundary condition bearing" attribute. Every time a partition point is added, the various segments are identified with a number. These numbers are updated every time a partition point is added or removed. Note that partition points may be removed with the Delete button.

8.3.7 Edit Attributes. This is done by clicking on the "Attributes" button when in the Boundary edit mode. A panel appears which allows the user to set new default metric attributes. For specific boundaries, metric as well as geometric attributes may also be changed. Unless edited specifically, all metric attributes will be set to the default values.

8.3.8 Exit the edit mode with a click on the "End edit" button.
 

8.4 Create of a "Metric" via the menu (Components, Metric, Create). This sets up the Utility panel to register entries. The density of the mesh is defined by clicking at various locations in the worksheet and dragging the mouse to draw circles with radii equal to the desired local triangle sides. This process may be repeated any number of times.

Hint: i) If a number of circles must be drawn with exactly the same radii, enter the first circle as described above. The following circles may then be entered with a single click (no drag). The code then understands that the radius must be the same as the previous one (hence "idem" in the text area of the Utility panel). Note that the information appearing in the text area may be edited.

ii) When defining the mesh density, make sure the desired triangle sides are not larger than the spacing between any boundary element.

8.4.1 Exit the edit mode with a click on the "End edit" button.
 

8.5 Create a "Final mesh" via the menu, with Components, Final mesh, Create.

8.5.1 Exit the edit mode with a click on the "End edit" button.
 

8.6 Save your work via the menu: Project, Save. You will be asked for file names for the every non empty component, and for the project itself. The project file merely contains the names of the files which contain the non empty components. It is recommended that every project be saved in particular directory. Individual components may be saved separately via the menu, for example, with Components, Structure, save. They may also be restored in a similarly, for example, with Components, Structure, Open.
 

8.7 Terminate the project via the menu, with Project, New. This clears all components and allows you to start a new project. The former project (with all its non empty components) may be restored, for example, with Project, Open.