Source : ISO 10303-104
SCHEMA structural_response_representation_schema;
REFERENCE FROM
fea_scalar_vector_tensor_schema -- ISO 10303-104
(scalar,
symmetric_tensor2_2d,
symmetric_tensor2_3d,
symmetric_tensor4_2d,
symmetric_tensor4_3d);
REFERENCE FROM
finite_element_analysis_control_and_result_schema -- ISO 10303-104
(curve_element_variable,
measure_or_unspecified_value,
surface_2d_edge,
surface_2d_face,
surface_3d_edge,
surface_3d_face,
surface_element_variable,
volume_2d_edge,
volume_2d_face,
volume_3d_edge,
volume_3d_face,
volume_variable);
REFERENCE FROM
geometric_model_schema -- ISO 10303-42
(solid_model);
REFERENCE FROM
geometry_schema -- ISO 10303-42
(axis2_placement_2d,
axis2_placement_3d,
cartesian_point,
cross_product,
curve,
cylindrical_point,
degenerate_pcurve,
direction,
geometric_representation_context,
geometric_representation_item,
normalise,
point,
point_on_curve,
point_on_surface,
point_replica,
spherical_point,
surface);
REFERENCE FROM
group_schema -- ISO 10303-41
(group,
group_relationship);
REFERENCE FROM
material_property_definition_schema -- ISO 10303-45
(material_property);
REFERENCE FROM
material_property_representation_schema -- ISO 10303-45
(material_property_representation);
REFERENCE FROM
measure_schema -- ISO 10303-41
(context_dependent_measure,
length_measure,
parameter_value,
plane_angle_measure,
thermodynamic_temperature_measure);
REFERENCE FROM
product_property_representation_schema -- ISO 10303-41
(property_definition_representation);
REFERENCE FROM
representation_schema -- ISO 10303-43
(representation,
representation_item,
representation_relationship,
using_representations);
REFERENCE FROM
structural_response_definition_schema -- ISO 10303-104
(element_definition,
fea_model_definition,
node_definition,
structural_response_property);
REFERENCE FROM
support_resource_schema -- ISO 10303-41
(identifier,
label,
text);
TYPE axi_or_plane =
ENUMERATION
OF
(axisymmetric,
planar);
END_TYPE;
TYPE coordinate_system_type =
ENUMERATION
OF
(cartesian,
cylindrical,
spherical);
END_TYPE;
TYPE element_order =
ENUMERATION
OF
(linear,
quadratic,
cubic);
END_TYPE;
TYPE plane_2d_element_purpose =
SELECT
(enumerated_plane_2d_element_purpose,
application_defined_element_purpose);
END_TYPE;
TYPE enumerated_plane_2d_element_purpose =
ENUMERATION
OF
(plane_stress,
plane_strain);
END_TYPE;
TYPE application_defined_element_purpose =
STRING;
END_TYPE;
TYPE volume_element_purpose =
SELECT
(enumerated_volume_element_purpose,
application_defined_element_purpose);
END_TYPE;
TYPE enumerated_volume_element_purpose =
ENUMERATION
OF
(stress_displacement);
END_TYPE;
TYPE surface_element_purpose =
SELECT
(enumerated_surface_element_purpose,
application_defined_element_purpose);
END_TYPE;
TYPE enumerated_surface_element_purpose =
ENUMERATION
OF
(membrane_direct,
membrane_shear,
bending_direct,
bending_torsion,
normal_to_plane_shear);
END_TYPE;
TYPE curve_element_purpose =
SELECT
(enumerated_curve_element_purpose,
application_defined_element_purpose);
END_TYPE;
TYPE enumerated_curve_element_purpose =
ENUMERATION
OF
(axial,
y_y_bending,
z_z_bending,
torsion,
x_y_shear,
x_z_shear,
warping);
END_TYPE;
TYPE volume_3d_element_shape =
ENUMERATION
OF
(hexahedron,
wedge,
tetrahedron,
pyramid);
END_TYPE;
TYPE element_2d_shape =
ENUMERATION
OF
(quadrilateral,
triangle);
END_TYPE;
TYPE matrix_property_type =
SELECT
(enumerated_matrix_property_type,
application_defined_matrix_property_type);
END_TYPE;
TYPE enumerated_matrix_property_type =
ENUMERATION
OF
(stiffness,
mass,
damping);
END_TYPE;
TYPE application_defined_matrix_property_type =
STRING;
END_TYPE;
TYPE surface_matrix_property_type =
SELECT
(enumerated_surface_matrix_property_type,
application_defined_matrix_property_type);
END_TYPE;
TYPE enumerated_surface_matrix_property_type =
ENUMERATION
OF
(membrane_direct,
membrane_shear,
bending_direct,
bending_torsion,
normal_to_plane_shear,
membrane_direct_mass,
membrane_shear_mass,
bending_direct_mass,
bending_torsion_mass,
normal_to_plane_shear_mass,
mass);
END_TYPE;
TYPE curve_matrix_property_type =
SELECT
(enumerated_curve_matrix_property_type,
application_defined_matrix_property_type);
END_TYPE;
TYPE enumerated_curve_matrix_property_type =
ENUMERATION
OF
(axial,
y_y_bending,
z_z_bending,
torsion,
x_y_shear,
x_z_shear,
warping,
axial_mass,
y_y_bending_mass,
z_z_bending_mass,
torsion_mass,
x_y_shear_mass,
x_z_shear_mass,
warping_mass,
mass);
END_TYPE;
TYPE matrix_symmetry =
ENUMERATION
OF
(symmetric,
diagonal);
END_TYPE;
TYPE degree_of_freedom =
SELECT
(enumerated_degree_of_freedom,
application_defined_degree_of_freedom);
END_TYPE;
TYPE enumerated_degree_of_freedom =
ENUMERATION
OF
(x_translation,
y_translation,
z_translation,
x_rotation,
y_rotation,
z_rotation,
warp);
END_TYPE;
TYPE application_defined_degree_of_freedom =
STRING;
END_TYPE;
TYPE curve_element_freedom =
SELECT
(enumerated_curve_element_freedom,
application_defined_degree_of_freedom);
END_TYPE;
TYPE enumerated_curve_element_freedom =
ENUMERATION
OF
(x_translation,
y_translation,
z_translation,
x_rotation,
y_rotation,
z_rotation,
warp,
none);
END_TYPE;
TYPE integration_rule =
ENUMERATION
OF
(gaussian,
simpson);
END_TYPE;
TYPE shape_function =
ENUMERATION
OF
(lagrangian,
serendipity,
hermitian,
unspecified);
END_TYPE;
TYPE volume_2d_element_representation =
SELECT
(axisymmetric_volume_2d_element_representation,
plane_volume_2d_element_representation);
END_TYPE;
TYPE surface_2d_element_representation =
SELECT
(axisymmetric_surface_2d_element_representation,
plane_surface_2d_element_representation);
END_TYPE;
TYPE curve_2d_element_representation =
SELECT
(axisymmetric_curve_2d_element_representation,
plane_curve_2d_element_representation);
END_TYPE;
TYPE volume_2d_element_descriptor =
SELECT
(axisymmetric_volume_2d_element_descriptor,
plane_volume_2d_element_descriptor);
END_TYPE;
TYPE surface_2d_element_descriptor =
SELECT
(axisymmetric_surface_2d_element_descriptor,
plane_surface_2d_element_descriptor);
END_TYPE;
TYPE curve_2d_element_descriptor =
SELECT
(axisymmetric_curve_2d_element_descriptor,
plane_curve_2d_element_descriptor);
END_TYPE;
TYPE volume_3d_element_coordinate_system =
SELECT
(arbitrary_volume_3d_element_coordinate_system,
parametric_volume_3d_element_coordinate_system);
END_TYPE;
TYPE volume_2d_element_coordinate_system =
SELECT
(arbitrary_volume_2d_element_coordinate_system,
parametric_volume_2d_element_coordinate_system);
END_TYPE;
TYPE surface_3d_element_coordinate_system =
SELECT
(aligned_surface_3d_element_coordinate_system,
parametric_surface_3d_element_coordinate_system,
constant_surface_3d_element_coordinate_system);
END_TYPE;
TYPE surface_2d_element_coordinate_system =
SELECT
(aligned_surface_2d_element_coordinate_system,
parametric_surface_2d_element_coordinate_system);
END_TYPE;
TYPE curve_3d_element_coordinate_system =
SELECT
(aligned_curve_3d_element_coordinate_system,
parametric_curve_3d_element_coordinate_system);
END_TYPE;
TYPE curve_element_end_coordinate_system =
SELECT
(fea_axis2_placement_3d,
curve_3d_element_coordinate_system);
END_TYPE;
TYPE directionally_explicit_element_coordinate_system =
SELECT
(directionally_explicit_element_coordinate_system_arbitrary,
directionally_explicit_element_coordinate_system_aligned);
END_TYPE;
TYPE element_aspect =
SELECT
(element_volume,
volume_3d_face,
volume_2d_face,
volume_3d_edge,
volume_2d_edge,
surface_3d_face,
surface_2d_face,
surface_3d_edge,
surface_2d_edge,
curve_edge);
END_TYPE;
TYPE element_volume =
ENUMERATION
OF
(volume);
END_TYPE;
TYPE curve_edge =
ENUMERATION
OF
(element_edge);
END_TYPE;
TYPE node_or_node_group =
SELECT
(node_representation,
node_group);
END_TYPE;
TYPE element_or_element_group =
SELECT
(element_representation,
element_group);
END_TYPE;
TYPE volume_3d_element_field_integration =
SELECT
(element_integration_algebraic,
volume_3d_element_field_integration_rule,
volume_3d_element_field_integration_explicit);
END_TYPE;
TYPE element_integration_algebraic =
ENUMERATION
OF
(algebraic);
END_TYPE;
TYPE volume_2d_element_field_integration =
SELECT
(element_integration_algebraic,
volume_2d_element_field_integration_rule,
volume_2d_element_field_integration_explicit);
END_TYPE;
TYPE surface_3d_element_field_integration =
SELECT
(element_integration_algebraic,
surface_3d_element_field_integration_rule,
surface_3d_element_field_integration_explicit);
END_TYPE;
TYPE surface_section_integration =
SELECT
(element_integration_algebraic,
surface_section_integration_rule,
surface_section_integration_explicit);
END_TYPE;
TYPE surface_2d_element_length_integration =
SELECT
(element_integration_algebraic,
surface_2d_element_length_integration_rule,
surface_2d_element_length_integration_explicit);
END_TYPE;
TYPE curve_3d_element_length_integration =
SELECT
(element_integration_algebraic,
curve_3d_element_length_integration_rule,
curve_3d_element_length_integration_explicit);
END_TYPE;
ENTITY fea_model
SUPERTYPE OF
(ONEOF (fea_model_2d,
fea_model_3d))
SUBTYPE OF (representation);
creating_software : text;
intended_analysis_code : SET[1:?] OF text;
description : text;
analysis_type : text;
UNIQUE
UR1: SELF\representation.name;
END_ENTITY;
ENTITY fea_model_3d
SUBTYPE OF (fea_model);
WHERE
WR1: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 3;
END_ENTITY;
ENTITY fea_model_2d
SUBTYPE OF (fea_model);
type_of_2d_analysis : axi_or_plane;
WHERE
WR1: SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2;
END_ENTITY;
ENTITY structural_response_property_definition_representation
SUBTYPE OF (property_definition_representation);
WHERE
WR1: (('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'STRUCTURAL_RESPONSE_PROPERTY') IN TYPEOF (SELF\property_definition_representation.definition));
WR2: ((('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.FEA_MODEL' IN TYPEOF (SELF\property_definition_representation.used_representation))
AND ('STRUCTURAL_RESPONSE_DEFINITION_SCHEMA.FEA_MODEL_DEFINITION' IN TYPEOF (SELF\property_definition_representation.definition.definition)))
OR (('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.ELEMENT_REPRESENTATION' IN TYPEOF (SELF\property_definition_representation.used_representation))
AND ('STRUCTURAL_RESPONSE_DEFINITION_SCHEMA.ELEMENT_DEFINITION' IN TYPEOF (SELF\property_definition_representation.definition.definition)))
OR (('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.NODE_REPRESENTATION' IN TYPEOF (SELF\property_definition_representation.used_representation))
AND ('STRUCTURAL_RESPONSE_DEFINITION_SCHEMA.NODE_DEFINITION' IN TYPEOF (SELF\property_definition_representation.definition.definition))));
END_ENTITY;
ENTITY fea_representation_item
SUPERTYPE OF
(ONEOF (arbitrary_volume_3d_element_coordinate_system,
parametric_volume_3d_element_coordinate_system,
arbitrary_volume_2d_element_coordinate_system,
parametric_volume_2d_element_coordinate_system,
aligned_surface_3d_element_coordinate_system,
parametric_surface_3d_element_coordinate_system,
constant_surface_3d_element_coordinate_system,
aligned_surface_2d_element_coordinate_system,
parametric_surface_2d_element_coordinate_system,
aligned_curve_3d_element_coordinate_system,
parametric_curve_3d_element_coordinate_system,
parametric_curve_3d_element_coordinate_direction,
curve_2d_element_coordinate_system,
directionally_explicit_element_coordinate_system_arbitrary,
directionally_explicit_element_coordinate_system_aligned))
SUBTYPE OF (representation_item);
END_ENTITY;
ENTITY direction_node
SUBTYPE OF (direction);
node_1 : node_representation;
node_2 : node_representation;
DERIVE
SELF\direction.direction_ratios : LIST[2:3] OF REAL := build_direction_node (node_1, node_2);
WHERE
WR1: SIZEOF (QUERY(item <* node_1\representation.items | 'GEOMETRY_SCHEMA.CARTESIAN_POINT' IN TYPEOF (item)))
= 1;
WR2: SIZEOF (QUERY(item <* node_2\representation.items | 'GEOMETRY_SCHEMA.CARTESIAN_POINT' IN TYPEOF (item)))
= 1;
WR3: NOT ((direction_ratios[1] = 0.0) AND (direction_ratios[2] = 0.0) AND (direction_ratios[3] = 0.0));
END_ENTITY;
ENTITY fea_axis2_placement_2d
SUBTYPE OF (axis2_placement_2d);
system_type : coordinate_system_type;
description : text;
END_ENTITY;
ENTITY fea_axis2_placement_3d
SUBTYPE OF (axis2_placement_3d);
system_type : coordinate_system_type;
description : text;
END_ENTITY;
ENTITY node_set
SUBTYPE OF (geometric_representation_item);
nodes : SET[1:?] OF node_representation;
WHERE
WR1: SIZEOF (QUERY (tmp <* nodes | tmp\representation.context_of_items :<>: nodes[1]\representation.context_of_items))
= 0;
END_ENTITY;
ENTITY analysis_item_within_representation;
name : label;
description : text;
item : representation_item;
rep : representation;
WHERE
WR1: SIZEOF (QUERY (tmp <* using_representations(item) | tmp :=: rep)) = 1;
END_ENTITY;
ENTITY node_geometric_relationship;
node_ref : node_or_node_group;
item : analysis_item_within_representation;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item);
END_ENTITY;
ENTITY element_geometric_relationship;
element_ref : element_or_element_group;
item : analysis_item_within_representation;
aspect : element_aspect;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item);
WR2: consistent_geometric_reference (aspect, item.item);
WR3: consistent_element_or_group_reference (aspect, element_ref);
END_ENTITY;
ENTITY node_representation
SUPERTYPE OF
(ONEOF (node,
dummy_node,
geometric_node))
SUBTYPE OF (representation);
model_ref : fea_model;
UNIQUE
UR1: model_ref, SELF\representation.name;
END_ENTITY;
ENTITY node
SUPERTYPE OF
(node_with_vector
ANDOR node_with_solution_coordinate_system)
SUBTYPE OF (node_representation);
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'GEOMETRY_SCHEMA.POINT' IN TYPEOF (item)))
= 1;
END_ENTITY;
ENTITY node_with_vector
SUBTYPE OF (node);
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'GEOMETRY_SCHEMA.DIRECTION' IN TYPEOF (item)))
= 1;
END_ENTITY;
ENTITY node_with_solution_coordinate_system
SUBTYPE OF (node);
WHERE
WR1: ( (SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_AXIS2_PLACEMENT_3D' IN TYPEOF (item))) = 1) AND (SELF\representation.context_of_items\
geometric_representation_context.coordinate_space_dimension = 3) ) OR ( (SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_AXIS2_PLACEMENT_2D' IN TYPEOF
(item))) = 1) AND (SELF\representation.context_of_items\ geometric_representation_context.coordinate_space_dimension
= 2) );
END_ENTITY;
ENTITY dummy_node
SUBTYPE OF (node_representation);
END_ENTITY;
ENTITY geometric_node
SUBTYPE OF (node_representation);
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'GEOMETRY_SCHEMA.POINT' IN TYPEOF (item)))
= 1;
END_ENTITY;
ENTITY substructure_node_relationship
SUBTYPE OF (representation_relationship);
WHERE
WR1: 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.NODE_REPRESENTATION' IN TYPEOF (SELF\representation_relationship.rep_1);
WR2: 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.NODE_REPRESENTATION' IN TYPEOF (SELF\representation_relationship.rep_2);
END_ENTITY;
ENTITY element_representation
SUPERTYPE OF
(ONEOF (volume_3d_element_representation,
axisymmetric_volume_2d_element_representation,
plane_volume_2d_element_representation,
surface_3d_element_representation,
axisymmetric_surface_2d_element_representation,
plane_surface_2d_element_representation,
curve_3d_element_representation,
axisymmetric_curve_2d_element_representation,
plane_curve_2d_element_representation,
point_element_representation,
directionally_explicit_element_representation,
explicit_element_representation,
substructure_element_representation))
SUBTYPE OF (representation);
node_list : LIST[1:?] OF node_representation;
WHERE
WR1: SIZEOF (QUERY(item <* node_list | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'GEOMETRIC_NODE'
IN TYPEOF (item))) = 0;
END_ENTITY;
ENTITY volume_3d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_3d;
element_descriptor : volume_3d_element_descriptor;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ARBITRARY_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR2: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR3: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_3d_nodes ( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY axisymmetric_volume_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : axisymmetric_volume_2d_element_descriptor;
angle_property : axisymmetric_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = axisymmetric;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_2d_nodes ( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY plane_volume_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : plane_volume_2d_element_descriptor;
depth_property : plane_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = planar;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_2d_nodes ( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY surface_3d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_3d;
element_descriptor : surface_3d_element_descriptor;
property : surface_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'CONSTANT_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'ALIGNED_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) = 1;
WR2: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_MEMBRANE_STIFFNESS',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_BENDING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR3: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_2d_nodes ( SELF\element_representation.node_list, element_descriptor.shape, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY axisymmetric_surface_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : axisymmetric_surface_2d_element_descriptor;
property : surface_element_property;
angle_property : axisymmetric_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = axisymmetric;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_MEMBRANE_STIFFNESS',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_BENDING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_1d_nodes ( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY plane_surface_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : plane_surface_2d_element_descriptor;
property : surface_element_property;
depth_property : plane_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = planar;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_MEMBRANE_STIFFNESS',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_BENDING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_1d_nodes ( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY curve_3d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_3d;
element_descriptor : curve_3d_element_descriptor;
property : curve_3d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) + SIZEOF (QUERY(item <* SELF\representation.items
| 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'ALIGNED_CURVE_3D_ELEMENT_COORDINATE_SYSTEM'
IN TYPEOF (item))) = 1;
WR2: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR3: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_1d_nodes ( SELF\element_representation.node_list, element_descriptor\element_descriptor.topology_order);
END_ENTITY;
ENTITY axisymmetric_curve_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : axisymmetric_curve_2d_element_descriptor;
property : curve_2d_element_property;
angle_property : axisymmetric_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = axisymmetric;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_0d_nodes ( SELF\element_representation.node_list);
END_ENTITY;
ENTITY plane_curve_2d_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model_2d;
element_descriptor : plane_curve_2d_element_descriptor;
property : curve_2d_element_property;
depth_property : plane_2d_element_property;
material : element_material;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: model_ref.type_of_2d_analysis = planar;
WR2: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' IN TYPEOF (item))) = 1;
WR3: SIZEOF (QUERY(item1 <* material.properties | (SIZEOF (QUERY (item2 <* item1\property_definition_representation.used_representation.items
| SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_LINEAR_ELASTICITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_AREA_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MOISTURE_ABSORPTION'] * TYPEOF (item2) ) = 1 )) = 1 ))) >= 1;
WR4: 'REPRESENTATION_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF (SELF\representation.context_of_items);
FU1: required_0d_nodes ( SELF\element_representation.node_list);
END_ENTITY;
ENTITY element_descriptor
SUPERTYPE OF
(ONEOF (volume_3d_element_descriptor,
axisymmetric_volume_2d_element_descriptor,
plane_volume_2d_element_descriptor,
surface_3d_element_descriptor,
axisymmetric_surface_2d_element_descriptor,
plane_surface_2d_element_descriptor,
curve_3d_element_descriptor,
axisymmetric_curve_2d_element_descriptor,
plane_curve_2d_element_descriptor));
topology_order : element_order;
description : text;
END_ENTITY;
ENTITY volume_3d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF volume_element_purpose;
shape : volume_3d_element_shape;
END_ENTITY;
ENTITY axisymmetric_volume_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
shape : element_2d_shape;
END_ENTITY;
ENTITY plane_volume_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
shape : element_2d_shape;
assumption : plane_2d_element_purpose;
END_ENTITY;
ENTITY volume_3d_element_basis;
descriptor : volume_3d_element_descriptor;
variable : volume_variable;
variable_order : element_order;
variable_shape_function : shape_function;
evaluation_points : LIST[1:?] OF volume_element_location;
END_ENTITY;
ENTITY volume_2d_element_basis;
descriptor : volume_2d_element_descriptor;
variable : volume_variable;
variable_order : element_order;
variable_shape_function : shape_function;
evaluation_points : LIST[1:?] OF volume_element_location;
END_ENTITY;
ENTITY surface_3d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
shape : element_2d_shape;
END_ENTITY;
ENTITY axisymmetric_surface_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
END_ENTITY;
ENTITY plane_surface_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
assumption : plane_2d_element_purpose;
END_ENTITY;
ENTITY surface_3d_element_basis;
descriptor : surface_3d_element_descriptor;
variable : surface_element_variable;
variable_order : element_order;
variable_shape_function : shape_function;
evaluation_points : LIST[1:?] OF surface_element_location;
END_ENTITY;
ENTITY surface_2d_element_basis;
descriptor : surface_2d_element_descriptor;
variable : surface_element_variable;
variable_order : element_order;
variable_shape_function : shape_function;
evaluation_points : LIST[1:?] OF surface_element_location;
END_ENTITY;
ENTITY curve_3d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
END_ENTITY;
ENTITY axisymmetric_curve_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
END_ENTITY;
ENTITY plane_curve_2d_element_descriptor
SUBTYPE OF (element_descriptor);
purpose : SET[1:?] OF SET;
assumption : plane_2d_element_purpose;
END_ENTITY;
ENTITY curve_3d_element_basis;
descriptor : curve_3d_element_descriptor;
variable : curve_element_variable;
variable_order : element_order;
variable_shape_function : shape_function;
evaluation_points : LIST[1:?] OF curve_element_location;
END_ENTITY;
ENTITY curve_2d_element_basis;
descriptor : curve_2d_element_descriptor;
variable : curve_element_variable;
END_ENTITY;
ENTITY point_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model;
description : text;
matrix_set : SET[1:?] OF point_element_matrix;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_AXIS2_PLACEMENT_3D' IN TYPEOF (item))) = 1;
FU1: required_0d_nodes ( SELF\element_representation.node_list);
END_ENTITY;
ENTITY point_element_matrix
SUPERTYPE OF
(ONEOF (stationary_mass,
grounded_spring,
grounded_damper));
END_ENTITY;
ENTITY stationary_mass
SUBTYPE OF (point_element_matrix);
mass : ARRAY[1:3] OF context_dependent_measure;
moments_of_inertia : symmetric_tensor2_3d;
coordinate_system : fea_axis2_placement_3d;
offset_vector : ARRAY[1:3] OF context_dependent_measure;
END_ENTITY;
ENTITY grounded_spring
SUBTYPE OF (point_element_matrix);
stiffness_coefficients : ARRAY[1:6] OF context_dependent_measure;
END_ENTITY;
ENTITY grounded_damper
SUBTYPE OF (point_element_matrix);
damping_coefficients : ARRAY[1:6] OF context_dependent_measure;
END_ENTITY;
ENTITY directionally_explicit_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model;
systems_and_freedoms : LIST[2:2] OF system_and_freedom;
description : text;
coefficient : directionally_explicit_element_coefficient;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
FU1: required_1d_nodes ( SELF\element_representation.node_list, linear);
END_ENTITY;
ENTITY system_and_freedom;
matrix_coordinate_system : directionally_explicit_element_coordinate_system;
freedom : degree_of_freedom;
END_ENTITY;
ENTITY directionally_explicit_element_coefficient;
property_type : matrix_property_type;
coefficient : context_dependent_measure;
END_ENTITY;
ENTITY explicit_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model;
description : text;
matrix : explicit_element_matrix;
UNIQUE
UR1: model_ref, SELF\representation.name;
WHERE
WR1: SIZEOF (QUERY(item <* SELF\representation.items | ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_AXIS2_PLACEMENT_3D') IN TYPEOF (item))) = 1;
WR2: SIZEOF (matrix.node_dof_list) = SIZEOF (SELF\element_representation.node_list);
END_ENTITY;
ENTITY explicit_element_matrix;
property_type : matrix_property_type;
symmetry : matrix_symmetry;
node_dof_list : LIST[1:?] OF LIST;
matrix_values : LIST[1:?] OF context_dependent_measure;
WHERE
WR1: SIZEOF (matrix_values) = number_of_terms (node_dof_list, symmetry);
END_ENTITY;
ENTITY substructure_element_representation
SUBTYPE OF (element_representation);
model_ref : fea_model;
substructure_model_ref : fea_model;
UNIQUE
UR1: model_ref, SELF\representation.name;
END_ENTITY;
ENTITY aligned_axis_tolerance;
model_ref : fea_model;
tolerance : context_dependent_measure;
END_ENTITY;
ENTITY arbitrary_volume_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
coordinate_system : fea_axis2_placement_3d;
END_ENTITY;
ENTITY parametric_volume_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
axis_1 : INTEGER;
axis_2 : INTEGER;
eu_angles : euler_angles;
WHERE
WR1: (axis_1 >= 1) AND (axis_1 <= 3) AND (axis_2 >= 1) AND (axis_2 <= 3) AND NOT (axis_1 = axis_2);
END_ENTITY;
ENTITY arbitrary_volume_2d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
orientation : direction;
WHERE
WR1: SELF\geometric_representation_item.dim=2;
END_ENTITY;
ENTITY parametric_volume_2d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
axis : INTEGER;
angle : plane_angle_measure;
WHERE
WR1: (axis >= 1) AND (axis <= 2);
END_ENTITY;
ENTITY aligned_surface_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
coordinate_system : fea_axis2_placement_3d;
END_ENTITY;
ENTITY parametric_surface_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
axis : INTEGER;
angle : plane_angle_measure;
WHERE
WR1: (axis >= 1) AND (axis <= 2);
END_ENTITY;
ENTITY constant_surface_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
axis : INTEGER;
angle : plane_angle_measure;
WHERE
WR1: (axis >= 1) AND (axis <= 2);
END_ENTITY;
ENTITY aligned_surface_2d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
orientation : direction;
WHERE
WR1: SELF\geometric_representation_item.dim=2;
END_ENTITY;
ENTITY parametric_surface_2d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
END_ENTITY;
ENTITY aligned_curve_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
coordinate_system : fea_axis2_placement_3d;
END_ENTITY;
ENTITY parametric_curve_3d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
direction : parametric_curve_3d_element_coordinate_direction;
END_ENTITY;
ENTITY parametric_curve_3d_element_coordinate_direction
SUBTYPE OF (fea_representation_item);
orientation : direction;
WHERE
WR1: SELF\geometric_representation_item.dim=3;
END_ENTITY;
ENTITY curve_2d_element_coordinate_system
SUBTYPE OF (fea_representation_item);
orientation : direction;
WHERE
WR1: SELF\geometric_representation_item.dim=2;
END_ENTITY;
ENTITY directionally_explicit_element_coordinate_system_arbitrary
SUBTYPE OF (fea_representation_item);
arbitrary_system : fea_axis2_placement_3d;
END_ENTITY;
ENTITY directionally_explicit_element_coordinate_system_aligned
SUBTYPE OF (fea_representation_item);
aligned_system : curve_3d_element_coordinate_system;
END_ENTITY;
ENTITY euler_angles;
angles : ARRAY[1:3] OF plane_angle_measure;
END_ENTITY;
ENTITY volume_3d_element_integrated_matrix;
descriptor : volume_3d_element_descriptor;
property_type : matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY volume_3d_element_integrated_matrix_with_definition
SUBTYPE OF (volume_3d_element_integrated_matrix);
integration_definition : volume_3d_element_field_integration;
END_ENTITY;
ENTITY volume_3d_element_field_integration_rule;
integration_method : integration_rule;
integration_order : ARRAY[1:3] OF INTEGER;
END_ENTITY;
ENTITY volume_3d_element_field_integration_explicit;
integration_positions_and_weights : SET[1:?] OF volume_position_weight;
END_ENTITY;
ENTITY volume_position_weight;
integration_position : volume_element_location;
integration_weight : context_dependent_measure;
END_ENTITY;
ENTITY volume_2d_element_integrated_matrix;
descriptor : volume_2d_element_descriptor;
property_type : matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY volume_2d_element_integrated_matrix_with_definition
SUBTYPE OF (volume_2d_element_integrated_matrix);
integration_definition : volume_2d_element_field_integration;
END_ENTITY;
ENTITY volume_2d_element_field_integration_rule;
integration_method : integration_rule;
integration_order : ARRAY[1:2] OF INTEGER;
END_ENTITY;
ENTITY volume_2d_element_field_integration_explicit;
integration_positions_and_weights : SET[1:?] OF volume_position_weight;
END_ENTITY;
ENTITY surface_3d_element_integrated_matrix;
descriptor : surface_3d_element_descriptor;
property_type : surface_matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY surface_3d_element_integrated_matrix_with_definition
SUBTYPE OF (surface_3d_element_integrated_matrix);
integration_definition : surface_3d_element_integration;
END_ENTITY;
ENTITY surface_3d_element_integration;
field : surface_3d_element_field_integration;
section : surface_section_integration;
END_ENTITY;
ENTITY surface_3d_element_field_integration_rule;
integration_method : integration_rule;
integration_order : ARRAY[1:2] OF INTEGER;
END_ENTITY;
ENTITY surface_3d_element_field_integration_explicit;
integration_positions_and_weights : SET[1:?] OF surface_position_weight;
END_ENTITY;
ENTITY surface_position_weight;
integration_position : surface_element_location;
integration_weight : context_dependent_measure;
END_ENTITY;
ENTITY surface_section_integration_rule;
integration_method : integration_rule;
integration_order : INTEGER;
END_ENTITY;
ENTITY surface_section_integration_explicit;
integration_positions_and_weights : SET[1:?] OF surface_section_position_weight;
END_ENTITY;
ENTITY surface_section_position_weight;
integration_position : surface_section_element_location;
integration_weight : context_dependent_measure;
END_ENTITY;
ENTITY surface_2d_element_integrated_matrix;
descriptor : surface_2d_element_descriptor;
property_type : surface_matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY surface_2d_element_integrated_matrix_with_definition
SUBTYPE OF (surface_2d_element_integrated_matrix);
integration_definition : surface_2d_element_integration;
END_ENTITY;
ENTITY surface_2d_element_integration;
element_length : surface_2d_element_length_integration;
section : surface_section_integration;
END_ENTITY;
ENTITY surface_2d_element_length_integration_rule;
integration_method : integration_rule;
integration_order : INTEGER;
END_ENTITY;
ENTITY surface_2d_element_length_integration_explicit;
integration_positions_and_weights : SET[1:?] OF surface_position_weight;
END_ENTITY;
ENTITY curve_3d_element_integrated_matrix;
descriptor : curve_3d_element_descriptor;
property_type : curve_matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY curve_3d_element_integrated_matrix_with_definition
SUBTYPE OF (curve_3d_element_integrated_matrix);
integration_definition : curve_3d_element_integration;
END_ENTITY;
ENTITY curve_3d_element_integration;
element_length : curve_3d_element_length_integration;
section : curve_section_integration_explicit;
END_ENTITY;
ENTITY curve_3d_element_length_integration_rule;
integration_method : integration_rule;
integration_order : INTEGER;
END_ENTITY;
ENTITY curve_3d_element_length_integration_explicit;
integration_positions_and_weights : SET[1:?] OF curve_3d_element_position_weight;
END_ENTITY;
ENTITY curve_3d_element_position_weight;
integration_position : curve_volume_element_location;
integration_weight : context_dependent_measure;
END_ENTITY;
ENTITY curve_section_integration_explicit;
integration_positions : SET[1:?] OF curve_section_element_location;
END_ENTITY;
ENTITY curve_2d_element_integrated_matrix;
descriptor : curve_2d_element_descriptor;
property_type : curve_matrix_property_type;
integration_description : text;
END_ENTITY;
ENTITY curve_2d_element_integrated_matrix_with_definition
SUBTYPE OF (curve_2d_element_integrated_matrix);
integration_definition : curve_2d_element_integration;
END_ENTITY;
ENTITY curve_2d_element_integration;
section : LIST[1:?] OF curve_section_element_location;
END_ENTITY;
ENTITY fea_parametric_point
SUBTYPE OF (point);
coordinates : LIST[1:3] OF parameter_value;
WHERE
WR1: valid_parametric_coordinate (coordinates);
WR2: SIZEOF (TYPEOF (SELF) * ['GEOMETRY_SCHEMA.CARTESIAN_POINT', 'GEOMETRY_SCHEMA.POINT_ON_CURVE',
'GEOMETRY_SCHEMA.POINT_ON_SURFACE', 'GEOMETRY_SCHEMA.DEGENERATE_PCURVE', 'GEOMETRY_SCHEMA.POINT_REPLICA',
'GEOMETRY_SCHEMA.SPHERICAL_POINT', 'GEOMETRY_SCHEMA.CYLINDRICAL_POINT']) = 0;
END_ENTITY;
ENTITY volume_element_location;
coordinates : fea_parametric_point;
END_ENTITY;
ENTITY surface_volume_element_location;
field_location : surface_element_location;
section_location : surface_section_element_location;
END_ENTITY;
ENTITY surface_element_location;
coordinates : fea_parametric_point;
END_ENTITY;
ENTITY surface_section_element_location
SUPERTYPE OF
(ONEOF (surface_section_element_location_absolute,
surface_section_element_location_dimensionless));
above_material_discontinuity : LOGICAL;
END_ENTITY;
ENTITY surface_section_element_location_absolute
SUBTYPE OF (surface_section_element_location);
offset : context_dependent_measure;
END_ENTITY;
ENTITY surface_section_element_location_dimensionless
SUBTYPE OF (surface_section_element_location);
coordinate : LIST[1:1] OF parameter_value;
WHERE
WR1: valid_parametric_coordinate (coordinate);
END_ENTITY;
ENTITY curve_volume_element_location;
field_location : curve_element_location;
section_location : curve_section_element_location;
END_ENTITY;
ENTITY curve_element_location;
coordinate : fea_parametric_point;
END_ENTITY;
ENTITY curve_section_element_location;
offsets : ARRAY[1:2] OF context_dependent_measure;
END_ENTITY;
ENTITY element_material;
material_id : identifier;
description : text;
properties : SET[1:?] OF material_property_representation;
END_ENTITY;
ENTITY fea_material_property_geometric_relationship;
material_ref : fea_material_property_representation;
item : analysis_item_within_representation;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item);
END_ENTITY;
ENTITY fea_material_property_representation
SUBTYPE OF (material_property_representation);
WHERE
WR1: SIZEOF (QUERY (item <* SELF\property_definition_representation.used_representation.items | SIZEOF (['STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_LINEAR_ELASTICITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_MASS_DENSITY', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_AREA_DENSITY',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_MOISTURE_ABSORPTION', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'
+ 'FEA_SHELL_MEMBRANE_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' +
'FEA_SHELL_BENDING_STIFFNESS', 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS',
'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF (item)
) = 1 )) = 1;
WR2: 'MATERIAL_PROPERTY_DEFINITION_SCHEMA.MATERIAL_PROPERTY' IN TYPEOF (SELF\property_definition_representation.definition);
END_ENTITY;
ENTITY fea_material_property_representation_item
SUPERTYPE OF
(ONEOF (fea_linear_elasticity,
fea_mass_density,
fea_area_density,
fea_tangential_coefficient_of_linear_thermal_expansion,
fea_secant_coefficient_of_linear_thermal_expansion,
fea_moisture_absorption,
fea_shell_membrane_stiffness,
fea_shell_bending_stiffness,
fea_shell_membrane_bending_coupling_stiffness,
fea_shell_shear_stiffness))
SUBTYPE OF (representation_item);
END_ENTITY;
ENTITY fea_linear_elasticity
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor4_3d;
END_ENTITY;
ENTITY fea_mass_density
SUBTYPE OF (fea_material_property_representation_item);
fea_constant : scalar;
END_ENTITY;
ENTITY fea_area_density
SUBTYPE OF (fea_material_property_representation_item);
fea_constant : scalar;
END_ENTITY;
ENTITY fea_tangential_coefficient_of_linear_thermal_expansion
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor2_3d;
END_ENTITY;
ENTITY fea_secant_coefficient_of_linear_thermal_expansion
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor2_3d;
reference_temperature : thermodynamic_temperature_measure;
END_ENTITY;
ENTITY fea_moisture_absorption
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor2_3d;
END_ENTITY;
ENTITY fea_shell_membrane_stiffness
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor4_2d;
END_ENTITY;
ENTITY fea_shell_bending_stiffness
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor4_2d;
END_ENTITY;
ENTITY fea_shell_membrane_bending_coupling_stiffness
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor4_2d;
END_ENTITY;
ENTITY fea_shell_shear_stiffness
SUBTYPE OF (fea_material_property_representation_item);
fea_constants : symmetric_tensor2_2d;
END_ENTITY;
ENTITY surface_element_property;
property_id : identifier;
description : text;
section : surface_section_field;
END_ENTITY;
ENTITY surface_section_field
SUPERTYPE OF
(ONEOF (surface_section_field_constant,
surface_section_field_varying));
END_ENTITY;
ENTITY surface_section_field_constant
SUBTYPE OF (surface_section_field);
definition : surface_section;
END_ENTITY;
ENTITY surface_section_field_varying
SUBTYPE OF (surface_section_field);
definitions : LIST[1:?] OF surface_section;
additional_node_values : BOOLEAN;
END_ENTITY;
ENTITY surface_section
SUPERTYPE OF
(ONEOF (uniform_surface_section,
uniform_surface_section_layered));
offset : measure_or_unspecified_value;
non_structural_mass : measure_or_unspecified_value;
non_structural_mass_offset : measure_or_unspecified_value;
END_ENTITY;
ENTITY uniform_surface_section
SUBTYPE OF (surface_section);
thickness : context_dependent_measure;
bending_thickness : measure_or_unspecified_value;
shear_thickness : measure_or_unspecified_value;
END_ENTITY;
ENTITY uniform_surface_section_layered
SUBTYPE OF (surface_section);
END_ENTITY;
ENTITY fea_surface_section_geometric_relationship;
section_ref : surface_section;
item : analysis_item_within_representation;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item);
END_ENTITY;
ENTITY curve_3d_element_property;
property_id : identifier;
description : text;
interval_definitions : LIST[1:?] OF curve_element_interval;
end_offsets : ARRAY[1:2] OF curve_element_end_offset;
end_releases : ARRAY[1:2] OF curve_element_end_release;
END_ENTITY;
ENTITY curve_element_interval
SUPERTYPE OF
(ONEOF (curve_element_interval_constant,
curve_element_interval_linearly_varying));
finish_position : curve_element_location;
eu_angles : euler_angles;
END_ENTITY;
ENTITY curve_element_interval_constant
SUBTYPE OF (curve_element_interval);
section : curve_element_section_definition;
END_ENTITY;
ENTITY curve_element_interval_linearly_varying
SUBTYPE OF (curve_element_interval);
sections : ARRAY[1:2] OF curve_element_section_definition;
END_ENTITY;
ENTITY curve_2d_element_property;
property_id : identifier;
description : text;
section : curve_element_section_definition;
END_ENTITY;
ENTITY curve_element_section_definition
SUPERTYPE OF
(curve_element_section_derived_definitions);
description : text;
section_angle : plane_angle_measure;
END_ENTITY;
ENTITY curve_element_section_derived_definitions
SUBTYPE OF (curve_element_section_definition);
cross_sectional_area : context_dependent_measure;
shear_area : ARRAY[1:2] OF measure_or_unspecified_value;
second_moment_of_area : ARRAY[1:3] OF context_dependent_measure;
torsional_constant : context_dependent_measure;
warping_constant : measure_or_unspecified_value;
location_of_centroid : ARRAY[1:2] OF measure_or_unspecified_value;
location_of_shear_centre : ARRAY[1:2] OF measure_or_unspecified_value;
location_of_non_structural_mass : ARRAY[1:2] OF measure_or_unspecified_value;
non_structural_mass : measure_or_unspecified_value;
polar_moment : measure_or_unspecified_value;
END_ENTITY;
ENTITY fea_curve_section_geometric_relationship;
section_ref : curve_element_section_definition;
item : analysis_item_within_representation;
WHERE
WR1: 'GEOMETRY_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item.item);
END_ENTITY;
ENTITY curve_element_end_offset;
coordinate_system : curve_element_end_coordinate_system;
offset_vector : ARRAY[1:3] OF context_dependent_measure;
END_ENTITY;
ENTITY curve_element_end_release;
coordinate_system : curve_element_end_coordinate_system;
releases : LIST[1:?] OF curve_element_end_release_packet;
END_ENTITY;
ENTITY curve_element_end_release_packet;
release_freedom : curve_element_freedom;
release_stiffness : context_dependent_measure;
END_ENTITY;
ENTITY axisymmetric_2d_element_property;
angle : plane_angle_measure;
END_ENTITY;
ENTITY plane_2d_element_property
SUPERTYPE OF
(simple_plane_2d_element_property);
depth : context_dependent_measure;
END_ENTITY;
ENTITY simple_plane_2d_element_property
SUBTYPE OF (plane_2d_element_property);
END_ENTITY;
ENTITY fea_group
SUPERTYPE OF
(ONEOF (element_group,
node_group))
SUBTYPE OF (group);
model_ref : fea_model;
END_ENTITY;
ENTITY element_group
SUBTYPE OF (fea_group);
elements : SET[1:?] OF element_representation;
END_ENTITY;
ENTITY node_group
SUBTYPE OF (fea_group);
nodes : SET[1:?] OF node_representation;
END_ENTITY;
ENTITY fea_group_relation
SUBTYPE OF (group_relationship);
WHERE
WR1: 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.FEA_GROUP' IN TYPEOF (SELF\group_relationship.relating_group);
WR2: 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.FEA_GROUP' IN TYPEOF (SELF\group_relationship.related_group);
END_ENTITY;
ENTITY volume_3d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(query(item <* elements | NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'VOLUME_3D_ELEMENT_REPRESENTATION'
IN TYPEOF (item))))=0;
END_ENTITY;
ENTITY volume_2d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(QUERY(item <* elements | (NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)) AND NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)))))=0;
END_ENTITY;
ENTITY surface_3d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(query(item <* elements | NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'SURFACE_3D_ELEMENT_REPRESENTATION'
IN TYPEOF (item))))=0;
END_ENTITY;
ENTITY surface_2d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(QUERY(item <* elements | (NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)) AND NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)))))=0;
END_ENTITY;
ENTITY curve_3d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(query(item <* elements | NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'CURVE_3D_ELEMENT_REPRESENTATION'
IN TYPEOF (item))))=0;
END_ENTITY;
ENTITY curve_2d_element_group
SUBTYPE OF (element_group);
WHERE
WR1: SIZEOF(QUERY(item <* elements | (NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)) AND NOT ('STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'+ 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION'
IN TYPEOF(item)))))=0;
END_ENTITY;
FUNCTION required_0d_nodes
(node_list : LIST[1:?] OF node_representation) : BOOLEAN;
RETURN (SIZEOF (node_list) = 1);
END_FUNCTION;
FUNCTION required_1d_nodes
(node_list : LIST[1:?] OF node_representation; order : element_order) : BOOLEAN;
LOCAL end_nodes : INTEGER; additional_nodes : INTEGER; END_LOCAL; end_nodes := 2; IF (order = linear) THEN additional_nodes := 0; END_IF; IF (order = quadratic) THEN additional_nodes := 1; END_IF; IF (order = cubic) THEN additional_nodes := 2; END_IF; RETURN (SIZEOF (node_list) = end_nodes + additional_nodes);
END_FUNCTION;
FUNCTION required_2d_nodes
(node_list : LIST[1:?] OF node_representation; element_shape : element_2d_shape; order : element_order) : BOOLEAN;
LOCAL vertex_nodes : INTEGER; edge_nodes : INTEGER; edge_face_body_nodes : INTEGER; END_LOCAL; IF (element_shape = triangle) THEN vertex_nodes := 3; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 3; edge_face_body_nodes := 3; END_IF; IF (order = cubic) THEN edge_nodes := 6; edge_face_body_nodes := 7; END_IF; END_IF; IF (element_shape = quadrilateral) THEN vertex_nodes := 4; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 4; edge_face_body_nodes := 5; END_IF; IF (order = cubic) THEN edge_nodes := 8; edge_face_body_nodes := 12; END_IF; END_IF; RETURN ((SIZEOF (node_list) = vertex_nodes + edge_nodes) OR (SIZEOF (node_list) = vertex_nodes + edge_face_body_nodes));
END_FUNCTION;
FUNCTION required_3d_nodes
(node_list : LIST[1:?] OF node_representation; element_shape : volume_3d_element_shape; order : element_order) : BOOLEAN;
LOCAL vertex_nodes : INTEGER; edge_nodes : INTEGER; edge_face_body_nodes : INTEGER; END_LOCAL; IF (element_shape = hexahedron) THEN vertex_nodes := 8; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 12; edge_face_body_nodes := 19; END_IF; IF (order = cubic) THEN edge_nodes := 24; edge_face_body_nodes := 56; END_IF; END_IF; IF (element_shape = wedge) THEN vertex_nodes := 6; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 9; edge_face_body_nodes := 12; END_IF; IF (order = cubic) THEN edge_nodes := 18; edge_face_body_nodes := 34; END_IF; END_IF; IF (element_shape = tetrahedron) THEN vertex_nodes := 4; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 6; edge_face_body_nodes := 6; END_IF; IF (order = cubic) THEN edge_nodes := 12; edge_face_body_nodes := 16; END_IF; END_IF; IF (element_shape = pyramid) THEN vertex_nodes := 5; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 8; edge_face_body_nodes := 9; END_IF; IF (order = cubic) THEN edge_nodes := 16; edge_face_body_nodes := 25; END_IF; END_IF; RETURN ((SIZEOF (node_list) = vertex_nodes + edge_nodes) OR (SIZEOF (node_list) = vertex_nodes + edge_face_body_nodes));
END_FUNCTION;
FUNCTION number_of_terms
(node_dof_list : LIST[1:?] OF LIST; matrix_type : matrix_symmetry) : INTEGER;
LOCAL num_terms : INTEGER; number_of_freedoms : INTEGER; END_LOCAL; number_of_freedoms := 0; (* loop for each item in the outer list*) REPEAT i := 1 TO SIZEOF (node_dof_list); (* find size of inner list*) number_of_freedoms := number_of_freedoms + SIZEOF (node_dof_list[i]); END_REPEAT; IF (matrix_type = symmetric) THEN num_terms := (number_of_freedoms * (number_of_freedoms+1)) DIV 2; END_IF; IF (matrix_type = diagonal) THEN num_terms := number_of_freedoms; END_IF; RETURN (num_terms);
END_FUNCTION;
FUNCTION valid_parametric_coordinate
(coordinates : LIST[1:3] OF parameter_value) : BOOLEAN;
LOCAL i : INTEGER; END_LOCAL; REPEAT i:=1 TO HIINDEX(coordinates); IF ((1.0 < coordinates[i]) OR (coordinates[i] < -1.0)) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
FUNCTION build_direction_node
(node_1 : node_representation; node_2 : node_representation) : LIST[2:3] OF REAL;
LOCAL nodal_direction_ratios : LIST [2:3] OF REAL; u : direction; i : INTEGER; ndim : INTEGER; rep_items : SET [1:?] of representation_item; node_1_point : cartesian_point; node_2_point : cartesian_point; END_LOCAL; rep_items := node_1.items; REPEAT i := 1 TO SIZEOF(rep_items); IF ('GEOMETRY_SCHEMA.CARTESIAN_POINT' IN TYPEOF(rep_items[i])) THEN node_1_point := rep_items[i]; ESCAPE; END_IF; END_REPEAT; rep_items := node_2.items; REPEAT i := 1 TO SIZEOF(rep_items); IF ('GEOMETRY_SCHEMA.CARTESIAN_POINT' IN TYPEOF(rep_items[i])) THEN node_2_point := rep_items[i]; ESCAPE; END_IF; END_REPEAT; ndim := HIINDEX(node_2_point.coordinates); REPEAT i := 1 TO ndim; u.direction_ratios[i] := node_2_point.coordinates[i] - node_1_point.coordinates[i]; END_REPEAT; u := normalise (u); REPEAT i := 1 TO ndim; nodal_direction_ratios[i] := u.direction_ratios[i]; END_REPEAT; RETURN (nodal_direction_ratios);
END_FUNCTION;
FUNCTION consistent_geometric_reference
(aspect : GENERIC; item : geometric_representation_item) : BOOLEAN;
LOCAL srrs : STRING; feacr : STRING; aspect_type : SET [1:?] OF STRING; item_type : SET [1:?] OF STRING; END_LOCAL; srrs := 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'; feacr := 'FINITE_ELEMENT_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'; aspect_type := TYPEOF (aspect); item_type := TYPEOF (item); IF ('GEOMETRIC_MODEL_SCHEMA.SOLID_MODEL' IN item_type) THEN IF ((srrs + 'ELEMENT_VOLUME') IN aspect_type) THEN RETURN (TRUE); END_IF; END_IF; IF (('GEOMETRY_SCHEMA.SURFACE' IN item_type) OR ('TOPOLOGY_SCHEMA.FACE_SURFACE' IN item_type)) THEN IF SIZEOF ([(feacr + 'VOLUME_3D_FACE'), (feacr + 'VOLUME_2D_FACE'), (feacr + 'SURFACE_3D_FACE'), (feacr + 'SURFACE_2D_FACE')] * aspect_type ) = 1 THEN RETURN (TRUE); END_IF; END_IF; IF (('GEOMETRY_SCHEMA.CURVE' IN item_type) OR ('TOPOLOGY_SCHEMA.EDGE_CURVE' IN item_type)) THEN IF SIZEOF ([(feacr + 'VOLUME_3D_EDGE'), (feacr + 'VOLUME_2D_EDGE'), (feacr + 'SURFACE_3D_EDGE'), (feacr + 'SURFACE_2D_EDGE'), (srrs + 'CURVE_EDGE')] * aspect_type ) = 1 THEN RETURN (TRUE); END_IF; END_IF; RETURN (FALSE);
END_FUNCTION;
FUNCTION consistent_element_or_group_reference
(aspect : GENERIC; element : GENERIC) : BOOLEAN;
LOCAL srrs : STRING; i : INTEGER; END_LOCAL; srrs := 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'; IF ((srrs + 'ELEMENT_REPRESENTATION') IN TYPEOF(element)) THEN RETURN (consistent_element_reference (aspect, element)); END_IF; IF ((srrs + 'ELEMENT_GROUP') IN TYPEOF(element)) THEN REPEAT i := 1 TO HIINDEX (element.elements); IF NOT (consistent_element_reference (aspect, element.elements[i])) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_IF; RETURN (FALSE);
END_FUNCTION;
FUNCTION consistent_element_reference
(aspect : GENERIC; element : element_representation) : BOOLEAN;
LOCAL srrs : STRING; feacr : STRING; aspect_type : SET [1:?] OF STRING; element_type : SET [1:?] OF STRING; END_LOCAL; srrs := 'STRUCTURAL_RESPONSE_REPRESENTATION_SCHEMA.'; feacr := 'FINITE_ELEMENT_ANALYSIS_CONTROL_AND_RESULT_SCHEMA.'; aspect_type := TYPEOF (aspect); element_type := TYPEOF (element); IF ((srrs + 'ELEMENT_REPRESENTATION') IN element_type) THEN IF ((srrs + 'ELEMENT_VOLUME') IN aspect_type) THEN RETURN (TRUE); END_IF; END_IF; IF ((srrs + 'VOLUME_3D_ELEMENT_REPRESENTATION') IN element_type) THEN IF (((feacr + 'VOLUME_3D_FACE') IN aspect_type) OR ((feacr + 'VOLUME_3D_EDGE') IN aspect_type)) THEN RETURN (TRUE); END_IF; END_IF; IF (((srrs + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION') IN element_type) OR ((srrs + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION') IN element_type)) THEN IF (((feacr + 'VOLUME_2D_FACE') IN aspect_type) OR ((feacr + 'VOLUME_2D_EDGE') IN aspect_type)) THEN RETURN (TRUE); END_IF; END_IF; IF ((srrs + 'SURFACE_3D_ELEMENT_REPRESENTATION') IN element_type) THEN IF (((feacr + 'SURFACE_3D_FACE') IN aspect_type) OR ((feacr + 'SURFACE_3D_EDGE') IN aspect_type)) THEN RETURN (TRUE); END_IF; END_IF; IF (((srrs + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION') IN element_type) OR ((srrs + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION') IN element_type)) THEN IF (((feacr + 'SURFACE_2D_FACE') IN aspect_type) OR ((feacr + 'SURFACE_2D_EDGE') IN aspect_type)) THEN RETURN (TRUE); END_IF; END_IF; IF (((srrs + 'CURVE_3D_ELEMENT_REPRESENTATION') IN element_type) OR ((srrs + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION') IN element_type) OR ((srrs + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION') IN element_type)) THEN IF ((srrs + 'CURVE_EDGE') IN aspect_type) THEN RETURN (TRUE); END_IF; END_IF; RETURN (FALSE);
END_FUNCTION;
END_SCHEMA; -- structural_response_representation_schema