You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would like to truncate the wavefunction in CSF space at various thresholds to explore how properties change as a function of the number of determinants.
So far, I have used a naive truncation procedure that sets a threshold based on the CI coefficients, but I would prefer to do the truncation based on the CSFs instead.
Thank you for your help!
The text was updated successfully, but these errors were encountered:
IDK what workflow you're trying to build here, but if you have some list of CSFs that you want to forbid for whatever reason, then I think you can accomplish this by patching fcisolver.transformer.vec_det2csf and fcisolver.transformer.vec_csf2det to set forbidden CSF elements to zero and either using fcisolver.davidson_only = True or additionally patching fcisolver.pspace like
idx_allow = # a boolean array of shape (ncsf,) which is True where a CSF is allowed and False where a CSF is forbidden
def new_pspace (*args, **kwargs):
addr, h0 = old_pspace (*args, **kwargs)
i = idx_allow[addr]
return addr[i], h0[np.ix_(i,i)]
Hello,
Is there a way to truncate the final wavefunction at different thresholds in CSF space after generating it using the following code?
I would like to truncate the wavefunction in CSF space at various thresholds to explore how properties change as a function of the number of determinants.
So far, I have used a naive truncation procedure that sets a threshold based on the CI coefficients, but I would prefer to do the truncation based on the CSFs instead.
Thank you for your help!
The text was updated successfully, but these errors were encountered: