![]() |
GeMA
The GeMA main application
|
Discontinuity set objects are used in GeMA to handle discontinuities as a common model object. Having those as a model object, instead of information used internally by physics implementations needing fault or fracture geometric data, as it once was, has several advantages, such as the possibility to add attributes and properties to discontinuities. It also allows for other GeMA subsystems to interact with discontinuity sets, like when exporting data to post processors or when interpolating data.
There can be several discontinuity set objects on the simulation file, created by the DiscontinuitySet keyword, as can be seen at the example below. Each set groups several discontinuities, each one with a geometric definition and associated attribute values. For 2D simulations, the discontinuity geometry is given by a polyline. In 3D, either by polylines or by a triangulated surface, represented by a vertex list and a triangle incidence list. In the example below, the 2D discontinuity set includes 3 discontinuities, represented by polylines.
When the discontinuity set is parsed, the intersetion between mesh cells and discontinuity segments or surfaces is calculated by GeMA and the resulting data is made available for physics and other GeMA entities, for each mesh cell. By using the addElements
discontinuity set option, it is possible to request that elements representing the intersections (bars for polyline data, triangles and/or quads for surface data) are added, automatically, to the mesh.
Optionally, if the mesh conforms to the discontinuities, i.e its geometry is coincident with mesh edges in 2D or faces in 3D, they can be represented by edge or face lists. In those cases, intersection calculations are not needed, and the addElements
option controls whether the given geometry will be use to add interface elements to the mesh or not.
Important: At the moment, only the 2D polyline representation is fully implemented.
Field | Description | Type | Required |
---|---|---|---|
id | The discontinuity set name. | String | Yes |
description | A description of the discontinuity set purpose. | String | No |
mesh | The name of the mesh to which this discontinuity set is associated. For better efficiency, this should be a mesh with support for topological queries. Using non-topological meshes is possible but the initial intersection step, done on model reading, can take a while for large meshes. | String | Yes |
index | The name of an optional spatial index object that can be used to slightly improve the intersection step efficiency by providing a way to find the first element from a mesh to intersect the start of a discontinuity. It can also be used to improve running time if the mesh can not handle topological queries. When given, the spatial index should be capable of answering the cell containing a given coordinate query type. | String | No |
addElements | An optional flag. When set to true , the calculated intersections between cells and discontinuities will be added to the mesh in the form of new bar or surface elements (triangles or quadrilaterals), depending on the input discontinuity geometry. If the original geometry was given as a set of edges and faces, added elements will be interface elements instead. Either way, the created element properties will be filled with discontinuity property values (since there are no default line indices for the element - property set association, all mesh properties must be included in the discontinuity set list of properties). Likewise, added element cell attributes will be filled with matching discontinuity attributes (but in this case, if there is no correspondence between a mesh cell attribute and a discontinuity attribute, the value will be simply filled with the mesh attribute default value). | Boolean | No |
extraDofs | An optional flag used only if addElements is set to true and the geometric data was provided as a set of element edges or faces. In this specific case, where interface elements are added to the mesh to represent the discontinuities, when this flag is set to true, the added interface elements will have extra nodes used to host addittional degrees of freedom (see the element types page for details). | Boolean | No |
snapTol | The percentual tolerance used to snap discontinuity-cell intersection points to a cell node, edge or face. When an intersection falls on a cell edge, the percentual distance of the intersection to the edge end points (in terms of the edge length) will be compared with the tolerance to define if it should be snapped to the edge's start or end nodes. Similar criteria are used for internal cell intersections or face cell intersections. If this option is missing, the value of the defDiscSnapTol simulation option will be used instead. | Number | No |
noInternalNodes | An optional flag that, when set to true , instructs GeMA that internal to the cell discontinuity-cell intersection points are not acceptable and should be removed so that the whole cell-discontinuity be represented by a single bar / surface. | Boolean | No |
internalIntersections | An optional flag that, when set to true , instructs GeMA to look for inside element intersections between different discontinuities. When found, the segments/surfaces are broken at the intersection. | Boolean | No |
discardOriginalGeometry | An optional flag that, when set to true , tells GeMA that the original geometry description given by the user will not be needed after element - discontinuity intersection calculation and can be discarded from memory. | Boolean | No |
attributes | An optional table with the definition of the attributes that will be associated with this discontinuity set. Each table entry is a sub-table with an attribute definition following the syntax described in the Data options page. User functions are not supported. For physics objects, the discontinuity set attributes have a role similar to the mesh cell attributes. Each discontinuity entry will store the defined attribute values. | Table | No |
properties | An optional table with the list of the names of the property sets that will be associated with this discontinuity set. Each discontinuity entry will store a line index for each associated property set. Although optional, it is required by most physics plugins. Also, if addElements is set to true , it must include at least all the property sets attached to the associated mesh. | Table | No |
discontinuityData | The table used to list the discontinuity objects that are part of this set, also defining their geometry, property and attribute values. All discontinuities must share the same type of geometry, defined by one of the polyline , edgeList , surfaceData or faceList sub-tables. Each table entry should be a sub-table with the following fields:- id: The name of the discontinuity. - polyline: The table with geometric data for discontinuities represented by polylines. Each table entry is a sub-table with one polyline node coordinate, with the same dimension and expressed in the same unit as the mesh coordinates. It must contain at least two entries. - edgeList: The table with geometric data for 2D discontinuities represented by cell edges. Each table entry is a sub-table referencing a cell edge by providing a pair with the cell id and the edge number (see the element types page for details on cell edge numbering). - surfaceData: The table with geometric data for 3D discontinuities represented by a triangulated surface. It contains two sub-tables. The first stores triangle vertex coordinates. Each table entry is a sub-table with one vertex coordinate, with the same dimension and expressed in the same unit as the mesh coordinates. The second table stores triangle incidences. Each table entry contains the set of 3 vertex indices defining a triangle. Each index references an entry of the first table. - faceList: The table with geometric data for 3D discontinuities represented by cell faces. Each table entry is a sub-table referencing a cell face by providing a pair with the cell id and the face number (see the element types page for details on cell face numbering). - attributeValues: A table with the set of attribute values for this discontinuity. Each attribute value is given as a single table entry, following the same order as the attributes where defined on the attributes table. Vector and matrix values should be given as Lua tables, the later either linearized in column major format or as a table of tables. The value can also be a string if a constMap has been added to the attribute definition. nil values in the list will be replaced by the associated attribute default value. Trailing nil values can be omitted. - xxx: When 'xxx' equals the name of a property set included in properties , this field value will be the property index associated with this discontinuity. A property index can reference a property set line either by an integer index or an id name. If a discontinuity set is associated with several property sets, it must include one value for each property set. Important: There must be a value for each proprty set. - cellGroup: An optional name for the cell group in which this discontinuity elements will be added if addElements is true. If there is no cell group in the mesh with this name, it will be created. When empty, the added elements will not belong to any cell group. | Table | Yes |