Skip to content

Commit

Permalink
merge with master
Browse files Browse the repository at this point in the history
  • Loading branch information
zwpku committed Sep 6, 2023
2 parents 8aec443 + e1bc65a commit cbd7c3d
Show file tree
Hide file tree
Showing 97 changed files with 373,637 additions and 215 deletions.
8 changes: 2 additions & 6 deletions .github/workflows/backend-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.apptainer
key: Linux-x86_64-containers-build-2023-07-20
key: Linux-x86_64-containers-build-2023-09-05

- name: Checkout OpenMM (for Lepton library)
uses: actions/checkout@v3
Expand Down Expand Up @@ -137,15 +137,11 @@ jobs:
apptainer pull CentOS7-devel.sif library://giacomofiorin/default/colvars_development:centos7
apptainer pull CentOS9-devel.sif library://giacomofiorin/default/colvars_development:centos9
- name : Get spiff
shell: bash
working-directory: devel-tools
run: sudo cp -f $(apptainer exec ${{ inputs.container_name }}.sif ./get_spiff) /usr/local/bin

- name: Update and build ${{ inputs.backend_name }}
shell: bash
env:
OPENMM_SOURCE: ${{ github.workspace }}/openmm-source
CMAKE_GENERATOR: Ninja
run: |
apptainer exec devel-tools/${{ inputs.container_name }}.sif ./update-colvars-code.sh -f ${{ inputs.backend_name }}-source
CCACHE_DIR=~/ccache_${{ inputs.container_name }} \
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/test-backends.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,3 +138,16 @@ jobs:
path_compile_script: devel-tools/compile-gromacs.sh
test_lib_directory: gromacs/tests/library
rpath_exe: install/bin/gmx_d

gromacs-2023:
name: GROMACS 2023
if: github.event_name == 'pull_request' || contains(github.event.head_commit.message, 'test-gromacs-2023')
uses: ./.github/workflows/backend-template.yml
with:
backend_name: GROMACS-2023
backend_repo: gromacs/gromacs
backend_repo_ref: release-2023
container_name: CentOS9-devel
path_compile_script: devel-tools/compile-gromacs.sh
test_lib_directory: gromacs/tests/library
rpath_exe: install/bin/gmx_d
5 changes: 3 additions & 2 deletions .github/workflows/test-library.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ jobs:
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
env:
CCACHE: ccache
CMAKE_GENERATOR: Ninja

steps:
- uses: actions/checkout@v3
Expand All @@ -182,7 +183,7 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.apptainer
key: Linux-x86_64-containers-build-2023-07-20
key: Linux-x86_64-containers-build-2023-09-05

- name: Get small downloadable packages
uses: actions/checkout@v3
Expand Down Expand Up @@ -387,7 +388,7 @@ jobs:
uses: actions/cache@v3
with:
path: ~/.apptainer
key: Linux-x86_64-containers-build-2023-07-20
key: Linux-x86_64-containers-build-2023-09-05

- name: Checkout Sun compiler (Oracle Developer Studio)
uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion devel-tools/compile-gromacs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ compile_gromacs_target() {
fi

local GMX_SRC_DIR=""
if [ -f "${1}/src/gromacs/commandline.h" ] ; then
if [ -d "${1}/src/gromacs" ] ; then
GMX_SRC_DIR=$(realpath "${1}")
shift
else
Expand Down
20 changes: 14 additions & 6 deletions devel-tools/containers/CentOS7-devel.def
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ From: centos:7
ncurses which bc man-db vim emacs screen tmux \
gcc gcc-c++ gcc-gfortran glibc-static libstdc++-static clang cppcheck \
autoconf automake cvs git git-cvs cvsps subversion mercurial \
rh-git227 devtoolset-{7..11} llvm-toolset-7 cmake3 ccache ninja \
rh-git227 devtoolset-{7..11} llvm-toolset-7 cmake3 ccache ninja-build \
doxygen \
openmpi-devel fftw-devel tcl-devel \
python-{devel,virtualenv} numpy scipy tkinter \
Expand All @@ -34,11 +34,14 @@ From: centos:7

# Build Charm++
umask 022
git clone --single-branch --depth=1 -b v7.0.0 https://github.com/UIUC-PPL/charm.git /opt/charm && \
cd /opt/charm && \
./build charm++ mpi-linux-x86_64 -j\$(nproc) --with-production && \
./build charm++ multicore-linux-x86_64 -j\$(nproc) --with-production && \
./build charm++ netlrts-linux-x86_64 -j\$(nproc) --with-production
source /etc/profile
module load mpi
git clone --single-branch --depth=1 -b v7.0.0 https://github.com/UIUC-PPL/charm.git /opt/charm
cd /opt/charm
export CCACHE_DIR=/tmp
./build charm++ mpi-linux-x86_64 -j16 --with-production && \
./build charm++ multicore-linux-x86_64 -j16 --with-production && \
./build charm++ netlrts-linux-x86_64 -j16 --with-production

# Load Git 2.27
cat > /etc/profile.d/git.sh <<EOF
Expand All @@ -47,3 +50,8 @@ if [ \$(id -u) != 0 ] && [ -d /opt/rh/rh-git227 ] ; then
fi
EOF

# Build and install spiff
rm -fr /tmp/spiff
git clone https://github.com/jhenin/spiff /tmp/spiff && \
make -C /tmp/spiff && \
install /tmp/spiff/spiff /usr/local/bin/
16 changes: 12 additions & 4 deletions devel-tools/containers/CentOS9-devel.def
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ From: quay.io/centos/centos:stream9
gcc gcc-c++ gcc-gfortran cppcheck \
gcc-toolset-{12,13} \
autoconf automake cvs git subversion mercurial \
cmake ccache \
cmake ccache ninja-build \
openmpi-devel tbb-devel fftw-devel tcl-devel \
python3-{devel,tkinter,virtualenv,numpy,scipy} \
ncurses-devel \
Expand All @@ -40,9 +40,17 @@ From: quay.io/centos/centos:stream9

# Build Charm++
umask 022
source /etc/profile
module load mpi
git clone --single-branch --depth=1 -b v7.0.0 https://github.com/UIUC-PPL/charm.git /opt/charm
cd /opt/charm
export CCACHE_DIR=/tmp
./build charm++ mpi-linux-x86_64 -j\$(nproc) --with-production
./build charm++ netlrts-linux-x86_64 -j\$(nproc) --with-production
./build charm++ multicore-linux-x86_64 -j\$(nproc) --with-production
./build charm++ mpi-linux-x86_64 -j16 --with-production && \
./build charm++ multicore-linux-x86_64 -j16 --with-production && \
./build charm++ netlrts-linux-x86_64 -j16 --with-production

# Build and install spiff
rm -fr /tmp/spiff
git clone https://github.com/jhenin/spiff /tmp/spiff && \
make -C /tmp/spiff && \
install /tmp/spiff/spiff /usr/local/bin/
94 changes: 93 additions & 1 deletion doc/colvars-refman-main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2968,7 +2968,7 @@
\item %
\key
{fittingAtoms}{%
\texttt{gspath} and \texttt{gspath}}{%
\texttt{gspath} and \texttt{gzpath}}{%
The atoms that are used for alignment}{%
Group of atoms}{%
Before calculating $\mathbf{v}_1$, $\mathbf{v}_2$, $\mathbf{v}_3$ and $\mathbf{v}_4$, the current frame need to be aligned to the corresponding reference frames. This option specifies which atoms are used to do alignment.
Expand Down Expand Up @@ -3297,6 +3297,98 @@
All distances are calculated every \texttt{freq} timesteps to update the list of nearby images.
}\fi

\cvsubsubsec{\texttt{aspath}: progress along a path defined in atomic Cartesian coordinate space.}{sec:cvc_aspath}
\labelkey{colvar|aspath}

This CV computes a special case of Eq. \ref{eq:apath_s}, where $x_j$ is the
$j$-th atomic position, $x_{i,j}$ is the $j$-th atomic position of the $i$-th
reference frame. The subtraction $x_j - x_{i,j}$ is actually calculated as
$\mathbf{x}_j - R_i\mathbf{x}_{i,j}$, where $\mathrm{R}_i$ is a 3x3 rotation
matrix that minimizes the RMSD between the current atomic positions of
simulation and the $i$-th reference frame. Bold $\mathbf{x}_j$ is used since
an atomic position is a vector.

\ifdefined\cvvmdornamd{
For NAMD and VMD users, this component can be regarded as an improved C++
implementation of the PCV progress component of the Tcl-scripted version
(see \ref{sec:apath_scripted}).
}\fi

\begin{cvcoptions}
\item %
\key
{atoms}{%
\texttt{aspath} and \texttt{azpath}}{%
Group of atoms}{%
Block \texttt{atoms \{...\}}}{%
Defines the atoms whose coordinates make up the value of the component.}

\item %
\key
{refPositionsCol}{%
\texttt{aspath} and \texttt{azpath}}{%
PDB column containing atom flags}{%
\texttt{O}, \texttt{B}, \texttt{X}, \texttt{Y}, or \texttt{Z}}{%
If \texttt{refPositionsFileN} is a PDB file that contains all the atoms in the topology, this option may be provided to set which PDB field is used to flag the reference coordinates for \texttt{atoms}.}

\item %
\key
{refPositionsFileN}{%
\texttt{aspath} and \texttt{azpath}}{%
File containing the reference positions for fitting}{%
UNIX filename}{%
The path is defined by multiple \texttt{refPositionsFile}s which are similiar to \texttt{refPositionsFile} in the \texttt{rmsd} CV. If your path consists of $10$ nodes, you can list the coordinate file (in PDB or XYZ format) from \texttt{refPositionsFile1} to \texttt{refPositionsFile10}.
}

\item %
\key
{fittingAtoms}{%
\texttt{aspath} and \texttt{azpath}}{%
The atoms that are used for alignment}{%
Group of atoms}{%
Before calculating $\mathbf{v}_1$, $\mathbf{v}_2$, $\mathbf{v}_3$ and $\mathbf{v}_4$, the current frame need to be aligned to the corresponding reference frames. This option specifies which atoms are used to do alignment.
}

\end{cvcoptions}

\cvsubsubsec{\texttt{azpath}: distance from a path defined in atomic Cartesian coordinate space.}{sec:cvc_azpath}
\labelkey{colvar|azpath}

Similar to \refkey{aspath}{colvar|aspath}, this CV computes a special case of Eq.
\ref{eq:apath_z}, and shares the same options as \refkey{aspath}{colvar|aspath}.

The usage of \texttt{azpath} and \texttt{aspath} is illustrated below:

\begin{cvexampleinput}
colvar \{\\
\-~~\# Progress along the path\\
\-~~name as\\
\-~~\# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)\\
\-~~\# Use atomic coordinate from atoms 1, 2 and 3 to compute the path\\
\-~~aspath \{\\
\-~~~~atoms \{atomnumbers \{ 1 2 3 \}\}\\
\-~~~~refPositionsFile1 string-00.pdb\\
\-~~~~refPositionsFile2 string-01.pdb\\
\-~~~~refPositionsFile3 string-02.pdb\\
\-~~~~refPositionsFile4 string-03.pdb\\
\-~~~~refPositionsFile5 string-04.pdb\\
\-~~\}\\
\}\\
\noindent\ttfamily colvar \{\\
\-~~\# Distance from the path\\
\-~~name az\\
\-~~\# The path is defined by 5 reference frames (from string-00.pdb to string-04.pdb)\\
\-~~\# Use atomic coordinate from atoms 1, 2 and 3 to compute the path\\
\-~~azpath \{\\
\-~~~~atoms \{atomnumbers \{ 1 2 3 \}\}\\
\-~~~~refPositionsFile1 string-00.pdb\\
\-~~~~refPositionsFile2 string-01.pdb\\
\-~~~~refPositionsFile3 string-02.pdb\\
\-~~~~refPositionsFile4 string-03.pdb\\
\-~~~~refPositionsFile5 string-04.pdb\\
\-~~\}\\
\}
\end{cvexampleinput}

\cvsubsec{Dense neural network in CV space (MLCV)}{sec:cvc_neuralNetwork}
\labelkey{colvar|NeuralNetwork}
Expand Down
2 changes: 1 addition & 1 deletion doc/cv_version.tex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
\newcommand{\cvversion}{2023-08-21}
\newcommand{\cvversion}{2023-09-05}
Loading

0 comments on commit cbd7c3d

Please sign in to comment.