Composition of structured mesh Application Object


A Composition_of_structured_mesh is a Composition_of_mesh that is between two instances of Structured_mesh.

The part can have the same dimension as the whole.

Figure 1: A 2D part of a small 2D structured mesh

EXAMPLE - The structured mesh with 2 dimensions, and four cells in each dimension, is shown in Figure 1. The centre 4 cells is another structured mesh. The relationship between the two structured meshes is defined by:

The part can have a lower dimension than the whole.

Figure 2: A 1D part of a small 2D structured mesh

EXAMPLE - The structured mesh with 2 dimensions, and four cells in each dimension, is shown in Figure 2. The indicated slice consisting of 4 cells edges is another structured mesh. The relationship between the two structured meshes is defined by:

EXPRESS specification:

*)
ENTITY Composition_of_structured_mesh
  SUBTYPE OF (Composition_of_mesh);
  SELF\part  :  Structured_mesh;
  SELF\whole  :  Structured_mesh;
  lower_corner  :  ARRAY[1,whole_dimension] OF INTEGER;
  lower_face  :  ARRAY[1,whole_dimension] OF OPTIONAL BOOLEAN;
  used_dimensions  :  ARRAY[1,part_dimension] OF INTEGER;
  used_dimension_sense  :  ARRAY[1,part_dimension] OF BOOLEAN;
DERIVE 
  whole_dimension  :  INTEGER := whole.dimension;
  part_dimension  :  INTEGER := part.dimension; 
END_ENTITY;
(*

Attribute definitions:

part: the Structured_mesh that is a part of the whole.

whole: the Structured_mesh that contains the part.

lower_corner: the position of the cell in the whole that is closest to the origin of the whole; and that either:

The position of the cell specified with respect to each dimension of the whole.

lower_face: the side of the cell whole that is within the part.

The side is set for each dimension of the whole, as follows:

used_dimensions: the dimensions of the whole that are also dimensions of the part, in the order that they are used within the part.

used_dimension_sense: the sense for each dimension of the part as follows: