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
At the moment we only have L2 normalization, while many file formats use different conventions. One other common convention is to use unnormalized primitives, e.g. in the WFN and WFX formats. There are also a few variants of L2 normalization, which mostly originate from (incompatible) conventions used internally by other QC codes. At the moment, the conventions are handled by add hoc conversion code in the format modules (see e.g. cp2klog, molden, wfn and wfx). For density basis sets, also other conventions are used, and L1 normalization could make sense. We could facilitate these conversions and eliminate somewhat ugly ad hoc code by making the normalization of the primitives configurable in MolecularBasis class. This class already has a primitive_normalization string attribute, but it is not used yet. A string may also be too limited to reflect the zoo of possibilities. It is also not very informative. Instead we could just create a dictionary with conversion factors from normalized primitives for relevant Cartesian and pure functions. Similarly to how convert_conventions now works, this could be used to switch easily from one convention to another.
The text was updated successfully, but these errors were encountered:
I think the only options I can think (that are in wide use) are L2 and unnormalized. I know L2 can be a little bit tricky depending on the normalization convention within a contraction. I would tend to say that supporting lots of options is fine (but also a lot of work), but I would err on the side of user-friendliness over generality. Perhaps that also suggests the normalization_conventions dictionary, especially if it harmonizes well with convert_conventions.
(This was originally discussed in #146.)
At the moment we only have
L2
normalization, while many file formats use different conventions. One other common convention is to use unnormalized primitives, e.g. in the WFN and WFX formats. There are also a few variants of L2 normalization, which mostly originate from (incompatible) conventions used internally by other QC codes. At the moment, the conventions are handled by add hoc conversion code in the format modules (see e.g. cp2klog, molden, wfn and wfx). For density basis sets, also other conventions are used, and L1 normalization could make sense. We could facilitate these conversions and eliminate somewhat ugly ad hoc code by making the normalization of the primitives configurable inMolecularBasis
class. This class already has aprimitive_normalization
string attribute, but it is not used yet. A string may also be too limited to reflect the zoo of possibilities. It is also not very informative. Instead we could just create a dictionary with conversion factors from normalized primitives for relevant Cartesian and pure functions. Similarly to howconvert_conventions
now works, this could be used to switch easily from one convention to another.The text was updated successfully, but these errors were encountered: