Cuby's interface to Cuby. It allows building cuby inputs for individual calculations that are part of more complex jobs. For example, it is possible to use it for generation of all the individual calculations in a data set. These calculations can be then run separately (e.g. submitted as individual jobs on a cluster) and the results can be then collected by the dataset protocol. See the example below.
The interface now supports only the basic single point energy calculations. Moreover, only some calculation setup is transferred from this interface to the child calculation - geometry (including ghost atom information), charge and multiplicity. The remaining setup must be provided in a separate block in the input (named "calculation").
This interface does not use any specific keywords
The following examples, along with all other files needed to run them, can be found in the directory cuby4/interfaces/cuby/examples
#===============================================================================
# Cuby interface example 1 - dataset calculation
#===============================================================================
# This example shows how to break a dataset calculation into individual jobs
# and read their results back into cuby. It is achieved in three steps:
#
# 1) Prepare the calculations without running them, using the -p option
# that sets the keyword prepare_only:
# cuby4 -p yes cuby_example_01.yaml
#
# 2) Run all the calculations prepared in step 1 in cuby, e.g. (in bash):
# for i in *_CUBY; do cd $i; cuby4 cuby_input.yaml; cd ..; done
#
# 3) Run this input again to collect and process the results:
# cuby4 cuby_example_01.yaml
# Dataset calculation
job: dataset
dataset: A24
# When results (in this case calculated externally) are found,
# read them instead of running the calculation.
existing_calc_dir: read_results
job_cleanup: no
# Cuby interface is used as an intermediate layer between
# the protocol and the calculation itself. This allows us to prepare
# the child calculations as cuby inputs.
interface: cuby
# The calculation is defined in a separate block
calculation:
interface: mopac
method: pm6
#===============================================================================
# Cuby interface example 2 - dataset calculation using queue system
#===============================================================================
# This example is identical to Example 1 but the child jobs are prepared
# for running in a queue system. When they are run in step 2, they are not
# executed in series but submitted to the queue system and can run
# simultaneously on a cluster. The user has to wait for all the jobs to finish
# before running step 3.
# Dataset calculation
job: dataset
dataset: A24
# When results (in this case calculated externally) are found,
# read them instead of running the calculation.
existing_calc_dir: read_results
job_cleanup: no
# Cuby interface is used as an intermediate layer between
# the protocol and the calculation itself. This allows us to prepare
# the child calculations as cuby inputs.
interface: cuby
# The calculation is defined in a separate block
calculation:
interface: mopac
method: pm6
# Make the child jobs run in SGE queue
queue_submit: yes
queue_system: sge
queue_scratch_dir: /scratch/$USER
queue_name: gq*
queue_jobname: DatasetItem