{# The real-space view has no panel of its own here: it is the momentum
panel's third view, behind the Real button in its header. #}
{% with subheader_id = 'momentum-dyson', ekin_strip = true, real_space_view = true,
hole_view_toggle = true %}
{% include "_panel_momentum.html" %}
{% endwith %}
{# Excitons #}
EXCITONS / HOLES
{# Column widths live on the colgroup, not the cells: the table
is table-layout: fixed (base.css), which takes its widths from
the first row - and the first row is an exciton row, while the
hole rows below it carry different content. #}
{% for state in excitations %}
▸
S{{ state.idx
}}{% if state.multiplicity == 3.0 %}T{% endif %}{% if not state.tda %}RPA{%
endif %}
{{
state.symmetry or '—' | safe }}
{{
'%.3f' | format(state.oscillator_strength or 0) }}
{{ '%.3f' |
format(state.energy_ev) }} eV
{% endfor %}
{# Every root, so the absorption spectrum is complete on first paint
without waiting for excitons.json (src/app.py:exciton) #}
{# The ground-state valence window, for the E_kin strip's grey overlay #}
{# Info Area #}
{% include "_panel_info_pane.html" %}
{% with extra_control_tab = {'group': 'exciton', 'label': 'Exciton',
'title': 'Which map an exciton draws, and which transitions go into it'},
extra_control_groups = '_panel_controls_exciton.html',
allow_nm_unit = true, kpath = true, dipole = true %}
{% include "_panel_controls.html" %}
{% endwith %}
{% include "_panel_calculations.html" %}
{% include "_panel_export.html" %}
{# Absorption Spectrum #}
ABSORPTION SPECTRUM
{# The panel shows two different quantities, so its name, its tooltip and
its ? badge change with the view. The spectrum's are on the heading above;
the profile's ride here, so all four stay in the template. #}