Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Next: 1.4.4 A complete example Up: 1.4 The module APNOPO Prev: 1.4.2 APNOPO flowchart Index Contents


1.4.3 Implementation

This program is based on keywords and requires a data file containing the corresponding list of keywords and associated values. There is an option to create the data file (or commands file), and another to read this file and activate the requests which are stored in it.

Calling, libraries and files

The MODULEF library [Bernadou et al. 1988] is organized into several sets of programs or (sub-)libraries. Each of these contain the programs corresponding to one predetermined type of application. In this way, the general utility programs are in found library UTIL, those dedicated to the manipulation of data structures are found in UTSD, the mesh generators and modules treating two-dimensional meshes are found in NOP2, those treating three-dimensional meshes are in NOP3, the non- dedicated mesh application programs are found in NOPO, etc., the main programs are in PPAL, the utilities employed in the conversational (interactive) system are in CONV and CONW, etc.

There are two ways of calling module APNOPO:

  1. via preprocessor APNOXX, or
  2. directly.

In the first case, we must perform a link between libraries CONV, CONW, NOP2, NOPO, UTSD, UTIL and UTIF (general non-portable utilities) and program APNOXX .

In the second case, the libraries required are the same as above, except for CONV and CONW, which are now inutile.

A calling program, in FORTRAN 77, must be written in the following manner:

The only arguments of this module are the super-array, M, and the formal name of a possible projection function. The data is contained in a command file in the form of keywords and associated values.

The list of keywords, classed according to the level mentioned previously, is given below. For each value, the corresponding type expected is stipulated ((I): Integer, (R): Real, (A): Character, etc.).

Keywords

COUR : Definition of the curves present in the domain via a function parser.

This data is used when the lines are constructed or the mesh is repartitioned.

Remarks:

POIN : Definition of the characteristic points .

Remarks:

LIGN : Definition of the characteristic lines  from the characteristic points (input beforehand via keyword POIN).

Each line is constructed from characteristic points and is partitioned into segments in accordance with the prescriptions contained in its description.

Remarks:

Module COLIGN, called by APNOPO, use the definition of the lines to construct their discretized form, i.e., the set of NOELIG - 1 segments of the corresponding straight lines.

The lines enable us to define the contours (discretized) of the domains to mesh. A contour has the form of an assembly of lines, and thus the assembly of their items.

QUAC : Call the mesh generator QUACOO which corresponds to an algebraic method for the case of a generalized quadrangle. The input data consists of the contour of the domain in terms of lines (keyword LIGN).

Remarks:

Figures 1.2 to 1.5 shows the effect of parameter NQUAD.

fig5bd.psfig:quac1Regular splittingfig5be.psfig:quac11Other choice

fig5bf.psfig:quac2Other splittingfig5bh.psfig:quac21Other choice

TRIC : Calls the mesh generator TRICOO which corresponds to an algebraic method  for the case of a generalized triangle. The input data consists of the contour of the domain in terms of the lines (keyword LIGN).

Remarks:

TRIA : Calls the mesh generator TRIFRO which corresponds to a advancing-front method . The input data consists of the contour of the domain in terms of lines (keyword LIGN). Internal points can also be specified.
Furthermore, this mesh generator accepts contours with several components ; it allows to generate triangles or quadrangles meshes and/or adaptive meshes.

Remarks:

This keyword requires the same data than the following keyword (TRIH), except the IOPT parameter describe above.

TRIH : Calls the mesh generator TRIHER which corresponds to a Voronoi method . The input data consists of the contour of the domain in terms of lines (keyword LIGN). Internal points can also be specified.
Furthermore, this mesh generator accepts contours with several components. It allows to generate adaptive meshes. In its standard version (non adaptive) internal edges can also be specified.

Remarks:

MANU : Calls the mesh generator CONOPO which corresponds to a manual description , i.e., from points (keyword POIN).

Remarks:

OBJE : Calls the mesh generator CONOPO for the case of a single element.

Remarks:

BARR : Calls the mesh generator CONOPO to create segments  from the contour data defined in terms of lines.

Remarks:

TRAN : Calls module MODNOP to generate a mesh resulting from a translation  of a given mesh.

Remark:

ROTA : Calls module MODNOP to generate a mesh resulting from a rotation  of a given mesh.

Remark:

SYMD : Calls module MODNOP to generate the mesh resulting from symmetry  with respect to a line in a given mesh.

Remark:

DILA : Calls module MODNOP to generate the mesh resulting from a dilation  of given mesh.

Remark:

Q4T  : Calls module QUATRI to split  each quadrangle of a given mesh into four triangles.

RETR : Calls module RETRIN to split  each element of a given mesh into sub-elements of the same type.

Remarks:

REGU : Calls module REGMA2 to regularize  a given mesh (by barycentering).

For IMPRE 5, a histogram of the triangular element qualities are given, before and after regularization (the quality of a triangle is defined by the value where is a normalization coefficient such that Q=1 for an equilateral triangle, h is the diameter of the measured element, and is the radius of its inscribed circle. We note that Q increases as the triangle flattens.

AIGU : Calls module AIGUNO to remove the obtuse  angles in a mesh composed of triangles.

AFFL : Calls module AFFNOP to refine  a given mesh locally, around certain vertices.

Remark:

NUME : Calls module MODNOP to modify attributes (reference or sub-domain numbers) in a given mesh.

Remark:

RECO : Calls module RECOLC to "glue together"  two meshes to form a new mesh.

Remarks:

"Cracks" can be generated by selecting an appropriate gluing option.

ADPO : Calls module ADPNOP to define the nodes  of a given mesh (as opposed to a mesh for which the nodes are identical to the vertices).

Remarks:

EXTR : Calls module TRCOAC to construct a D.S. NOPO containing edges with a given reference number.

RENC : Calls module GIBBS to renumber  the nodes of a mesh.

Remark:

RENE : Calls module GIBBS to renumber  the elements and the nodes of a mesh.

Remark:

COUL : Calls module COULE1 to renumber  the elements by coloring.

Remark:

SAUV : Calls module SAUVER to store  a mesh, residing in main memory, on file.

Remarks:

INTR : Calls module SDREST to introduce  a mesh residing on file into main memory.

Remarks:

TUER : Calls module TUERSD to remove one or several mesh data structures (D.S.) from memory.

Remark:

IMPR : Call module IMNOPO to print  the contents of a mesh data structure (D.S.).

DESS : Calls module TRNOPO to plot  a mesh.

Remarks:

FIN : Request to terminate the job.

In addition, the following keywords are found in preprocessor APNOXX:

LIRE
: request to read  another data file (of the same format).
CONT
: request to suppress the data coherence controls .
MENU
: request to obtain a list of the keywords in the menu .

Remarks


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Next: 1.4.4 A complete example Up: 1.4 The module APNOPO Prev: 1.4.2 APNOPO flowchart Index Contents