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
:radius
is a real HDF5 attribute, it is a length in meter.radius
gives 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
/predefinedLabel
labelA
/physicalModel
instanceAn
/electromagneticSource
instance
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
type
equalsspecificRole
, 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 :
modelsOnSectionLink
is 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
:
elementsOnSection
is 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’
id
from the network’stubes
datasetThe second column contains named elements from the mesh.
The link has an optional attribute name harness
:
harness
is an HDF5 string attribute that can be equal to :
real
, in this case the mesh defined in the link is areal
harness.
fictitious``in this case the mesh defined in the link is a ``fictitious
harness. 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 |