{% if job_status is defined and job_status != 'completed' %}
Job in progress — showing completed steps so far. Reload to see updates. {% if progress is defined %}
{% for step, status in progress.items() %} {{ step }}: {{ status }} {% endfor %}
{% endif %}
{% endif %}

Melt-Quench Simulation Results

Job ID: {{ job_id }}

Composition: {{ composition }} | Potential: {{ potential }}

{% if tags %}

{% for tag in tags %} {{ tag }} {% endfor %}

{% endif %}
Composition
Requested (mol%): {{ composition }}
{% if actual_composition %}
Simulated (mol%): {{ actual_composition }} ({{ n_atoms }} atoms)
{% endif %} {% if network_formers %}
Network Formers:
{% for element in network_formers %} {{ element }} {% endfor %}
{% endif %} {% if modifiers %}
Modifiers:
{% for element in modifiers %} {{ element }} {% endfor %}
{% endif %}
Structural Properties
Density: {{ density }} g/cm³
Network Connectivity ⓘ: {{ network_connectivity }}
{% if step_timings %}
Computation Time
{% for item in step_timings %}
{{ item.name }}: {{ item.runtime }}
{% endfor %}
Core Hours: {{ total_core_hours }}
{% if job_status == 'completed' %}
Wall Time: {{ total_runtime }}
{% endif %} {% endif %}
{# ---- Tabbed analysis sections ---- #} {% set has_structure = structure_xyz or temperature_time_plot %} {% set has_analysis = plotly_json %} {% set has_viscosity = viscosity_plots %} {% set has_cte = cte_plots %} {% set has_elastic = elastic_plots %} {% if has_structure or has_analysis or has_viscosity or has_cte or has_elastic %}
{% if has_structure %} {% endif %} {% if has_analysis %} {% endif %} {% if has_viscosity %} {% endif %} {% if has_cte %} {% endif %} {% if has_elastic %} {% endif %}
{% if has_structure %}
{% if structure_xyz %}
Atomic Structure
Style:

Glass structure after melt-quench procedure. Rotate and zoom with mouse. Hover over atoms for element info. Click on an atom to cut out its 5 Å neighbourhood.

{% endif %} {% if temperature_time_plot %}
Melt-Quench Protocol ({{ potential }})
{% if protocol_description %}

{{ protocol_description }}

{% endif %} {% endif %}
{% endif %} {% if has_analysis %}
Structural Analysis

Pair distribution functions (RDF) computed up to rmax = 10 Å with 2000 bins. Bond cutoffs are automatically determined from the first RDF minimum (Savitzky-Golay smoothed). These cutoffs feed into coordination number distributions, Qn speciation & network connectivity, bond-angle distributions, and Guttman ring statistics (up to 40-membered rings). Click legend items to show/hide individual traces.

{% endif %} {% if has_viscosity %}
Viscosity Analysis
{% if viscosity_plots.visc_vs_t %}
{% endif %} {% if viscosity_plots.arrhenius %}
{% endif %} {% if viscosity_plots.convergence %}
{% endif %}

Viscosity computed via the Green-Kubo method by integrating off-diagonal stress autocorrelation functions (Pxy, Pxz, Pyz). {% if viscosity_params %} Production runs of {{ "%.1f" | format(viscosity_params.production_ns) }} ns at {{ viscosity_params.temperatures | join(', ') }} K (max correlation lag {{ "%.1f" | format(viscosity_params.max_lag_ns) }} ns). {% endif %} The autocorrelation integration cutoff is determined automatically via a noise-threshold criterion. {% if vft %}
Dashed line: VFT extrapolation log10(η) = A + B / (T − T0) with A = {{ "%.2f" | format(vft.A) }}, B = {{ "%.0f" | format(vft.B) }} K, T0 = {{ "%.0f" | format(vft.T0) }} K ({{ "%.0f" | format(vft.T0 - 273.15) }} °C). {% if vft.ref_temps %} Reference points: {% for label, temp_c in vft.ref_temps.items() %} {{ label }} = {{ "%.0f" | format(temp_c) }} °C{{ "," if not loop.last else "." }} {% endfor %} {% endif %} {% endif %}

{% endif %} {% if has_cte %}
CTE Analysis
{% if cte_plots.convergence %}
{% endif %} {% if cte_plots.volume_temperature %}
{% endif %}

{% if cte_plots.convergence %} Linear CTE (αL = αV / 3) from enthalpy–volume fluctuations via iterative NPT production runs {% if cte_params and cte_params.temperature %}at {{ cte_params.temperature | int }} K{% endif %} ({{ "%.2f" | format(cte_params.production_ns) }} ns each, up to {{ cte_params.max_production_runs }} runs). {% endif %} {% if cte_plots.volume_temperature %} {% if cte_plots.convergence %}Additionally, volume{% else %}Volume{% endif %} vs. temperature data collected from NPT simulations {% if cte_params and cte_params.temperatures %}at {{ cte_params.temperatures | join(', ') }} K{% endif %} ({{ "%.2f" | format(cte_params.production_ns) }} ns each), enabling a linear fit of volumetric thermal expansion. {% endif %}

{% endif %} {% if has_elastic %}
Elastic Properties
{% if elastic_moduli %}
Isotropic Moduli
Bulk Modulus (B): {{ "%.0f"|format(elastic_moduli.B) }} GPa
Shear Modulus (G): {{ "%.0f"|format(elastic_moduli.G) }} GPa
Young's Modulus (E): {{ "%.0f"|format(elastic_moduli.E) }} GPa
Poisson's Ratio (ν): {{ "%.2f"|format(elastic_moduli.nu) }}
{% endif %} {% if elastic_plots.cij_heatmap %}
Stiffness Tensor Cij
{% endif %}

Full 6×6 elastic stiffness tensor (Cij) computed via the central-difference stress-strain method. {% if elastic_params %} The simulation box is deformed by ±{{ "%.1f" | format(elastic_params.strain_pct) }}% strain along each of the three normal (xx, yy, zz) and three shear (yz, xz, xy) directions (12 deformations total, {{ elastic_params.temperature | int }} K, {{ "%.3f" | format(elastic_params.production_ns) }} ns production per direction). {% else %} The simulation box is deformed by ±0.1% strain along each of the three normal (xx, yy, zz) and three shear (yz, xz, xy) directions (12 deformations total). {% endif %} Stress tensors are averaged over the second half of each production run. Isotropic moduli (B, G, E, ν) obtained via Voigt-Reuss-Hill averaging.

{% endif %}
{% endif %}
{# /.tab-section #}
{# /.results-container #} {% if plotly_json or structure_xyz %} {% endif %} {% if temperature_time_plot %} {% endif %} {% if viscosity_plots %} {% endif %} {% if cte_plots %} {% endif %} {% if elastic_plots %} {% endif %}