Python API

Python APIs for the SimpleActiveLearningJob (a type of PLAMS Job) and SimpleActiveLearningResults classes.

Import it like this:

#!/usr/bin/env amspython

from scm.simple_active_learning import SimpleActiveLearningJob

SimpleActiveLearningJob

class SimpleActiveLearningJob(name='simple_active_learning_job', driver=None, settings=None, molecule=None, **kwargs)[source]

PLAMS Job class for running Simple Active Learning.

This class inherits from the PLAMS SingleJob class. For usage, see the SingleJob documentation.

If you supply a Settings object to the constructor, it will be converted to a scm.inputs model.

Attributes:

  • input: an alias for self.settings.input

__init__(name='simple_active_learning_job', driver=None, settings=None, molecule=None, **kwargs)[source]

Initialize the SimpleActiveLearningJob.

namestr

The name of the job

driverscm.inputs.SimpleActiveLearning

scm.inputs model describing the input to the SimpleActiveLearning program

settings: scm.plams.Settings

All settings for the job. Input settings in the PLAMS settings format under settings.input are automatically converted to a scm.inputs model. You can specify settings.runscript.nproc to set the total number of cores to run on.

molecule: scm.plams.Molecule or Dict[str, scm.plams.Molecule]

The initial system in PLAMS Molecule format, or if the simulation requires multiple input system, given as a dictionary where the main system has an empty string "" as the key.

classmethod load_external(path, finalize=False)[source]

Load a previous SimpleActiveLearning job from disk.

Parameters:
  • path (Union[str, Path]) – A reactions discovery results folder.

  • finalize (bool, optional) – See SingleJob, defaults to False

Raises:

FileError – When the path does not exist.

Returns:

An initialized SimpleActiveLearningJob

Return type:

SimpleActiveLearningJob

classmethod from_rkf(path)[source]

Initialize a job from a simple_active_learning.rkf file.

Parameters:

path (str) – Path to a simple_active_learning.rkf file

Returns:

A new SimpleActiveLearningJob instance based on the information found in path.

Return type:

SimpleActiveLearningJob

classmethod from_input(text_input)[source]

Initialize a job from text input.

Parameters:

text_input (str) – A multiline text input

Returns:

A SimpleActiveLearningJob

Return type:

SimpleActiveLearningJob

classmethod restart_from(job, name='simple_active_learning_job', molecule=None, keep_initial_reference_data_settings=False, job_prefix=None)[source]

Returns a SimpleActiveLearningJob with LoadModel set appropriately.

Parameters:
  • job (Union[SimpleActiveLearningJob, str, Path]) – A previously finished SimpleActiveLearningJob (or path to its results folder)

  • molecule (Optional[Molecule], default None) – Input molecule for the new job. If None, use the final molecule from job.

  • keep_initial_reference_data_settings (bool, default False) – Whether to keep the ActiveLearning%InitialReferenceData block from the original job.

Returns:

Returns a new SimpleActiveLearningJob.

Return type:

SimpleActiveLearningJob

get_errormsg()[source]

Returns the contents of the jobname.err file if it exists. If the file does not exist an empty string is returned.

Returns:

The error message

Return type:

str

get_input()[source]

Obtain the input string.

Returns:

An input string.

Return type:

str

get_runscript()[source]

Generates the runscript. Use self.settings.runscript.preamble_lines = ['line1', 'line2'] or similarly for self.settings.runscript.postamble_lines to set custom settings.

self.settings.runscript.nproc controls the total number of cores to run on.

check()[source]

Returns True if “NORMAL TERMINATION” is given in the General section of simple_active_learning.rkf.

ok()[source]

Synonym for check()

run(jobrunner=None, jobmanager=None, watch=False, **kwargs)[source]

Runs the job

property input

scm.inputs model input

SimpleActiveLearningResults

Note

You should not initialize SimpleActiveLearningResults yourself. Instead always access it as job.results, where job is of type SimpleActiveLearningJob.

class SimpleActiveLearningResults(job)[source]

Results class for SimpleActiveLearningJob

get_errormsg()[source]

Returns the error message of this calculation if any were raised.

Returns:

String containing the error message.

Return type:

str

rkfpath(file='simple_active_learning')[source]

Returns path to simple_active_learning.rkf

Returns:

Path to simple_active_learning.rkf

Return type:

str

readrkf(section, variable)[source]

Reads simple_active_learning.rkf

get_simulation_directory(step=None, attempt=None, allow_final=True)[source]

Returns the absolute path to a simulation directory.

step: optional, int

The step number. If not specified will be autodetected to the last step.

attempt: optional, int

The attempt number. If not specified will be autodetected to the last attempt.

allow_final: bool

If True and step=None and attempt=None, then it will return final_production_simulation if it exists.

get_main_molecule(allow_final=True)[source]

Returns AMSResults.get_main_molecule() on the main simulation job.

Parameters:

allow_final (bool, optional) – _description_, defaults to True

Returns:

_description_

Return type:

Union[Molecule, Dict[str, Molecule], None]

get_params_results_directory(step=None, attempt=None, allow_final=True)[source]

Returns the absolute path to a ParAMS results directory that can be loaded with ParAMSJob.load_external or used as LoadModel in ParAMS or SimpleActiveLearning input.

step: optional, int

The step number. If not specified will be autodetected to the last step.

attempt: optional, int

The attempt number. If not specified will be autodetected to the last attempt.

allow_final: bool

If True and step=None and attempt=None, then it will return final_training/results if it exists.

get_params_job(step=None, attempt=None, allow_final=True)[source]

Returns the latest ParAMSJob. This can be used to analyze results from the parametrization.

Parameters:
  • step (Optional[int], optional) – _description_, defaults to None

  • attempt (Optional[int], optional) – _description_, defaults to None

  • allow_final (bool, optional) – _description_, defaults to True

Returns:

_description_

Return type:

ParAMSJob

get_production_engine_settings(step=None, attempt=None, allow_final=True)[source]

Returns the production engine settings from the ParAMSJob

get_reference_data_directory(step=None, attempt=None)[source]

Returns the absolute path to a reference data directory that can be opened in the ParAMS GUI or which lets you initialize a ParAMSJob with ParAMSJob.from_yaml()

step: optional, int

The step number. If not specified will be autodetected to the last step.

attempt: optional, int

The attempt number. If not specified will be autodetected to the last attempt.

allow_final: bool

If True and step=None and attempt=None, then it will return final_training/results if it exists.