General Calculation Analysis

The General calculation analysis workflow provides a quick status and summary check for a completed, running, or incomplete VASP or Quantum ESPRESSO calculation.

It is available from:

VQkit
 -> Post-processing
 -> [1] General calculation analysis

The purpose of this workflow is to answer a few immediate questions:

  • Which electronic-structure code is present in the current directory?

  • What type of calculation does VQkit detect?

  • Is the calculation complete, converged, failed, or still incomplete?

  • What is the latest total energy?

  • What is the Fermi level, when available?

This page is a reference for the summary workflow. More specialized analysis such as DOS, band structure, work function, charge analysis, AIMD, NEB, and mechanical properties is handled by the corresponding Post-processing modules.

Example

VQkit general calculation analysis

The visual guide shows VQkit identifying VASP and Quantum ESPRESSO calculations and reporting their status through a common interface.

Basic workflow

Step 1 — Enter the calculation directory

Start VQkit in the directory containing the calculation files.

For VASP this may contain files such as:

INCAR
POSCAR
KPOINTS
POTCAR
OUTCAR
OSZICAR
DOSCAR

For Quantum ESPRESSO this may contain files such as:

scf.in
scf.out
relax.in
relax.out
tmp/

Step 2 — Open Post-processing

Choose:

[2] Post-processing

Step 3 — Choose General calculation analysis

Choose:

[1] General calculation analysis

VQkit inspects the current working directory automatically.

No additional input file needs to be specified for the normal summary workflow.

Information reported

The current report includes:

Directory
Code
Calculation type
Status
Last total energy
Fermi level

A typical report has the form:

CALCULATION SUMMARY
----------------------------------------------------------

Directory        : /path/to/calculation
Code             : VASP
Calculation type : Geometry optimization
Status           : Completed
Last total energy: -123.4567890000 eV
Fermi level      : 4.823100 eV

Code detection

VQkit automatically checks the working directory for signatures of:

  • VASP;

  • Quantum ESPRESSO;

  • both;

  • neither.

VASP detection

VQkit recognizes common VASP files such as:

INCAR
POSCAR
KPOINTS
POTCAR
OUTCAR
OSZICAR
vasprun.xml
CONTCAR
EIGENVAL
DOSCAR
PROCAR
CHGCAR

If one or more of these markers are present, VASP may be detected.

Quantum ESPRESSO detection

VQkit inspects *.in files for QE-style content such as:

&CONTROL
&SYSTEM
calculation = ...

It also checks output files such as:

*.out
*.pw.out

for QE signatures including:

Quantum ESPRESSO
Program PWSCF
JOB DONE

Possible code labels

The detected code can be:

VASP
Quantum ESPRESSO
Mixed
Unknown

Mixed means VQkit detected both VASP and QE-style files in the same directory.

For production analysis, keeping calculations from different codes in separate directories is recommended because it makes automatic interpretation unambiguous.

Calculation-type detection

VQkit attempts to identify the calculation type from the available input settings.

VASP calculation types

The current detector can recognize common cases such as:

Static / SCF
Geometry optimization
DOS / electronic structure
Band structure
AIMD
NEB

Static / SCF

If no stronger calculation-specific marker is detected, VASP is normally classified as:

Static / SCF

Geometry optimization

A relaxation is inferred when ionic steps are active, for example when:

NSW > 0

and IBRION indicates ionic optimization.

AIMD

AIMD is recognized when the INCAR contains the molecular-dynamics pattern:

IBRION = 0

with active ionic steps.

NEB

VQkit recognizes NEB-related INCAR settings such as:

IMAGES
LCLIMB

Band structure

A VASP band calculation may be detected from markers such as:

ICHARG = 11

or a line-mode KPOINTS file.

DOS / electronic structure

DOS-type calculations may be identified from settings such as:

NEDOS
LORBIT

Quantum ESPRESSO calculation types

VQkit reads QE calculation settings and can classify common workflows as:

SCF
NSCF / DOS
Geometry optimization
Variable-cell optimization
Band structure
AIMD

Examples

SCF:

calculation = 'scf'

Geometry optimization:

calculation = 'relax'

Variable-cell optimization:

calculation = 'vc-relax'

NSCF:

calculation = 'nscf'

Band structure:

calculation = 'bands'

Molecular dynamics:

calculation = 'md'

or:

calculation = 'vc-md'

VASP status detection

For VASP, the summary primarily checks OUTCAR.

Completed

A calculation is identified as:

Completed

when the OUTCAR contains the normal VASP final timing/accounting section:

General timing and accounting informations for this job

This indicates that VASP reached its normal finalization stage.

Converged / finalization not detected

If VQkit finds:

reached required accuracy

but does not find the final timing block, the status may be reported as:

Converged / finalization not detected

This can occur when the ionic/electronic convergence target was reached but the output does not contain the expected normal termination marker.

Running or incomplete

If an OUTCAR exists but neither completion marker is found, VQkit reports:

Running or incomplete

This can indicate:

  • a job still running;

  • a terminated calculation;

  • an incomplete copy of the output;

  • a calculation stopped before normal finalization.

No completed calculation detected

If no usable completed-output information is present, VQkit can report:

No completed calculation detected

Quantum ESPRESSO status detection

QE status detection uses both:

  • saved XML metadata when available;

  • textual pw.x output.

The XML information has priority for completion health when it is available.

QE XML sources

VQkit searches locations such as:

<outdir>/<prefix>.save/data-file-schema.xml
<outdir>/<prefix>.save/data-file.xml
<prefix>.xml

The exact source depends on the QE version and calculation layout.

XML completion status

If the XML contains:

exit_status = 0

VQkit reports:

Completed

A non-zero exit status is interpreted as:

Failed

If the XML exists but cannot be parsed, the status may be:

Corrupted XML

QE text-output status

When inspecting QE output, VQkit looks for common markers.

Completed:

JOB DONE

Failed:

Error in routine

or:

stopping ...

If no completion/failure marker is found but a QE output exists:

Running or incomplete

Input/output association

When several QE files are present, VQkit tries to associate a recent output with its corresponding input.

For example:

scf.in
scf.out

or:

relax.in
relax.out

If a matching pair is found, VQkit uses that input to identify values such as:

  • prefix;

  • outdir;

  • pseudo_dir.

If no directly matching input is found, VQkit searches available *.in files for a valid QE &CONTROL / &SYSTEM structure.

VASP total-energy extraction

VQkit first tries to read the last VASP:

free energy TOTEN = ...

from:

OUTCAR

If that value is unavailable, it falls back to:

OSZICAR

and searches for the last:

F = ...

value.

The reported VASP energy is expressed in:

eV

Example:

Last total energy: -214.5837291000 eV

Meaning of the VASP energy

For VASP, the reported value is the latest total/free energy parsed from the available run output.

For geometry optimization or AIMD, this is the energy of the final available ionic step rather than an average over the trajectory.

Quantum ESPRESSO total-energy extraction

For QE, VQkit searches for the most recent total-energy line:

!    total energy = ... Ry

The value is converted from Rydberg to electronvolts using:

\[1\ \mathrm{Ry} = 13.605693122994\ \mathrm{eV}\]

Therefore the summary displays QE and VASP total energies using the same final unit:

eV

This provides a common reporting interface, but energies from different codes or different pseudopotentials should not be compared casually without a consistent computational setup.

VASP Fermi-level extraction

For VASP, VQkit first searches OUTCAR for:

E-fermi : ...

If an OUTCAR Fermi level is not found, VQkit can try:

DOSCAR

through the VQkit DOSCAR parser.

The final value is reported in:

eV

Quantum ESPRESSO Fermi-level extraction

For QE, VQkit recognizes several common output forms.

Examples include:

the Fermi energy is ... ev

and, for systems where QE reports occupied levels:

highest occupied level (ev): ...

It can also use the first value from:

highest occupied, lowest unoccupied level (ev): ...

when this is the available electronic reference.

If no supported Fermi/occupied-level value is found, the Fermi-level line is simply omitted from the VQkit summary.

Example: completed VASP SCF

Assume a directory contains:

INCAR
POSCAR
KPOINTS
POTCAR
OUTCAR
OSZICAR

and VASP terminated normally.

Run:

VQkit
 -> Post-processing
 -> General calculation analysis

A representative result may be:

CALCULATION SUMMARY
----------------------------------------------------------

Directory        : /home/user/vasp/scf
Code             : VASP
Calculation type : Static / SCF
Status           : Completed
Last total energy: -18.2749831000 eV
Fermi level      : 3.923510 eV

Example: completed QE SCF

Assume:

scf.in
scf.out
tmp/

are present and the output contains:

JOB DONE.

VQkit may report:

CALCULATION SUMMARY
----------------------------------------------------------

Directory        : /home/user/qe/scf
Code             : Quantum ESPRESSO
Calculation type : SCF
Status           : Completed
Last total energy: -312.8827412345 eV
Fermi level      : 2.631200 eV

Example: incomplete calculation

If a calculation was interrupted before normal completion, the report may look like:

Code             : VASP
Calculation type : Geometry optimization
Status           : Running or incomplete
Last total energy: -532.1043210000 eV

The presence of an energy does not mean the calculation completed.

It only means VQkit found at least one readable energy value.

Interpreting the status correctly

Completed

Completed means VQkit found a normal completion marker.

It does not automatically mean that every scientific convergence criterion was appropriate.

Converged / finalization not detected

This indicates that VASP reported the required accuracy but the normal final termination block was not found.

Inspect the end of OUTCAR before treating the calculation as fully completed.

Running or incomplete

This status should trigger manual inspection.

Check:

  • scheduler status;

  • end of OUTCAR or QE output;

  • wall-time termination;

  • memory errors;

  • MPI errors;

  • SCF convergence;

  • ionic-step limit;

  • disk quota;

  • file-copy completeness.

Failed

For QE, Failed indicates that the current status parser found an explicit failure marker or a non-zero XML exit status.

Inspect the detailed QE output to identify the cause.

Mixed directories

If both VASP and Quantum ESPRESSO markers are present, VQkit may report:

Code : Mixed

The general summary then attempts to extract available information using the detected environment.

For clarity and reproducibility, it is better to keep each calculation in a dedicated directory.

For example:

project/
├── vasp/
│   └── scf/
└── qe/
    └── scf/

rather than mixing VASP and QE outputs in one folder.

Why the summary is useful

The General calculation analysis is useful as a first post-processing step because it can quickly identify:

  • whether the expected code is detected;

  • whether the calculation finished;

  • what type of run was performed;

  • whether a usable total energy exists;

  • whether a Fermi level is available.

It can therefore be used before moving to more specialized VQkit analysis.

Recommended post-processing sequence

A practical sequence is:

  1. Run General calculation analysis.

  2. Confirm the calculation code.

  3. Confirm the calculation type.

  4. Confirm completion/convergence status.

  5. Inspect the final total energy.

  6. Inspect the Fermi level if relevant.

  7. Resolve any incomplete/failed-run issues.

  8. Continue to the property-specific VQkit module.

Examples of subsequent modules include:

Structural analysis
DOS / PDOS
Band structure
Work function
Charge-density difference
ELF
Bader charge
AIMD analysis
NEB analysis
Mechanical properties

Scientific cautions

Completion is not convergence

A calculation can terminate normally but still be scientifically under-converged.

For example, a run may be completed even though:

  • the k-point mesh is too coarse;

  • the plane-wave cutoff is insufficient;

  • the ionic-force criterion is too loose;

  • the simulation cell is too small;

  • the vacuum region is inadequate.

Last energy is not always the desired energy

For relaxation and AIMD calculations, the last available energy corresponds to the final recorded step.

It may not represent:

  • a fully relaxed minimum;

  • a trajectory average;

  • a free-energy estimate.

Cross-code energy comparison

The common eV unit does not make VASP and QE absolute total energies directly comparable.

Differences in:

  • pseudopotentials;

  • PAW datasets;

  • cutoffs;

  • exchange-correlation settings;

  • numerical implementation

can shift absolute energies.

Fermi level interpretation

The Fermi level should be interpreted according to the electronic structure and occupation method.

For insulators and semiconductors, the reported electronic reference may not carry the same interpretation as in a metal.

Summary limitations

The General calculation analysis is intentionally lightweight.

It does not replace detailed inspection of:

  • SCF convergence history;

  • ionic-force convergence;

  • stress convergence;

  • wall-time or scheduler errors;

  • individual electronic bands;

  • DOS;

  • charge distribution;

  • trajectories;

  • transition-state paths.

Its purpose is to provide a fast and consistent first-level diagnosis before more specialized analysis is performed.