15. Output requests

In the context of a simulation, the outputRequest category contains all output requests, that is to say all results the user would like to get after the simulation run.

The simulation category follows the same rules as the link category. The main schema is :

data.h5
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $outputRequest_instance

15.1. The output request instance

15.1.1. Subject and object

An output request instance is the association between a label and an element. The output request labels are picked in a label dataset in the /label category :

data.h5
|-- label/
|   `-- $outputRequest
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $outputRequest_instance

where data.h5:/label/$outputRequest (the name is not specified by Amelet HDF) is :

E field computation
H field computation

Then a link instance is built between a label and a mesh entity (or whatever element in the Amelet HDF instance :

data.h5
|-- label/
|   `-- $outpuRequest
|-- mesh/
|   `-- $gmesh1
|       `-- $plane
|           `-- group
|               `-- $wing
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $outputRequest_instance[@subject=/label/$outputRequest
                                    @subject_id=1
                                    @object=/mesh/$gmesh1/$plane/group/$wing]

15.1.2. The output attribute

Output results (numerical or not) are Amelet HDF objects with an absolute name like all objects. The output attribute of data.h5:/outputRequest/$outputRequest is an HDF5 string attribute which contains the name of the object result. For instance :

data.h5
|-- label/
|   `-- $outpuRequest
|-- mesh/
|   `-- $gmesh1
|       `-- $plane
|           `-- group
|               `-- $wing
|-- floatingType/
|   |-- $e_field
|   `-- $h_field
`-- outputRequest/
    `-- $outputRequest_group/
        |-- $outputRequest_instance1[@subject=/label/$outputRequest
        |                            @subject_id=0
        |                            @object=/mesh/$gmesh1/$plane/group/$wing
        |                            @output=/floatingType/$e_field]
        `-- $outputRequest_instance2[@subject=/label/$outputRequest
                                     @subject_id=1
                                     @object=/mesh/$gmesh1/$plane/group/$wing
                                     @output=/floatingType/$h_field]

In this example, the computed electric field will be store in data.h5:/floatingType/$e_field and the magnetic field in data.h5:/floatingType/$h_field

Note

In the simulation input file, data.h5:/floatingType/$e_field is empty. In the simulation output file, data.h5:/floatingType/$e_field contains the result data.

15.2. The predefined output requests

Amelet-HDF predefines some output resquests, they are detailed in the next sections.

15.2.1. The predefined outputRequest dataset

The predefined output request label list is :

data.h5
`-- label/
    `-- predefinedOutputRequests

This dataset contains the following labels :

0 electricField
1 magneticField
2 powerDensity
3 planeWaveDecomposition
4 current
5 voltage
6 power
7 sParameter
8 zParameter
9 yParameter
10 theveninVoltageGenerator
11 nortonCurrentGenerator
12 couplingCrossSection
13 radarCrossSection

(The first column of the array is informative)

15.2.2. Electromagnetic field computation

This section contains output request examples concerning electromagnetic field computation.

15.2.2.1. Electric field computation in a volume

The electric field computation request in a volume can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $e_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=0
                 @object=/mesh/$gmesh1/$sphere/group/$inside
                 @output=/floatingType/$e_field]

15.2.2.2. H field computation in a volume

The magnetic field computation request in a volume can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $h_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=1
                 @object=/mesh/$gmesh1/$sphere/group/$inside
                 @output=/floatingType/$h_field]

15.2.2.3. E field computation on surface

The electric field computation request on a surface can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $e_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=0
                 @object=/mesh/$gmesh1/$sphere/group/$skin
                 @output=/floatingType/$e_field]

15.2.2.4. H field computation on surface

The magnetic field computation request on a surface can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $h_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=1
                 @object=/mesh/$gmesh1/$sphere/group/$skin
                 @output=/floatingType/$h_field]

15.2.2.5. E field computation on line

The electric field computation request on a surface can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $e_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=0
                 @object=/mesh/$gmesh1/$sphere/group/$diameter
                 @output=/floatingType/$e_field]

15.2.2.6. H field computation on line

The magnetic field computation request on a line can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $h_field
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=0
                 @object=/mesh/$gmesh1/$sphere/group/$diameter
                 @output=/floatingType/$h_field]

15.2.2.7. Power density computation

The power computation request can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $power_density
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=2
                 @object=/mesh/$gmesh1/$sphere/group/$volume
                 @output=/floatingType/$power_density]

15.2.3. Plane wave decomposition

The plane wave decomposition request can be written as :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   |-- $magnitude
|   |-- $polarization
|   `-- $propagation_vector
|-- group/
|   `-- $wave_decomposition
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=3
                 @object=""
                 @output=/group/$wave_decomposition]

and after the run data.h5:/group/$wave_decomposition will be :

/floatingType/$magnitude
/floatingType/$polarization
/floatingType/$propagation_vector

15.2.4. Cable

This section presents the output request on wire and cable structures.

15.2.4.1. Wire current

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $current_sensor
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $current
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=4
                 @object=/mesh/$gmesh1/$sphere/selectorOnMesh/$current_sensor
                 @output=/floatingType/$current]

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$current_sensor

index v1 v2 v3
23 0 0 0

Here is an example with a network structure :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       |-- $tl1
|       `-- $tubes
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $current_sensor
|           `-- group
|               `-- $tube1[@type=element
|                          @elementType=edge]
|-- transmissionLine/
|   `-- $tl1
|-- outputRequest/
|   `-- $outputRequest_group/
|       `-- $or1[@subject=/label/predefinedOutputRequests
|                @subject_id=4
|                @object=/mesh/$gmesh1/$sphere/selectorOnMesh/$current_sensor
|                @output=/floatingType/$current
|                @idWire=2]
|-- floatingType/
|    `-- $current
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$current_sensor

index v1 v2 v3
23 0 0 0

15.2.4.2. Wire voltage

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $voltage_sensor
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $voltage
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=5
                 @object=/mesh/$gmesh1/$sphere/selectorOnMesh/$voltage_sensor
                 @output=/floatingType/$voltage]

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$voltage_sensor

index v1 v2 v3
23 0 0 0

15.2.4.3. Wire Power

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       `-- $sphere
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $power_sensor
|           `-- group
|               |-- $diameter[@type=edge]
|               |-- $inside[@type=volume]
|               `-- $skin[@type=face]
|-- floatingType/
|   `-- $power
`-- outputRequest/
    `-- $outputRequest_group/
        `-- $or1[@subject=/label/predefinedOutputRequests
                 @subject_id=6
                 @object=/mesh/$gmesh1/$sphere/selectorOnMesh/$power_sensor
                 @output=/floatingType/$power]

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$power_sensor

index v1 v2 v3
23 0 0 0

15.2.4.4. Bundle Current

To request the current on a cable bundle :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       |-- $tl1
|       `-- $tubes
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $current_sensor
|           `-- group
|               `-- $tube1[@type=element
|                          @elementType=edge]
|-- transmissionLine/
|   `-- $tl1
|-- outputRequest/
|   `-- $outputRequest_group/
|       `-- $or1[@subject=/label/predefinedOutputRequests
|                @subject_id=4
|                @object=/mesh/$gmesh1/$tubes/selectorOnMesh/$current_sensor
|                @output=/floatingType/$current]
|-- floatingType/
|   `-- $current
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$current_sensor

index v1 v2 v3
23 0 0 0

No wire is specified.

15.2.4.5. Bundle Power

To request the power on a cable bundle :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- mesh/
|   `-- $gmesh1
|       |-- $tl1
|       `-- $tubes
|           |-- nodes
|           |-- elementTypes
|           |-- elementNodes
|           |-- selectorOnMesh
|           |   `-- $power_sensor
|           `-- group
|               `-- $tube1[@type=element
|                          @elementType=edge]
|-- transmissionLine/
|   `-- $tl1
|-- outputRequest/
|   `-- $outputRequest_group/
|       `-- $or1[@subject=/label/predefinedOutputRequests
|                @subject_id=6
|                @object=/mesh/$gmesh1/$tubes/selectorOnMesh/$power_sensor
|                 @output=/floatingType/$power]
|-- floatingType/
|   `-- $power
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

and data.h5:/mesh/$gmesh1/$sphere/selectorOnMesh/$power_sensor :

index v1 v2 v3
23 0 0 0

No wire is specified.

15.2.5. Electric port

15.2.5.1. Port current

To request the current at a given port :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- physicalModel/
|   `-- multiport
|       |-- $j1
|       `-- $j2
|-- floatingType/
|   `-- $current
|-- outputRequest/
|    `-- $outputRequest_group/
|        `-- $or1[@subject=/label/predefinedOutputRequests
|                 @subject_id=4
|                 @object=/network/$net1/junctions
|                 @object_id=$j1
|                 @output=/floatingType/$current
|                 @idPort=2]
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

The multi port is a junction : /network/$net1/junctions#$j1 and the port number is 2 :

id nbPort multiport
$j1 2 /physicalModel/multiport/$j1
$j2 2 /physicalModel/multiport/$j2

15.2.5.2. Port voltage

To request the voltage at a given port :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- physicalModel/
|   `-- multiport
|       |-- $j1
|       `-- $j2
|-- floatingType/
|   `-- $voltage
|-- outputRequest/
|    `-- $outputRequest_group/
|        `-- $or1[@subject=/label/predefinedOutputRequests
|                 @subject_id=5
|                 @object=/network/$net1/junctions
|                 @object_id=$j1
|                 @output=/floatingType/$voltage
|                 @idPort=2]
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

The multi port is a junction : /network/$net1/junctions#$j1 and the port number is 2.

id nbPort multiport
$j1 2 /physicalModel/multiport/$j1
$j2 2 /physicalModel/multiport/$j2

15.2.5.3. Port Power

To request the voltage at a given port :

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- physicalModel/
|   `-- multiport
|       |-- $j1
|       `-- $j2
|-- floatingType/
|   `-- $current
|-- outputRequest/
|    `-- $outputRequest_group/
|        `-- $or1[@subject=/label/predefinedOutputRequests
|                 @subject_id=6
|                 @object=/network/$net1/junctions
|                 @object_id=$j1
|                 @output=/floatingType/$current
|                 @idPort=2]
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

The multi port is a junction : /network/$net1/junctions#$j1 and the port number is 2 :

id nbPort multiport
$j1 2 /physicalModel/multiport/$j1
$j2 2 /physicalModel/multiport/$j2

15.2.5.4. Total current

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- physicalModel/
|   `-- multiport
|       |-- $j1
|       `-- $j2
|-- floatingType/
|   `-- $current
|-- outputRequest/
|    `-- $outputRequest_group/
|        `-- $or1[@subject=/label/predefinedOutputRequests
|                 @subject_id=4
|                 @object=/network/$net1/junctions
|                 @object_id=$j1
|                 @output=/floatingType/$current]
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

data.h5:/network/$net1/junctions#$j1 is :

id nbPort multiport
$j1 2 /physicalModel/multiport/$j1
$j2 2 /physicalModel/multiport/$j2

No wire is specified.

15.2.5.5. Total power

data.h5
|-- label/
|   `-- predefinedOutputRequests
|-- physicalModel/
|   `-- multiport
|       |-- $j1
|       `-- $j2
|-- floatingType/
|   `-- $power
|-- outputRequest/
|    `-- $outputRequest_group/
|        `-- $or1[@subject=/label/predefinedOutputRequests
|                 @subject_id=6
|                 @object=/network/$net1/junctions
|                 @object_id=$j1
|                 @output=/floatingType/$power]
`-- network/
    `-- $net1[@type=simple]
        |-- tubes
        |-- junctions
        `-- connections

data.h5:/network/$net1/junctions#$j1 is :

id nbPort multiport
$j1 2 /physicalModel/multiport/$j1
$j2 2 /physicalModel/multiport/$j2

No wire is specified.

15.2.6. Equivalent circuit

15.2.6.1. S parameters

15.2.6.2. Z parameters

15.2.6.3. Y parameters

15.2.6.4. Thevenin voltage generator

15.2.6.5. Norton current generator

15.2.6.6. Voltage and current generators

15.2.7. 3D object power absorption capabability

15.2.7.1. Coupling cross-section