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 CMake installation for QMCPACK and NEXUS #1020

Closed
prckent opened this issue Aug 20, 2018 · 21 comments
Closed

Add CMake installation for QMCPACK and NEXUS #1020

prckent opened this issue Aug 20, 2018 · 21 comments
Assignees

Comments

@prckent
Copy link
Contributor

prckent commented Aug 20, 2018

Based on the request in #1017 , we need to arrange "make install" to work for both QMCPACK and NEXUS. CMake has many options to support this.

I suggest we just focus on the default real cpu build. In later versions we can handle Quantum Espresso, ideally after our converter is in QE, and then complex.

What needs to be installed?

build/bin/*
nexus/executables/*
nexus/library

Although NEXUS is not a python package, there must be some standards to follow.

@prckent prckent added this to the V3.6.0 Release milestone Aug 20, 2018
@jtkrogel
Copy link
Contributor

Happy to do the Nexus part, though not sure what is desired in the "make install" context.

@naromero77
Copy link
Contributor

For reference, this is what I do in the Spack package for install.
https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/qmcpack/package.py#L250

I install all binaries in bin, I copy over the entire Nexus directory, and I "install" the manual.

@naromero77
Copy link
Contributor

For Python, there are usually two options:

  1. install in "site-packages" subdirectory of the Python distribution
    OR
  2. Add the appropriate directories to PYTHONPATH environment variable.

@jtkrogel
Copy link
Contributor

Thanks Nick. I've generally taken the second option to "install" Nexus.

@prckent
Copy link
Contributor Author

prckent commented Aug 20, 2018

Regarding NEXUS perhaps copying to $INSTALL_DIR/nexus/... will suffice. It would be good if qmca would work out of the box.

@prckent
Copy link
Contributor Author

prckent commented Aug 20, 2018

(We'll have to discuss who can handle the QMCPACK side. @PDoakORNL ?)

@jtkrogel
Copy link
Contributor

qmca is fully standalone (no install required). All that is needed is python, numpy, and (optionally) matplotlib.

@markdewing
Copy link
Contributor

I can work on the QMCPACK side, unless @PDoakORNL is already working on it.

@markdewing
Copy link
Contributor

The bin directory contains qmcpack and convert4qmc, which are definitely used and should be installed.
But what about these others? Are they used? Should they be installed?

  • getSupercell
  • extract-eshdf-kvectors
  • checkAffinity

@ye-luo
Copy link
Contributor

ye-luo commented Oct 8, 2018

We may add or remove files over time. So copy bin/* over.

@markdewing
Copy link
Contributor

Should we adopt some sort of standard for the names of the executables? (add qmc_ prefix, or at least have qmc in the name, as in convert4qmc) In the case where someone installs into a common directory (like /usr/local/bin), so the qmcpack-derived executables can be easily identified.

@prckent
Copy link
Contributor Author

prckent commented Oct 8, 2018

Good suggestion. At least qmc in the name.

These are mentioned but not described in the manual, so a small update will be needed.

@jtkrogel
Copy link
Contributor

jtkrogel commented Dec 4, 2018

@markdewing are we moving forward with this or are other developments priority at the moment?

markdewing added a commit to markdewing/qmcpack that referenced this issue Dec 4, 2018
As discussed in QMCPACK#1020, include a 'qmc' in the executable names.

Also change getSupercell to lowercase-with-dashes style to be more consistent.
@markdewing
Copy link
Contributor

I can get some changes in - rename (#1208) and install should be straightforward.

@prckent
Copy link
Contributor Author

prckent commented Dec 4, 2018

A prefix for nexus related utilities needs to be chosen carefully. e.g. nx is NoMachine's technology.

@jtkrogel
Copy link
Contributor

jtkrogel commented Dec 4, 2018

I'll have to think more about that.

@jtkrogel
Copy link
Contributor

jtkrogel commented Dec 4, 2018

For the QMCPACK related ones, is this desired?

  • qfit -> qmc-fit
  • qstat -> qmc-stat
  • qtest -> qmc-test
  • qmca -> qmca

@jtkrogel
Copy link
Contributor

jtkrogel commented Dec 4, 2018

On the Nexus side, is "nxs-" or "nexus-" better for a prefix? Googling seems to point toward "nxs-" as a better route ("nexus-" prefixed executables are associated with Nexus Wallet), though this is also a file extension.

@prckent
Copy link
Contributor Author

prckent commented Dec 10, 2018

Should I move the NEXUS part of this to v3.7.0 or is something in the works?

@jtkrogel
Copy link
Contributor

Looking into it. I think installing the Nexus executables this way (a la #1215) should be straightforward.

Less sure if there is a good way to modify the PYTHONPATH environment variable for the user from within CMake to complete the install.

@prckent
Copy link
Contributor Author

prckent commented Dec 13, 2018

Closed by #1215 and #1242

@prckent prckent closed this as completed Dec 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants