qrunch.chemistry.problem_builders.tools.projectors

Module projectors for projective embedding.

Classes

ManbysLevelShiftProjectorBuilder

Manby level shift projector.

ProjectorBuilderCreator

Orbital assigner creator.

class ManbysLevelShiftProjectorBuilder

Bases: object

Manby level shift projector.

The projector is defined as \(P = \mu S D_{env} S\), where \(\mu\) is the level shift parameter, \(S\) is the overlap matrix, and \(D_{env}\) is the density matrix for the environment.

References: [MSGM12].

__init__(level_shift_parameter: float = 100000.0) None

Initialize the Manbys level shift projector.

Parameters:

level_shift_parameter (float) – Level shift parameter used to create the projector. Defaults to 1e5.

Return type:

None

build_matrix(environment_density_matrix: ndarray[tuple[Any, ...], dtype[float64]], overlap_matrix: ndarray[tuple[Any, ...], dtype[float64]]) ndarray[tuple[Any, ...], dtype[float64]]

Get the matrix for the projector.

Parameters:
  • environment_density_matrix (ndarray[tuple[Any, ...], dtype[float64]]) – Density matrix of the environment.

  • overlap_matrix (ndarray[tuple[Any, ...], dtype[float64]]) – Overlap matrix.

Return type:

ndarray[tuple[Any, …], dtype[float64]]

class ProjectorBuilderCreator

Bases: Generic[T]

Orbital assigner creator.

__init__(parent: T, field_name: str) None

Initialize an orbital assigner creator.

Parameters:
  • parent (T) – Parent object to which the molecular orbital calculator will be assigned.

  • field_name (str) – Name of the field in the parent object where the molecular orbital calculator will be assigned.

Return type:

None

manby(level_shift_parameter: float = 100000.0) T

Set the projector_builder to a ManbysLevelShiftProjectorBuilder.

The projector is defined as \(P = \mu S D_{env} S\), where \(\mu\) is the level shift parameter, \(S\) is the overlap matrix, and \(D_{env}\) is the density matrix for the environment.

Refererences: [MSGM12]

Parameters:

level_shift_parameter (float)

Return type:

T