Skip to content
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

Add templated class LCAOrbitalSetT #14

Merged

Conversation

quantumsteve
Copy link

Please review the developer documentation
on the wiki of this project that contains help and requirements.

Proposed changes

Describe what this PR changes and why. If it closes an issue, link to it here
with a supported keyword.

What type(s) of changes does this code introduce?

Delete the items that do not apply

  • Bugfix
  • New feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Testing changes (e.g. new unit/integration/performance tests)
  • Documentation changes
  • Other (please describe):

Does this introduce a breaking change?

  • Yes
  • No

What systems has this change been tested on?

Checklist

Update the following with a yes where the items apply. If you're unsure about any of them, don't hesitate to ask. This is
simply a reminder of what we are going to look for before merging your code.

  • Yes/No. This PR is up to date with current the current state of 'develop'
  • Yes/No. Code added or changed in the PR has been clang-formatted
  • Yes/No. This PR adds tests to cover any new code, or to catch a bug that is being fixed
  • Yes/No. Documentation has been added (if appropriate)

class LCAOrbitalSetT : public SPOSetT<T>
{
public:
using basis_type = SoaBasisSetBase<T>;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming convention is caps for type i.e.

basis_type -> Basis
vgl_type -> VGL
....
IndexType -> Index
RealType -> Real

etc.

This is a change to have this more consistent and easier to read I think it should be taken.

using OffloadMWVArray = Array<T, 2, OffloadPinnedAllocator<T>>; // [walker, Orbs]

///pointer to the basis set
std::unique_ptr<basis_type> myBasisSet;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do have the UPtr alias in src/type_traits/template_types

* SoA verson of LCOrtbitalSet
* Localized basis set is always real
*/
template<class T>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a possibility that some of the arguments to SPOSet functions should always be FullPrec So do we want to revisit that here? There should be a VALUE and VALUE_FP argument then.

I think here we should maintain the menomic trace that this is a Value type that is being templated on here. So use VALUE or VALUE_FP for the template parameter. Since there are rougly speaking two categories of templating on scalars in QMCPACK. There are scalars that historically are called values can be real/complex reduced/full and reals those that are real reduced/full.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PDoakORNL Would you repeat this question about SPOSetT<T> on the main QMCPACK PR?

@williamfgc
Copy link
Owner

@quantumsteve please rebase the latest ref-add-SPOSetT branch

@williamfgc williamfgc merged commit bc06c91 into williamfgc:ref-add-SPOSetT Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants