Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion respondo/MatrixWrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ def __init__(
assert callable(projection)
self._projection = projection
if self.fold_doubles:
assert self.matrix.method.level == 2
assert self.matrix.method.level.to_int() == 2
self.__select_matrix()

def __str__(self):
Expand Down
7 changes: 4 additions & 3 deletions respondo/misc.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import numpy as np
from adcc import IsrMethod


def select_property_method(matrix):
if matrix.method.level < 3:
return matrix.method
if matrix.method.level.to_int() < 3:
return matrix.method.as_method(IsrMethod)
else:
# Auto-select second-order properties for third-order calc
return matrix.method.at_level(2)
return matrix.method.as_method_at_level(IsrMethod, 2)


# taken from adcc (written by mfherbst)
Expand Down
3 changes: 2 additions & 1 deletion respondo/rixs.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ def rixs(state, omega, gamma, property_method=None, rotating_wave=True, **solver
F += F_prime.T
else:
mom_product = np.einsum(
"A,B->AB", state.transition_dipole_moment, mp.dipole_moment(property_method.level)
"A,B->AB", state.transition_dipole_moment,
mp.dipole_moment(property_method.level.to_int())
)
gs_term = +mom_product / (-(omega + complex(0, gamma))) - mom_product.T / (
omega_prime + complex(0, gamma)
Expand Down
11 changes: 6 additions & 5 deletions respondo/solve_response.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import numpy as np
from adcc.adc_pp.state2state_transition_dm import state2state_transition_dm
from adcc.OneParticleOperator import product_trace
from adcc.NParticleOperator import product_trace
from adcc.solver.conjugate_gradient import conjugate_gradient, default_print

from respondo.jacobi_diis import jacobi_diis
Expand Down Expand Up @@ -97,8 +97,9 @@ def transition_polarizability(method, ground_state, from_vecs, ops, to_vecs):
from_vecs = [from_vecs]
if not isinstance(to_vecs, list):
to_vecs = [to_vecs]
if not isinstance(ops, list):
ops = [ops]
if not isinstance(ops, (tuple, list)):
ops = (ops,)


ret = np.zeros((len(from_vecs), len(ops), len(to_vecs)))
for i, from_vec in enumerate(from_vecs):
Expand All @@ -114,8 +115,8 @@ def transition_polarizability_complex(method, ground_state, from_vecs, ops, to_v
from_vecs = [from_vecs]
if not isinstance(to_vecs, list):
to_vecs = [to_vecs]
if not isinstance(ops, list):
ops = [ops]
if not isinstance(ops, (tuple, list)):
ops = (ops,)

# TODO: maybe use non-complex transition_polarizability function?
# TODO: "recognize" ResponseVector/AmplitudeVector
Expand Down
Loading