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=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @enityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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=element
| | @entityType=edge]
| |-- $inside[@type=element
| | @entityType=volume]
| `-- $skin[@type=element
| @entityType=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.