Enable/Disable Example
Location: examples/rappture2/enable/
This example demonstrates the <enable> attribute for conditionally
showing or hiding inputs based on other input values.
tool.xml
<?xml version="1.0"?>
<run xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../rappture2web/contract.xsd">
<tool>
<title>enable (rappture2web)</title>
<about>Examples of Rappture <enable> attributes.
The <enable> attribute can be used to selectively enable/disable one object based on the value of others.
</about>
<command>python3 @tool/enable.py @driver</command>
<contract>
<input>
<choice id="model">
<about>
<label>Model</label>
<description>Select the simulation model to use.</description>
</about>
<option>
<about><label>Drift-Diffusion</label><description>Classical drift-diffusion transport model</description></about>
<value>dd</value>
</option>
<option>
<about><label>Boltzmann Transport Equation</label><description>Semi-classical Boltzmann transport equation model</description></about>
<value>bte</value>
</option>
<option>
<about><label>Quantum Mechanical NEGF</label><description>Quantum mechanical non-equilibrium Green's function model</description></about>
<value>negf</value>
</option>
<default>Drift-Diffusion</default>
</choice>
<boolean id="recomb">
<about>
<label>Recombination Model</label>
<description>Enable or disable the carrier recombination model.</description>
</about>
<default>off</default>
</boolean>
<number id="taun">
<about>
<label>Minority Carrier Lifetime for electrons</label>
<description>Minority carrier lifetime for electrons used in the recombination model.</description>
</about>
<default>1e-6</default>
</number>
<number id="taup">
<about>
<label>Minority Carrier Lifetime for holes</label>
<description>Minority carrier lifetime for holes used in the recombination model.</description>
</about>
<default>1e-6</default>
</number>
<number id="temp">
<about>
<label>Temperature</label>
<description>Lattice temperature for the BTE simulation.</description>
</about>
<units>K</units>
<default>300K</default>
</number>
<integer id="secret">
<about>
<label>Secret input number</label>
<description>A hidden integer input used for internal purposes.</description>
</about>
<default>7</default>
</integer>
<number id="tbe">
<about>
<label>Tight-binding Energy</label>
<description>Energy parameter for the tight-binding Hamiltonian in the NEGF model.</description>
</about>
<units>eV</units>
<min>0eV</min>
<max>10eV</max>
<default>3.12eV</default>
</number>
<number id="tau">
<about>
<label>High-energy lifetime</label>
<description>Lifetime for high-energy carriers above the tight-binding energy threshold.</description>
</about>
<units>ns</units>
<min>0s</min>
<max>1s</max>
<default>10ns</default>
</number>
</input>
<output>
<log id="log"><about><label>Selected settings</label><description>Log summary of the enabled inputs and selected model.</description></about></log>
</output>
</contract>
</tool>
<input>
<choice id="model">
<about>
<label>Model</label>
<description>Select the simulation model to use.</description>
</about>
<option>
<about><label>Drift-Diffusion</label><description>Classical drift-diffusion transport model</description></about>
<value>dd</value>
</option>
<option>
<about><label>Boltzmann Transport Equation</label><description>Semi-classical Boltzmann transport equation model</description></about>
<value>bte</value>
</option>
<option>
<about><label>Quantum Mechanical NEGF</label><description>Quantum mechanical non-equilibrium Green's function model</description></about>
<value>negf</value>
</option>
<default>Drift-Diffusion</default>
</choice>
<group id="dd">
<about>
<label>Drift-Diffusion Options</label>
<enable>input.choice(model) == "dd"</enable>
</about>
<boolean id="recomb">
<about>
<label>Recombination Model</label>
<description>Enable or disable the carrier recombination model.</description>
</about>
<default>off</default>
</boolean>
<number id="taun">
<about>
<label>Minority Carrier Lifetime for electrons</label>
<description>Minority carrier lifetime for electrons used in the recombination model.</description>
<enable>input.group(dd).boolean(recomb)</enable>
</about>
<default>1e-6</default>
</number>
<number id="taup">
<about>
<label>Minority Carrier Lifetime for holes</label>
<description>Minority carrier lifetime for holes used in the recombination model.</description>
<enable>input.group(dd).boolean(recomb)</enable>
</about>
<default>1e-6</default>
</number>
</group>
<group id="bte">
<about>
<label>Boltzmann Transport Equation Options</label>
<enable>input.choice(model) == "bte"</enable>
</about>
<number id="temp">
<about>
<label>Temperature</label>
<description>Lattice temperature for the BTE simulation.</description>
</about>
<units>K</units>
<preset>
<value>300K</value>
<label>300K (room temperature)</label>
</preset>
<preset>
<value>77K</value>
<label>77K (liquid nitrogen)</label>
</preset>
<default>300K</default>
</number>
<integer id="secret">
<about>
<label>Secret input number</label>
<description>A hidden integer input used for internal purposes.</description>
<enable>no</enable>
</about>
<default>7</default>
</integer>
</group>
<group id="negf">
<about>
<label>Quantum Mechanical Options</label>
<enable>input.choice(model) == "negf"</enable>
</about>
<number id="tbe">
<about>
<label>Tight-binding Energy</label>
<description>Energy parameter for the tight-binding Hamiltonian in the NEGF model.</description>
</about>
<units>eV</units>
<min>0eV</min>
<max>10eV</max>
<default>3.12eV</default>
</number>
<number id="tau">
<about>
<label>High-energy lifetime</label>
<description>Lifetime for high-energy carriers above the tight-binding energy threshold.</description>
<enable>input.(negf).(tbe):eV >= 3</enable>
</about>
<units>ns</units>
<min>0s</min>
<max>1s</max>
<default>10ns</default>
</number>
</group>
</input>
</run>
Enable expression syntax
Expression |
Meaning |
|---|---|
|
Exact value match |
|
Boolean is true/on |
|
Numeric comparison with unit |
|
Always disabled/hidden |
Running
rappture2web examples/rappture2/enable/