IMSRG.generator

Module to construct IMSRG generator.

Functions

build_1b_arctan_generator(occs, f[, delta])

Constructs the one-body part of the arctan IMSRG generator

build_1b_energy_difference(occs, f[, delta])

Constructs one-body energy differences for IMSRG generator denominators

build_2b_arctan_generator(occs, f, gamma[, ...])

Constructs the two-body part of the arctan IMSRG generator

build_2b_energy_difference(occs, f[, delta])

Constructs two-body energy differences for IMSRG generator denominators

get_hole_spes(occs, f)

Extracts single-particle energies for hole states from the Fock matrix

get_particle_spes(occs, f[, delta])

Extracts single-particle energies for particle states from the Fock matrix

IMSRG.generator.get_hole_spes(occs, f)

Extracts single-particle energies for hole states from the Fock matrix

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – Fock matrix containing single-particle energies on the diagonal

Returns:

Single-particle energies for occupied (hole) states

Return type:

numpy array

IMSRG.generator.get_particle_spes(occs, f, delta=0.0)

Extracts single-particle energies for particle states from the Fock matrix

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – Fock matrix containing single-particle energies on the diagonal

  • delta (float) – Optional; energy shift to avoid degeneracies in denominators

Returns:

Single-particle energies for unoccupied (particle) states

Return type:

numpy array

IMSRG.generator.build_1b_energy_difference(occs, f, delta=0.0)

Constructs one-body energy differences for IMSRG generator denominators

Computes the energy differences e_i - e_a between hole and particle states, which appear in the denominators of the IMSRG generator. A small regularization term prevents division by zero

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – Fock matrix containing single-particle energies

  • delta (float) – Optional; energy shift to avoid degeneracies in denominators

Returns:

Matrix of energy differences for one-body generator denominators

Return type:

numpy array

IMSRG.generator.build_2b_energy_difference(occs, f, delta=0.0)

Constructs two-body energy differences for IMSRG generator denominators

Computes the energy differences e_i + e_j - e_a - e_b between hole and particle state pairs, which appear in the denominators of the IMSRG generator. A small regularization term prevents division by zero

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – Fock matrix containing single-particle energies

  • delta (float) – Optional; energy shift to avoid degeneracies in denominators

Returns:

Tensor of energy differences for two-body generator denominators

Return type:

numpy array

IMSRG.generator.build_1b_arctan_generator(occs, f, delta=0.0)

Constructs the one-body part of the arctan IMSRG generator

Builds the generator eta^{(1)} = (1/2) arctan(2f^{ai}/e_{ai}) that drives the one-body part of the IMSRG flow equations, ensuring decoupling of particle-hole excitations from the reference state. An optional delta pushes up the energies of the particle states to prevent vanishing energy denominators and ensure numerical stability. Most calculations should not need this

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – One-body Fock matrix

  • delta (float) – Optional; energy shift to avoid degeneracies in denominators

Returns:

One-body arctangent generator matrix elements

Return type:

numpy array

IMSRG.generator.build_2b_arctan_generator(occs, f, gamma, delta=0.0)

Constructs the two-body part of the arctan IMSRG generator

Builds the generator eta^{(2)} = (1/2) arctan(2Gamma^{abij}/e_{abij}) that drives the two-body part of the IMSRG flow equations, ensuring decoupling of particle-hole excitations from the reference state. An optional delta pushes up the energies of the particle states to prevent vanishing energy denominators and ensure numerical stability. Most calculations should not need this

Parameters:
  • occs (numpy array) – Occupation numbers for each single-particle state

  • f (numpy array) – One-body Fock matrix for constructing energy denominators

  • gamma (numpy array) – Two-body interaction matrix

  • delta (float) – Optional; energy shift to avoid degeneracies in denominators

Returns:

Two-body arctangent generator matrix elements

Return type:

numpy array