Conformer Search Settings
Define conformer generation and clustering settings.
ConformerProperties
pydantic-model
Bases: BaseModel
Properties of a conformer or of a population-weighted conformer ensemble.
Attributes:
| Name | Type | Description |
|---|---|---|
solvent_accessible_surface_area |
PositiveFloat | None
|
SASA (Ų); ensemble: averaged |
polar_solvent_accessible_surface_area |
NonNegativeFloat | None
|
SASA of non-C/H atoms (Ų); ensemble: averaged |
radius_of_gyration |
PositiveFloat | None
|
radius of gyration (Å); ensemble: averaged |
dipole |
NonNegativeFloat | None
|
dipole magnitude about the center of mass (Debye); ensemble: root-mean-square |
mulliken_charges |
FloatPerAtom | None
|
partial atomic charges (e); ensemble only: averaged per atom |
excitation_energies |
list[float] | None
|
excitation energies (Hartree); ensemble only: every conformer's, unweighted |
oscillator_strengths |
list[float] | None
|
oscillator strengths, parallel to |
rotatory_strengths |
list[float] | None
|
ECD rotatory strengths (10⁻⁴⁰ esu²·cm²), parallel to |
vibrational_frequencies |
list[float] | None
|
real vibrational frequencies (cm⁻¹); ensemble only: every conformer's, unweighted |
ir_intensities |
list[float] | None
|
IR intensities (km/mol), parallel to |
Show JSON schema:
{
"description": "Properties of a conformer or of a population-weighted conformer ensemble.\n\nAttributes:\n solvent_accessible_surface_area: SASA (\u00c5\u00b2); ensemble: averaged\n polar_solvent_accessible_surface_area: SASA of non-C/H atoms (\u00c5\u00b2); ensemble: averaged\n radius_of_gyration: radius of gyration (\u00c5); ensemble: averaged\n dipole: dipole magnitude about the center of mass (Debye); ensemble: root-mean-square\n mulliken_charges: partial atomic charges (e); ensemble only: averaged per atom\n excitation_energies: excitation energies (Hartree); ensemble only: every conformer's, unweighted\n oscillator_strengths: oscillator strengths, parallel to `excitation_energies`; ensemble only: each weighted\n rotatory_strengths: ECD rotatory strengths (10\u207b\u2074\u2070 esu\u00b2\u00b7cm\u00b2), parallel to `excitation_energies`; ensemble only: each weighted\n vibrational_frequencies: real vibrational frequencies (cm\u207b\u00b9); ensemble only: every conformer's, unweighted\n ir_intensities: IR intensities (km/mol), parallel to `vibrational_frequencies`; ensemble only: each weighted",
"properties": {
"solvent_accessible_surface_area": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Solvent Accessible Surface Area"
},
"polar_solvent_accessible_surface_area": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Polar Solvent Accessible Surface Area"
},
"radius_of_gyration": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Radius Of Gyration"
},
"dipole": {
"anyOf": [
{
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Dipole"
},
"mulliken_charges": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Mulliken Charges"
},
"excitation_energies": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Excitation Energies"
},
"oscillator_strengths": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Oscillator Strengths"
},
"rotatory_strengths": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Rotatory Strengths"
},
"vibrational_frequencies": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Vibrational Frequencies"
},
"ir_intensities": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Ir Intensities"
}
},
"title": "ConformerProperties",
"type": "object"
}
Fields:
-
solvent_accessible_surface_area(PositiveFloat | None) -
polar_solvent_accessible_surface_area(NonNegativeFloat | None) -
radius_of_gyration(PositiveFloat | None) -
dipole(NonNegativeFloat | None) -
mulliken_charges(FloatPerAtom | None) -
excitation_energies(list[float] | None) -
oscillator_strengths(list[float] | None) -
rotatory_strengths(list[float] | None) -
vibrational_frequencies(list[float] | None) -
ir_intensities(list[float] | None)
Validators:
ConformerClusteringDescriptor
Bases: LowercaseStrEnum
Potential descriptors to employ in conformer clustering.
ConformerClusteringSettings
pydantic-model
Bases: BaseModel
Settings for clustering conformers based on their three-dimensional properties.
The properties used for clustering by default are: - Solvent-accessible surface area - Polar solvent-accessible surface area - Radius of gyration - Plane of best fit - Normalized principal moment ratios 1 and 2
Rowan uses k-means clustering to identify representative conformers. This loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).
Attributes:
| Name | Type | Description |
|---|---|---|
num_clusters |
PositiveInt
|
number of clusters to include |
conformers_per_cluster |
PositiveInt
|
number of conformers to pick from each cluster |
descriptors |
list[ConformerClusteringDescriptor]
|
conformer properties used for clustering |
Show JSON schema:
{
"$defs": {
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
}
},
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\nAttributes:\n num_clusters: number of clusters to include\n conformers_per_cluster: number of conformers to pick from each cluster\n descriptors: conformer properties used for clustering",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
}
Fields:
-
descriptors(list[ConformerClusteringDescriptor]) -
num_clusters(PositiveInt) -
conformers_per_cluster(PositiveInt)
ConformerGenSettings
pydantic-model
Bases: BaseModel
Conformer generation settings.
Conformers are generated and an initial screening is performed to remove duplicates and high-energy conformers.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
constraints for conformer generation |
nci |
bool
|
add a constraining potential for non-covalent interactions |
max_confs |
PositiveInt | None
|
maximum number of conformers to keep |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Conformer generation settings.\n\nConformers are generated and an initial screening is performed to remove duplicates and high-energy conformers.\n\nAttributes:\n constraints: constraints for conformer generation\n nci: add a constraining potential for non-covalent interactions\n max_confs: maximum number of conformers to keep",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
}
},
"title": "ConformerGenSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None)
ETKDGSettings
pydantic-model
Bases: ConformerGenSettings
Settings for ETKDG conformer generation.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
frozen atoms, bond distances (Angstrom), angles and dihedrals (degrees); omitted values preserve the input geometry |
nci |
bool
|
add a constraining potential for non-covalent interactions (not supported in ETKDG) |
max_confs |
PositiveInt | None
|
maximum number of conformers to keep |
num_initial_confs |
int
|
number of initial conformers to generate |
num_confs_considered |
int
|
number of conformers to consider for optimization |
max_mmff_energy |
float | None
|
MMFF energy cutoff |
max_mmff_iterations |
int
|
MMFF optimization iterations |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for ETKDG conformer generation.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate\n num_confs_considered: number of conformers to consider for optimization\n max_mmff_energy: MMFF energy cutoff\n max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
num_initial_confs(int) -
num_confs_considered(int) -
max_mmff_iterations(int) -
max_mmff_energy(float | None) -
settings_type(Literal['etkdg'])
Validators:
-
check_constraints→constraints -
check_nci→nci
check_constraints
pydantic-validator
Convert ETKDG constraints to an immutable sequence.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
Sequence[Constraint]
|
geometric constraints |
required |
Returns:
| Type | Description |
|---|---|
Sequence[Constraint]
|
constraints as a tuple |
check_nci
pydantic-validator
Reject NCI potentials for ETKDG.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nci
|
bool
|
indicates that an NCI potential was requested |
required |
Returns:
| Type | Description |
|---|---|
Literal[False]
|
disabled NCI setting |
Raises:
| Type | Description |
|---|---|
ValueError
|
NCI is enabled |
iMTDSpeeds
Bases: LowercaseStrEnum
Select the speed preset for iMTD conformer generation.
iMTDSettings
pydantic-model
Bases: ConformerGenSettings, ABC
Settings for iMTD style conformer generation.
See https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202 and https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825 for how quick, superquick, and megaquick are defined.
See build_imtd_setings(mode) for sensible defaults.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
constraints to add |
nci |
bool
|
add an ellipsoide potential around the input structure |
max_confs |
PositiveInt | None
|
maximum number of conformers to keep |
mtd_method |
XTBMethod
|
method for the metadynamics |
mtd_runtype |
str
|
algorithm used |
speed |
iMTDSpeeds
|
speed of the calculations (CREST specific setting) |
reopt |
bool
|
re-optimize conformers (corrects for the lack of rotamer metadynamics and GC) |
free_energy_weights |
bool
|
calculate frequencies and re-weight based on free energies |
energy_window |
PositiveFloat | None
|
energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed |
solvent_settings |
SolventSettings | None
|
solvent to use, if any |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"iMTDSpeeds": {
"description": "Select the speed preset for iMTD conformer generation.",
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nAttributes:\n constraints: constraints to add\n nci: add an ellipsoide potential around the input structure\n max_confs: maximum number of conformers to keep\n\n mtd_method: method for the metadynamics\n mtd_runtype: algorithm used\n speed: speed of the calculations (CREST specific setting)\n reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n free_energy_weights: calculate frequencies and re-weight based on free energies\n energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
settings_type(Literal['imtd']) -
mtd_method(XTBMethod) -
mtd_runtype(str) -
speed(iMTDSpeeds) -
reopt(bool) -
free_energy_weights(bool) -
energy_window(PositiveFloat | None) -
solvent_settings(SolventSettings | None)
Validators:
validate_and_build_imtdgc_settings
pydantic-validator
Require a supported solvent model for iMTD.
Returns:
| Type | Description |
|---|---|
Self
|
validated settings |
Raises:
| Type | Description |
|---|---|
ValueError
|
solvent model is unsupported |
from_mode
classmethod
Settings for iMTD style conformer generation.
RECKLESS
- GFN-FF//MTD(GFN-FF)
- Megaquick
- No GC
- No rotamer metadynamics
- Energy window = 5.0
- Run scaling factor = 0.5
- 6 MTD runs
RAPID: - GFN0//MTD(GFN-FF) - Superquick - No GC - No rotamer metadynamics - Energy window = 5.0 - Run scaling factor = 0.5 - 6 MTD runs CAREFUL: - GFN2//MTD(GFN-FF) - Quick - GC (for iMTD-GC) - Rotamer metadynamics (for iMTD-GC) - Energy window = 5.0 - Run scaling factor = 0.5 - 6 MTD runs METICULOUS: - GFN2//MTD(GFN2) - "Normal" - GC (for iMTD-GC) - Rotamer metadynamics (for iMTD-GC) - Energy window = 6.0 - Run scaling factor = 1 - 14 MTD runs (2 with extreme values)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mode
|
Mode
|
effort mode to apply |
required |
iMTDGCSettings
pydantic-model
Bases: iMTDSettings
Configure iMTD with genetic crossing.
Attributes:
| Name | Type | Description |
|---|---|---|
run_type |
str
|
iMTD run type sent to the conformer generator |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"iMTDSpeeds": {
"description": "Select the speed preset for iMTD conformer generation.",
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Configure iMTD with genetic crossing.\n\nAttributes:\n run_type: iMTD run type sent to the conformer generator",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"run_type": {
"default": "imtdgc",
"title": "Run Type",
"type": "string"
}
},
"title": "iMTDGCSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
settings_type(Literal['imtd']) -
mtd_method(XTBMethod) -
mtd_runtype(str) -
speed(iMTDSpeeds) -
reopt(bool) -
free_energy_weights(bool) -
energy_window(PositiveFloat | None) -
solvent_settings(SolventSettings | None) -
run_type(str)
Validators:
iMTDsMTDSettings
pydantic-model
Bases: iMTDSettings
Configure iMTD with static metadynamics.
Attributes:
| Name | Type | Description |
|---|---|---|
run_type |
str
|
iMTD run type sent to the conformer generator |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"iMTDSpeeds": {
"description": "Select the speed preset for iMTD conformer generation.",
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Configure iMTD with static metadynamics.\n\nAttributes:\n run_type: iMTD run type sent to the conformer generator",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"run_type": {
"default": "imtd-smtd",
"title": "Run Type",
"type": "string"
}
},
"title": "iMTDsMTDSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
settings_type(Literal['imtd']) -
mtd_method(XTBMethod) -
mtd_runtype(str) -
speed(iMTDSpeeds) -
reopt(bool) -
free_energy_weights(bool) -
energy_window(PositiveFloat | None) -
solvent_settings(SolventSettings | None) -
run_type(str)
Validators:
LyrebirdSettings
pydantic-model
Bases: ConformerGenSettings
Settings for Lyrebird-based conformer generation.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
constraints for conformer generation (not supported) |
nci |
bool
|
add a constraining potential for non-covalent interactions (not supported) |
max_confs |
PositiveInt | None
|
maximum number of conformers to keep |
num_initial_confs |
int
|
number of initial conformers to generate |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for Lyrebird-based conformer generation.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
num_initial_confs(int) -
settings_type(Literal['lyrebird'])
Validators:
-
check_constraints→constraints -
check_nci→nci
check_constraints
pydantic-validator
Reject geometric constraints for Lyrebird.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
Sequence[Constraint]
|
geometric constraints |
required |
Returns:
| Type | Description |
|---|---|
Sequence[Constraint]
|
empty constraint tuple |
Raises:
| Type | Description |
|---|---|
ValueError
|
constraints were provided |
check_nci
pydantic-validator
Reject NCI potentials for Lyrebird.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nci
|
bool
|
indicates that an NCI potential was requested |
required |
Returns:
| Type | Description |
|---|---|
Literal[False]
|
disabled NCI setting |
Raises:
| Type | Description |
|---|---|
ValueError
|
NCI is enabled |
MonteCarloMultipleMinimumSettings
pydantic-model
Bases: ConformerGenSettings
Settings for Monte-Carlo-multiple-minimum-based conformer generation.
Default values recommended by Nick Casetti.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
constraints for conformer generation (not supported) |
nci |
bool
|
add a constraining potential for non-covalent interactions (not supported) |
max_confs |
PositiveInt | None
|
maximum number of conformers to keep |
num_monte_carlo_iterations |
int
|
number of Monte Carlo iterations to run |
rmsd_threshold |
float
|
threshold to determine if MCMM output structures are identical |
energy_window |
float
|
maximum energy window above the minimum-energy conformer above which to retain (kcal/mol) |
energy_settings |
Settings
|
energy computation method for Monte Carlo steps |
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\nAttributes:\n name: basis set name (e.g., def2-SVP, cc-pVDZ)\n overrides: element or atom-specific basis set overrides\n cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\nAttributes:\n name: basis set name for override\n atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\nAttributes:\n requested_compute_type: requested hardware type\n compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"mango_1_0_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"OmegaTuning": {
"description": "Select a strategy for tuning the range-separation parameter omega.",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\nAttributes:\n max_steps: maximum number of optimization steps\n transition_state: perform transition state optimization\n recalc_hess_every: recalculate Hessian every n steps (0 = never)\n max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n energy_threshold: convergence threshold for energy change, in Hartree\n optimize_cell: optimize unit cell (periodic systems only)\n constraints: geometric constraints to apply\n save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\nAttributes:\n plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n smearing_type: occupations smearing type\n smearing_width: smearing width, if relevant (Hartree)\n hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\nAttributes:\n max_iters: maximum number of SCF iterations to permit\n soscf: use SOSCF (second-order SCF) when true.",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\nAttributes:\n mode: calculation mode (affects thresholds for optimizations, etc.)\n tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n method: computational method\n basis_set: basis set to use (autopopulated for 3c methods)\n engine: computational engine to use (auto-selected if None)\n corrections: list of corrections to apply (e.g. D3BJ, D4)\n solvent_settings: solvent model settings (if any)\n omega: range-separation parameter or tuning method (parameter in Bohr\u207b\u00b9)\n excited_state_settings: settings for excited-state calculations (if any)\n pbc_dft_settings: settings specific to DFT calculations on periodic systems\n scf_settings: SCF settings\n opt_settings: geometry optimization settings\n thermochem_settings: thermochemistry settings\n compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nAttributes:\n tda: use Tamm-Dancoff approximation\n num_excitations: positive number of excitations to calculate\n target_root: positive root to target (for gradient/optimization); must not exceed `num_excitations` when set\n settings_type: excited-state settings discriminator, fixed to `tddft_settings`",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\nAttributes:\n cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n temperature: temperature for thermochemistry, in K\n scaling_factor: frequency scaling factor\n concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"description": "Select when to use second-order SCF convergence.",
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
}
},
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\n\nDefault values recommended by Nick Casetti.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_monte_carlo_iterations: number of Monte Carlo iterations to run\n rmsd_threshold: threshold to determine if MCMM output structures are identical\n energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n energy_settings: energy computation method for Monte Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
energy_settings(Settings) -
num_monte_carlo_iterations(int) -
rmsd_threshold(float) -
energy_window(float) -
settings_type(Literal['monte_carlo_multiple_minimum'])
Validators:
-
check_constraints→constraints -
check_nci→nci
check_constraints
pydantic-validator
Reject geometric constraints for Monte Carlo conformer generation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
Sequence[Constraint]
|
geometric constraints |
required |
Returns:
| Type | Description |
|---|---|
Sequence[Constraint]
|
empty constraint tuple |
Raises:
| Type | Description |
|---|---|
ValueError
|
constraints were provided |
check_nci
pydantic-validator
Reject NCI potentials for Monte Carlo conformer generation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nci
|
bool
|
indicates that an NCI potential was requested |
required |
Returns:
| Type | Description |
|---|---|
Literal[False]
|
disabled NCI setting |
Raises:
| Type | Description |
|---|---|
ValueError
|
NCI is enabled |
OpenConfSettings
pydantic-model
Bases: ConformerGenSettings
Settings for OpenConf-based conformer generation.
OpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration strategy with PRISM deduplication.
Attributes:
| Name | Type | Description |
|---|---|---|
constraints |
Sequence[Constraint]
|
frozen atoms, bond distances (Angstrom), angles and dihedrals (degrees); omitted values preserve the input geometry |
nci |
bool
|
not supported |
max_confs |
PositiveInt | None
|
maximum number of conformers to return |
n_steps |
PositiveInt
|
number of MCMM exploration steps (primary quality/speed lever) |
energy_window_kcal |
PositiveFloat
|
energy window for keeping conformers (kcal/mol) |
parent_strategy |
Literal['softmax', 'uniform', 'best']
|
how to select parent conformers for mutation - "softmax": energy-biased; favors low-energy basins (good for NMR/property prediction) - "uniform": random; maximizes diversity (good for docking) - "best": always mutate the lowest-energy conformer; fastest but least diverse |
final_select |
Literal['energy', 'diverse']
|
how the final conformer set is selected - "diverse": k-means clustering on 3D shape descriptors; one conformer per cluster - "energy": lowest-energy conformers only (best for Boltzmann-weighted applications) |
do_final_refine |
bool
|
run full MMFF minimization on final set (slower but more accurate geometries) |
Show JSON schema:
{
"$defs": {
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
}
},
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: not supported\n max_confs: maximum number of conformers to return\n\n n_steps: number of MCMM exploration steps (primary quality/speed lever)\n energy_window_kcal: energy window for keeping conformers (kcal/mol)\n parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n\n final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n\n do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
}
Fields:
-
constraints(Sequence[Constraint]) -
nci(bool) -
max_confs(PositiveInt | None) -
n_steps(PositiveInt) -
energy_window_kcal(PositiveFloat) -
parent_strategy(Literal['softmax', 'uniform', 'best']) -
final_select(Literal['energy', 'diverse']) -
do_final_refine(bool) -
settings_type(Literal['openconf'])
Validators:
-
check_constraints→constraints -
check_nci→nci
check_constraints
pydantic-validator
Convert OpenConf constraints to an immutable sequence.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
Sequence[Constraint]
|
geometric constraints |
required |
Returns:
| Type | Description |
|---|---|
Sequence[Constraint]
|
constraints as a tuple |
check_nci
pydantic-validator
Reject NCI potentials for OpenConf.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nci
|
bool
|
indicates that an NCI potential was requested |
required |
Returns:
| Type | Description |
|---|---|
Literal[False]
|
disabled NCI setting |
Raises:
| Type | Description |
|---|---|
ValueError
|
NCI is enabled |
ConformerGenMixin
pydantic-model
Bases: BaseModel
Mixin for classes need conformer generation.
Attributes:
| Name | Type | Description |
|---|---|---|
conf_gen_settings |
ConformerGenSettingsUnion | None
|
settings for conformer generation |
max_confs |
int | None
|
maximum number of conformers to keep |
conformer_clustering_settings |
ConformerClusteringSettings | None
|
how to cluster the conformers (if at all) |
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\nAttributes:\n name: basis set name (e.g., def2-SVP, cc-pVDZ)\n overrides: element or atom-specific basis set overrides\n cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\nAttributes:\n name: basis set name for override\n atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\nAttributes:\n requested_compute_type: requested hardware type\n compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
},
"ConformerClusteringSettings": {
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\nAttributes:\n num_clusters: number of clusters to include\n conformers_per_cluster: number of conformers to pick from each cluster\n descriptors: conformer properties used for clustering",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"ETKDGSettings": {
"description": "Settings for ETKDG conformer generation.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate\n num_confs_considered: number of conformers to consider for optimization\n max_mmff_energy: MMFF energy cutoff\n max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"LyrebirdSettings": {
"description": "Settings for Lyrebird-based conformer generation.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"mango_1_0_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"MonteCarloMultipleMinimumSettings": {
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\n\nDefault values recommended by Nick Casetti.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_monte_carlo_iterations: number of Monte Carlo iterations to run\n rmsd_threshold: threshold to determine if MCMM output structures are identical\n energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n energy_settings: energy computation method for Monte Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
},
"OmegaTuning": {
"description": "Select a strategy for tuning the range-separation parameter omega.",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OpenConfSettings": {
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: not supported\n max_confs: maximum number of conformers to return\n\n n_steps: number of MCMM exploration steps (primary quality/speed lever)\n energy_window_kcal: energy window for keeping conformers (kcal/mol)\n parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n\n final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n\n do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\nAttributes:\n max_steps: maximum number of optimization steps\n transition_state: perform transition state optimization\n recalc_hess_every: recalculate Hessian every n steps (0 = never)\n max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n energy_threshold: convergence threshold for energy change, in Hartree\n optimize_cell: optimize unit cell (periodic systems only)\n constraints: geometric constraints to apply\n save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\nAttributes:\n plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n smearing_type: occupations smearing type\n smearing_width: smearing width, if relevant (Hartree)\n hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\nAttributes:\n max_iters: maximum number of SCF iterations to permit\n soscf: use SOSCF (second-order SCF) when true.",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\nAttributes:\n mode: calculation mode (affects thresholds for optimizations, etc.)\n tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n method: computational method\n basis_set: basis set to use (autopopulated for 3c methods)\n engine: computational engine to use (auto-selected if None)\n corrections: list of corrections to apply (e.g. D3BJ, D4)\n solvent_settings: solvent model settings (if any)\n omega: range-separation parameter or tuning method (parameter in Bohr\u207b\u00b9)\n excited_state_settings: settings for excited-state calculations (if any)\n pbc_dft_settings: settings specific to DFT calculations on periodic systems\n scf_settings: SCF settings\n opt_settings: geometry optimization settings\n thermochem_settings: thermochemistry settings\n compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nAttributes:\n tda: use Tamm-Dancoff approximation\n num_excitations: positive number of excitations to calculate\n target_root: positive root to target (for gradient/optimization); must not exceed `num_excitations` when set\n settings_type: excited-state settings discriminator, fixed to `tddft_settings`",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\nAttributes:\n cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n temperature: temperature for thermochemistry, in K\n scaling_factor: frequency scaling factor\n concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"description": "Select when to use second-order SCF convergence.",
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
},
"iMTDSettings": {
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nAttributes:\n constraints: constraints to add\n nci: add an ellipsoide potential around the input structure\n max_confs: maximum number of conformers to keep\n\n mtd_method: method for the metadynamics\n mtd_runtype: algorithm used\n speed: speed of the calculations (CREST specific setting)\n reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n free_energy_weights: calculate frequencies and re-weight based on free energies\n energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
},
"iMTDSpeeds": {
"description": "Select the speed preset for iMTD conformer generation.",
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Mixin for classes need conformer generation.\n\nAttributes:\n conf_gen_settings: settings for conformer generation\n max_confs: maximum number of conformers to keep\n conformer_clustering_settings: how to cluster the conformers (if at all)",
"properties": {
"conf_gen_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"etkdg": "#/$defs/ETKDGSettings",
"imtd": "#/$defs/iMTDSettings",
"lyrebird": "#/$defs/LyrebirdSettings",
"monte_carlo_multiple_minimum": "#/$defs/MonteCarloMultipleMinimumSettings",
"openconf": "#/$defs/OpenConfSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/ETKDGSettings"
},
{
"$ref": "#/$defs/iMTDSettings"
},
{
"$ref": "#/$defs/LyrebirdSettings"
},
{
"$ref": "#/$defs/MonteCarloMultipleMinimumSettings"
},
{
"$ref": "#/$defs/OpenConfSettings"
}
]
},
{
"type": "null"
}
],
"title": "Conf Gen Settings"
},
"max_confs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"conformer_clustering_settings": {
"anyOf": [
{
"$ref": "#/$defs/ConformerClusteringSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"conf_gen_settings"
],
"title": "ConformerGenMixin",
"type": "object"
}
Fields:
-
conf_gen_settings(ConformerGenSettingsUnion | None) -
max_confs(int | None) -
conformer_clustering_settings(ConformerClusteringSettings | None)
ConformerSearchMixin
pydantic-model
Bases: ConformerGenMixin, MultiStageOptMixin
Mixin for classes need conformer search—a combination of conformer generation and optimization.
Inherited (ConformerGenMixin):
Attributes:
| Name | Type | Description |
|---|---|---|
conf_gen_settings |
ConformerGenSettingsUnion | None
|
settings for conformer generation |
Inherited (MultiStageOptMixin):
multistage_opt_settings: settings for the optimization
Show JSON schema:
{
"$defs": {
"BasisSet": {
"description": "Atomic orbital basis set.\n\nAttributes:\n name: basis set name (e.g., def2-SVP, cc-pVDZ)\n overrides: element or atom-specific basis set overrides\n cutoff_threshold: basis function screening threshold",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"overrides": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/BasisSetOverride"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [],
"title": "Overrides"
},
"cutoff_threshold": {
"default": 1e-10,
"exclusiveMinimum": 0,
"title": "Cutoff Threshold",
"type": "number"
}
},
"required": [
"name"
],
"title": "BasisSet",
"type": "object"
},
"BasisSetOverride": {
"description": "Basis set override for specific atoms or elements.\n\nAttributes:\n name: basis set name for override\n atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n atoms: 1-indexed atom indices to override (mutually exclusive with atomic_numbers)",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"atomic_numbers": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atomic Numbers"
},
"atoms": {
"anyOf": [
{
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Atoms"
}
},
"required": [
"name"
],
"title": "BasisSetOverride",
"type": "object"
},
"ComputeSettings": {
"description": "Hardware compute settings.\n\nAttributes:\n requested_compute_type: requested hardware type\n compute_type_used: actual hardware type used (set after execution)",
"properties": {
"requested_compute_type": {
"$ref": "#/$defs/ComputeType",
"default": "cpu"
},
"compute_type_used": {
"anyOf": [
{
"$ref": "#/$defs/ComputeType"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "ComputeSettings",
"type": "object"
},
"ComputeType": {
"description": "Hardware compute type.",
"enum": [
"cpu",
"gpu",
"auto"
],
"title": "ComputeType",
"type": "string"
},
"ConformerClusteringDescriptor": {
"description": "Potential descriptors to employ in conformer clustering.",
"enum": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"title": "ConformerClusteringDescriptor",
"type": "string"
},
"ConformerClusteringSettings": {
"description": "Settings for clustering conformers based on their three-dimensional properties.\n\nThe properties used for clustering by default are:\n- Solvent-accessible surface area\n- Polar solvent-accessible surface area\n- Radius of gyration\n- Plane of best fit\n- Normalized principal moment ratios 1 and 2\n\nRowan uses k-means clustering to identify representative conformers.\nThis loosely follows Wilcken and co-workers (10.1007/s10822-020-00337-7).\n\nAttributes:\n num_clusters: number of clusters to include\n conformers_per_cluster: number of conformers to pick from each cluster\n descriptors: conformer properties used for clustering",
"properties": {
"descriptors": {
"default": [
"solvent_accessible_surface_area",
"polar_solvent_accessible_surface_area",
"radius_of_gyration",
"plane_of_best_fit",
"normalized_principal_moment_ratio_1",
"normalized_principal_moment_ratio_2"
],
"items": {
"$ref": "#/$defs/ConformerClusteringDescriptor"
},
"title": "Descriptors",
"type": "array"
},
"num_clusters": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"conformers_per_cluster": {
"default": 3,
"exclusiveMinimum": 0,
"title": "Conformers Per Cluster",
"type": "integer"
}
},
"title": "ConformerClusteringSettings",
"type": "object"
},
"Constraint": {
"description": "Represents a single (absolute) constraint.\n\nAttributes:\n constraint_type: which type\n atoms: atoms in question (1-indexed)\n value: value to constrain to; leaving blank sets current value",
"properties": {
"constraint_type": {
"$ref": "#/$defs/ConstraintType"
},
"atoms": {
"items": {
"exclusiveMinimum": 0,
"type": "integer"
},
"title": "Atoms",
"type": "array"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
}
},
"required": [
"constraint_type",
"atoms"
],
"title": "Constraint",
"type": "object"
},
"ConstraintType": {
"description": "Different sorts of constraints.",
"enum": [
"bond",
"angle",
"dihedral",
"freeze_atoms"
],
"title": "ConstraintType",
"type": "string"
},
"Correction": {
"description": "Various post hoc corrections.",
"enum": [
"d3bj",
"d3",
"d4",
"gcp"
],
"title": "Correction",
"type": "string"
},
"ETKDGSettings": {
"description": "Settings for ETKDG conformer generation.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: add a constraining potential for non-covalent interactions (not supported in ETKDG)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate\n num_confs_considered: number of conformers to consider for optimization\n max_mmff_energy: MMFF energy cutoff\n max_mmff_iterations: MMFF optimization iterations",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"num_confs_considered": {
"default": 100,
"title": "Num Confs Considered",
"type": "integer"
},
"max_mmff_iterations": {
"default": 500,
"title": "Max Mmff Iterations",
"type": "integer"
},
"max_mmff_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 30,
"title": "Max Mmff Energy"
},
"settings_type": {
"const": "etkdg",
"default": "etkdg",
"title": "Settings Type",
"type": "string"
}
},
"title": "ETKDGSettings",
"type": "object"
},
"Engine": {
"description": "Computational chemistry engine.",
"enum": [
"aimnet2",
"egret",
"gpu4pyscf",
"mace",
"mopac",
"openff",
"omol25",
"orb",
"psi4",
"pyscf",
"quantum_espresso",
"tblite",
"terachem",
"xtb"
],
"title": "Engine",
"type": "string"
},
"LyrebirdSettings": {
"description": "Settings for Lyrebird-based conformer generation.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_initial_confs: number of initial conformers to generate",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"num_initial_confs": {
"default": 300,
"title": "Num Initial Confs",
"type": "integer"
},
"settings_type": {
"const": "lyrebird",
"default": "lyrebird",
"title": "Settings Type",
"type": "string"
}
},
"title": "LyrebirdSettings",
"type": "object"
},
"Method": {
"description": "Computational chemistry method.",
"enum": [
"hf",
"hf_3c",
"pbe",
"bp86",
"b97_3c",
"b97_d3bj",
"r2scan",
"r2scan_3c",
"tpss",
"m06l",
"pbe0",
"b3lyp",
"tpssh",
"m06",
"m062x",
"camb3lyp",
"wb97x_d3",
"wb97x_v",
"wb97x_3c",
"wb97m_v",
"wb97m_d3bj",
"dsd_blyp_d3bj",
"skala",
"aimnet2_wb97md3",
"mace_mp_0",
"mace_mp_0b2_l",
"omol25_conserving_s",
"uma_s_omol",
"uma_s_1_2_omol",
"uma_m_omol",
"uma_s_omat",
"uma_s_1_2_omat",
"uma_m_omat",
"uma_s_omc",
"uma_s_1_2_omc",
"uma_m_omc",
"orb_v3_conservative_inf_omat",
"orb_v3_conservative_omol",
"egret_1",
"egret_1e",
"egret_1t",
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb",
"pm6",
"pm6_d3h4x",
"pm6_org",
"pm7",
"off_sage_2_0_0",
"off_sage_2_2_1",
"off_sage_2_3_0",
"mango_1_0_0",
"smirnoff_2_0_0_amber_am1bcc",
"smirnoff_2_2_1_amber_am1bcc"
],
"title": "Method",
"type": "string"
},
"Mode": {
"description": "Calculation accuracy mode.",
"enum": [
"auto",
"reckless",
"rapid",
"careful",
"meticulous",
"debug",
"manual"
],
"title": "Mode",
"type": "string"
},
"MonteCarloMultipleMinimumSettings": {
"description": "Settings for Monte-Carlo-multiple-minimum-based conformer generation.\n\nDefault values recommended by Nick Casetti.\n\nAttributes:\n constraints: constraints for conformer generation (not supported)\n nci: add a constraining potential for non-covalent interactions (not supported)\n max_confs: maximum number of conformers to keep\n\n num_monte_carlo_iterations: number of Monte Carlo iterations to run\n rmsd_threshold: threshold to determine if MCMM output structures are identical\n energy_window: maximum energy window above the minimum-energy conformer above which to retain (kcal/mol)\n energy_settings: energy computation method for Monte Carlo steps",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"energy_settings": {
"$ref": "#/$defs/Settings",
"default": {
"mode": "rapid",
"tasks": [
"energy",
"charge",
"dipole"
],
"method": "aimnet2_wb97md3",
"basis_set": null,
"engine": "aimnet2",
"corrections": [],
"solvent_settings": null,
"omega": null,
"excited_state_settings": null,
"pbc_dft_settings": null,
"scf_settings": {
"max_iters": 250,
"soscf": "upon_failure"
},
"opt_settings": {
"constraints": [],
"energy_threshold": 5e-05,
"max_displacement_threshold": 0.002,
"max_gradient_threshold": 0.005,
"max_steps": 250,
"optimize_cell": false,
"recalc_hess_every": 0,
"rms_displacement_threshold": 0.001,
"rms_gradient_threshold": 0.0035,
"save_intermediate_steps": true,
"transition_state": false
},
"thermochem_settings": {
"concentration": 0.0408740470708,
"cutoff_frequency": 100.0,
"scaling_factor": 1.0,
"temperature": 298.0
},
"compute_settings": {
"compute_type_used": null,
"requested_compute_type": "cpu"
},
"level_of_theory": "aimnet2_wb97md3"
}
},
"num_monte_carlo_iterations": {
"default": 250,
"title": "Num Monte Carlo Iterations",
"type": "integer"
},
"rmsd_threshold": {
"default": 0.5,
"title": "Rmsd Threshold",
"type": "number"
},
"energy_window": {
"default": 20,
"title": "Energy Window",
"type": "number"
},
"settings_type": {
"const": "monte_carlo_multiple_minimum",
"default": "monte_carlo_multiple_minimum",
"title": "Settings Type",
"type": "string"
}
},
"title": "MonteCarloMultipleMinimumSettings",
"type": "object"
},
"MultiStageOptSettings": {
"description": "Settings for multi-stage optimizations.\n\nAttributes:\n optimization_settings: list of opt settings to apply successively\n singlepoint_settings: final single point settings\n frequencies: calculate frequencies on the last optimization step when true\n\nExamples:\n>>> s1 = Settings(method=Method.GFN2_XTB)\n>>> s2 = Settings(method=Method.R2SCAN3C, solvent_settings=SolventSettings(solvent=Solvent.HEXANE, model=SolventModel.CPCM))\n>>> msos = MultiStageOptSettings(optimization_settings=[s1], singlepoint_settings=s2)\n>>> msos.level_of_theory\n'r2scan_3c/cpcm(hexane)//gfn2_xtb'",
"properties": {
"optimization_settings": {
"default": [],
"items": {
"$ref": "#/$defs/Settings"
},
"title": "Optimization Settings",
"type": "array"
},
"singlepoint_settings": {
"anyOf": [
{
"$ref": "#/$defs/Settings"
},
{
"type": "null"
}
],
"default": null
},
"frequencies": {
"default": false,
"title": "Frequencies",
"type": "boolean"
}
},
"title": "MultiStageOptSettings",
"type": "object"
},
"OmegaTuning": {
"description": "Select a strategy for tuning the range-separation parameter omega.",
"enum": [
"koopmans",
"generalized_koopmans",
"half"
],
"title": "OmegaTuning",
"type": "string"
},
"OpenConfSettings": {
"description": "Settings for OpenConf-based conformer generation.\n\nOpenConf uses a hybrid ETKDG seeding + MCMM torsion-walk exploration\nstrategy with PRISM deduplication.\n\nAttributes:\n constraints: frozen atoms, bond distances (Angstrom), angles and dihedrals\n (degrees); omitted values preserve the input geometry\n\n nci: not supported\n max_confs: maximum number of conformers to return\n\n n_steps: number of MCMM exploration steps (primary quality/speed lever)\n energy_window_kcal: energy window for keeping conformers (kcal/mol)\n parent_strategy: how to select parent conformers for mutation\n - \"softmax\": energy-biased; favors low-energy basins (good for NMR/property prediction)\n - \"uniform\": random; maximizes diversity (good for docking)\n - \"best\": always mutate the lowest-energy conformer; fastest but least diverse\n\n final_select: how the final conformer set is selected\n - \"diverse\": k-means clustering on 3D shape descriptors; one conformer per cluster\n - \"energy\": lowest-energy conformers only (best for Boltzmann-weighted applications)\n\n do_final_refine: run full MMFF minimization on final set (slower but more accurate geometries)",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"n_steps": {
"default": 200,
"exclusiveMinimum": 0,
"title": "N Steps",
"type": "integer"
},
"energy_window_kcal": {
"default": 10.0,
"exclusiveMinimum": 0,
"title": "Energy Window Kcal",
"type": "number"
},
"parent_strategy": {
"default": "softmax",
"enum": [
"softmax",
"uniform",
"best"
],
"title": "Parent Strategy",
"type": "string"
},
"final_select": {
"default": "diverse",
"enum": [
"energy",
"diverse"
],
"title": "Final Select",
"type": "string"
},
"do_final_refine": {
"default": true,
"title": "Do Final Refine",
"type": "boolean"
},
"settings_type": {
"const": "openconf",
"default": "openconf",
"title": "Settings Type",
"type": "string"
}
},
"title": "OpenConfSettings",
"type": "object"
},
"OptimizationSettings": {
"description": "Geometry optimization settings.\n\nAttributes:\n max_steps: maximum number of optimization steps\n transition_state: perform transition state optimization\n recalc_hess_every: recalculate Hessian every n steps (0 = never)\n max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n energy_threshold: convergence threshold for energy change, in Hartree\n optimize_cell: optimize unit cell (periodic systems only)\n constraints: geometric constraints to apply\n save_intermediate_steps: save intermediate geometries",
"properties": {
"max_steps": {
"default": 250,
"exclusiveMinimum": 0,
"title": "Max Steps",
"type": "integer"
},
"transition_state": {
"default": false,
"title": "Transition State",
"type": "boolean"
},
"recalc_hess_every": {
"default": 0,
"title": "Recalc Hess Every",
"type": "integer"
},
"max_gradient_threshold": {
"default": 0.0005,
"exclusiveMinimum": 0,
"title": "Max Gradient Threshold",
"type": "number"
},
"rms_gradient_threshold": {
"default": 0.0003,
"exclusiveMinimum": 0,
"title": "Rms Gradient Threshold",
"type": "number"
},
"max_displacement_threshold": {
"default": 0.002,
"exclusiveMinimum": 0,
"title": "Max Displacement Threshold",
"type": "number"
},
"rms_displacement_threshold": {
"default": 0.001,
"exclusiveMinimum": 0,
"title": "Rms Displacement Threshold",
"type": "number"
},
"energy_threshold": {
"default": 1e-06,
"exclusiveMinimum": 0,
"title": "Energy Threshold",
"type": "number"
},
"optimize_cell": {
"default": false,
"title": "Optimize Cell",
"type": "boolean"
},
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"save_intermediate_steps": {
"default": true,
"title": "Save Intermediate Steps",
"type": "boolean"
}
},
"title": "OptimizationSettings",
"type": "object"
},
"PBCDFTSettings": {
"description": "PBC DFT settings.\n\nAttributes:\n plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n None = use highest cutoff from pseudopotential metadata of elements in structure\n\n kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n smearing_type: occupations smearing type\n smearing_width: smearing width, if relevant (Hartree)\n hubbard_u: DFT+U on-site Coulomb repulsion per element symbol (Hartree)\n None = no DFT+U; \"auto\" = automatic U values from MP database",
"properties": {
"plane_wave_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Wave Cutoff"
},
"charge_density_cutoff": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Charge Density Cutoff"
},
"kpoints": {
"anyOf": [
{
"maxItems": 3,
"minItems": 3,
"prefixItems": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"exclusiveMinimum": 0,
"type": "integer"
}
],
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Kpoints"
},
"smearing_type": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSmearing"
},
{
"type": "null"
}
],
"default": null
},
"smearing_width": {
"default": 0.005,
"exclusiveMinimum": 0,
"title": "Smearing Width",
"type": "number"
},
"hubbard_u": {
"anyOf": [
{
"additionalProperties": {
"exclusiveMinimum": 0,
"type": "number"
},
"type": "object"
},
{
"const": "auto",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Hubbard U"
}
},
"title": "PBCDFTSettings",
"type": "object"
},
"PBCDFTSmearing": {
"description": "Smearing types for occupations in PBC DFT calculations.",
"enum": [
"marzari_vanderbilt",
"methfessel_paxton",
"fermi_dirac",
"gaussian"
],
"title": "PBCDFTSmearing",
"type": "string"
},
"SCFSettings": {
"description": "Settings for SCF convergence.\n\nAttributes:\n max_iters: maximum number of SCF iterations to permit\n soscf: use SOSCF (second-order SCF) when true.",
"properties": {
"max_iters": {
"default": 250,
"title": "Max Iters",
"type": "integer"
},
"soscf": {
"$ref": "#/$defs/UseSOSCF",
"default": "upon_failure"
}
},
"title": "SCFSettings",
"type": "object"
},
"Settings": {
"description": "Settings for (base) computational chemistry calculations.\n\nAttributes:\n mode: calculation mode (affects thresholds for optimizations, etc.)\n tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n method: computational method\n basis_set: basis set to use (autopopulated for 3c methods)\n engine: computational engine to use (auto-selected if None)\n corrections: list of corrections to apply (e.g. D3BJ, D4)\n solvent_settings: solvent model settings (if any)\n omega: range-separation parameter or tuning method (parameter in Bohr\u207b\u00b9)\n excited_state_settings: settings for excited-state calculations (if any)\n pbc_dft_settings: settings specific to DFT calculations on periodic systems\n scf_settings: SCF settings\n opt_settings: geometry optimization settings\n thermochem_settings: thermochemistry settings\n compute_settings: hardware settings",
"properties": {
"mode": {
"$ref": "#/$defs/Mode",
"default": "auto"
},
"tasks": {
"default": [
"energy",
"charge",
"dipole"
],
"items": {
"$ref": "#/$defs/Task"
},
"title": "Tasks",
"type": "array"
},
"method": {
"$ref": "#/$defs/Method",
"default": "hf"
},
"basis_set": {
"anyOf": [
{
"$ref": "#/$defs/BasisSet"
},
{
"type": "null"
}
],
"default": null
},
"engine": {
"$ref": "#/$defs/Engine",
"default": null
},
"corrections": {
"default": [],
"items": {
"$ref": "#/$defs/Correction"
},
"title": "Corrections",
"type": "array"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
},
"omega": {
"anyOf": [
{
"$ref": "#/$defs/OmegaTuning"
},
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Omega"
},
"excited_state_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"tddft_settings": "#/$defs/TDDFTSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/TDDFTSettings"
}
]
},
{
"type": "null"
}
],
"default": null,
"title": "Excited State Settings"
},
"pbc_dft_settings": {
"anyOf": [
{
"$ref": "#/$defs/PBCDFTSettings"
},
{
"type": "null"
}
],
"default": null
},
"scf_settings": {
"$ref": "#/$defs/SCFSettings",
"default": {
"max_iters": 250,
"soscf": "upon_failure"
}
},
"opt_settings": {
"$ref": "#/$defs/OptimizationSettings",
"default": {
"max_steps": 250,
"transition_state": false,
"recalc_hess_every": 0,
"max_gradient_threshold": 0.0005,
"rms_gradient_threshold": 0.0003,
"max_displacement_threshold": 0.002,
"rms_displacement_threshold": 0.001,
"energy_threshold": 1e-06,
"optimize_cell": false,
"constraints": [],
"save_intermediate_steps": true
}
},
"thermochem_settings": {
"$ref": "#/$defs/ThermochemistrySettings",
"default": {
"cutoff_frequency": 100.0,
"temperature": 298.0,
"scaling_factor": 1.0,
"concentration": 0.0408740470708
}
},
"compute_settings": {
"$ref": "#/$defs/ComputeSettings",
"default": {
"requested_compute_type": "cpu",
"compute_type_used": null
}
}
},
"title": "Settings",
"type": "object"
},
"Solvent": {
"description": "Implicit solvent.",
"enum": [
"water",
"nitromethane",
"nitrobenzene",
"toluene",
"benzene",
"chlorobenzene",
"carbontetrachloride",
"dichloroethane",
"dichloromethane",
"chloroform",
"diethylether",
"diisopropylether",
"dimethylsulfoxide",
"tetrahydrofuran",
"cyclohexane",
"aceticacid",
"hexane",
"octane",
"decane",
"ethylacetate",
"acetone",
"acetonitrile",
"methanol",
"ethanol",
"isopropanol",
"octanol",
"dimethylacetamide",
"dimethylformamide",
"n_methylpyrrolidone",
"ethylene_glycol"
],
"title": "Solvent",
"type": "string"
},
"SolventModel": {
"description": "Implicit solvation model.",
"enum": [
"pcm",
"cpcm",
"alpb",
"cosmo",
"cosmo2",
"cosmors",
"gbsa",
"cpcmx",
"smd",
"anysolv"
],
"title": "SolventModel",
"type": "string"
},
"SolventSettings": {
"description": "Implicit solvation settings.\n\nAttributes:\n solvent: solvent to use\n model: solvation model",
"properties": {
"solvent": {
"$ref": "#/$defs/Solvent"
},
"model": {
"$ref": "#/$defs/SolventModel"
}
},
"required": [
"solvent",
"model"
],
"title": "SolventSettings",
"type": "object"
},
"TDDFTSettings": {
"description": "Settings for TDDFT calculations.\n\nAttributes:\n tda: use Tamm-Dancoff approximation\n num_excitations: positive number of excitations to calculate\n target_root: positive root to target (for gradient/optimization); must not exceed `num_excitations` when set\n settings_type: excited-state settings discriminator, fixed to `tddft_settings`",
"properties": {
"tda": {
"default": true,
"title": "Tda",
"type": "boolean"
},
"num_excitations": {
"default": 5,
"exclusiveMinimum": 0,
"title": "Num Excitations",
"type": "integer"
},
"target_root": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Root"
},
"settings_type": {
"const": "tddft_settings",
"default": "tddft_settings",
"title": "Settings Type",
"type": "string"
}
},
"title": "TDDFTSettings",
"type": "object"
},
"Task": {
"description": "Calculation task type.",
"enum": [
"energy",
"gradient",
"optimize",
"optimize_ts",
"charge",
"spin_density",
"dipole",
"hessian",
"frequencies",
"stress",
"band_structure",
"elastic_tensor"
],
"title": "Task",
"type": "string"
},
"ThermochemistrySettings": {
"description": "Thermochemistry calculation settings.\n\nAttributes:\n cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n temperature: temperature for thermochemistry, in K\n scaling_factor: frequency scaling factor\n concentration: concentration, in M (defaults to 1 atm)",
"properties": {
"cutoff_frequency": {
"default": 100,
"minimum": 0,
"title": "Cutoff Frequency",
"type": "number"
},
"temperature": {
"default": 298,
"minimum": 0,
"title": "Temperature",
"type": "number"
},
"scaling_factor": {
"default": 1.0,
"minimum": 0,
"title": "Scaling Factor",
"type": "number"
},
"concentration": {
"default": 0.0408740470708,
"minimum": 0,
"title": "Concentration",
"type": "number"
}
},
"title": "ThermochemistrySettings",
"type": "object"
},
"UseSOSCF": {
"description": "Select when to use second-order SCF convergence.",
"enum": [
"always",
"upon_failure",
"never"
],
"title": "UseSOSCF",
"type": "string"
},
"iMTDSettings": {
"description": "Settings for iMTD style conformer generation.\n\nSee https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/choose_settings.f90#L202\nand https://github.com/crest-lab/crest/blob/5ca82feb2ec4df30a0129db957163c934f085952/src/confparse.f90#L825\nfor how quick, superquick, and megaquick are defined.\n\nSee build_imtd_setings(mode) for sensible defaults.\n\nAttributes:\n constraints: constraints to add\n nci: add an ellipsoide potential around the input structure\n max_confs: maximum number of conformers to keep\n\n mtd_method: method for the metadynamics\n mtd_runtype: algorithm used\n speed: speed of the calculations (CREST specific setting)\n reopt: re-optimize conformers (corrects for the lack of rotamer metadynamics and GC)\n free_energy_weights: calculate frequencies and re-weight based on free energies\n energy_window: energy window used, in kcal/mol (CREST specific setting). if set, overrides default from speed\n solvent_settings: solvent to use, if any",
"properties": {
"constraints": {
"default": [],
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"nci": {
"default": false,
"title": "Nci",
"type": "boolean"
},
"max_confs": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"settings_type": {
"const": "imtd",
"default": "imtd",
"title": "Settings Type",
"type": "string"
},
"mtd_method": {
"default": "gfn_ff",
"enum": [
"gfn_ff",
"gfn0_xtb",
"gfn1_xtb",
"gfn2_xtb",
"g_xtb"
],
"title": "Mtd Method",
"type": "string"
},
"mtd_runtype": {
"default": "imtd-gc",
"title": "Mtd Runtype",
"type": "string"
},
"speed": {
"$ref": "#/$defs/iMTDSpeeds",
"default": "quick"
},
"reopt": {
"default": false,
"title": "Reopt",
"type": "boolean"
},
"free_energy_weights": {
"default": false,
"title": "Free Energy Weights",
"type": "boolean"
},
"energy_window": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Window"
},
"solvent_settings": {
"anyOf": [
{
"$ref": "#/$defs/SolventSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "iMTDSettings",
"type": "object"
},
"iMTDSpeeds": {
"description": "Select the speed preset for iMTD conformer generation.",
"enum": [
"megaquick",
"superquick",
"quick",
"normal",
"extensive"
],
"title": "iMTDSpeeds",
"type": "string"
}
},
"description": "Mixin for classes need conformer search\u2014a combination of conformer generation and optimization.\n\nInherited (ConformerGenMixin):\n\nAttributes:\n conf_gen_settings: settings for conformer generation\n\nInherited (MultiStageOptMixin):\n\n multistage_opt_settings: settings for the optimization",
"properties": {
"multistage_opt_settings": {
"$ref": "#/$defs/MultiStageOptSettings"
},
"conf_gen_settings": {
"anyOf": [
{
"discriminator": {
"mapping": {
"etkdg": "#/$defs/ETKDGSettings",
"imtd": "#/$defs/iMTDSettings",
"lyrebird": "#/$defs/LyrebirdSettings",
"monte_carlo_multiple_minimum": "#/$defs/MonteCarloMultipleMinimumSettings",
"openconf": "#/$defs/OpenConfSettings"
},
"propertyName": "settings_type"
},
"oneOf": [
{
"$ref": "#/$defs/ETKDGSettings"
},
{
"$ref": "#/$defs/iMTDSettings"
},
{
"$ref": "#/$defs/LyrebirdSettings"
},
{
"$ref": "#/$defs/MonteCarloMultipleMinimumSettings"
},
{
"$ref": "#/$defs/OpenConfSettings"
}
]
},
{
"type": "null"
}
],
"title": "Conf Gen Settings"
},
"max_confs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Confs"
},
"conformer_clustering_settings": {
"anyOf": [
{
"$ref": "#/$defs/ConformerClusteringSettings"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"multistage_opt_settings",
"conf_gen_settings"
],
"title": "ConformerSearchMixin",
"type": "object"
}
Fields:
-
multistage_opt_settings(MultiStageOptSettings) -
conf_gen_settings(ConformerGenSettingsUnion | None) -
max_confs(int | None) -
conformer_clustering_settings(ConformerClusteringSettings | None)
Trajectory clustering settings for MD post-processing.
KMeansClusteringSettings
pydantic-model
Bases: BaseModel
K-means trajectory clustering settings.
Attributes:
| Name | Type | Description |
|---|---|---|
num_clusters |
PositiveInt
|
maximum number of clusters |
Show JSON schema:
{
"description": "K-means trajectory clustering settings.\n\nAttributes:\n num_clusters: maximum number of clusters",
"properties": {
"num_clusters": {
"default": 10,
"exclusiveMinimum": 0,
"title": "Num Clusters",
"type": "integer"
},
"settings_type": {
"const": "kmeans",
"default": "kmeans",
"title": "Settings Type",
"type": "string"
}
},
"title": "KMeansClusteringSettings",
"type": "object"
}
Fields:
-
num_clusters(PositiveInt) -
settings_type(Literal['kmeans'])
GreedyClusteringSettings
pydantic-model
Bases: BaseModel
Greedy neighbourhood trajectory clustering settings.
Frames within cutoff_angstrom RMSD of the current cluster centre are
assigned to that cluster; the centre is chosen greedily as the frame with
the most unassigned neighbours.
Attributes:
| Name | Type | Description |
|---|---|---|
cutoff_angstrom |
PositiveFloat
|
RMSD neighbourhood cutoff, in Å |
Show JSON schema:
{
"description": "Greedy neighbourhood trajectory clustering settings.\n\nFrames within `cutoff_angstrom` RMSD of the current cluster centre are\nassigned to that cluster; the centre is chosen greedily as the frame with\nthe most unassigned neighbours.\n\nAttributes:\n cutoff_angstrom: RMSD neighbourhood cutoff, in \u00c5",
"properties": {
"cutoff_angstrom": {
"default": 2.0,
"exclusiveMinimum": 0,
"title": "Cutoff Angstrom",
"type": "number"
},
"settings_type": {
"const": "greedy",
"default": "greedy",
"title": "Settings Type",
"type": "string"
}
},
"title": "GreedyClusteringSettings",
"type": "object"
}
Fields:
-
cutoff_angstrom(PositiveFloat) -
settings_type(Literal['greedy'])