-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ExternalPotential in Bohr #2515
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now, many thanks for breaking DDD down.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm. I think this will lead to less confusion about units.
Co-authored-by: Andy Simmonett <[email protected]>
0.417, -1.0231, 1.6243, -0.8743, | ||
-0.834, -0.5806, 2.0297, -0.1111, | ||
0.417, -0.9480, 1.5096, 0.6281]).reshape((-1, 4)) | ||
Chrgfield_C[:,[1,2,3]] /= psi_bohr2angstroms |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent - great to show the user how to get bohr from Angstrom easily :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - this will be a little easier to generalize to other input formats. Thanks for taking care of it. This will simplify the blurred multipole specification, methinks.
* extern in Bohr * docs and fix mdi * review comments * Update doc/sphinxman/source/scf.rst Co-authored-by: Andy Simmonett <[email protected]> Co-authored-by: Andy Simmonett <[email protected]>
* extern in Bohr * docs and fix mdi * review comments * Update doc/sphinxman/source/scf.rst Co-authored-by: Andy Simmonett <[email protected]> Co-authored-by: Andy Simmonett <[email protected]>
Description
The
psi4.core.ExternalPotential
object has long stored its charge locations in the same units as its BasisSet's Molecule. Also, the usual way of initializing it is by creating apsi4.driver.qmmm.QMMM()
object and then doing the unusualpsi4.set_global_option_python("EXTERN", qmmmobj.extern)
to a field of that object. That's the situation for "plain" external charges calcs, where there's only one potential and both charges and locations are specified.Additionally, there's two related categories. F-SAPT can put different external potentials on any of fragments A, B, C, which have been passed in as
energy("fisapt", external_potentials={"A": extern, ...}, ...)
. Also nbody can take an array of charges (not locations) that replace fragments when the fragments are ghosted. These are passed asenergy(..., bsse_type=..., embedding_charges=[monoAchg, ...])
Problems:
This is No. 2 of the DDD series, #1351.
Todos
QMMM()
withQMMMbohr()
and issue an update guide if the former is called.energy(..., external_potentials=array
instead ofQMMM()
object. This tests whether theexternal_potentials
value is an array for a single extern, which gets processed and set immediately, or a dict of externs, which gets handled by the run_fsapt later on.q, [x, y, z]
also allowq, x, y, z
, which makes for very easy numpy processing for units transofmation.Questions
Checklist
Status