{# The Info tab's pane: what this calculation and this system are. Identical on every page that shows one calculation. A page with something more to say about what it is showing passes `extra_info_tab` (a {group, label, title} for the strip) and `extra_info_groups` (a template to include after this one), the same way _panel_controls.html takes its extra group. Without them there is no strip at all: one pane needs no tabs to choose between. #} {# Info Tab #}
{% if extra_info_tab %} {% endif %} {# Two fixed columns, each a plain top-to-bottom list of label/value rows - no per-row grid, no sub-tab to click between Calculation and System. A long list just scrolls. #}

Calculation


XC Functional {{ calculation.xc_functional }}

Basis Set {{ calculation.basis_set }}

Charge {{ calculation.charge if calculation.charge is not none else "—" | safe }}

Spin {{ calculation.spin if calculation.spin is not none else "—" | safe }}

Total Energy [eV] {# 2 decimals matches ENERGY_UNITS.eV, which controls.js rewrites this to on load - a different precision here shows as a flicker. #} {# total_energy is nullable: a calculation whose output did not state one must show that, never a fabricated 0.00. #} {{ "%.2f" | format(calculation.total_energy | hartree_to_ev) if calculation.total_energy is not none else "—" | safe }}

Code {{ calculation.code }} {{ calculation.code_version }}

Author {{ calculation.author }}

Date {{ calculation.date }}

Added {{ calculation.created_at }}

Legacy ID {{ calculation.legacy_id }}

System


Full Name {{ system.full_name }}

Short Name {{ system.short_name }}

Formula {{ system.formula | subscript }}

Mass {% if system.molecular_mass %}{{ "%.1f" | format(system.molecular_mass) }} u{% endif %}

Point Group {{ system.point_group | point_group_subscript }}

Orientation {{ calculation.orientation }}

{# Absent, not empty, when the system has no references. The offline viewer renders this template with no database and so no `papers`. #} {% if papers %}

Further Reading

{% endif %}
{% if papers %} {# In the top layer once showModal() opens it, so the pane's own overflow clipping does not cut it off. #}

Further Reading {{ system.full_name }}

    {% for paper in papers %}
  1. {{ paper.title }}

    {% if paper.authors %}

    {{ paper.authors }}

    {% endif %} {# The publication line, assembled from the pieces stored at ingest. Each is plain text and autoescaped; the markup is here, so nothing that came out of a .bib can carry any of its own. #}

    {%- if paper.venue %}{{ paper.venue }}{% endif -%} {%- if paper.volume %} {{ paper.volume }}{% endif -%} {%- if paper.issue %}({{ paper.issue }}){% endif -%} {%- set trailing = [paper.pages, paper.imprint] | select | list -%} {%- if trailing %}{% if paper.venue or paper.volume %}, {% endif %}{{ trailing | join(", ") }}{% endif -%} {%- if paper.year %} ({{ paper.year }}){% endif -%}

  2. {% endfor %}
{% endif %} {% if extra_info_groups %}{% include extra_info_groups %}{% endif %}