Errors and troubleshooting
CONQUEST reports most fatal errors as text rather than as numbered error codes. This page lists common messages for which the immediate cause and a safe first check can be identified. It is not a complete catalogue of every internal consistency check in the code.
Where a message contains <mode>, <value> or <filename>, the angle-
bracketed text stands for a value supplied at runtime; the surrounding text
matches the source diagnostic.
How CONQUEST reports problems
Fatal errors are written to stdout and to the configured main output unit
before CONQUEST stops the MPI calculation. The main output is normally
Conquest_out, but its destination can be changed; see Main output.
For an early startup failure, the output file might not yet have been opened.
Do not keep only the final MPI abort line: the CONQUEST message immediately
before it is normally more useful.
Warnings issued through CONQUEST’s warning routine are written to
Conquest_warnings and, depending on the IO.Iprint level, can also
appear in the main output. Check Conquest_warnings after every run,
including runs that appear to finish normally.
A CQ.stop file requests that a running calculation stop when CONQUEST
next checks for it. A stop caused by that file is deliberate and should not
be diagnosed as an error.
First checks after a failed run
Preserve the complete error text,
Conquest_out,Conquest_warningsand any scheduler output before restarting.Find the first CONQUEST error or warning, rather than relying only on the last message printed by MPI or the scheduler.
Check that the run directory contains the intended input, coordinate, ion/pseudopotential and restart files.
Check coordinate conventions, distance units and species numbers against Coordinates and Atomic Specification.
Identify whether the problem is an input error, a numerical convergence failure, or an external runtime failure before changing tolerances, iteration limits or the parallel layout.
Startup and input files
We need Conquest_input to run !CONQUEST could not open
Conquest_inputin the run directory. Check the filename, working directory and read permissions. The required input files and the main input structure are described in Input files.No coordinate file specified: please set with IO.CoordinatesNo coordinate filename was supplied. Set
IO.Coordinatesto the intended file. A PDB input that cannot be opened instead givesReading pdb file: file error. Check the coordinate filename and the selected format against Coordinates and Atomic Coordinates.Too few species in ChemicalSpeciesLabel:The
ChemicalSpeciesLabelblock contains fewer entries thanGeneral.NumberOfSpecies. Make the count and block agree and ensure that the block is terminated correctly; see Atomic Specification.Species specified greater than number in input file:A species index in the coordinate file is greater than the number of species declared in the input. Check the coordinate indices and the numbered entries in
ChemicalSpeciesLabel. See Atomic Specification for the block format.read_pseudopotential: file errorA file used by the legacy pseudopotential reader could not be opened. Check the filename printed immediately before this error, its location and its permissions. Do not substitute an unrelated pseudopotential merely to pass this check; see Ion files, General and Basis sets.
Functionals differ between pseudopotential files:When
General.FunctionalTypeis left at its default of zero, CONQUEST derives the functional from the first pseudopotential and finds a different one in another file. Use a mutually consistent set of files; see General and Ion files.Functional in input file differs to pseudopotential:General.FunctionalTypediffers from the functional stored in a pseudopotential. The calculation stops unlessGeneral.DifferentFunctionalexplicitly permits the mismatch. Prefer matching the input and pseudopotentials; an override does not make an incompatible pseudopotential valid. See General.Functional in input file differs to pseudopotential but proceeding:The same mismatch was found, but
General.DifferentFunctionalpermits the run to continue with a warning. Verify that the override is intended and that the input and pseudopotentials are physically compatible; see General and Ion files.
Coordinates and parallel layout
Expected fractional coordinates but many are greater than one:This warning means that several values look Cartesian although
IO.FractionalAtomicCoords Tselects fractional coordinates.Expected Cartesian coordinates but many are less than one:This warning is the converse heuristic: several values look fractional although
IO.FractionalAtomicCoords Fselects Cartesian coordinates. In either case, verifyIO.FractionalAtomicCoords,General.DistanceUnitsand the coordinate file itself. The warning is a heuristic, so inspect the data rather than changing the flag automatically; see Coordinates and Atomic Coordinates.Atoms are too close to each other:At least two non-ghost atoms are at or below the configured minimum initial separation.
Atoms are too far apart! Minimum distance isEven the smallest detected separation is above the configured maximum. For either distance error, first inspect duplicated atoms, cell dimensions, coordinate wrapping,
IO.FractionalAtomicCoordsandGeneral.DistanceUnits. Do not disable the check until the geometry and units have been verified; see Coordinates and Atomic Coordinates.We must have at least one atom per process:The run uses more MPI processes than atoms. Rerun with no more processes than atoms; see Coordinates for the coordinate file’s atom count.
More processors than partitions!A manual
General.NPartitionsX/Y/Zproduct is smaller than the MPI process count. The related messagessfc_partitions_module: too few partitions created for number of processorsandsfc_partitions_module: too few occupied partitions for number of processorsmean that the generated or occupied partition count is also insufficient. Reduce the process count or review the partition settings in General; do not assume that adding more processes will accelerate a small or sparse system.
Diagonalisation and convergence
Diag: proc grid product is zero:A manually specified diagonalisation processor grid has a zero dimension. Check
Diag.ProcRowsandDiag.ProcColsagainst Diagonalisation.Diag: proc grid product is too large:Diag.ProcRowsmultiplied byDiag.ProcColsexceeds the processes in the applicable k-point process group. Use a valid grid or let CONQUEST choose it. See K-point parallelization and Diagonalisation.
Messages: block_size_r not a factor of matrix size !,
block_size_c not a factor of matrix size ! or
Can't find a good block size: please set manually
These errors concern the ScaLAPACK matrix distribution when matrix padding is
disabled. Check Diag.PaddingHmatrix, Diag.BlockSizeR and
Diag.BlockSizeC against the restrictions in Padding Hamiltonian matrix by setting block size and
Diagonalisation. Change them as a consistent layout, not as independent
tuning values.
Code compiled without ELPA! Set Diag.UseELPA FThe input requests ELPA but the executable was built without ELPA support. Use ScaLAPACK by disabling
Diag.UseELPA, or use an executable built and linked with ELPA. See Using ELPA and Compiling.FindEvals: pzhegvx failed for mode <mode> with INFO=<value>The selected generalized eigensolver returned a status that CONQUEST treats as fatal. Despite the
pzhegvxwording, this message can also follow an ELPA call. Preserve the mode,INFOvalue andDiag.UseELPAsetting, together with the parallel layout and full output. Do not infer a physical cause from the number alone. Check the diagonalisation setup in Diagonalisation before reporting a reproducible failure.ScaLAPACK pzhegvx warning, info=The selected eigensolver returned
INFO=2orINFO=4. CONQUEST permits these statuses to continue and records a warning. This wording is also used whenDiag.UseELPAis enabled, so interpret the status using the selected solver. Check the resulting eigenvalues, occupations and convergence, and retain the exact status if reporting unexpected results; see Diagonalisation.SelfCon/PulayMixSC_spin: too many SCF iterations:The self-consistency cycle reached
SC.MaxIterswithout satisfying its convergence test, unlessSC.ContinueOnSCFailwas selected. Inspect the residual history and verify that the basis, grid and physical setup are sensible before increasing the limit. Mixing and convergence controls are discussed in Self-consistency and Self-consistency.
Atomic movement and restart files
Messages: Step too small: safemin2 failed!,
Step too small: safemin_cell failed! or
Step too small: safemin_full failed!
An ionic, cell or combined line search reduced its trial step below the usable threshold. Check the starting geometry, forces, preceding energy changes and line-search messages before changing optimisation controls. See Structural relaxation for the supported relaxation methods and their inputs.
Messages: Error: Too many SHAKE iterations ! or
Error: Too many RATTLE iterations !
A rigid-bond position or velocity correction did not converge within its iteration limit. Check the constraint definitions, the initial constrained bond lengths and the preceding dynamics before changing tolerances or limits. See Molecular Dynamics for molecular-dynamics setup.
Fail in opening InfoGlobal.datThe restart reader could not open the indexed
InfoGlobalmetadata file. Despite the diagnostic’s.datwording, check the actual filename printed immediately before it (such asInfoGlobal.i00), the restart settings and read permissions. See Restarting.
Messages: Fail in opening Lmatrix file in Binary. or
Fail in opening ASCII Lmatrix file.
The matrix restart reader could not open a file in the selected binary or text
format. The Lmatrix wording is also used when reading other matrices,
including Kmatrix2. Check that the complete indexed matrix-file set is
present and that IO.MatrixFile.BinaryFormat.Grab matches its format. Do
not assume the MPI process count must match the previous run: this reader uses
the process count stored in InfoGlobal. See Restarting SCF and
Restarting.
grab_blip_coeffs: failed to open input file <filename>With a blip basis and
Basis.LoadCoeffs T, a per-processblip_coeffsfile could not be opened. Check the filename printed by CONQUEST, the coefficient files from the same calculation and their read permissions; see Reading coefficients from files and Restarting.
External runtime failures
MPI launch failures, scheduler cancellation, out-of-memory termination, filesystem errors and Unix signals are not CONQUEST error codes, and their meaning depends on the platform. Check the scheduler and system logs as well as the CONQUEST output. For a segmentation fault seen only with multiple OpenMP threads, also check the thread-stack guidance in Compiling.
Reporting a reproducible problem
If the checks above do not identify the problem, follow How do I report a bug? and include the complete diagnostic and enough material to reproduce the run:
Conquest_input, the coordinate file and all applicable ion or pseudopotential files;any restart files needed to reproduce a restart failure;
Conquest_out,Conquest_warningsand scheduler output;the CONQUEST release, commit or other precise version identifier;
compiler, numerical-library and MPI implementation versions; and
MPI process and OpenMP thread counts.
Remove confidential data if necessary, but do not omit the lines immediately before the failure or silently replace the failing inputs with different ones.