Networks and transmission lines =============================== *A transmission line is the material medium or structure that forms all or part of a path from one place to another for directing the transmission of energy, such as electromagnetic waves or acoustic waves, as well as electric power transmission. Components of transmission lines include wires, coaxial cables, dielectric slabs, optical fibers, electric power lines, and waveguides* (http://en.wikipedia.org/wiki/Transmission_line). Some practical types of transmission lines are : * Coaxial cable * Microstrip * Stripline * Balanced line Transmission line ----------------- In |namespec| Transmission lines are contained in the category ``/transmissionLine``. A transmission line is a named HDF5 group. This name most have less than |elementlen| characters. A transmission line is mainly defined by a cross section : .. image:: images/microstrip.png :width: 75% This cross section is described by an ``unstructured`` ``/mesh`` and ``/physicalModel/`` which are associated thanks to a ``dataOnMesh`` element. Therefore, a transmission line group has three attibutes : * ``properties`` : it is an HDF5 group that contains the definitions of the distributed properties of the transmission line. This group has three exclusive set of children depending on the ``type`` attribute. The ``type`` attribute can take the three following values : * If ``type`` equals ``RLCG``, the distributed properties are defined with the four matrix R, L, C and G. Thus, ``properties`` has four children : * R, R is a distributed resistance matrix ``floatingType`` defined by : * ``physicalNature`` = ``resistance`` * ``unit`` = ``ohmPerMeter`` * L, L is a distributed inductance matrix ``floatingType`` defined by : * ``physicalNature`` = ``inductance`` * ``unit`` = ``henryPerMeter`` * C, C is a distributed capacitance matrix ``floatingType`` defined by : * ``physicalNature`` = ``capacitance`` * ``unit`` = ``faradPerMeter`` * G, G is a distributed conductance matrix ``floatingType`` defined by : * ``physicalNature`` = ``conductance`` * ``unit`` = ``siemensPerMeter`` * If ``type`` equals ``ZY``, the distributed properties are defined with the two matrices Z and Y Thus, ``properties`` has two children : * Z, Z is a distributed impedance matrix ``floatingType`` defined by : * ``physicalNature`` = ``impedance`` * ``unit`` = ``ohmPerMeter`` * Y, Y is a distributed admittance matrix ``floatingType`` defined by : * ``physicalNature`` = ``admittance`` * ``unit`` = ``siemensPerMeter`` * If ``type`` equals ``ZcGamma``, the distributed properties are defined with the two matrix Zc and gamma Thus, ``properties`` has two children : * Zc, Zc is the characteristic impedance of the transmission and is a distributed impedance matrix ``floatingType`` defined by : * ``physicalNature`` = ``impedance`` * ``unit`` = ``ohm`` * gamma, gamma is the propagation constant per meter and has one attribute : * ``physicalNature`` = ``propagationConstant`` * ``unit`` = ``perMeter`` Properties types ^^^^^^^^^^^^^^^^ Example of a transmission line ``data.h5:/transmissionLine/$tl1`` with ``type`` = ``RLCG`` : :: data.h5 `-- transmissionLine `-- $tl1 `-- properties[@type=RLCG] |-- R[@floatingType=dataSet | @physicalNature=resistance] |-- L[@floatingType=dataSet | @physicalNature=inductance] |-- C[@floatingType=dataSet | @physicalNature=capacitance] `-- G[@floatingType=dataSet @physicalNature=conductance] Example of a transmission line ``data.h5:/transmissionLine/$tl1`` with ``type`` = ``ZY`` : :: data.h5 `-- transmissionLine `-- $tl1 `-- properties[@type=ZY] |-- Z[@floatingType=dataSet | @physicalNature=impedance] `-- Y[@floatingType=dataSet @physicalNature=admittance] Example of a transmission line ``data.h5:/transmissionLine/$tl1`` with ``type`` = ``ZcGamma`` : :: data.h5 `-- transmissionLine `-- $tl1 `-- properties[@type=ZcGamma] |-- Zc[@floatingType=dataSet | @physicalNature=impedance] `-- gamma[@floatingType=dataSet] Transmission line elements ^^^^^^^^^^^^^^^^^^^^^^^^^^ Besides, a transmission line is made up of transmission line elements, those elements are conductors, shields ... Example of a transmissione line ``data.h5:/transmissionLine/$tl1`` with the ``element`` group :: data.h5 `-- transmissionLine `-- $tl1 |-- properties[@type=ZcGamma] `-- element # Transmission line element group In |namespec|, elements are named HDF5 group children of the group ``element`` and have five attributes : * ``type`` : it is an HDF5 string attribute that can take the following values : * if ``type`` = ``conductor``, the element is a conductor * if ``type`` = ``shield``, the element is a shield, a shield is a conductor reference for other conductor * if ``type`` = ``dielectric``, the element is a dielectric * ``domain`` : the ``domain`` references the shield domain. * ``rank`` : This is the position of the element in the distributed properties matrix * ``referenceElement`` : This is the position of the reference conductor A transmission line element has also an optional child : * ``properties`` : this is an HDF5 group, it contain the individual distributed properties for the element (in the case of a measurement for instance) and the transfer distributed properties relative to the shield conductor. ``properties`` has two string optional attributes : ``type`` and ``transferType``. * if ``type`` = ``RLCG``, ``properties`` has four children R, L, C, G. This elements are defined as in the transmission line distributed properties, they represents the distributed properties of one element. * if ``transferType`` = ``ZY``, transfer distributed properties are defined by Zt and Yt. This elements are defined as in the transmission line distributed properties Z and Y, they represents the transfer distributed properties of one element. * if ``transferType`` = ``RLCG``, transfer distributed properties are defined by Rt, Lt, Ct and Gt. These elements are defined as in the transmission line distributed properties R, L, C and G, they represents the distributed transfer properties of one element. Example of a transmission line ``data.h5:/transmissionLine/$tl1`` which have two elements (the ``$ground`` and ``$elem1``) : :: data.h5 `-- transmissionLine `-- $tl1 |++ properties `-- element |-- $ground[@type=conductor | @domain=0] `-- $elem1[@type=conductor | @domain=0 | @rank=1 | @referenceElement=$ground] `-- properties[@type=RLCG | @transfertType=ZY] |-- Zt[@floatingType=dataSet | @physicalNature=impedance] |-- Yt[@floatingType=dataSet | @physicalNature=admittance] |-- R[@floatingType=dataSet | @physicalNature=resistance] |-- L[@floatingType=dataSet | @physicalNature=inductance] |-- C[@floatingType=dataSet | @physicalNature=capacitance] `-- G[@floatingType=dataSet @physicalNature=conductance] * ``data.h5:/transmissionLine/$tl1/element/$ground`` is a ``conductor`` and is in the domain 0. * ``data.h5:/transmissionLine/$tl1/element/$elem1`` is a ``conductor`` and is also in the domain 0. TranmissionLineOnMesh link ^^^^^^^^^^^^^^^^^^^^^^^^^^ The section of a transmission line is often associated with a mesh, this association gives the following information : * the mesh of the transmission line section * the models that are linked to the mesh entities, this is the role of the ``modelsOnSectionLink`` attribute. ``modelsOnSectionLink`` is an HDF5 string attribute which gives the name of the group links defining association between models and the mesh entities. * the link between the transmission line elements and mesh entities, this is the role of the ``elementsOnSection`` dataset. ``elementsOnSection`` is an HDF5 (n x 2) string dataset which contains a list of (transmission line element, named mesh entity) string couple defining the association between transmission line elements and mesh entities. This association is created thanks a :ref:`linkinstance` which links a ``transmissionLine`` to a ``mesh``. A link group containing only links between ``transmissionLine`` and ``mesh`` has the attribute ``type`` equals ``transmissionLineOnMesh`` (see :ref:`transmissionLineOnMeshLink`) Example : :: data.h5 |-- mesh/ | `-- $gmesh1 | `-- $tl1/ # Mesh description of $tl1 | `-- group/ | |-- $elem1 | `-- $elem2 |-- physicalModel/ | `-- volume/ | `-- $diel1/ |-- link/ | |-- $models_on_section/ # Material model / mesh | | |-- $link1[@subject=/physicalModel/volume/$diel1 | | | @object=/mesh/$gmesh1/$mesh1/group/$elem1] | | `-- $link2[@subject=/physicalModel/volume/$diel1 | | @object=/mesh/$gmesh1/$mesh1/group/$elem2] | `-- $transmissionline_on_mesh[@type=transmissionLineOnMesh]/ | `-- $link1[@subject=/transmissionLine/$tl1 | | @object=/mesh/$gmesh1/$mesh1 | | @modelsOnSectionLink=/link/$models_on_section] | `-- elementsOnSection `-- transmissionLine `-- $tl1 `-- element |++ $ground `++ $elem1 with ``data.h5:/link/$transmission_line_section/$link1/elementsOnSection`` : =========== =========== $ground $elem1 $elem1 $elem2 =========== =========== A more complete example ^^^^^^^^^^^^^^^^^^^^^^^ Let the following |namespec| instance, it defines three transmission lines ``/transmissionLine/$tl1``, ``/transmissionLine/$tl2`` and ``/transmissionLine/$tl3``. :: data.h5 |-- mesh | `-- $gmesh1 | |-- $tl1 # Mesh description of | | |-- nodes # transmission lines | | |-- elementTypes # An unstructured mesh | | |-- elementNodes # with three groups | | `-- group # of the transmission lines | | |-- $elem1[@type=element # (cross sections) | | | @elementType=edge] | | |-- $elem2[@type=element | | | @elementType=edge] | | `-- $elem3[@type=element | | @elementType=edge] | |++ $tl2 | `++ $tl3 |-- physicalModel/ | |-- volume/ # Material models of | | |-- $diel1 # transmission lines | | `-- $diel2 | `-- interface/ | |-- $interface1 | `-- $interface2[@medium1=/physicalModel/volume/$diel1 | @medium2=/physicalModel/volume/$diel2] |-- link | |-- $tl1_section[@type=dataOnMesh] # Material model / mesh | | |-- $link_instance1[@subject=/physicalModel/perfectElectricConductor | | | @object=/mesh/$gmesh1/$tl1/group/$elem1] | | |-- $link_instance2[@subject=/physicalModel/interface/$interface2 | | | @object=/mesh/$gmesh1/$tl1/group/$elem2] | | `-- $link_instance3[@subject=/physicalModel/perfectElectricConductor | | @object=/mesh/$gmesh1/$tl1/group/$elem3] | |++ $tl2_section | |++ $tl3_section | `-- $transmissionline_on_mesh[@type=transmissionLineOnMesh] | |-- $tl1[@subject=/transmissionLine/$tl1 | | | @object=/mesh/$gmesh1/$tl1 | | | @modelsOnSectionLink=/link/$tl1_section] | | `-- elementsOnSection | |-- $tl2[@subject=/transmissionLine/$tl2 | | | @object=/mesh/$gmesh1/$tl2 | | | @modelsOnSectionLink=/link/$tl2_section | | `-- elementsOnSection | `-- $tl3[@subject=/transmissionLine/$tl3 | | @object=/mesh/$gmesh1/$tl3 | | @modelsOnSectionLink=/link/$tl3_section | `-- elementsOnSection `-- transmissionLine |-- $tl1 | |-- properties[type=RLCG] | | |-- R[@floatingType=dataSet | | | @physicalNature=resistance] | | |-- L[@floatingType=dataSet | | | @physicalNature=inductance] | | |-- C[@floatingType=dataSet | | | @physicalNature=capacitance] | | `-- G[@floatingType=dataSet | | @physicalNature=conductance] | `-- element | |-- $elem1[@type=conductor | | @domain=0 | | @rank=0] | |-- $elem2[@type=dielectric] | `-- $elem3[@type=shield | @referenceElement=$elem1 | @internalLine=/transmissionLine/$tl2 | @domain=0 | @rank=1] |-- $tl2 | |-- properties | `-- element | `-- $elem1[@type=conductor | @domain=0 | @rank=1] `++ $tl3 with ``data.h5:/link/$transmissionline_on_mesh/$tl1/elementsOnSection`` : =========== =========== $elem1 $elem1 $elem2 $elem2 $elem3 $elem3 =========== =========== This example describes three transmission lines ``/transmissionLine/$tl1``, ``/transmissionLine/$tl2`` and ``/transmissionLine/$tl3``. ``/transmissionLine/$tl1`` has three elements ``$elem1``, ``$elem2`` and ``$elem3``. ``$elem1`` is the electrical reference, ``$elem2`` is a dielectric element and ``$elem3`` is a shield. In addition, all transmission line are associated with a mesh for the section definition, see the ``data.h5:/link/transmission_line_on_mesh/$tl1`` for ``data.h5:/transmissionLine/$tl1`` for instance. Network ------- The definition of a network is straightforward. A network is named HDF5 group in the category ``network``. A network has two attributes : * ``type`` : it is an mandatory HDF5 string attribute, it gives the ``type`` of a network. The ``type`` attributes values are : * ``simple``. If ``type`` equals ``simple``, the network element defines simple network with no interconnection with another network. * ``compound``. If ``type`` equals ``compound``, the network defines interconnected network thanks to interconnection tubes and ``simple`` network. Simple network ^^^^^^^^^^^^^^ A ``simple`` network has three children : * ``tubes`` : it is an HDF5 table of four columns * ``id`` : an HDF5 string of |elementlen| characters * ``extremity1`` : it is an HDF5 string attribute, it contains the name of the first extremity junction. It is a relative name because the junction is defined inside the network. * ``extremity2`` : it is an HDF5 string attribute, it contains the name of the second extremity junction. It is a relative name because the junction is defined inside the network. * ``transmissionLine``: it is an HDF5 string attribute, it is the name of the model of transmission line composing the tube. .. note:: If a tube is **zero length**, there is no associated transmission line, the ``transmissionLine`` field must be equal to the **empty string**. * ``junctions`` : it is an HDF5 three column table which defines junctions * ``id`` : ``id`` is the identifier of the junction, it is an |elementlen| characters HDF5 string * ``nbPort`` : ``nbPort`` is an integer, it is the number of ports of the multiport which represents the junction. .. note:: A junction can be associated to : * A predefined multiport * A scalar multiport (``singleReal``, ``singleComplex``), the junction's ``nbPort`` attribute override the implicit value (equals to 1) of ``floatingType`` * A matrix multiport (``dataSet``, ``arraySet``), if present the junction's ``nbPort`` attribute must be equal the dimension of the ``floatingType`` * ``multiport`` : the name of a ``/physicalModel/multiport`` object * ``connections`` : it is an HDF5 integer table, a connection is a row and is made up of : * ``idJunction`` : a junction identifier * ``idPort`` : a port identifier * ``idTube`` : a tube identifier * ``idWire`` : a wire/transmission line element identifier Example : :: data.h5 |-- physicalModel/ | `-- multiport | |-- $j0[@floatingType=singleComplex | | @physicalNature=impedance | | @unit=hertz] | |-- $j1[@floatingType=dataSet | | @physicalNature=impedance | | @unit=ohm] | |-- $j2[@physicalNature=admittance | | | @floatingType=arraySet | | | @unit=ohm] | | |-- data | | '-- ds | | |--dim1[@label=frequency | | | @physicalNature=frequency | | | @unit=hertz] | | |--dim2[@label=nbPort | | | @physicalNature=electricPotentialPoint] | | '--dim3[@label=nbPort | | @physicalNature=electricPotentialPoint] | `-- sParameter | |--$j3[@floatingType=singleComplex | | @referenceImpedance=50 | | @value=(0,0)] | '--$j4[@floatingType=dataSet] |-- transmissionLine/ | |-- $tl1 | |-- $tl2 | `-- $tl3 `-- network/ `-- $net1[@type=simple] |-- tubes |-- junctions `-- connections The table ``/network/$net1/junctions`` ###################################### The following table shows a part of the table ``junctions`` : ========= ========= ======================================= id nbPort multiport ========= ========= ======================================= ... $j0 2 /physicalModel/multiport/$j0 $j1 2 /physicalModel/multiport/$j1 $j2 2 /physicalModel/multiport/$j2 $j3 8 /physicalModel/sParameter/$j3 $j4 8 /physicalModel/sParameter/$j4 $j5 5 /physicalModel/multiport/shortCircuit ... ========= ========= ======================================= The table ``/network/$net1/tubes`` ################################## The following table shows a part of the table ``tubes`` : ========= ========== ========== ====================== id extremity1 extremity2 transmissionLine ========= ========== ========== ====================== ... $tub_1 $j1 $j2 /transmissionLine/$tl1 $tub2 $j2 $j3 /transmissionLine/$tl2 $tub#3 $j1 $j3 /transmissionLine/$tl3 ... ========= ========== ========== ====================== The numbering of tubes is explicit, that facilitates the possible modifications. The table ``/network/$network/connections`` ########################################### The following table shows a part of the table ``connections`` corresponding to the preceding example : ============ ======== ========= ======== idJunction idPort idTube idWire ============ ======== ========= ======== ... $j1 1 $tub_1 1 $j1 2 $tub_1 2 $j1 3 $tub2 1 $j1 4 $tub22 2 ... ============ ======== ========= ======== The numbering of connections is implicit. idJunction is the name of children of ``/network/$network/junctions``. idTube is the identifier from the table ``/network/$network/tubes``. ``idPort`` is a port of the multiport model representing the junction and ``idWire`` is a wire number of a tube. Network topology and tube length ################################ In order to make a real network, tubes must have a length. In the general case, junctions are located in 3D space and the network has a spatial reality, it is the network harness. That's why a network is associated with a mesh, each tube of the network is linked to a mesh entity. Consider the following network, in particular the ``/network/$net1/tubes`` tables and the ``/mesh/$gmesh1/$tubes`` mesh. They are linked by the ``/link/$network_on_mesh/$net1`` link : :: data.h5 |-- mesh | `-- $gmesh1 | |-- $tl1 | |-- $tl2 | |-- $tl3 | `-- $tubes | |-- nodes | |-- elementTypes | |-- elementNodes | `-- group | |-- $tube1[@type=element | | @elementType=edge] | |-- $tube2[@type=element | | @elementType=edge] | `-- $tube3[@type=element | @elementType=edge] |-- transmissionLine/ | |-- $tl1 | |-- $tl2 | `-- $tl3 |-- link | `-- $network_on_mesh[@type=networkOnMesh] | `-- $net1[@subject=/network/$net1 | | @object=/mesh/$gmesh1/$tubes] | `-- data `-- network/ `-- $net1[@type=simple] |-- tubes |-- junctions `-- connections with ``/network/$net1/tubes`` : ========= ========== ========== ====================== id extremity1 extremity2 transmissionLine ========= ========== ========== ====================== $tub_1 $j1 $j2 /transmissionLine/$tl1 $tub2 $j2 $j3 /transmissionLine/$tl2 $tub#3 $j1 $j3 /transmissionLine/$tl3 ========= ========== ========== ====================== 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's ``tubes`` dataset * The second column contains named elements from the mesh. For example, ``data.h5:/link/$network_on_mesh/$net1/data`` is : =========== =========== $tub_1 $tube1 $tub2 $tube2 $tub#3 $tube3 =========== =========== For instance, ``$tub_1`` in the ``/network/$net1`` network is ``$tube1`` in the ``/mesh/$gmesh1/$tubes`` mesh. A link group containing only links between ``network`` and ``mesh`` has the attribute ``type`` equals ``networkOnMesh`` (see :ref:`networkOnMeshLink`) Fictitious harness ################## For simple networks, there is sometimes no need to construct a real harness, but the length of tubes must be present. A manner to accomplish that is to build a fake mesh (not real) and to link this mesh to the network with the ``harness`` attribute equals to ``fictitious`` (``harness`` equals ``real`` by default). Practically, for each tube create two nodes so that the distance between the nodes is the length of the tube : :: data.h5 |-- mesh | `-- $gmesh1 | |-- $tl1 | `-- $tubes | |-- nodes | |-- elementTypes | |-- elementNodes | `-- group | `-- $tube1[@type=element | @elementType=edge] |-- transmissionLine/ | `-- $tl1 |-- link | `-- $network_on_mesh[@type=networkOnMesh] | `-- $net1[@subject=/network/$net1 | | @object=/mesh/$gmesh1/$tubes | | @harness=fictitious] | `-- data `-- network/ `-- $net1[@type=simple] |-- tubes |-- junctions `-- connections with ``/network/$net1/tubes`` : ========= ========== ========== ====================== id extremity1 extremity2 transmissionLine ========= ========== ========== ====================== $tub_1 $j1 $j2 /transmissionLine/$tl1 ========= ========== ========== ====================== with ``/mesh/$gmesh1/$tubes/nodes`` : ======== ========= ======== 0 0 0 $length 0 0 ======== ========= ======== with ``/mesh/$gmesh1/$tubes/elementTypes`` : +----------+ | 1 | +----------+ and ``/mesh/$gmesh1/$tubes/elementNodes`` : +----------+ | 0 | +----------+ | 1 | +----------+ Compound network ^^^^^^^^^^^^^^^^ A ``compound`` network has two children : * ``tubes`` : it is an HDF5 table of six columns * ``id`` : an HDF5 string of |elementlen| characters, it is the id of the tube * ``network1`` : it is an HDF5 string attribute, it contains the name of the first extremity network * ``extremity1`` : it is an HDF5 string attribute, it contains the name of the first extremity junction. It is the name of the the junction found out in /network/$network/junctions * ``network2`` : it is an HDF5 string attribute, it contains the name of the second extremity network * ``extremity2`` : it is an HDF5 string attribute, it contains the name of the second extremity junction. It is the name of the the junction found out in /network/$network/junctions * ``transmissionLine``: it is an HDF5 string attribute, it is the name of the model of transmission line composing the tube. .. note:: If a tube is **zero length**, there is no associated transmission line, the ``transmissionLine`` field must be equal to the **empty string**. * ``connections`` : it is an HDF5 integer table, a connection is a row and is made up of : * ``idJunction`` : it is an HDF5 string, it contains a junction identifier * ``idPort`` : it is an HDF5 integer, it contains a port identifier * ``idTube`` : it is an HDF5 string, it contains a tube identifier * ``idWire`` : it is an HDF5 string, it contains a wire/transmission line element name Example of a ``compound`` network $net3: :: data.h5 |-- mesh | `-- $gmesh1 | |-- $tl1 | |-- $tl2 | |-- $tl3 | `-- $tubes | |-- nodes | |-- elementTypes | |-- elementNodes | `-- group | |-- $tube1[@type=element | | @elementType=edge] | |-- $tube2[@type=element | | @elementType=edge] | |-- $tube3[@type=element | | @elementType=edge] | `-- $tube4[@type=element | @elementType=edge] |-- link | `-- $dom1 |-- transmissionLine/ | |-- $tl1 | |-- $tl2 | `-- $tl3 `-- network/ |-- $net1[@type=simple] | |-- tubes | |-- junctions | `-- connections |-- $net2[@type=simple] | |-- tubes | |-- junctions | `-- connections `-- $net3[@type=compound] |-- tubes `-- connections with ``data.h5:/network/$net3/tubes`` : ========= ================ ============= ================ ============= ======================== id network1 extremity1 network2 extremity2 transmissionLine ========= ================ ============= ================ ============= ======================== $tub1 /network/$net1 $j1 /network/$net2 $j1 /transmissionLine/$tl1 ========= ================ ============= ================ ============= ======================== and the table ``/network/net3/connections`` is : ================ =========== ====== ====== ====== network idJunction idPort idTube idWire ================ =========== ====== ====== ====== /network/$net1 $j1 1 $tub1 1 /network/$net2 $j2 2 $tub1 2 ================ =========== ====== ====== ====== Locating a model on a network ----------------------------- Consider the preceding simple network (one transmission line, a one tube network and an harness), you would like to put a generator on the second wire of the tube. The solution is to add a link between a generator and a 1D mesh entity, the ``idWire`` option allows to select the wire. :: data.h5 |-- mesh/ | `-- $gmesh1 | |-- $tl1 | `-- $tubes | |-- nodes | |-- elementTypes | |-- elementNodes | |-- selectorOnMesh | | `-- $gene1[@type=pointInElement] | `-- group | `-- $tube1[@type=element | @elementType=edge] |-- electromagneticSource/ | `-- generator | `-- $gene1 |-- transmissionLine/ | `-- $tl1 |-- link | |-- $data_on_mesh[@type=dataOnMesh] | | `-- $gene1[@subject=/electromagneticSource/generator/$gene1 | | @object=/mesh/$gmesh1/$tubes/selectorOnMesh/$gene1 | | @idWire=2] | `-- $network_on_mesh[@type=networkOnMesh] | `-- $net1[@subject=/network/$net1 | | @object=/mesh/$gmesh1/$tubes] | `-- data `-- network/ `-- $net1[@type=simple] |-- tubes |-- junctions `-- connections and ``data.h5:/mesh/$gmesh1/$tubes/selectorOnMesh/$gene1`` is ======= ==== ==== ==== index v1 v2 v3 ------- ---- ---- ---- 1 0.5 -1 -1 ======= ==== ==== ====