Documentation‎ > ‎

### Variable and Calculation Tags

The fundamental difference between variables and calculations is that variables can have optimizations associated with them, and calculations can be defined by muParser compatible equations; these are the orthogonal traits. See also the Optimization and Statistical Analysis section of the Device Tag.

Variables can be used to define the arguments of a primitive device, or which file is used in a Touchstone based device. For example, the geometry of a microstrip circuit may be based on several calculations of variables to make sure the circuit can be realized (see single_wilkinson.dsn in the examples folder). There is only one variable block. Variables can use units.

<variables>
<theta_1 value="30“></theta_1> (variables may not use equations)
<z1 value="100">
<opt min="50" max="100" />
</z1>
<z2 value="100">
<opt min="50" max="100" step="5"/>
<stat min="50" max="100" />
</z2>
</variables>

<TL node_list="3 5"> (This is a device)
<z0 value = "100" />
<theta value = "theta_1" />
<f0 value = "150e6" />
</TL>

Calculations can be used on the variables, and the results can be values in the devices. There are multiple calculation blocks. Calculations use the muParser engine.

<calculation    equation="theta_2 = 2*theta_1">
(calculations cannot have opt or stat tags)
</calculation>

A common technique using variables and calculations is to ensure a monotonically increasing impedance. For example:
<variables>
<z0 value = "50" />
<m1 value = "1">
<opt min="1" max="1.2" />
</m1>
<m2 value = "1">
<opt min="1" max="1.2" />
</m2>
</variables>
<calculation equation="z1 = m1 * z0" />
<calculation equation="z2 = m2 * z1" />
Comments