14. Predefined labels and links¶
Links and labels are general tools to describe an EM simulation. Besides, some concepts are often used accross all numerical methods like the wire radius concept, that’s why Amelet HDF predefines some labels and some links.
14.1. Predefined labels¶
Amelet HDF predefined some labels, they are contained in
/label/predefinedLabels dataset.
Example :
data.h5
`-- label/
`-- predefinedLabels
where data.h5:/label/predefinedLabels is :
| $firstLabel |
| $secondLabel |
The predefined labels are described in the next sections.
14.1.1. Wire radius¶
wireRadius label is used to set the radius of a wire. See Wire radius Link
for its usage.
14.2. Predefined Links¶
Labels can be involed in links creation, so this fact implies the definition of predefined links.
In addition, other links are predefined that does’nt make participate predefined labels.
14.2.1. Predefined type attribute¶
Link groups can have a type attribute. This attribute is an HDF5 string
attribute. This attribute allows to give common characteristics to link
instances children of groups.
For example, a link group type attribute can be dataOnMesh, that is to
say all children links associate a /physicalModel or an
electromagneticSource to a mesh entity.
Amelet HDF defined several link group type.
The type attribute is owned by the link group and not by the link. The
function of the type is to facilitate the research and the storage
of simular nature links. In fact, the type attribute gives the same
information than the reading of the subject and the object of
a link.
14.2.2. Wire radius Link¶
wireRadius is predefied label used to set the radius of a wire.
A link built from the wireRadius has a mandatory attribute :
radius:radiusis a real HDF5 attribute, it is a length in meter.radiusgives the radius of the wire in meter.
Example :
data.h5
|-- label/
| `-- predefinedLabels
|-- mesh/
| `-- $gmesh1
| `-- $antenna1
| `-- group
| `-- $wire1
`-- link
`-- $link_group
`-- $radiusOfWire1[@subject=/label/predefinedLabels
@subject_id=0
@object=/mesh/$gmesh1/$antenna1/group/$wire1
@radius=1e-3]
14.2.3. Data on mesh link¶
If type equals dataOnMesh, all link instances associate
a data to a mesh entity. It is a specialized form of links.
Data can be :
- A
/predefinedLabellabel - A
/physicalModelinstance - An
/electromagneticSourceinstance
data.h5
|-- mesh/
| `-- $gmesh1
| `-- $plane
| |-- nodes
| |-- elementTypes
| |-- elementNodes
| |-- group
| | `-- $wing
| `-- selectorOnMesh
| |-- elements
| `-- nodes
|-- electromagneticSource/
| `-- generator/
| |-- $v1
| `-- $i1
`-- link/
`-- $link_group[@type=dataOnMesh
| @rootObject=/mesh/$gmesh1/$plane/selectorOnMesh]/
|-- $link_instance1[@subject=/electromagneticSource/generator/$v1
| @object=$generator_v1]
`-- $link_instance2[@subject=/electromagneticSource/generator/$i1
@object=$generator_i1]
Where data.h5:/mesh/$gmesh1/$plane/selectorOnMesh/$generator_v1 is
| index |
| 23 |
Where data.h5:/mesh/$gmesh1/$plane/selectorOnMesh/generator_i1 is
| index |
| 26 |
In this example, the link group data.h5:/link/$link_group is a specialized
link group for dataOnMesh links.
14.2.4. Data in localization system link¶
dataInLocalizationSystem type allows to gather links
associating data to a localization system in order
to locate and to orient models in the space (an antenna for instance).
data.h5
|-- electromagneticSource/
| `-- antenna/
| `-- $antenna1
|-- localizationSystem
| `++ $locasys[@dimension=3]
`-- link
`-- $link_group[@type=dataInLocalizationSystem]
`-- $v1-location[@subject=/electromagneticSource/antenna/$antenna1]
@object=/localizationSystem/$locasys]
In this example, data.h5:/electromagneticSource/antenna/$antenna1
is located and oriented thanks to data.h5:/localizationSystem/$locasys.
Without the type attribute, subject and object are enough to
understand the link’s nature.
14.2.5. Specific role link¶
- If
typeequalsspecificRole, all link instances associate a label - to an object. It is a specialized form of links.
Example :
data.h5
|-- label/
| `-- predefinedLabels
|-- mesh/
| `-- $gmesh1
| `-- $antenna1
| `-- group
| `-- $wire1
`-- link
`-- $link_group[@type=specificRole]
`-- $transmitter[@subject=/label
@subject_label=transmitter
@object=/mesh/$gmesh1/$antenna1/group/$wire1]
14.2.6. TransmissionLineOnMesh Link¶
A “transmissionLineOnMesh” link associates a transmissionLine to
a mesh.
It has one optional attribute :
modelsOnSectionLinkis an HDF5 string attribute and contains the name of the link group defining the section of the transmission line
and an optional child dataset named elementsOnSection :
elementsOnSectionis an HDF5 (n x 2) string dataset whichcontains a list of (transmission line element, named mesh entity) string couple defining the association between transmission line elements and mesh entities.
data.h5
|-- mesh/
| `-- $tl11
|-- transmissionLine/
| `-- $tl1
`-- link/
`-- $transmissionline_on_mesh[@type=transmissionLineOnMesh]/
`-- $link1[@subject=/transmissionLine/$tl1
| @object=/mesh/$gmesh1/$tl1
| @modelsOnSectionLink=/link/$models_on_section]
`-- elementsOnSection
with elementsOnSection :
| $tl_elem1 | $mesh_elem1 |
| $tl_elem2 | $mesh_elem2 |
| $tl_elem3 | $mesh_elem3 |
$tl_* and $mesh_* are named element of /transmissionLine/$tl1
and /mesh/$gmesh1/$tl1.
14.2.7. NetworkOnMesh Link¶
In this example, a new link /link/$network_on_mesh/$tub1 is defined, it
links a network to a mesh, for doing this association the link contains a
child : an HDF5 string dataset named data.
The data dataset has two columns :
- The first column contains tubes’
idfrom the network’stubesdataset - The second column contains named elements from the mesh.
The link has an optional attribute name harness :
harnessis an HDF5 string attribute that can be equal to :
real, in this case the mesh defined in the link is arealharness.fictitious``in this case the mesh defined in the link is a ``fictitiousharness. Nodes, named elements are not properly located in space, but tube’s length is correct.
data.h5
|-- mesh/
| `-- $gmesh1
| `-- $net1
|-- network/
| `-- $net1
`-- link/
`-- $network_on_mesh[@type=networkOnMesh]
`-- $net1[@subject=/network/$net1
| @object=/mesh/$gmesh1/$net1
| @harness=fictitious]
`-- data
| $net_tube1 | $mesh_tube1 |
| $net_tube2 | $mesh_tube2 |
| $net_tube3 | $mesh_tube3 |
$net_* and $mesh_* are named element of /network/$net1
and /mesh/$gmesh1/$net1.
14.2.8. Model on a network link¶
The problem is to put a model (a generator for example) on a wire of a network tube.
The way to accomplish this is to add a link between a generator
and a 1D mesh entity, a idWire option allows to select the wire.
data.h5
|-- mesh
| `-- $gmesh1
| `-- $net1
|-- electromagneticSource/
| `-- generator
| `-- $gene1
|-- transmissionLine/
| `-- $tl1
|-- link
| |-- $data_on_mesh[@type=dataOnMesh]
| | `-- $gene1[@subject=/electromagneticSource/generator/$gene1
| | @object=/mesh/$gmesh1/$net1/selectorOnMesh/$gene1
| | @idWire = 2]
| `-- $network_on_mesh[@type=networkOnMesh]
| `-- $net1[@subject=/network/$net1
| | @object=/mesh/$gmesh1/$tubes]
| `-- data
`-- network/
`-- $net1
with data.h5:/mesh/$gmesh1/$net1/selectorOnMesh/$gene1 :
| index | v1 | v2 | v3 |
|---|---|---|---|
| 1 | 0.5 | -1 | -1 |