For this specific format, the minimum required files are:

  • A user defined input file (.param).
  • A cell file (.cell), with the atomic cooordinates, cell dimensions and kpoints used in the calculation.
  • The generated resume output file (.castep).


CASTEP allows to change the default units used inside the calculation and printed in its output file. The current ioChem-BD release supports the default units only.

The geometry optimization method used must be BFGS, the default one. Damped molecular dynamics optimizations are not supported.

Geometry optimization calculations generate a .geom file that must be also appended when uploading it to ioChem-BD, otherwise the optimized geometry won’t be available in the final resume.

All generated CASTEP graph files .xcd can be attached to the upload process and its content will be rendered in the final resume.

General Info

CASTEP - General Info - Main fields
Field Source Sample value
Title Set on Browse calculation publication Sample calculation
Browse Item URL pointing Browse published item
Program program.header template CASTEP 2021 HF1
Author Username fullname Doe, John
Calculation type Custom logic [1] Geometry optimization


This section captures initialization settings like units used, geometry optimization parameters, exchange correlation parameters, etc.

Data source: <module cmlx:templateRef=’parameters’>


Atomic coordinates

After settings, our HTML resume will output cell dimensions and an xyz coordinates table with current molecule atoms.

For every atom, we will output it’s serial number, atom type, coordinates in angstroms in cartesian and fractional types.

Information is read from geometry steps file or from atoms section.

On geometry optimization calculations it will indicate if it converged along with the initial and final geometries.


Molecular Info

This section captures molecule additional information not captured on previous section.

Molecular Info - Main fields
Field Source Description
Point group <scalar dictRef=”cc:pointgroup”> Variable found inside Symmetry and Constraints section
Space group <scalar dictRef=”ca:spacegroup”> Variable found inside Symmetry and Constraints section
k-point Read from castep.cell K-point list and its weight, defined inside .cell file



Data source:

  • <module cmlx:templateRef=’step’>
  • <module cmlx:templateRef=’enthalpy’>

Mulliken Atomic Charges

Data source:

  • <module cmlx:templateRef=’mulliken’>


Data source:

  • .xcd files attached to the calculation during its upload.

It can contain geometry optimization step parameters, density of states or band gap graphs.

../_images/CASTEP_module_graph.png ../_images/CASTEP_module_graph2.png ../_images/CASTEP_module_graph3.png


Data sources:

  • <module cmlx:templateRef=’timing’>

string ca:getCalcType string setup

$setup          Refers to all read elements from <module cmlx:templateRef="parameters">

<xsl:variable name="ca:minimize">Geometry optimization</xsl:variable>
<xsl:variable name="ca:spectroscopy">Electronic spectroscopy</xsl:variable>

<xsl:function name="ca:getCalcType">
    <xsl:param name="setup"  />

    <xsl:variable name="type" select="ca:getParameter($setup, 'type of calculation')" />
        <xsl:when test="matches($type, 'geometry optimization')">
            <xsl:value-of select="$ca:minimize"/>
        <xsl:when test="matches($type, 'Electronic Spectroscopy')">
            <xsl:value-of select="$ca:spectroscopy"/>

<xsl:function name="ca:getParameter">
    <xsl:param name="setup" />
    <xsl:param name="name" />
    <xsl:copy-of select="$setup/cml:parameter/cml:scalar[@dictRef='x:label'][text()=$name]/following-sibling::cml:scalar[@dictRef='x:value']"/>