Concepts Overview
Last update: 10.07.2023
Concepts Overview
Dimensionalities
A dimensionality describes the base quantities of a given physical quantity. It can be used to deduce the units of that physical quantity. The base quantities are:
- length
- time
- mass
- temperature
- amount of substance
- current
- luminous intensity
- angle
The dimensions of any physical quantity can be described as a combination of these base quantities. To specify the dimensions, the exponents of the above base quantities need to be assigned. For example, power has length exponent of 2, mass exponent of 1, and time exponent of -3.
A unit system must specify the base units of the above base quantities. Once the unit system and the dimensionality are known, the units of any physical quantity can be deduced. Note that currently System Coupling can only work in SI unit system.
Attributes
An attribute is single-valued property that can be added to a variable. The value of the attribute does not change during the coupled analysis or mapping. Attributes can be used to communicate some lighweight information about the variable.
Attributes can be integer-valued or real-valued. An integer-valued attribute can hold a single (signed) integer. A real valued attribute can hold a single real number and it is also possible to specify the dimensionality of that attribute.
Variables
A variable represents a physical quantity that is either consumed or provided by the participant solver. Variables are associated with the solution field data.
The variables have the following properties:
- Name: a unique identifier for the variable.
- Display name: a user-friendly name for the variable.
- Tensor type: tensor type of this variable. System Coupling supports scalar and vector tensor types.
- Is extensive: a flag for specifying whether the variable represents an extensive or an intensive property. Extensive properties are those whose value depends on the size of the system (e.g. heat flow, force), while intensive properties are those whose value is independent of the size of the system (e.g. heat flux, temperature). System Coupling supports both extensive and intensive variables.
- Location: mesh location of the solution data field. System Coupling supports node and element locations. If the region discretization type is point cloud, then the location of the variable added to that region is insignificant.
- Data type: the type of data that is used to represent this variable. Currently supported data types are real and complex values.
- Quantity type: quantity type is an optional property that describes the kind of variable this is. Quantity type is primarily used to improve the coupled setup validation, but can also be used in other contexts. There is a finite list of supported quantity types. If the variable does not fit into any quantity type on the list, its quantity type can be left unspecified.
Variables can have any number of integer and real-valued attributes.
Regions
Participants declare which regions can be used in the coupled analysis. Regions represent portions of the computational domain for the participant solver. Regions are associated with the computational mesh or the point cloud (depending on the region discretization method).
The regions have the following properties:
- Name: a unique identifier for the region.
- Display name: a user-friendly name for the region.
- Topology: topology of this region, e.g. surface or volume
- Region discretization type: discretization type of this region, e.g. mesh or point cloud.
Each region can declare input variables and output variables.
- Input variables represent physical quantities for which the participant expects System Coupling to provide values.
- Output variables represent physical quantities for which System Coupling expects the participant to provide values.
Coupling Interfaces and Data Transfers
Coupling interface connects two disjoint sets of regions, one set for each side of the interface, for the purpose of transferring variables between these two sides. The two sides of the coupling interface are called side one and side two. All regions on both sides of the interface must have the same topology. Regions on one side of the interface must all have the same region discretization type (i.e. either all mesh regions or all point cloud regions).
The pairs of variables that are transferred between the two sides of the interface form a data transfer.
By default, the data transfers are added automatically if a variable is set up as an output in all regions forming one side of the interface and as an input in all regions forming the opposite side of the interface. However, the default creation of data transfers can be turned off if so desired.
In addition, data transfers can be defined manually. If one variable is set up as an output in all regions forming one side of the interface and another variable is set up as input in all regions forming the opposite side of the interface, then it may be possible to transfer the solution data from the output variable to the input variable. The two variables must have the same tensor type and data type, but can have different extensive/intensive property, and different locations. If the quantity types are specified, they must be the same.
For a given data transfer, if the variable is an output then that side of the interface is called the source side and the side that has the transferred variable as an input side is called the target side. Note that each side of the coupling interface may be the source side and/or the target side, depending on the variable being mapped. It is possible to map one variable from side one to side two and another variable from side two to side one at the same time.
See Multi-Region Coupling Interfaces for more details on how to handle interfaces with more than one region per side.
Heavyweight Data Access Structures
Heavyweight data access structures provide access to mesh, point cloud, and solution data. The participant library makes use of the callback functions to access that data. See Access to Heavyweight Data for more information.
Volume Meshes
Volume mesh represents the mesh of a volume region. The volume mesh must be communicated using one of the supported volume mesh formats - see Mesh And Point Cloud Data Access for more information.
Surface Meshes
Surface mesh represents the mesh of a surface region. The surface mesh must be communicated using one of the supported surface mesh formats. Surface mesh can be connected to one or two volume meshes, i.e. it can be a bounding surface of a volume mesh. This kind of connectivity describes the mesh model.
See Mesh And Point Cloud Data Access for more information.
Point Clouds
Point cloud is an alternative option for discretizing the computational domain. It describes a set of disconnected points in space and can be useful in some applications.
See Mesh And Point Cloud Data Access for more information about the supported point cloud format.
Solution Field Data
The solution field data represents the field of values of a particular variable on a given region. Examples of solution field data are scalar data, vector data, complex scalar data, and complex vector data. Depending on whether the variable is an input or an output on that region, System Coupling needs a read/write or read-only access to that field.