# Installing your own version of Qmcpack

These instructions are for users who need to install their own version of Qmcpack.

{% hint style="warning" %}
Do not load the 'qmcpack' module. If you have a 'qmcpack' module loaded, unload it:

```bash
module unload qmcpack
```

{% endhint %}

Step 1: Create a new directory where you want to install Qmcpack:

```bash
mkdir -p qmcpack/src
cd qmcpack/src/
```

Step 2: Download the version of Qmcpack you want from the GitHub repo:

```bash
https://github.com/QEF/q-e/releases
wget https://github.com/QMCPACK/qmcpack/archive/v3.10.0.tar.gz
tar xvf v3.10.0.tar.gz
cd qmcpack-3.10.0/
```

Step 3: Load the newer compiler module and configure it with custom flags.

```bash
module load mpi/openmpi_4.0.5_intel_2020.2_slurm20
module load intel/2020.2 cuda/11.1.1
module load hdf5/1.12.0_openmpi_4.0.5_intel_2020.2_slurm20
module load python/3.6.6
module load boost/1.68
module load cmake/3.15.4

cd build

cmake -DCMAKE_INSTALL_PREFIX=/users/<username>/qmcpack/ -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx \
-DQE_BIN=/oscar/runtime/opt/quantumespresso/6.4_openmpi_4.0.5_intel_2020.2_slurm20/bin/ \
-DBUILD_PPCONVERT=1 -DBUILD_AFQMC=0 -DENABLE_MKL=1 \
-DQMC_VERBOSE_CONFIGURATION=1 QMC_COMPLEX=1 ..
```

More configuration options can be found in the [QMCPACK installation documentation](https://qmcpack.readthedocs.io/en/develop/installation.html#installation-steps).

{% hint style="warning" %}
The --prefix PATH will be replaced by your custom install location
{% endhint %}

Step 4: If you are happy with the configure flags then install them by:

```bash
make -j 8
make install
```

Step 5 (Optional): Adding Qmcpack to your path

Add the following lines to your \~/.bashrc

```bash
export PATH=/users/<username>/qmcpack/bin:$PATH
export PYTHONPATH=/users/<username>/qmcpack/qmcpack-3.10.0/nexus/lib:$PYTHONPATH
```

Restart the Oscar session or `source .bashrc`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ccv.brown.edu/oscar/local-install/installing-your-own-version-of-qmcpack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
