# Analysis tools: Densf, FCF, analysis¶

Apart from main computational programs mentioned above, Amsterdam Modeling Suite offers a range of small utility tools that can be used to obtain more specific results. These tools usually base on the prior run of one of the main programs and need the KF file produced by them as a part of the input.

From the functional point of view these tools are very similar to ADF or AMS. Their results are stored in KF files and their input files follow the same structure of blocks, keys and values. Because of that the same classes (SCMJob and SCMResults) are used as bases and hence preparation, running and results extraction for utility tools follow the same rules as the AMS program.

The main difference is that usually utility jobs don’t need molecular coordinates as part of the input (they extract this information from previous calculation’s KF file). So no Molecule instance is needed and the molecule attribute of the job object is simply ignored. Because of that get_molecule() method does not work with FCFResults, DensfResults etc.

Below you can find the list of dedicated job classes that are currently available. Details about input specification for those jobs can be found in corresponding part of AMS suite documentation.

class FCFJob(inputjob1=None, inputjob2=None, name='plamsjob', settings=None, depend=None)[source]

A class representing calculation of Franck-Condon factors using fcf program.

Two new attributes are introduced: inputjob1 and inputjob2. They are used to supply KF files from previous runs to fcf program. The value can either be a string with a path to KF file or an instance of any type of SCMJob or SCMResults (in this case the path to corresponding KF file will be extracted automatically). If the value of inputjob1 or inputjob2 is None, no automatic handling occurs and user needs to manually supply paths to input jobs using proper keywords placed in myjob.settings.input (STATES or STATE1 and STATE2).

The resulting TAPE61 file is renamed to jobname.t61.

__init__(inputjob1=None, inputjob2=None, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

_serialize_mol()[source]

Process Molecule instance stored in molecule attribute and add it as relevant entries of settings.input branch. Abstract method.

_remove_mol()[source]

Remove from settings.input all entries added by _serialize_mol(). Abstract method.

class DensfJob(inputjob=None, name='plamsjob', settings=None, depend=None)[source]

A class representing calculation of molecular properties on a grid using densf program.

A new attribute inputjob is introduced to supply KF file from previously run job. The value can either be a string with a path to KF file or an instance of any type of SCMJob or SCMResults (in this case the path to corresponding KF file will be extracted automatically). If the value of inputjob is None, no automatic handling occurs and user needs to manually supply path to input job using INPUTFILE keyword placed in myjob.settings.input.

The resulting TAPE41 file is renamed to jobname.t41.

__init__(inputjob=None, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

_serialize_mol()[source]

Process Molecule instance stored in molecule attribute and add it as relevant entries of settings.input branch. Abstract method.

_remove_mol()[source]

Remove from settings.input all entries added by _serialize_mol(). Abstract method.

check()[source]

Check if termination status variable from General section of main KF file equals NORMAL TERMINATION.

class AMSAnalysisJob(name='plamsjob', settings=None, depend=None)[source]

A class for analyzing molecular dynamics trajectories using the analysis program.

__init__(**kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

_serialize_mol()[source]

Process Molecule instance stored in molecule attribute and add it as relevant entries of settings.input branch. Abstract method.

_remove_mol()[source]

Remove from settings.input all entries added by _serialize_mol(). Abstract method.

check()[source]

Check if termination status variable from General section of main KF file equals NORMAL TERMINATION.