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 PISA (Python Input System for AMS) object.

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.input_classes.drivers.SimpleActiveLearning

PISA object 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 the PISA format. 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

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

PISA format 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.