Skip to content

Settings

Settings pydantic-model

Bases: Base

Settings for (base) computational chemistry calculations.

Parameters:

Name Type Description Default
mode

calculation mode (affects thresholds for optimizations, etc.)

required
tasks

tasks to perform (deprecated, specify in workflows or calculations instead)

required
method

computational method

required
basis_set

basis set to use (autopopulated for 3c methods)

required
engine

computational engine to use (auto-selected if None)

required
corrections

list of corrections to apply (e.g. D3BJ, D4)

required
solvent_settings

solvent model settings (if any)

required
omega

range-separation parameter (Bohr⁻¹) or method to tune it (optional)

required
excited_state_settings

settings for excited-state calculations (if any)

required
pbc_dft_settings

settings specific to DFT calculations on periodic systems

required
scf_settings

SCF settings

required
opt_settings

geometry optimization settings

required
thermochem_settings

thermochemistry settings

required
compute_settings

hardware settings

required
Show JSON schema:
{
  "$defs": {
    "BasisSet": {
      "description": "Atomic orbital basis set.\n\n:param name: basis set name (e.g., def2-SVP, cc-pVDZ)\n:param overrides: element or atom-specific basis set overrides\n:param 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\n:param name: basis set name for override\n:param atomic_numbers: atomic numbers to override (mutually exclusive with atoms)\n:param 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\n:param requested_compute_type: requested hardware type\n:param 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\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param 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",
        "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": "Options for omega (range-separation parameter) tuning",
      "enum": [
        "koopmans",
        "generalized_koopmans",
        "half"
      ],
      "title": "OmegaTuning",
      "type": "string"
    },
    "OptimizationSettings": {
      "description": "Geometry optimization settings.\n\n:param max_steps: maximum number of optimization steps\n:param transition_state: perform transition state optimization\n:param recalc_hess_every: recalculate Hessian every n steps (0 = never)\n:param max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n:param rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n:param max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param energy_threshold: convergence threshold for energy change, in Hartree\n:param optimize_cell: optimize unit cell (periodic systems only)\n:param constraints: geometric constraints to apply\n:param 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\n:param plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n        None = use highest cutoff from pseudopotential metadata of elements in structure\n:param charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n        None = use highest cutoff from pseudopotential metadata of elements in structure\n:param kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n:param smearing_type: occupations smearing type\n:param smearing_width: smearing width, if relevant (Hartree)\n:param 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\n:param max_iters: maximum number of SCF iterations to permit\n:param soscf: whether or not to use SOSCF (second-order SCF).",
      "properties": {
        "max_iters": {
          "default": 250,
          "title": "Max Iters",
          "type": "integer"
        },
        "soscf": {
          "$ref": "#/$defs/UseSOSCF",
          "default": "upon_failure"
        }
      },
      "title": "SCFSettings",
      "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"
      ],
      "title": "SolventModel",
      "type": "string"
    },
    "SolventSettings": {
      "description": "Implicit solvation settings.\n\n:param solvent: solvent to use\n:param 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\nNew:\n:param tda: use Tamm-Dancoff approximation\n:param num_excitations: number of excitations to calculate\n:param target_root: root to target (for gradient/optimization)",
      "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\n:param cutoff_frequency: Cramer/Truhlar quasi-harmonic cutoff, in cm^-1\n:param temperature: temperature for thermochemistry, in K\n:param scaling_factor: frequency scaling factor\n:param 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": {
      "enum": [
        "always",
        "upon_failure",
        "never"
      ],
      "title": "UseSOSCF",
      "type": "string"
    }
  },
  "description": "Settings for (base) computational chemistry calculations.\n\n:param mode: calculation mode (affects thresholds for optimizations, etc.)\n:param tasks: tasks to perform (deprecated, specify in workflows or calculations instead)\n:param method: computational method\n:param basis_set: basis set to use (autopopulated for 3c methods)\n:param engine: computational engine to use (auto-selected if None)\n:param corrections: list of corrections to apply (e.g. D3BJ, D4)\n:param solvent_settings: solvent model settings (if any)\n:param omega: range-separation parameter (Bohr\u207b\u00b9) or method to tune it (optional)\n:param excited_state_settings: settings for excited-state calculations (if any)\n:param pbc_dft_settings: settings specific to DFT calculations on periodic systems\n:param scf_settings: SCF settings\n:param opt_settings: geometry optimization settings\n:param thermochem_settings: thermochemistry settings\n:param 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"
}

Fields:

  • mode (Mode)
  • tasks (UniqueList[Task])
  • method (Method)
  • basis_set (BasisSet | None)
  • engine (Engine)
  • corrections (UniqueList[Correction])
  • solvent_settings (SolventSettings | None)
  • omega (OmegaTuning | PositiveFloat | None)
  • excited_state_settings (ExcitedStateSettingsUnion | None)
  • pbc_dft_settings (PBCDFTSettings | None)
  • scf_settings (SCFSettings)
  • opt_settings (OptimizationSettings)
  • thermochem_settings (ThermochemistrySettings)
  • compute_settings (ComputeSettings)

Validators:

set_defaults pydantic-validator

set_defaults() -> Self

Set the calculation engine and any dependent defaults.

set_mode_auto pydantic-validator

set_mode_auto(mode: Mode) -> Mode

Set the mode to RAPID if AUTO is selected.

parse_basis_set pydantic-validator

parse_basis_set(v: Any) -> BasisSet | dict[str, Any] | None

Turn a string into a BasisSet object. (This is a little crude.)

remove_empty_string pydantic-validator

remove_empty_string(v: list[_T]) -> list[_T]

Remove empty string values.

OptimizationSettings pydantic-model

Bases: Base

Geometry optimization settings.

Parameters:

Name Type Description Default
max_steps

maximum number of optimization steps

required
transition_state

perform transition state optimization

required
recalc_hess_every

recalculate Hessian every n steps (0 = never)

required
max_gradient_threshold

convergence threshold for max gradient, in Hartree/Å

required
rms_gradient_threshold

convergence threshold for RMS gradient, in Hartree/Å

required
max_displacement_threshold

convergence threshold for step displacement, in Å

required
rms_displacement_threshold

convergence threshold for step displacement, in Å

required
energy_threshold

convergence threshold for energy change, in Hartree

required
optimize_cell

optimize unit cell (periodic systems only)

required
constraints

geometric constraints to apply

required
save_intermediate_steps

save intermediate geometries

required
Show JSON schema:
{
  "$defs": {
    "Constraint": {
      "description": "Represents a single (absolute) constraint.\n\n:param constraint_type: which type\n:param atoms: atoms in question (1-indexed)\n:param 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": "Geometry optimization settings.\n\n:param max_steps: maximum number of optimization steps\n:param transition_state: perform transition state optimization\n:param recalc_hess_every: recalculate Hessian every n steps (0 = never)\n:param max_gradient_threshold: convergence threshold for max gradient, in Hartree/\u00c5\n:param rms_gradient_threshold: convergence threshold for RMS gradient, in Hartree/\u00c5\n:param max_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param rms_displacement_threshold: convergence threshold for step displacement, in \u00c5\n:param energy_threshold: convergence threshold for energy change, in Hartree\n:param optimize_cell: optimize unit cell (periodic systems only)\n:param constraints: geometric constraints to apply\n:param 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"
}

Fields:

  • max_steps (PositiveInt)
  • transition_state (bool)
  • recalc_hess_every (int)
  • max_gradient_threshold (PositiveFloat)
  • rms_gradient_threshold (PositiveFloat)
  • max_displacement_threshold (PositiveFloat)
  • rms_displacement_threshold (PositiveFloat)
  • energy_threshold (PositiveFloat)
  • optimize_cell (bool)
  • constraints (Sequence[Constraint])
  • save_intermediate_steps (bool)

loose classmethod

loose(**kwargs: Any) -> Self

Return optimization settings with loose convergence thresholds.

tight classmethod

tight(**kwargs: Any) -> Self

Return optimization settings with tight convergence thresholds.

PBCDFTSmearing

Bases: LowercaseStrEnum

Smearing types for occupations in PBC DFT calculations.

PBCDFTSettings pydantic-model

Bases: BaseModel

PBC DFT settings.

Parameters:

Name Type Description Default
plane_wave_cutoff

plane-wave kinetic-energy cutoff (Hartree); None = use highest cutoff from pseudopotential metadata of elements in structure

required
charge_density_cutoff

charge-density plane-wave cutoff (Hartree); None = use highest cutoff from pseudopotential metadata of elements in structure

required
kpoints

Monkhorst–Pack k-point-grid dimensions; (None -> Å⁻¹ = .3)

required
smearing_type

occupations smearing type

required
smearing_width

smearing width, if relevant (Hartree)

required
hubbard_u

DFT+U on-site Coulomb repulsion per element symbol (Hartree) None = no DFT+U; "auto" = automatic U values from MP database

required
Show JSON schema:
{
  "$defs": {
    "PBCDFTSmearing": {
      "description": "Smearing types for occupations in PBC DFT calculations.",
      "enum": [
        "marzari_vanderbilt",
        "methfessel_paxton",
        "fermi_dirac",
        "gaussian"
      ],
      "title": "PBCDFTSmearing",
      "type": "string"
    }
  },
  "description": "PBC DFT settings.\n\n:param plane_wave_cutoff: plane-wave kinetic-energy cutoff (Hartree);\n        None = use highest cutoff from pseudopotential metadata of elements in structure\n:param charge_density_cutoff: charge-density plane-wave cutoff (Hartree);\n        None = use highest cutoff from pseudopotential metadata of elements in structure\n:param kpoints: Monkhorst\u2013Pack k-point-grid dimensions; (None -> \u00c5\u207b\u00b9 = .3)\n:param smearing_type: occupations smearing type\n:param smearing_width: smearing width, if relevant (Hartree)\n:param 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"
}

Fields:

  • plane_wave_cutoff (PositiveFloat | None)
  • charge_density_cutoff (PositiveFloat | None)
  • kpoints (tuple[PositiveInt, PositiveInt, PositiveInt] | None)
  • smearing_type (PBCDFTSmearing | None)
  • smearing_width (PositiveFloat)
  • hubbard_u (dict[str, PositiveFloat] | Literal['auto'] | None)

ExcitedStateSettings pydantic-model

Bases: BaseModel, ABC

Settings for excited state calculations.

Show JSON schema:
{
  "description": "Settings for excited state calculations.",
  "properties": {},
  "title": "ExcitedStateSettings",
  "type": "object"
}

TDDFTSettings pydantic-model

Bases: ExcitedStateSettings

Settings for TDDFT calculations.

New:

Parameters:

Name Type Description Default
tda

use Tamm-Dancoff approximation

required
num_excitations

number of excitations to calculate

required
target_root

root to target (for gradient/optimization)

required
Show JSON schema:
{
  "description": "Settings for TDDFT calculations.\n\nNew:\n:param tda: use Tamm-Dancoff approximation\n:param num_excitations: number of excitations to calculate\n:param target_root: root to target (for gradient/optimization)",
  "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"
}

Fields:

  • tda (bool)
  • num_excitations (PositiveInt)
  • target_root (PositiveInt | None)
  • settings_type (Literal['tddft_settings'])

Validators:

  • validate_setup