Here, we will use a template input file and a bash script to sweep the lattice parameter space for a given structure. We will use Quantum ESPRESSO as an example simulations engine, however all command-line related directives apply universally.
We start with preparing an input file for Quantum ESPRESSO. Below is an example input file for performing a total ground-state "self-consistent field" (scf) energy computation, with pseudopotential paths set to use the default "gbrv" set of pseudopotentials1 implemented on our platform.
The material being considered in this particular example is a supercell of "Strontium Zirconate" (SrZrO3), in its ground state equilibrium crystal structure with space group "Pnma" 2. The reader is referred to the official documentation for the "PWscf" module of Quantum ESPRESSO 34 for a description of the keyword parameters contained here.
Note that we are using a template variable in place of celldm(1), indicating the lattice parameter of the underlying simple cubic Bravais Lattice of the crystal structure. These template variables are defined once the combined run.sh script is put together, as explained in what follows.
We also need to copy the pseudopotential files into the current working directory where the input file is stored, as follows.
Just like before, we are using template variables again instead of the project name and email. Variables starting with $PBS are automatically set by the resource manager, and are known as the "PBS Directives".
The rest of the Batch Script contains UNIX commands necessary for loading the required modules and running the executables in parallel.
The reader should note that within the mpirun command we make use of the tee command. This redirects the output of the simulation to both the standard output (abbreviated as "stdout") and to the output file simultaneously. Redirecting to "stdout" in this way allows the status of the job to be regularly updated and refreshed under the corresponding Job Viewer in the Web Interface, as demonstrated in another Tutorial.
We can put the content of the above file into a bash script called run.sh for example, and then make the script executable with chmod a+x run.sh command.
The job can finally be submitted as a set to the Resource Manager by invoking the script via the ./run.sh command (the qsub command is not necessary in this case since it is already included as part of run.sh, towards the end of the script).
The user can view the currently submitted jobs and their statuses in CLI with the qstatcommand.
The reader is referred to the video below for an explanation on how to inspect the results of the above simulation under the Web Interface of our platform.
We summarize the above-mentioned steps in the following video.
Here, we begin by entering the Command Line Interface via the Web Terminal connection method. We then navigate to the directory containing the run.sh script under the Home Folder of cluster-007, where we submit it for execution.
We conclude by inspecting the status of the job on the selected cluster number "007" by entering the watch qstat command, for an automatically-refreshing version of qstat. Since only one lattice parameter was tested in this example animation for simplicity, only one job has been launched and is returned by qstat in this case (scanning over all three lattice parameters, as in the original script shown above, would have correspondingly launched three distinct jobs).