Wavefunction

class psi4.core.Wavefunction

Bases: pybind11_object

docstring

Methods Summary

Ca(self)

Returns the Alpha Orbitals.

Ca_subset(self, arg0, arg1)

Returns the requested Alpha orbital subset.

Cb(self)

Returns the Beta Orbitals.

Cb_subset(self, arg0, arg1)

Returns the requested Beta orbital subset.

Da(self)

Returns the Alpha Density Matrix.

Da_subset(self, arg0)

Returns the requested Alpha Density subset.

Db(self)

Returns the Beta Density Matrix.

Db_subset(self, arg0)

Returns the requested Beta Density subset.

Fa(self)

Returns the Alpha Fock Matrix.

Fa_subset(self, arg0)

Returns the Alpha Fock Matrix in the requested basis (AO,SO).

Fb(self)

Returns the Beta Fock Matrix.

Fb_subset(self, arg0)

Returns the Beta Fock Matrix in the requested basis (AO,SO).

H(self)

Returns the 'Core' Matrix (Potential + Kinetic) Integrals.

PCM_enabled(self)

Whether running a PCM calculation

S(self)

Returns the One-electron Overlap Matrix.

alpha_orbital_space(self, id, basis, subset)

Creates OrbitalSpace with information about the requested alpha orbital space.

aotoso(self)

Returns the Atomic Orbital to Symmetry Orbital transformer.

array_variable(self, arg0)

Returns copy of the requested (case-insensitive) Matrix QC variable.

array_variables(self)

Returns the dictionary of all Matrix QC variables.

arrays()

Deprecated since version 1.4.

atomic_point_charges(self)

Returns the set atomic point charges.

basis_projection(self, arg0, arg1, arg2, arg3)

Projects a orbital matrix from one basis to another.

basisset(self)

Returns the current orbital basis.

beta_orbital_space(self, arg0, arg1, arg2)

docstring

build(mol[, basis, quiet])

Build a wavefunction from minimal inputs, molecule and basis set.

c1_deep_copy(self, basis)

Returns a new wavefunction with internal data converted to \(C_1\) symmetry, using pre-c1-constructed basis

compute_energy(self)

Computes the energy of the Wavefunction.

compute_gradient(self)

Computes the gradient of the Wavefunction

compute_hessian(self)

Computes the Hessian of the Wavefunction.

deep_copy(self, arg0)

Deep copies the internal data.

del_array_variable(self, arg0)

Removes the requested (case-insensitive) Matrix QC variable.

del_potential_variable(self, arg0)

Removes the requested (case-insensitive) ExternalPotential QC variable.

del_scalar_variable(self, arg0)

Removes the requested (case-insensitive) double QC variable.

del_variable(key)

Removes scalar or array QCVariable key from self if present.

doccpi(self[, assume_socc_alpha])

Returns the number of doubly occupied orbitals per irrep.

efzc(self)

Returns the frozen-core energy

energy(self)

Returns the Wavefunction's energy.

epsilon_a(self)

Returns the Alpha Eigenvalues.

epsilon_a_subset(self, basis, subset)

Returns the requested Alpha orbital energies subset.

epsilon_b(self)

Returns the Beta Eigenvalues.

epsilon_b_subset(self, basis, subset)

Returns the requested Beta orbital energies subset.

esp_at_nuclei(self)

returns electrostatic potentials at nuclei

external_pot(self)

Gets the requested external potential.

force_occpi(self, arg0, arg1)

Specialized expert use only.

frequencies()

Returns the results of a frequency analysis.

from_file(wfn_data)

Build Wavefunction from data laid out like to_file().

frzcpi(self)

Returns the number of frozen core orbitals per irrep.

frzvpi(self)

Returns the number of frozen virtual orbitals per irrep.

get_array(key)

Deprecated since version 1.4.

get_basisset(self, arg0)

Returns the requested auxiliary basis.

get_density(self, arg0)

Experimental!

get_dipole_field_strength(self)

Returns a vector of length 3, containing the x, y, and z dipole field strengths.

get_print(self)

Get the print level of the Wavefunction.

get_scratch_filename(filenumber)

Return canonical path to scratch file filenumber based on molecule on self.

get_variable(key)

Deprecated since version 1.4.

gradient(self)

Returns the Wavefunction's gradient.

has_array_variable(self, arg0)

Is the Matrix QC variable (case-insensitive) set? Prefer has_variable().

has_potential_variable(self, arg0)

Is the ExternalPotential QC variable (case-insensitive) set? (This function is provisional and might be removed in the future.)

has_scalar_variable(self, arg0)

Is the double QC variable (case-insensitive) set? Prefer has_variable().

has_variable(key)

Whether scalar or array QCVariable key has been set on self.

hessian(self)

Returns the Wavefunction's Hessian.

lagrangian(self)

Returns the Lagrangian Matrix.

mintshelper(self)

Returns the current MintsHelper object.

mo_extents(self)

returns the wavefunction's electronic orbital extents.

module(self)

Name of the last/highest level of theory module (internal or external) touching the wavefunction.

molecule(self)

Returns the Wavefunction's molecule.

nalpha(self)

Number of Alpha electrons.

nalphapi(self)

Returns the number of alpha orbitals per irrep.

name(self)

The level of theory this wavefunction corresponds to.

nbeta(self)

Number of Beta electrons.

nbetapi(self)

Returns the number of beta orbitals per irrep.

nfrzc(self)

Number of frozen core electrons.

nirrep(self)

Number of irreps in the system.

nmo(self)

Number of molecule orbitals.

nmopi(self)

Returns the number of molecular orbitals per irrep.

no_occupations(self)

returns the natural orbital occupations on the wavefunction.

nso(self)

Number of symmetry orbitals.

nsopi(self)

Returns the number of symmetry orbitals per irrep.

options(self)

Returns the Wavefunction's options object

potential_variable(self, key)

Returns copy of the requested (case-insensitive) ExternalPotential QC variable key.

potential_variables(self)

Returns the dictionary of all ExternalPotential QC variables.

reference_wavefunction(self)

Returns the reference wavefunction.

same_a_b_dens(self)

Returns true if the alpha and beta densities are the same.

same_a_b_orbs(self)

Returns true if the alpha and beta orbitals are the same.

scalar_variable(self, arg0)

Returns the requested (case-insensitive) double QC variable.

scalar_variables(self)

Returns the dictionary of all double QC variables.

set_array(key, val)

Deprecated since version 1.4.

set_array_variable(self, arg0, arg1)

Sets the requested (case-insensitive) Matrix QC variable.

set_basisset(self, arg0, arg1)

Sets the requested auxiliary basis.

set_energy(self, arg0)

Sets the Wavefunction's energy.

set_external_potential(self, arg0)

Sets the requested external potential.

set_gradient(self, arg0)

Sets the Wavefunction's gradient.

set_hessian(self, arg0)

Sets the Wavefunction's Hessian.

set_lagrangian(self, arg0)

Sets the orbital Lagrangian matrix.

set_module(self, module)

Sets name of the last/highest level of theory module (internal or external) touching the wavefunction.

set_name(self, arg0)

Sets the level of theory this wavefunction corresponds to.

set_potential_variable(self, arg0, arg1)

Sets the requested (case-insensitive) ExternalPotential QC variable.

set_print(self, arg0)

Sets the print level of the Wavefunction.

set_reference_wavefunction(self, arg0)

docstring

set_scalar_variable(self, arg0, arg1)

Sets the requested (case-insensitive) double QC variable.

set_variable(key, val)

Sets scalar or array QCVariable key to val on self.

shallow_copy(self, arg0)

Copies the pointers to the internal data.

sobasisset(self)

Returns the symmetry orbitals basis.

soccpi(self[, assume_socc_alpha])

Returns the number of singly occupied orbitals per irrep.

to_file([filename])

Serialize a Wavefunction object.

variable(key)

Return copy of scalar or array QCVariable key from self.

variables([include_deprecated_keys])

Return all scalar or array QCVariables from self.

write_molden([filename, do_virtual, use_natural])

Writes wavefunction information in wfn to filename in molden format.

write_nbo(name)

Write wavefunction information in wfn to name in NBO format.

Methods Documentation

Ca(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Alpha Orbitals.

Ca_subset(self: psi4.core.Wavefunction, arg0: str, arg1: str) psi4.core.Matrix

Returns the requested Alpha orbital subset.

Parameters:
  • basis (str) – {‘SO’, AO’} Should the subset be of symmetry orbitals or atomic orbitals?

  • subset (str) – {‘ALL’, ‘ACTIVE’, ‘FROZEN’, ‘OCC’, ‘VIR’, ‘FROZEN_OCC’, ‘ACTIVE_OCC’, ‘ACTIVE_VIR’, ‘FROZEN_VIR’} Which subspace of orbitals should be returned?

Returns:

A Pitzer-ordered matrix of the orbitals, (# basis functions, # orbitals in the subset). Pitzer-ordering is with respect to c1 symmetry if basis is AO.

Return type:

Matrix

Cb(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Beta Orbitals.

Cb_subset(self: psi4.core.Wavefunction, arg0: str, arg1: str) psi4.core.Matrix

Returns the requested Beta orbital subset.

Parameters:
  • basis (str) – {‘SO’, ‘AO’} Should the subset be of symmetry orbitals or atomic orbitals?

  • subset (str) – {‘ALL’, ‘ACTIVE’, ‘FROZEN’, ‘OCC’, ‘VIR’, ‘FROZEN_OCC’, ‘ACTIVE_OCC’, ‘ACTIVE_VIR’, ‘FROZEN_VIR’} Which subspace of orbitals should be returned?

Returns:

A Pitzer-ordered matrix of the orbitals, (# basis functions, # orbitals in the subset). Pitzer-ordering is with respect to c1 symmetry if basis is AO.

Return type:

Matrix

Da(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Alpha Density Matrix.

Da_subset(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Returns the requested Alpha Density subset.

Db(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Beta Density Matrix.

Db_subset(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Returns the requested Beta Density subset.

Fa(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Alpha Fock Matrix.

Fa_subset(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Returns the Alpha Fock Matrix in the requested basis (AO,SO).

Fb(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Beta Fock Matrix.

Fb_subset(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Returns the Beta Fock Matrix in the requested basis (AO,SO).

H(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the ‘Core’ Matrix (Potential + Kinetic) Integrals.

PCM_enabled(self: psi4.core.Wavefunction) bool

Whether running a PCM calculation

S(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the One-electron Overlap Matrix.

alpha_orbital_space(self: psi4.core.Wavefunction, id: str, basis: str, subset: str) psi4.core.OrbitalSpace

Creates OrbitalSpace with information about the requested alpha orbital space.

Parameters:
  • id – Unique name for the orbital space.

  • basis – {‘SO’, ‘AO’} Should the subspace be of symmetry orbitals or atomic orbitals?

  • subset – {ALL, ACTIVE, FROZEN, OCC, VIR, FROZEN_OCC, ACTIVE_OCC, ACTIVE_VIR, FROZEN_VIR} Which subspace of orbitals should be returned?

Returns:

Information on subset alpha orbitals.

Return type:

OrbitalSpace

aotoso(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Atomic Orbital to Symmetry Orbital transformer.

array_variable(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Returns copy of the requested (case-insensitive) Matrix QC variable. Prefer variable().

array_variables(self: psi4.core.Wavefunction) Dict[str, psi4.core.Matrix]

Returns the dictionary of all Matrix QC variables. Prefer variables().

arrays()

Deprecated since version 1.4: Use psi4.core.Wavefunction.variables() instead.

Changed in version 1.9: Errors rather than warn-and-forward.

atomic_point_charges(self: psi4.core.Wavefunction) psi4.core.Vector

Returns the set atomic point charges.

basis_projection(self: psi4.core.Wavefunction, arg0: psi4.core.Matrix, arg1: psi4.core.Dimension, arg2: psi4.core.BasisSet, arg3: psi4.core.BasisSet) psi4.core.Matrix

Projects a orbital matrix from one basis to another.

basisset(self: psi4.core.Wavefunction) psi4.core.BasisSet

Returns the current orbital basis.

beta_orbital_space(self: psi4.core.Wavefunction, arg0: str, arg1: str, arg2: str) psi4.core.OrbitalSpace

docstring

static build(mol, basis=None, *, quiet=False)

Build a wavefunction from minimal inputs, molecule and basis set. :rtype: Wavefunction

Parameters:
  • mol (Molecule) – Molecule for which to build the wavefunction instance.

  • basis (Union[None, str, BasisSet]) – Basis set for which to build the wavefunction instance. If a BasisSet, taken as-is. If a string, taken as a name for the primary basis. If None, name taken from BASIS.

  • quiet (bool) – When True, do not print to the output file.

Return type:

Wavefunction

c1_deep_copy(self: psi4.core.Wavefunction, basis: psi4.core.BasisSet) psi4.core.Wavefunction

Returns a new wavefunction with internal data converted to \(C_1\) symmetry, using pre-c1-constructed basis

compute_energy(self: psi4.core.Wavefunction) float

Computes the energy of the Wavefunction.

compute_gradient(self: psi4.core.Wavefunction) psi4.core.Matrix

Computes the gradient of the Wavefunction

compute_hessian(self: psi4.core.Wavefunction) psi4.core.Matrix

Computes the Hessian of the Wavefunction.

deep_copy(self: psi4.core.Wavefunction, arg0: psi4.core.Wavefunction) None

Deep copies the internal data.

del_array_variable(self: psi4.core.Wavefunction, arg0: str) int

Removes the requested (case-insensitive) Matrix QC variable. Prefer del_variable().

del_potential_variable(self: psi4.core.Wavefunction, arg0: str) int

Removes the requested (case-insensitive) ExternalPotential QC variable. (This function is provisional and might be removed in the future.)

del_scalar_variable(self: psi4.core.Wavefunction, arg0: str) int

Removes the requested (case-insensitive) double QC variable. Prefer del_variable().

del_variable(key)

Removes scalar or array QCVariable key from self if present. :rtype: None

Parameters:
  • self (Wavefunction) – Wavefunction instance.

  • key (str) – Case-insensitive key to instance’s double or Matrix storage maps.

Return type:

None

doccpi(self: psi4.core.Wavefunction, assume_socc_alpha: bool = True) psi4.core.Dimension

Returns the number of doubly occupied orbitals per irrep.

efzc(self: psi4.core.Wavefunction) float

Returns the frozen-core energy

energy(self: psi4.core.Wavefunction) float

Returns the Wavefunction’s energy.

epsilon_a(self: psi4.core.Wavefunction) psi4.core.Vector

Returns the Alpha Eigenvalues.

epsilon_a_subset(self: psi4.core.Wavefunction, basis: str, subset: str) psi4.core.Vector

Returns the requested Alpha orbital energies subset.

Parameters:
  • basis – {‘AO’, ‘SO’, ‘MO’} MO or SO select for Pitzer-ordering the return vector in the full computational point group symmetry. AO selects for Pitzer-ordering the return vector without point group symmetry.

  • subset – {‘ALL’, ‘ACTIVE’, ‘FROZEN’, ‘OCC’, ‘VIR’, ‘FROZEN_OCC’, ‘ACTIVE_OCC’, ‘ACTIVE_VIR’, ‘FROZEN_VIR’} Which subspace of orbital energies should be returned?

Returns:

A Pitzer-ordered vector of the orbitals.

Return type:

Vector

epsilon_b(self: psi4.core.Wavefunction) psi4.core.Vector

Returns the Beta Eigenvalues.

epsilon_b_subset(self: psi4.core.Wavefunction, basis: str, subset: str) psi4.core.Vector

Returns the requested Beta orbital energies subset.

Parameters:
  • basis – {‘AO’, ‘SO’, ‘MO’} MO or SO select for Pitzer-ordering the return vector in the full computational point group symmetry. AO selects for Pitzer-ordering the return vector without point group symmetry.

  • subset – {‘ALL’, ‘ACTIVE’, ‘FROZEN’, ‘OCC’, ‘VIR’, ‘FROZEN_OCC’, ‘ACTIVE_OCC’, ‘ACTIVE_VIR’, ‘FROZEN_VIR’} Which subspace of orbital energies should be returned?

Returns:

A Pitzer-ordered vector of the orbitals.

Return type:

Vector

esp_at_nuclei(self: psi4.core.Wavefunction) psi4.core.Vector

returns electrostatic potentials at nuclei

external_pot(self: psi4.core.Wavefunction) psi4.core.ExternalPotential

Gets the requested external potential.

force_occpi(self: psi4.core.Wavefunction, arg0: psi4.core.Dimension, arg1: psi4.core.Dimension) None

Specialized expert use only. Sets the number of doubly and singly occupied oribtals per irrep. Note that this results in inconsistent Wavefunction objects for SCF, so caution is advised.

frequencies()

Returns the results of a frequency analysis.

Parameters:

self – Wavefunction instance.

Returns:

A dictionary of vibrational information. See psi4.driver.qcdb.vib.harmonic_analysis()

Return type:

Optional[Dict[str, ndarray]]

static from_file(wfn_data)

Build Wavefunction from data laid out like to_file().

Parameters:

wfn_data (Union[str, Dict, Path]) – If a dict, use data directly. Otherwise, path-like passed to numpy.load() to read from disk.

Returns:

A deserialized Wavefunction object

Return type:

Wavefunction

frzcpi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of frozen core orbitals per irrep.

frzvpi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of frozen virtual orbitals per irrep.

get_array(key)

Deprecated since version 1.4: Use psi4.core.Wavefunction.variable() instead.

Changed in version 1.9: Errors rather than warn-and-forward.

get_basisset(self: psi4.core.Wavefunction, arg0: str) psi4.core.BasisSet

Returns the requested auxiliary basis.

get_density(self: psi4.core.Wavefunction, arg0: str) psi4.core.Matrix

Experimental!

get_dipole_field_strength(self: psi4.core.Wavefunction) Annotated[List[float], FixedSize(3)]

Returns a vector of length 3, containing the x, y, and z dipole field strengths.

get_print(self: psi4.core.Wavefunction) int

Get the print level of the Wavefunction.

get_scratch_filename(filenumber)

Return canonical path to scratch file filenumber based on molecule on self. :rtype: str

Parameters:
Return type:

str

get_variable(key)

Deprecated since version 1.4: Use psi4.core.Wavefunction.variable() instead.

Changed in version 1.9: Errors rather than warn-and-forward.

gradient(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Wavefunction’s gradient.

has_array_variable(self: psi4.core.Wavefunction, arg0: str) bool

Is the Matrix QC variable (case-insensitive) set? Prefer has_variable().

has_potential_variable(self: psi4.core.Wavefunction, arg0: str) bool

Is the ExternalPotential QC variable (case-insensitive) set? (This function is provisional and might be removed in the future.)

has_scalar_variable(self: psi4.core.Wavefunction, arg0: str) bool

Is the double QC variable (case-insensitive) set? Prefer has_variable().

has_variable(key)

Whether scalar or array QCVariable key has been set on self. :rtype: bool

Parameters:
  • self (Wavefunction) – Wavefunction instance.

  • key (str) – Case-insensitive key to instance’s double or Matrix storage maps.

Return type:

bool

hessian(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Wavefunction’s Hessian.

lagrangian(self: psi4.core.Wavefunction) psi4.core.Matrix

Returns the Lagrangian Matrix.

mintshelper(self: psi4.core.Wavefunction) psi4.core.MintsHelper

Returns the current MintsHelper object.

mo_extents(self: psi4.core.Wavefunction) List[psi4.core.Vector]

returns the wavefunction’s electronic orbital extents.

module(self: psi4.core.Wavefunction) str

Name of the last/highest level of theory module (internal or external) touching the wavefunction.

molecule(self: psi4.core.Wavefunction) psi4.core.Molecule

Returns the Wavefunction’s molecule.

nalpha(self: psi4.core.Wavefunction) int

Number of Alpha electrons.

nalphapi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of alpha orbitals per irrep.

name(self: psi4.core.Wavefunction) str

The level of theory this wavefunction corresponds to.

nbeta(self: psi4.core.Wavefunction) int

Number of Beta electrons.

nbetapi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of beta orbitals per irrep.

nfrzc(self: psi4.core.Wavefunction) int

Number of frozen core electrons.

nirrep(self: psi4.core.Wavefunction) int

Number of irreps in the system.

nmo(self: psi4.core.Wavefunction) int

Number of molecule orbitals.

nmopi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of molecular orbitals per irrep.

no_occupations(self: psi4.core.Wavefunction) List[List[Tuple[float, int, int]]]

returns the natural orbital occupations on the wavefunction.

nso(self: psi4.core.Wavefunction) int

Number of symmetry orbitals.

nsopi(self: psi4.core.Wavefunction) psi4.core.Dimension

Returns the number of symmetry orbitals per irrep.

options(self: psi4.core.Wavefunction) psi::Options

Returns the Wavefunction’s options object

potential_variable(self: psi4.core.Wavefunction, key: str) psi4.core.ExternalPotential

Returns copy of the requested (case-insensitive) ExternalPotential QC variable key. (This function is provisional and might be removed in the future.)

potential_variables(self: psi4.core.Wavefunction) Dict[str, psi4.core.ExternalPotential]

Returns the dictionary of all ExternalPotential QC variables. (This function is provisional and might be removed in the future.)

reference_wavefunction(self: psi4.core.Wavefunction) psi4.core.Wavefunction

Returns the reference wavefunction.

same_a_b_dens(self: psi4.core.Wavefunction) bool

Returns true if the alpha and beta densities are the same.

same_a_b_orbs(self: psi4.core.Wavefunction) bool

Returns true if the alpha and beta orbitals are the same.

scalar_variable(self: psi4.core.Wavefunction, arg0: str) float

Returns the requested (case-insensitive) double QC variable. Prefer variable().

scalar_variables(self: psi4.core.Wavefunction) Dict[str, float]

Returns the dictionary of all double QC variables. Prefer variables().

set_array(key, val)

Deprecated since version 1.4: Use psi4.core.Wavefunction.set_variable() instead.

Changed in version 1.9: Errors rather than warn-and-forward.

set_array_variable(self: psi4.core.Wavefunction, arg0: str, arg1: psi4.core.Matrix) None

Sets the requested (case-insensitive) Matrix QC variable. Syncs with Wavefunction.gradient_ or hessian_ if CURRENT GRADIENT or HESSIAN. Prefer set_variable().

set_basisset(self: psi4.core.Wavefunction, arg0: str, arg1: psi4.core.BasisSet) None

Sets the requested auxiliary basis.

set_energy(self: psi4.core.Wavefunction, arg0: float) None

Sets the Wavefunction’s energy. Syncs with Wavefunction’s QC variable CURRENT ENERGY.

set_external_potential(self: psi4.core.Wavefunction, arg0: psi4.core.ExternalPotential) None

Sets the requested external potential.

set_gradient(self: psi4.core.Wavefunction, arg0: psi4.core.Matrix) None

Sets the Wavefunction’s gradient. Syncs with Wavefunction’s QC variable CURRENT GRADIENT.

set_hessian(self: psi4.core.Wavefunction, arg0: psi4.core.Matrix) None

Sets the Wavefunction’s Hessian. Syncs with Wavefunction’s QC variable CURRENT HESSIAN.

set_lagrangian(self: psi4.core.Wavefunction, arg0: psi4.core.Matrix) None

Sets the orbital Lagrangian matrix.

set_module(self: psi4.core.Wavefunction, module: str) None

Sets name of the last/highest level of theory module (internal or external) touching the wavefunction.

set_name(self: psi4.core.Wavefunction, arg0: str) None

Sets the level of theory this wavefunction corresponds to.

set_potential_variable(self: psi4.core.Wavefunction, arg0: str, arg1: psi4.core.ExternalPotential) None

Sets the requested (case-insensitive) ExternalPotential QC variable. (This function is provisional and might be removed in the future.)

set_print(self: psi4.core.Wavefunction, arg0: int) None

Sets the print level of the Wavefunction.

set_reference_wavefunction(self: psi4.core.Wavefunction, arg0: psi4.core.Wavefunction) None

docstring

set_scalar_variable(self: psi4.core.Wavefunction, arg0: str, arg1: float) None

Sets the requested (case-insensitive) double QC variable. Syncs with Wavefunction.energy_ if CURRENT ENERGY. Prefer set_variable().

set_variable(key, val)

Sets scalar or array QCVariable key to val on self. :rtype: None

Parameters:
  • self (Wavefunction) – Wavefunction instance.

  • key (str) –

    Case-insensitive key to instance’s double or Matrix storage maps.

    • If CURRENT ENERGY, syncs with self.energy_.

    • If CURRENT GRADIENT, syncs with gradient_.

    • If CURRENT HESSIAN, syncs with self.hessian_.

  • val (Union[Matrix, ndarray, float]) – Scalar or array to be stored in key. If ndarray and data key does not naturally fit in 2D Matrix (often charge and multipole QCVariables), it will be reshaped, as all ndarray are stored as Matrix.

Raises:

ValidationError – If val is a scalar but key already exists as an array variable. Or if val is an array but key already exists as a scalar variable.

Return type:

None

shallow_copy(self: psi4.core.Wavefunction, arg0: psi4.core.Wavefunction) None

Copies the pointers to the internal data.

sobasisset(self: psi4.core.Wavefunction) psi4.core.SOBasisSet

Returns the symmetry orbitals basis.

soccpi(self: psi4.core.Wavefunction, assume_socc_alpha: bool = True) psi4.core.Dimension

Returns the number of singly occupied orbitals per irrep.

to_file(filename=None)

Serialize a Wavefunction object. Opposite of from_file().

Parameters:
  • wfn (Wavefunction) – Wavefunction or inherited class instance.

  • filename (Optional[str]) – An optional filename to which to write the data.

Returns:

A dictionary and NumPy representation of the Wavefunction.

Return type:

Dict[str, Dict[str, Any]]

variable(key)

Return copy of scalar or array QCVariable key from self.

Parameters:
  • self (Wavefunction) – Wavefunction instance.

  • key (str) – Case-insensitive key to instance’s double or Matrix storage maps.

Returns:

Requested QCVariable from self.

  • Scalar variables are returned as floats.

  • Array variables not naturally 2D (like multipoles or per-atom charges) are returned as ndarray of natural dimensionality.

  • Other array variables are returned as Matrix and may have an extra dimension with symmetry information.

Return type:

float or ndarray or Matrix

Raises:

KeyError – If key not set on self.

Example

>>> g, wfn = psi4.gradient("hf/cc-pvdz", return_wfn=True)
>>> wfn.variable("CURRENT ENERGY")
-100.00985995185668
>>> wfn.variable("CURRENT DIPOLE")
array([ 0.        ,  0.        , -0.83217802])
>>> wfn.variable("CURRENT GRADIENT")
<psi4.core.Matrix object at 0x12d884fc0>
>>> wfn.variable("CURRENT GRADIENT").np
array([[ 6.16297582e-33,  6.16297582e-33, -9.41037138e-02],
       [-6.16297582e-33, -6.16297582e-33,  9.41037138e-02]])
variables(include_deprecated_keys=False)

Return all scalar or array QCVariables from self.

Parameters:
  • self – Wavefunction instance.

  • include_deprecated_keys (bool) – Also return duplicate entries with keys that have been deprecated.

Returns:

Map of all QCVariables that have been set on self.

  • Scalar variables are returned as floats.

  • Array variables not naturally 2D (like multipoles or per-atom charges) are returned as ndarray of natural dimensionality.

  • Other array variables are returned as Matrix and may have an extra dimension with symmetry information.

Return type:

Dict[str, Union[float, ndarray, Matrix]

write_molden(filename=None, do_virtual=None, use_natural=False)

Writes wavefunction information in wfn to filename in molden format. Will write natural orbitals from density (MO basis) if supplied. Warning! most post-SCF wavefunctions do not build the density as this is often much more costly than the energy. In addition, the wavefunction density attributes (Da and Db) return the SO density and must be transformed to the MO basis to use with this function.

New in version 0.5: wfn parameter passed explicitly

Returns:

None

Parameters:
  • filename (Optional[str]) – Destination file name for MOLDEN file. If unspecified (None), a file name will be generated from the molecule name.

  • do_virtual (Optional[bool]) – Do write all the MOs to the MOLDEN file (True) or discard the unoccupied MOs (False). Not valid for NO’s. If unspecified (None), value taken from MOLDEN_WITH_VIRTUAL.

  • use_natural (bool) – Write natural orbitals determined from density on wavefunction.

  • self (Wavefunction) –

Examples:

  1. Molden file with the Kohn-Sham orbitals of a DFT calculation.

    >>> E, wfn = energy('b3lyp', return_wfn=True)
    >>> wfn.molden('mycalc.molden')
    
  2. Molden file with the natural orbitals of a CCSD computation. For correlated methods, an energy call will not compute the density. “properties” or “gradient” must be called.

    >>> E, wfn = properties('ccsd', return_wfn=True)
    >>> wfn.molden('ccsd_no.molden', use_natural=True)
    
  3. To supply a custom density matrix, manually set the Da and Db of the wavefunction. This is used, for example, to write natural orbitals coming from a root computed by a CIWavefunction computation, e.g., detci, fci, casscf. The first two arguments of get_opdm() can be set to n, n where n => 0 selects the root to write out, provided these roots were computed, see NUM_ROOTS. The third argument controls the spin ("A", "B" or "SUM") and the final boolean option determines whether inactive orbitals are included.

    >>> E, wfn = energy('detci', return_wfn=True)
    >>> wfn.Da() = wfn.get_opdm(0, 0, "A", True)
    >>> wfn.Db() = wfn.get_opdm(0, 0, "B", True)
    >>> molden(wfn, 'no_root1.molden', use_natural=True)
    
write_nbo(name)

Write wavefunction information in wfn to name in NBO format.

Parameters:

name (str) – Destination file name for NBO file.