A Mesh_function_basis is a Maths_function that has:
NOTE - A Mesh_function_basis is used such that the domain is a parametric space that identifies points within a cell of a mesh. Hence the dimension of the real tuple space shall be the same as the topological dimension of the cell.
Each table function in the range of a Mesh_function_basis has:
NOTE - A Mesh_function_basis is used such that
- the domain of each table function in its range is a parametric space that identifies the control values for a cell;
- the range of each table function is its range is a weighting for a control value.
Each table function specifies the weightings for control values that define the value of a Mesh_function at a point within a cell.
EXAMPLE - There is bi-linear interpolation/extrapolation from Gauss points for each cell of the mesh shown in Figure 1. The Mesh_function_basis these cells has:
- cell_topological_dimension=2;
- cell_control_value_array_dimesion=2;
- cell_control_value_array_order=(1, 1);
- control_value_positions given by a table as follows:
term(1,1): (-0.577, -0.577) term(1,2): (-0.577, +0.577) term(2,1): (+0.577, -0.577) term(2,2): (+0.577, +0.577) These positions are consistent with each position within a cell being identified by a point in the tuple space that is the Cartesian product [-1.0, 1.0]´ [-1.0, 1.0].
EXAMPLE - There is bi-linear interpolation from vertices for each cell of the mesh shown in Figure 2. The Mesh_function_basis these cells has:
- cell_topological_dimension=2;
- cell_control_value_array_dimesion=2;
- cell_control_value_array_order=(1, 1);
- control_value_positions given by a table as follows:
term(1,1): (0.0, 0.0) term(1,2): (0.0, 1.0) term(2,1): (1.0, 0.0) term(2,2): (1.0, 1.0) These positions are consistent with each position within a cell being identified by a point in the tuple space that is the Cartesian product [0.0, 1.0]´ [0.0, 1.0].
*) ENTITY Mesh_function_basis; SUBTYPE OF (Maths_functon); cell_topological_dimension : INTEGER; control_value_array_dimension : INTEGER; control_value_array_order : ARRAY[1,control_value_array_dimension] OF INTEGER; control_value_positions : Table; END_ENTITY; (*
Attribute definitions:
cell_topology_dimension: the dimension of the real tuple space that is the domain of the Mesh_function_basis.
control_value_array_dimension: the dimension of the subscript space for each table function in the range of the Mesh_function_basis.
control_value_array_order: the number of control values - 1 for each control value array direction.
control_value_positions: the table that specifies the 'positions' of the control values within the domain of the Mesh_function_basis. The 'position' of a control value is the point within the domain that has a weighting of 1.0 for that control value and a weighting of 0.0 for all other control values.
The control_value_positions table shall be a function that has:
A control value for a Mesh_function_basis need not have a position. Whether or not a control value has a position is determined by the nature Mesh_function_basis. If a control value does not have a position, then the corresponding value of the control_value_positions function is of no significance.
Informal propositions:
consistent_cell_topology_dimension: The cell_topology_dimension shall be the same at the topological_dimension of any topological_region to which the Mesh_function_basis is assigned.
consistent_control_value_position_table_domain: The domain of the table of control value positions shall be consistent with the control_value_array_order. It shall be the tuple space that is the Cartesian product of integer intervals [1, n1]´[1, n2]´ ...[1, nm], where:
consistent_control_value_position_table_range: The dimension of the tuple space that is the range of the table of control value positions shall be equal to the cell_topology_dimension.
valid_weighting_at_control_value_position: If a control value is assigned to a position, then the value of the Mesh_function_basis at that position shall be: