Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
4625b3e
DRR - Cpptraj: Add the xtalsymm Action class from Dave Cerutti. Suppo…
Feb 21, 2019
a983468
DRR - Cpptraj: Fix signed/unsigned comparisons. Remove C-style includes
Feb 21, 2019
b2e024a
DRR - Cpptraj: C-array to STL vector
Feb 21, 2019
4f8735c
DRR - Cpptraj: Do not try to delete stl vector...
Feb 21, 2019
f1c0382
DRR - Cpptraj: Add linear least squares solver from D. Cerutti. Fix s…
Feb 21, 2019
0205982
DRR - Cpptraj: Add TruncResNameAtomName function
Feb 21, 2019
fd29a81
DRR - Cpptraj: Add translate atoms in mask function
Feb 21, 2019
39bc66d
DRR - Cpptraj: Add rotate atoms in a range
Feb 21, 2019
0ebd948
DRR - Cpptraj: Revert some of the signed/unsigned changes, code relie…
Feb 21, 2019
39792e3
DRR - Cpptraj: Fix some sign warnings. Make function that returns not…
Feb 21, 2019
c2bff3f
DRR - Cpptraj: Make function that returns nothing a void
Feb 21, 2019
a2231aa
DRR - Cpptraj: Another sign warning
Feb 21, 2019
46eb52e
DRR - Cpptraj: Change define to static const int
Feb 21, 2019
564c4d7
DRR - Cpptraj: Replace define with const double
Feb 21, 2019
1c8193e
Merge branch 'master' into xtalsymm
Feb 22, 2019
ea421b3
DRR - Cpptraj: Fix some sign warnings.
Feb 22, 2019
4bcf9e0
DRR - Cpptraj: Format class var name
Feb 22, 2019
abf0449
DRR - Cpptraj: More class var name format fixes
Feb 22, 2019
2bca463
DRR - Cpptraj: TransOp class var name fixes
Feb 22, 2019
2e58b93
DRR - Cpptraj: Make TransOp and XtalSymm classes part of Action_XtalS…
Feb 22, 2019
a910b1c
DRR - Cpptraj: More class var name fixes.
Feb 22, 2019
56b89be
DRR - Cpptraj: Space group var name changes
Feb 22, 2019
a993b30
DRR - Cpptraj: Solvent atom var name fixes
Feb 22, 2019
dd52d1e
DRR - Cpptraj: Fix masks vars
Feb 22, 2019
786ba2d
DRR - Cpptraj: More var name fixes
Feb 22, 2019
2807113
DRR - Cpptraj: Finish class var renaming
Feb 22, 2019
2996f2d
Merge branch 'master' into xtalsymm
Feb 22, 2019
0cc77dc
DRR - Cpptraj: Add test for xtalsymm from D. Cerutti
Feb 25, 2019
0e5712c
DRR - Cpptraj: Rename test output files so they are separate for each…
Feb 25, 2019
dc3e779
DRR - Cpptraj: Replace C-style array with vector. Add constructor.
Feb 25, 2019
e20642f
DRR - Cpptraj: Add Transposed() function
Feb 25, 2019
dfdb04a
DRR - Cpptraj: Convert more C arrays to vector. RefT was being passed…
Feb 25, 2019
d091f82
DRR - Cpptraj: More conversion to vector. Add default constructor for…
Feb 25, 2019
2f65189
DRR - Cpptraj: Convert remaining class C style arrays to vector; remo…
Feb 25, 2019
1126ca7
DRR - Cpptraj: Use vector
Feb 25, 2019
f34154b
DRR - Cpptraj: Allocate subunit frame memory during setup.
Feb 25, 2019
e5e7f3e
DRR - Cpptraj: Const-correctness and comment formatting
Feb 25, 2019
ce4274e
DRR - Cpptraj: More const correctness and comments
Feb 25, 2019
0aac5ad
DRR - Cpptraj: Add some feedback
Feb 25, 2019
2d40c4e
DRR - Cpptraj: Fix up help and add more feedback
Feb 25, 2019
a5f855f
DRR - Cpptraj: Enable xtalsymm test.
Feb 25, 2019
2c9ce5f
DRR - Cpptraj: Revision bump for xtalsymm
Feb 25, 2019
6e19d2e
DRR - Cpptraj: Add DSC to contributing authors section.
Feb 25, 2019
151e7ca
DRR - Cpptraj: Update copyright date
Feb 25, 2019
a9de232
Merge branch 'master' into xtalsymm
Feb 28, 2019
869fac6
DRR - Cpptraj: Fix up how reference structure is handled. Since we do…
Mar 1, 2019
b0f8de7
DRR - Cpptraj: Add manual stub for xtalsymm
Mar 1, 2019
5aa5d97
Merge branch 'master' into xtalsymm
Mar 1, 2019
ea15813
DRR - Cpptraj: hard code AR and DEL_FILE back into make files since c…
Mar 1, 2019
fde3227
DRR - Cpptraj: Have external libraries use a single common config fil…
Mar 1, 2019
79d1f64
DRR - Cpptraj: Fix target dependencies
Mar 4, 2019
eb71fcd
DRR - Cpptraj: xtalsymm not yet set up for parallel
Mar 4, 2019
3744962
DRR - Cpptraj: Protect in parallel
Mar 4, 2019
80b1b44
DRR - Cpptraj: Replace incorrect instances of 'thread' with 'process'
Mar 4, 2019
4d84795
DRR - Cpptraj: Replace variable declaration with vector. Should preve…
Mar 4, 2019
337018d
DRR - Cpptraj: Add code note
Mar 4, 2019
8231a04
DRR - Cpptraj: Create SpaceGroup class in attempt to get rid of giant…
Mar 4, 2019
b8c7b0a
DRR - Cpptraj: Use SpaceGroup class
Mar 4, 2019
97c94ba
DRR - Cpptraj: Forgot to set space group id internally.
Mar 4, 2019
c040ce3
DRR - Cpptraj: Get rid of old code with if branches; all code in Spac…
Mar 4, 2019
fd01563
DRR - Cpptraj: Refactor code to avoid the following warning:
Mar 4, 2019
b2c7d90
DRR - Cpptraj: Get rid of old code and nasty tabs
Mar 4, 2019
44892f7
DRR - Cpptraj: printf -> mprintf
Mar 4, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ CPPTRAJ see the following publication:
Disclaimer and Copyright
========================

CPPTRAJ is Copyright (c) 2010-2018 Daniel R. Roe.
CPPTRAJ is Copyright (c) 2010-2019 Daniel R. Roe.
The terms for using, copying, modifying, and distributing CPPTRAJ are
specified in the file LICENSE.

Expand Down Expand Up @@ -165,6 +165,9 @@ Code for the reciprocal part of the particle mesh Ewald calculation.
* Christina Bergonzo (National Institute of Standards and Technology, Gaithersburg, MD)
Fixes and improvements to nucleic acid dihedral angle definitions (DihedralSearch).

* David S. Cerutti (Rutgers University, Piscataway, NJ, USA)
Original code for the 'xtalsymm' Action.

#### Various Contributions
* David A. Case (Rutgers University, Piscataway, NJ, USA)
* Hai Nguyen (Rutgers University, Piscataway, NJ, USA)
Expand Down
34 changes: 8 additions & 26 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ USE_CPPTRAJDEBUG=0 # Enable internal cpptraj debug flags
CLEAN='yes' # yes = clean after configure, no = do not
PERFORM_CHECKS='yes' # yes = Check compilers/libraries, no = do not

AR_CMD='ar cqs' # Archive command for creating static libraries.
RM_CMD='/bin/rm -f' # Command for removing files.

# Flags for large file support
LFS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'

Expand Down Expand Up @@ -1903,43 +1900,22 @@ fi
# CUDA
if [ $USE_CUDA -eq 1 ] ; then
CUDA_TARGET='cuda_kernels/libcpptraj_cuda.a'
cat > src/cuda_kernels/cuda.config.h <<EOF
AR = $AR_CMD
DEL_FILE = $RM_CMD
EOF
BuildRules src/cuda_kernels/cuda.config.h nvcc
fi
# Readline
if [ "${LIB_STAT[$LREADLINE]}" = 'bundled' ] ; then
READLINE_TARGET=${LIB_FLAG[$LREADLINE]}
cat > src/readline/readline.config.h <<EOF
DIRECTIVES = -DHAVE_CONFIG_H
INCLUDE = -I.
AR = $AR_CMD
DEL_FILE = $RM_CMD
EOF
BuildRules src/readline/readline.config.h cc
else
READLINE_TARGET='noreadline'
fi
# Xdrfile
if [ "${LIB_STAT[$LXDRFILE]}" = 'bundled' ] ; then
XDRFILE_TARGET=${LIB_FLAG[$LXDRFILE]}
cat > src/xdrfile/xdrfile.config.h <<EOF
AR = $AR_CMD
DEL_FILE = $RM_CMD
EOF
BuildRules src/xdrfile/xdrfile.config.h cc
else
XDRFILE_TARGET='noxdrfile'
fi
# Arpack
if [ "${LIB_STAT[$LARPACK]}" = 'bundled' ] ; then
ARPACK_TARGET=${LIB_FLAG[$LARPACK]}
cat > src/arpack/arpack.config.h <<EOF
DEL_FILE = $RM_CMD
EOF
BuildRules src/arpack/arpack.config.h f77
else
ARPACK_TARGET='noarpack'
fi
Expand Down Expand Up @@ -1971,8 +1947,6 @@ if [ ! -z "$DBGFLAGS" ] ; then
echo "DBGFLAGS=$DBGFLAGS" >> config.h
fi
cat >> config.h <<EOF
DEL_FILE = $RM_CMD

SHARED_SUFFIX=$SHARED_SUFFIX
DIRECTIVES=$DIRECTIVES
INCLUDE=$INCLUDE
Expand Down Expand Up @@ -2002,6 +1976,14 @@ EOF
# BuildRules config.h cc cxx
#fi

# ----- Create config for external libraries -----
external_config='external.config.h'
cat > $external_config <<EOF
# CPPTRAJ config for external libraries.
# configured using: $CONFIGURECMD
EOF
BuildRules $external_config nvcc cc f77

# ----- Create directories if necessary ----------
if [ ! -e "$CPPTRAJBIN" ] ; then
mkdir "$CPPTRAJBIN"
Expand Down
168 changes: 163 additions & 5 deletions doc/cpptraj.lyx
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@ Cpptraj
has a wide range of functionality, and makes use of OpenMP/MPI to speed
up many calculations, including processing ensembles of trajectories and/or
conducting multiple analyses in parallel with MPI.

\begin_inset CommandInset citation
LatexCommand citep
key "Roe2018"
literal "true"

\end_inset


\end_layout

\begin_layout Standard
Expand Down Expand Up @@ -13580,7 +13580,7 @@ Mod
\begin_layout Standard
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="82" columns="3">
<lyxtabular version="3" rows="83" columns="3">
<features islongtable="true" longtabularalignment="center">
<column alignment="center" valignment="top" width="1.3in">
<column alignment="center" valignment="top" width="4.5in">
Expand Down Expand Up @@ -16021,7 +16021,7 @@ Calculate unit cell volume.
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Expand All @@ -16030,7 +16030,7 @@ watershell

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Expand All @@ -16040,13 +16040,43 @@ Calculate the number of waters in the first and second solvation shells

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xtalsymm
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Superimpose symmetry-related parts of a system using crystallographic symmetry
operations.
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
X
\end_layout

\end_inset
</cell>
</row>
Expand Down Expand Up @@ -31502,6 +31532,134 @@ closest
As of version 17 this command is CUDA-enabled in CUDA versions of CPPTRAJ.
\end_layout

\begin_layout Subsection
xtalsymm
\end_layout

\begin_layout LyX-Code
xtalsymm <mask> group <space group> [collect [centroid]]
\end_layout

\begin_layout LyX-Code
[ first | reference | ref <name> | refindex <#> ]
\end_layout

\begin_layout LyX-Code
[na <na>] [nb <nb>] [nc <nc>]
\end_layout

\begin_deeper
\begin_layout Description
<mask> Select atoms to perform symmetry operations on.
\end_layout

\begin_layout Description
group
\begin_inset space ~
\end_inset

<space
\begin_inset space ~
\end_inset

group> Symmetry space group (e.g.

\begin_inset Quotes eld
\end_inset

P1
\begin_inset Quotes erd
\end_inset

,
\begin_inset Quotes eld
\end_inset

P121
\begin_inset Quotes erd
\end_inset

, etc.)
\end_layout

\begin_layout Description
[collect] If specified, reimage solvent molecules by atom.
\end_layout

\begin_deeper
\begin_layout Description
[centroid] If specified along with collect, reimage solvent molecules by
molecule.
\end_layout

\end_deeper
\begin_layout Description
[first
\begin_inset space ~
\end_inset

|
\begin_inset space ~
\end_inset

reference
\begin_inset space ~
\end_inset

|
\begin_inset space ~
\end_inset

ref
\begin_inset space ~
\end_inset

<name>
\begin_inset space ~
\end_inset

|
\begin_inset space ~
\end_inset

refindex
\begin_inset space ~
\end_inset

<#>] Reference structure to use for determining crystal symmetry.
\end_layout

\begin_layout Description
[na
\begin_inset space ~
\end_inset

<na>] Number of replicas along the A vector (default 1).
\end_layout

\begin_layout Description
[nb
\begin_inset space ~
\end_inset

<nb>] Number of replicas along the B vector (default 1).
\end_layout

\begin_layout Description
[nc
\begin_inset space ~
\end_inset

<nc>] Number of replicas along the C vector (default 1).
\end_layout

\end_deeper
\begin_layout Standard
Calculate the optimal approach for superimposing symmetry-related subunits
of the simulation back onto one another.
This modifies the coordinate state for all future actions.
\end_layout

\begin_layout Section
Analysis Commands
\end_layout
Expand Down
2 changes: 1 addition & 1 deletion src/Action_ClusterDihedral.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Action::RetType Action_ClusterDihedral::Init(ArgList& actionArgs, ActionInit& in
{
# ifdef MPI
if (init.TrajComm().Size() > 1) {
mprinterr("Error: 'clusterdihedral' not supported with > 1 thread (%i threads currently)\n",
mprinterr("Error: 'clusterdihedral' not supported with > 1 process (%i processes currently)\n",
init.TrajComm().Size());
return Action::ERR;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Action_Contacts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Action::RetType Action_Contacts::Init(ArgList& actionArgs, ActionInit& init, int
# ifdef MPI
// Since output is to CpptrajFiles, not practical in parallel.
if (init.TrajComm().Size() > 1) {
mprinterr("Error: 'contacts' action does not work with > 1 thread (%i threads currently).\n"
mprinterr("Error: 'contacts' action does not work with > 1 process (%i processes currently).\n"
"Error: Consider using 'nativecontacts' instead.\n", init.TrajComm().Size());
return Action::ERR;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Action_CreateCrd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ Action::RetType Action_CreateCrd::Init(ArgList& actionArgs, ActionInit& init, in
mprintf("\tNot strictly enforcing that all frames have same # atoms.\n");
# ifdef MPI
if (init.TrajComm().Size() > 1)
mprintf("Warning: Synchronization of COORDS data sets over multiple threads is\n"
mprintf("Warning: Synchronization of COORDS data sets over multiple processes is\n"
"Warning: experimental and may be slower than reading in via a single\n"
"Warning: thread. Users are encouraged to run benchmarks before\n"
"Warning: process. Users are encouraged to run benchmarks before\n"
"Warning: extensive usage.\n");
# endif
return Action::OK;
Expand Down
2 changes: 1 addition & 1 deletion src/Action_CreateReservoir.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Action::RetType Action_CreateReservoir::Init(ArgList& actionArgs, ActionInit& in
# endif
# ifdef MPI
if (init.TrajComm().Size() > 1) {
mprinterr("Error: 'createreservoir' action does not work with > 1 thread (%i threads currently).\n", init.TrajComm().Size());
mprinterr("Error: 'createreservoir' action does not work with > 1 process (%i processes currently).\n", init.TrajComm().Size());
return Action::ERR;
}
# endif
Expand Down
4 changes: 2 additions & 2 deletions src/Action_Density.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ Action::RetType Action_Density::Init(ArgList& actionArgs, ActionInit& init, int
} else {
# ifdef MPI
if (init.TrajComm().Size() > 1) {
mprinterr("Error: 'density' with masks does not work with > 1 thread"
" (%i threads currently).\n", init.TrajComm().Size());
mprinterr("Error: 'density' with masks does not work with > 1 process"
" (%i processes currently).\n", init.TrajComm().Size());
return Action::ERR;
}
# endif
Expand Down
2 changes: 1 addition & 1 deletion src/Action_FilterByData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Action::RetType Action_FilterByData::Init(ArgList& actionArgs, ActionInit& init,
# ifdef MPI
if (!multi_ && init.TrajComm().Size() > 1)
mprintf("Warning: Trajectories written after 'filter' may have issues if\n"
"Warning: the number of threads writing is > 1 (currently %i threads)\n",
"Warning: the number of processes writing is > 1 (currently %i processes)\n",
init.TrajComm().Size());
# endif
return Action::OK;
Expand Down
2 changes: 1 addition & 1 deletion src/Action_GIST.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Action::RetType Action_GIST::Init(ArgList& actionArgs, ActionInit& init, int deb
{
# ifdef MPI
if (init.TrajComm().Size() > 1) {
mprinterr("Error: 'gist' action does not work with > 1 thread (%i threads currently).\n",
mprinterr("Error: 'gist' action does not work with > 1 process (%i processes currently).\n",
init.TrajComm().Size());
return Action::ERR;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Action_Mask.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Action::RetType Action_Mask::Init(ArgList& actionArgs, ActionInit& init, int deb
# ifdef MPI
trajComm_ = init.TrajComm();
if ( trajComm_.Size() > 1 && outfile_ != 0) {
mprinterr("Error: 'maskout' currently only works with 1 thread (currently %i)\n"
mprinterr("Error: 'maskout' currently only works with 1 process (currently %i)\n"
"Error: Consider using the 'name'/'out' keywords instead\n", trajComm_.Size());
return Action::ERR;
}
Expand Down
Loading