Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1561 commits
Select commit Hold shift + click to select a range
995dbb5
Add the solvent, no clipping. Might be overestimating the actual solv…
drroe Jan 24, 2026
7f59964
Better estimate of boxes needed
drroe Jan 24, 2026
a2d1a6b
Start adapting the solvate script
drroe Jan 24, 2026
8b5e4ed
Start adding code to remove water molecules within a tolerance
drroe Jan 25, 2026
e38e770
Do the final strip to only retain the target number of waters
drroe Jan 25, 2026
b2f1fd3
Do final cell construction
drroe Jan 25, 2026
016a028
Start trying to do truncated octahedron
drroe Jan 25, 2026
4afebfc
Cannot finish box from Solvate with specified numbers the same way as…
drroe Jan 26, 2026
5bfe279
Try to use autoimage. Still looks like there are visual artefacts
drroe Jan 27, 2026
8f6c85d
Make density calc separate
drroe Jan 27, 2026
cc59458
Add some debug
drroe Jan 27, 2026
0921ffa
Actually increment ntries. Do the autoimage at the end
drroe Jan 27, 2026
80db09f
Put sugar options in SugarBuilder
drroe Jan 27, 2026
260fc8c
Add help text for adding ions
drroe Jan 27, 2026
1b6a6bd
Add another safety valve
drroe Jan 27, 2026
59460d3
Merge branch 'master' into prepareforleap.remote
drroe Jan 27, 2026
d7450f6
Merge branch 'prepareforleap.remote' into prepareforleap.remote.build…
drroe Jan 27, 2026
fe0ff27
Add function to sort typenames by making the first typename < last ty…
Jan 30, 2026
5638841
Test sorting typenames and using them in std::map
Jan 30, 2026
2a0c75f
Have ParmHolder use std::map. Make the old class with std::vector int…
Jan 30, 2026
8891b8b
Update dependencies
Jan 30, 2026
0c88612
Remove unused code
Jan 30, 2026
8ff13f0
Everything but dihedrals/impropers is stored alphabetical now
Jan 30, 2026
c7f10b8
All parameters are alphabetical now execpt dihedral/improper
Jan 30, 2026
366581a
Start the version 7 changelog
drroe Feb 2, 2026
9d97455
Add remove residue, graft on new one test
drroe Feb 3, 2026
dfb6c28
checkchirality byatom is not ready yet - disable for now
drroe Feb 3, 2026
18f8010
Add tests for grafting with connect atoms
drroe Feb 3, 2026
f8b16d9
Automatically use connect atom information if grafting with internal …
drroe Feb 3, 2026
5c536aa
checkchirality byatom is not ready.
drroe Feb 3, 2026
0ffdc32
Add note about connect atom information
drroe Feb 3, 2026
1ed38cd
Merge branch 'master' into prepareforleap.remote
Feb 5, 2026
29a64c2
Merge branch 'prepareforleap.remote' into prepareforleap.remote.build…
Feb 5, 2026
1482ae1
Start LJ calculation for 1-4
Feb 5, 2026
bb40516
Add LJ 12-6-4 energy routine
Feb 5, 2026
c583ade
Add flag to turn on LJ 12-6-4 calc for 1-4
Feb 5, 2026
3288fa4
Start adding LJ 12-6-4 keyword
Feb 5, 2026
1559825
Improve feedback when LJC is active
Feb 5, 2026
fc5db08
Add LJC version of nonbond calc
Feb 5, 2026
3b082dd
Pass in LJ 12-6-4
Feb 5, 2026
fa16bf9
LJ 12-6-4 calc for standalone VDW
Feb 5, 2026
8037dc5
Add PME calc with LJC
Feb 6, 2026
501e026
Add LJCPME calc type
Feb 6, 2026
2bad31a
Enable LJC calc
Feb 6, 2026
eaf894b
Update dependencies
Feb 6, 2026
bac1d39
Add files for decomposing PME with LJCPME
Feb 6, 2026
698493e
Update dependecies
Feb 6, 2026
4f6396e
Update depends
Feb 6, 2026
af2b027
Fix class name
Feb 6, 2026
36a5f2f
Add decomposed LJC pme
Feb 6, 2026
c858536
Add test with/without LJC
Feb 6, 2026
47e84cd
Add test save files
Feb 6, 2026
b699ee2
Add 'lj1264' keyword for 'enedecomp'
Feb 6, 2026
e683714
Add lj1264 decomp test
Feb 6, 2026
9904c85
Start a class for calculating CMAP energies
drroe Feb 7, 2026
ac8ecec
Start the cmap torsion routine
drroe Feb 9, 2026
4f49da8
Get coords
drroe Feb 9, 2026
19c1e34
Add more of the torsion code
drroe Feb 9, 2026
32a7e63
Finish torsion routine for cmap
drroe Feb 9, 2026
4de2184
Add to build framework, add missing depends
drroe Feb 9, 2026
15c718c
Enable cmap for testing
drroe Feb 9, 2026
f58ea72
Calc psi
drroe Feb 9, 2026
4df80cf
Add debug code to print gradients
drroe Feb 9, 2026
9d01228
Add reduced version of the spline routine
drroe Feb 9, 2026
16021c8
Start CMAP setup. Add function to get CMAP grid terms
drroe Feb 9, 2026
a0e17c8
Start adding CMAP setup code
drroe Feb 9, 2026
93a9adc
Add generate_cubic_spline
drroe Feb 10, 2026
b8facd0
Add variables to hold partial deriv for each grid
drroe Feb 10, 2026
c83a187
Calculate dE/dPsi
drroe Feb 10, 2026
92f25c9
Calculate d^2E/dPhiPsi
drroe Feb 10, 2026
55413fb
Start doing the interpolation to actually get the energy
drroe Feb 10, 2026
9c9da4e
Start filling in stencils
drroe Feb 10, 2026
05c534c
Add the weight matrix
drroe Feb 10, 2026
8844575
Generate the bicubic coefficients
drroe Feb 10, 2026
4fbc972
Do bicubic interpolation
drroe Feb 10, 2026
f78d098
Refactor to make it easier to create a routine that also caluclates f…
drroe Feb 10, 2026
6a09e3a
DO the force calc
drroe Feb 10, 2026
78dbd11
Debug force write
drroe Feb 10, 2026
f012339
Need to sum energy
drroe Feb 10, 2026
4439baa
Create separate routines for force and force+energy
Feb 11, 2026
0cf5ce1
Make a common function to return number of possible selected atoms in…
Feb 11, 2026
368cff6
Respect mask selection
Feb 11, 2026
a0af510
Print selected cmaps
Feb 11, 2026
90c8095
Improve code docs. Hide some debug info. Pass in force array for forc…
Feb 11, 2026
d114a1f
Hide more debug info and remove old code
Feb 11, 2026
59e219c
Add a debug level
Feb 11, 2026
2031bd3
Add CMAP test
Feb 11, 2026
6bbb2f8
Do not try to calculate CMAP energy if no CMAP terms/parameters are p…
Feb 11, 2026
a132b7f
Have topology report whether non-contiguous mols are present
Feb 11, 2026
8446471
Pass in just the Topology
Feb 11, 2026
4f2e25a
Create separate routine for fixing atom ordering
Feb 11, 2026
a9f9ec5
If residues in molecules are not contiguous, fix the ordering by defa…
Feb 11, 2026
cbe5acd
Add CMAP to new stuff. Note that fixatomorder now baked into the buil…
Feb 11, 2026
83240d4
Fix up help
Feb 12, 2026
c052dff
I can't believe I got these backwards...
Feb 13, 2026
f397bcf
Add TODO for renumbering after adding ions
Feb 13, 2026
bb88959
Give build the ability to just work directly on an input file
Feb 13, 2026
5496306
Update help
Feb 13, 2026
36501ac
Allow the second ion to also be 0 for neutralization. This allows one…
drroe Feb 16, 2026
d6b14b1
Read IPOL section
drroe Feb 17, 2026
0cdd3c9
Start fixing CMAP for the pol FF
drroe Feb 17, 2026
28679f9
Start handling formerly unhandled CMAP flags
drroe Feb 18, 2026
71573a3
Better error message when a CMAP is invalid. CMAP PARAMETER line is n…
drroe Feb 18, 2026
18547c6
Handle 9.5 and comma CMAP parameters
drroe Feb 18, 2026
b2f1ade
Hide debug info
drroe Feb 18, 2026
7350b22
Save residue offsets for CMAP
drroe Feb 18, 2026
e00b3b9
Ensure cmap residue offsets match before assignment
drroe Feb 18, 2026
15ea458
Do not report mass/pol if they arent actually different
drroe Feb 18, 2026
9ab18bf
Report when LJ parameters are changed within a FF load
drroe Feb 18, 2026
2632300
Add copy constructor
drroe Feb 18, 2026
b65bfc1
Be more verbose when updating parameters by saying what we are changi…
drroe Feb 18, 2026
4334156
If AtomType has LJ params do not overwrite the hasLJ flag
drroe Feb 18, 2026
ea8ab78
Only report if the LJ type is changing if there were already params
drroe Feb 18, 2026
ac275ac
Save file name as well as title
drroe Feb 19, 2026
169286d
Was referencing the wrong var. Can lead to segfaults
drroe Feb 19, 2026
cace2c7
Merge branch 'prepareforleap.remote.buildatom' of github.com:drroe/cp…
Feb 19, 2026
1861e84
When combining parm sets, combine names and file names as well
drroe Feb 19, 2026
9aba32b
Add files used in parameterization as comments
drroe Feb 19, 2026
645dc9d
Use FF description flag instead
drroe Feb 19, 2026
04489f9
Report the parameter set being combined so we know what is actually o…
drroe Feb 19, 2026
06f7ca6
Add large indices for angles and bonds
drroe Feb 19, 2026
692a9dc
No longer CHAMBER-specific.
drroe Feb 19, 2026
ef698ee
Convert index limits to # atom limits
drroe Feb 19, 2026
ccabe26
When appending top, only print warning for no atom types when assigni…
drroe Feb 20, 2026
0338325
Only put a warning about no atom types found if all the types are bla…
drroe Feb 20, 2026
00c5b7c
Add doassembly keyword for automatically creating assemblies from PDB…
drroe Feb 20, 2026
f9602e4
Handle large pointers
drroe Feb 20, 2026
87de649
Change the tolerance for number of times smallest diff seen to > 2 in…
drroe Feb 20, 2026
ec87833
Note the 'doassembly' keyword
drroe Feb 20, 2026
246fea6
Note nsolvent keyword
drroe Feb 20, 2026
5f0aa88
Wildcard is not in TypeNameHolder anymore, remove from DataSize
drroe Feb 24, 2026
3f43160
Start the DihedralParmSet class
drroe Feb 24, 2026
1ea8a89
Add PreviousParm
drroe Feb 24, 2026
1c9bec5
Put the dihedrals from Dihedral parm set into the main parameter set
drroe Feb 24, 2026
b323698
Convert back to a vector to preserve parameter ordering for now
drroe Feb 24, 2026
edae9e3
Add back the warnings; are there too many now?
drroe Feb 24, 2026
4bbd3f3
Put the function to transfer dihedral params from the set to the hold…
drroe Feb 26, 2026
0116a03
Put the type name string function that was in AmberParamFile in TypeN…
drroe Feb 26, 2026
e27260b
Update CMakeLists
drroe Feb 26, 2026
a45a183
Add function for putting parameters in dihedral set into improper holder
drroe Feb 26, 2026
3f0eec2
Remove single multiplicity dihedral parameter add from the Dihedral/I…
drroe Feb 26, 2026
f49ded9
Use DihedralParmSet
drroe Feb 26, 2026
66e20a3
Remove references to temporary file
drroe Feb 26, 2026
7328c3c
Use DihedralParmSet
drroe Feb 26, 2026
2212ddc
Go back to PreviousParm instead of PreviousArray to be consistent wit…
drroe Feb 26, 2026
4ff040f
Allow multiplicity > 1 for impropers
drroe Feb 26, 2026
d34630a
Remove code that is now in DihedralParmSet
drroe Feb 26, 2026
de91348
Consolidate the multiplicity check
drroe Feb 26, 2026
feaf994
By default do not report dihedrals with "missing" multiplicities sinc…
drroe Feb 26, 2026
4bc6bee
Add missing break
drroe Feb 26, 2026
68b672b
Add missing ;
drroe Feb 26, 2026
4888828
Keep track of the number of missing parameters, and make it an error …
drroe Feb 26, 2026
e45b805
Have make depend trigger subdirectory make depend as well
Feb 27, 2026
e4d9735
Add small note about system build capability. Upgrade to lyx 2.4.
Feb 27, 2026
43b9fa0
Add some notes about namespaces. Update to lyx 2.4.
Feb 27, 2026
5a7deb4
Update the doxyfile
Feb 27, 2026
ece35a7
Add subdirectories
Feb 27, 2026
600ed7e
Add some namespace documentation
Feb 27, 2026
3298e71
Script to extract current version number no matter where you are
Feb 27, 2026
aec2344
Script for automatically updating the version string in the Doxyfile
Feb 27, 2026
80553ad
Automatically update doxygen version number when doing make docs
Feb 27, 2026
a89f34c
Have make docs call GeneratePDFs.sh
Feb 27, 2026
19e1ea6
Cpptraj needs to be modified if unhandled radii set
Feb 27, 2026
59dd580
Add help for the source command
Feb 27, 2026
df8ae75
Update PDFs. Start adding section to manual for building systems, con…
Feb 27, 2026
de978fa
Add note about improved sequence command
Feb 27, 2026
a17a4f2
The sequence command is now located in the system build part of the m…
Feb 27, 2026
a794bcf
Make desc a hidden command since its primary use is debugging against…
drroe Mar 1, 2026
445d89e
Add more readdata formats to manual
drroe Mar 1, 2026
b659cb2
Fix up help text
Mar 2, 2026
c7155a3
Add documentation for some datafile options
Mar 2, 2026
cc207fd
Add link to leaprc source
drroe Mar 3, 2026
9f847cd
Add a build Example
drroe Mar 3, 2026
e5ba702
Add entry about reading files as top/coords with readdata
drroe Mar 3, 2026
d2887a3
Add information about CONNECT atoms with graft ic
drroe Mar 3, 2026
74e59e1
Do not print warning for readdata coords if set not already present
drroe Mar 3, 2026
a4f6e76
File names are now printed
drroe Mar 3, 2026
4d7ce77
Fix up check help
drroe Mar 3, 2026
29c1720
Merge branch 'master' into prepareforleap.remote
drroe Mar 3, 2026
df1033d
Merge branch 'prepareforleap.remote' into prepareforleap.remote.build…
drroe Mar 3, 2026
b195bf2
Start build test
drroe Mar 3, 2026
3816a0c
Add build from COORDS test
drroe Mar 3, 2026
502d8f5
Enable the build test
drroe Mar 3, 2026
129fb99
Add test for change atomname with namemap
drroe Mar 3, 2026
73d9207
Update energy help. Fix change help text, and add entry for change gb…
drroe Mar 3, 2026
9de52ff
Add zmatrix complete test
drroe Mar 3, 2026
63c7cfa
Fix up entry for zmatrix complete
drroe Mar 3, 2026
255d3a7
Add entry for mol2 write atombondorder
drroe Mar 3, 2026
7e56dd4
Make nodlparams the default
drroe Mar 3, 2026
6690b76
Fix up prepareforleap help
drroe Mar 3, 2026
8e7f117
Add warning about missing residues to build
Mar 4, 2026
94e1357
Start code for allowing redirection of all problem details to a file.
Mar 4, 2026
cde9674
Add reportfile keyword
Mar 4, 2026
5dd6692
Add manual entry for reportfile keyword
Mar 4, 2026
19d5038
Add sections for build help
Mar 4, 2026
128728c
Simplify the build example
Mar 4, 2026
d0aefa2
Hide check setup timing behind TIMER ifdef
Mar 4, 2026
2ed91e0
Hide detailed template/parm load behind ifdef
Mar 4, 2026
17e9be3
Hide the leap prompt as debug info when loading leaprc files
Mar 4, 2026
8ee43cc
Update Cluster build files
Mar 4, 2026
2492187
Fix ParameterSet location
Mar 4, 2026
f467052
Fix reporting overwritten addatomtypes entries, and report duplicate …
Mar 4, 2026
219d971
Do not recommend addmissingres command yet because it is so not ready…
Mar 4, 2026
5bf3cbf
Move hint about fixatomorder from Topology to ParmFile since we reall…
Mar 4, 2026
34f9080
Add StructureCheck report mode without leading frame arg
Mar 4, 2026
e9fd5f8
Hide some build timers behind ifdef TIMER
Mar 4, 2026
99d11e7
Add file output timer
Mar 4, 2026
78472a6
Add missing leaprc
Mar 4, 2026
5890304
Previously, specifying '-shared' would silently disable libsander sup…
Mar 4, 2026
4b12726
Add warning about leaps value of PI
Mar 4, 2026
b387963
Just report split off groups
Mar 4, 2026
7cc5372
Warn about ignoring set default cmap on/off
Mar 4, 2026
2061bb7
Make sure the box isnt too small when doing nsolvent to prevent clash…
Mar 4, 2026
3839664
Add note about clipX being 0 if truncoct is ever enabled for nsolvent
Mar 4, 2026
a891530
Add note about nsolvent not working for truncoct yet
Mar 4, 2026
b35e5ee
Add note about nsolvent functionality being experimental
Mar 4, 2026
f85eac9
Start modxna info class
Mar 5, 2026
b5a2bc8
Add to build
Mar 5, 2026
2b7f8ec
Get modxna info from mol2 file
Mar 5, 2026
3dfcef1
Cant be in the Cpptraj namespace because if included in Topology will…
Mar 5, 2026
f932bf3
Move out of the Structure namespace
Mar 5, 2026
a6496d3
Remove references to ModXNA_Info
Mar 5, 2026
d1da6de
Save ModXNA info in Topology
Mar 5, 2026
a0b1832
V7.00.0 - MAJOR VERSION BUMP! Addition of system build/parameterizati…
Mar 5, 2026
5623ee0
Hide debug info
Mar 5, 2026
5efe7ba
Update year
Mar 5, 2026
88747d0
Start adding a short libsander test
Mar 5, 2026
e6d6e4b
Finish short libsander test
Mar 5, 2026
4c271f3
Combine into the existing test dir
Mar 5, 2026
ceafe37
Add missing inits
Mar 5, 2026
298c45d
Add missing init of sander var
Mar 5, 2026
a1d938b
Update manual pdf
Mar 5, 2026
4ed7c4c
Expand the build section of the manual
Mar 5, 2026
fe3f98f
Fix checkstructure in parallel
Mar 5, 2026
eb2349e
Add a bunch of missing variables in printf statements
drroe Mar 6, 2026
fc464a1
12-6-4 tests need PME
drroe Mar 6, 2026
0af425c
Support more default options
Mar 6, 2026
129a5ad
Make unhandled set or set default options in leaprc files an error. R…
Mar 6, 2026
c0a5789
Read set default flexiblewater and deleteextrapointangles
Mar 6, 2026
837ea4f
Replace option vars in AssignParams with DataSet_LeapOpts
Mar 6, 2026
3daac01
Revert; not all leap options pertain to parameter assignment
Mar 6, 2026
4b182c1
Put the defaults in variables
Mar 6, 2026
1e47716
Allow default scee and scnb to be overwritten by set default sceescal…
Mar 6, 2026
c9d74f7
Check for bad leap options when building directly from leaprc
Mar 6, 2026
85022e6
Allow existing aliases to be overwritten
Mar 6, 2026
774ee30
Allow flexible water option to be turned on
Mar 6, 2026
937e266
Handle flexible water option. Try to choose a better default top name
Mar 6, 2026
bd68d8d
Add help/manual for flexiblewater
Mar 6, 2026
461e388
Note IPOL > 0 not yet supported in changelog
Mar 6, 2026
32aa363
FFTW is recommended
Mar 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ clean: config.h

docs: src/cpptraj.Doxyfile
cd doc && make docs
cd src && doxygen cpptraj.Doxyfile
cd src && ../devtools/UpdateDoxyVersion.sh && doxygen cpptraj.Doxyfile

# Remove cpptraj binary
uninstall: config.h
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ CPPTRAJ see the following publication:
Disclaimer and Copyright
========================

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

Expand Down Expand Up @@ -80,7 +80,7 @@ the following libraries:
* Parallel NetCDF (-mpi build only, for NetCDF trajectory output in parallel)
* CUDA (-cuda build only)
* HIP (-hip build only)
* FFTW (mostly optional; required for PME functionality and very large FFTs)
* FFTW (mostly optional but recommended; required for PME functionality and very large FFTs)

CPPTRAJ also makes use of the following libraries that are bundled with CPPTRAJ. External ones can be used in place of these if desired.

Expand Down
18 changes: 15 additions & 3 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ UsageFull() {
echo " -gprofile : Use Gnu compiler GLIBC profiling (>= V4.5)*"
echo " -vtune : Enable options for use with Intel Vtune."
echo " -single-ensemble : Enable support for reading/writing single ensemble trajectories."
echo " -leappi : Use LEaP's value of PI for converting radians/degrees."
echo ""
echo "*NOTE: -profile and -gprofile are mutually exclusive."
echo ""
Expand Down Expand Up @@ -202,6 +203,7 @@ icpp=0 # Used to count cmake_prefix_paths

USE_SINGLEENSEMBLE=0 # Enable support for single ensemble trajectories
USE_CPPTRAJDEBUG=0 # Enable internal cpptraj debug flags
USE_LEAP_PI=0 # Use LEaP's value of PI for converting radians/degrees

CLEAN='yes' # yes = clean after configure, no = do not
PERFORM_CHECKS='yes' # yes = Check compilers/libraries, no = do not
Expand Down Expand Up @@ -257,7 +259,7 @@ LIB_STTC[$LNETCDF]='libnetcdf.a' # Expected static location relative to home
LIB_D_ON[$LNETCDF]='-DBINTRAJ' # Directive if library on
LIB_DOFF[$LNETCDF]='' # Directive if library off
LIB_LINK[$LNETCDF]='dynamic' # How to link the library
LIB_TYPE[$LNETCDF]='ld' # ld = LDFLAGS, cpp = cpptraj, blank = special
LIB_TYPE[$LNETCDF]='ld' # ld = LDFLAGS, cpp = cpptraj/libcpptraj, cpptraj=cpptraj only, blank = special

LIB_STAT[$LPARANC]='off'
LIB_CKEY[$LPARANC]='pnetcdf'
Expand Down Expand Up @@ -347,7 +349,7 @@ LIB_FLAG[$LSANDER]='-lsander'
LIB_STTC[$LSANDER]=''
LIB_D_ON[$LSANDER]='-DUSE_SANDERLIB'
LIB_DOFF[$LSANDER]=''
LIB_TYPE[$LSANDER]='ld'
LIB_TYPE[$LSANDER]='cpptraj'

LIB_STAT[$LTIMER]='off'
LIB_CKEY[$LTIMER]='timer'
Expand Down Expand Up @@ -1334,6 +1336,7 @@ SetupFinalFlags() {
DIRECTIVES="$DIRECTIVES -DLIBPME -DHAVE_FFTWD=1"
fi
fi
if [ $USE_LEAP_PI -eq 1 ] ; then DIRECTIVES="$DIRECTIVES -DCPPTRAJ_USE_LEAP_PI" ; fi
# Determine if this is a GitHub or AmberTools build
if [ ! -z "$AMBERHOME" ] ; then
AMBCFGDIR=`pwd | grep "AmberTools/src"`
Expand Down Expand Up @@ -1384,6 +1387,7 @@ SetupFinalFlags() {
# Set up include and linking flags
ldf=''
CPPTRAJ_LIB=''
CPPTRAJONLY_LIB=''
CPPTRAJ_INC=''
nincl=0
for ((i=0; i < $NLIB; i++)) ; do
Expand Down Expand Up @@ -1420,6 +1424,8 @@ SetupFinalFlags() {
ldf="$ldf ${LIB_FLAG[$i]}"
elif [ "${LIB_TYPE[$i]}" = 'cpp' ] ; then
CPPTRAJ_LIB="$CPPTRAJ_LIB ${LIB_FLAG[$i]}"
elif [ "${LIB_TYPE[$i]}" = 'cpptraj' ] ; then
CPPTRAJONLY_LIB="$CPPTRAJONLY_LIB ${LIB_FLAG[$i]}"
fi
fi
done
Expand Down Expand Up @@ -2842,6 +2848,7 @@ while [ ! -z "$1" ] ; do
'-nolfs' ) LFS='' ;;
'-single-ensemble' ) USE_SINGLEENSEMBLE=1 ;;
'-debugon' ) USE_CPPTRAJDEBUG=1 ;;
'-leappi' ) USE_LEAP_PI=1 ;;
# Code profiling
'-profile' ) USE_PROFILE=1 ;;
'-gprofile' ) USE_PROFILE=2 ;;
Expand All @@ -2851,7 +2858,7 @@ while [ ! -z "$1" ] ; do
'-libstatic' ) USE_STATIC=2 ;;
'-shared' )
USE_SHARED=1
LIB_STAT[$LSANDER]='off'
# LIB_STAT[$LSANDER]='off'
;;
'-amberlib' )
if [ -z "$AMBERHOME" ] ; then
Expand Down Expand Up @@ -3064,12 +3071,16 @@ if [ $USE_STATIC -eq 1 ] ; then
elif [ $USE_STATIC -eq 2 ] ; then
echo " Specified libraries will be linked statically if possible."
fi
if [ $USE_LEAP_PI -eq 1 ] ; then
echo " Using LEaP's value of PI for converting radians/degrees."
fi
#echo DIRECTIVES $DIRECTIVES
#echo CFLAGS $CFLAGS
#echo CXXFLAGS $CXXFLAGS
#echo FFLAGS $FFLAGS
#echo LDFLAGS $LDFLAGS
#echo CPPTRAJ_LIB $CPPTRAJ_LIB
#echo CPPTRAJONLY_LIB $CPPTRAJONLY_LIB
#echo CPPTRAJ_INC $CPPTRAJ_INC
#echo REQUIRES_FLINK $REQUIRES_FLINK FLINK $FLINK
echo ""
Expand Down Expand Up @@ -3179,6 +3190,7 @@ ARPACK_TARGET=$ARPACK_TARGET
FFT_TARGET=$FFT_TARGET

CPPTRAJ_LIB=$CPPTRAJ_LIB
CPPTRAJONLY_LIB=$CPPTRAJONLY_LIB
LDFLAGS=$LDFLAGS
SFX=$SFX
EXE=$EXE
Expand Down
15 changes: 15 additions & 0 deletions devtools/FindMissingTests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

if [ ! -f 'Makefile' ] ; then
echo "Should be executed in directory where main test Makefile is."
exit 1
fi

for DIR in `ls -d Test_*` ; do
if [ -d "$DIR" ] ; then
IN_MAKEFILE=`grep $DIR Makefile`
if [ -z "$IN_MAKEFILE" ] ; then
echo "$DIR not in Makefile."
fi
fi
done
20 changes: 20 additions & 0 deletions devtools/GetVersionNum.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

EXEDIR=`dirname $0`

if [ ! -d "$EXEDIR" ] ; then
echo "Error: Could not determine execution directory."
exit 1
fi

cd $EXEDIR

VFILE=../src/Version.h
if [ ! -f "$VFILE" ] ; then
echo "Version file $VFILE not found."
exit 1
fi

VERSION=`awk '{if ($2 == "CPPTRAJ_INTERNAL_VERSION") {gsub(/\"/,""); printf ("%s", $3);}}' $VFILE`
echo $VERSION
exit 0
36 changes: 36 additions & 0 deletions devtools/UpdateDoxyVersion.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

# Update the cpptraj.Doxyfile version number

EXEDIR=`dirname $0`

if [ ! -d "$EXEDIR" ] ; then
echo "Error: Could not determine execution directory."
exit 1
fi

cd $EXEDIR
DFILE=../src/cpptraj.Doxyfile
if [ ! -f "$DFILE" ] ; then
echo "Doxygen file $DFILE not found."
exit 1
fi

VERSION=`./GetVersionNum.sh`
if [ $? -ne 0 ] ; then
echo "Error: Could not get version number."
exit 1
fi

if [ -f 'tmp.cpptraj.Doxyfile' ] ; then
rm tmp.cpptraj.Doxyfile
fi
awk -v vstring="$VERSION" '{
if ($1 == "PROJECT_NUMBER")
printf("PROJECT_NUMBER = %s\n", vstring);
else
print $0;
}' $DFILE > tmp.cpptraj.Doxyfile
mv tmp.cpptraj.Doxyfile $DFILE

exit 0
21 changes: 21 additions & 0 deletions devtools/converters/Extract1264.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "ArgList.h"
#include "BufferedLine.h"
#include <cstdio>

int main(int argc, char** argv)
{
BufferedLine infile;
if (infile.OpenFileRead(argv[1])) return 1;

const char* ptr = infile.Line();
while (ptr != 0) {
ArgList line(ptr, "{}':, ");
//line.PrintDebug();
for (int iarg = 0; iarg < line.Nargs(); iarg += 2)
printf(" c4params_.insert( NameMapPair(\"%s\", %s) );\n", line[iarg].c_str(), line[iarg+1].c_str());
ptr = infile.Line();
}

infile.CloseFile();
return 0;
}
87 changes: 87 additions & 0 deletions doc/ChangeLog.v7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Changes in version 7.0 of CPPTRAJ. 2026
=======================================

The major change in this version is the introduction of the ability of CPPTRAJ to fully build and parameterize systems in the same way that LEaP does.

New Commands
============
- `build` - Allow full build and parameterization of systems for MD, including CMAP, LJ 12-6-4, solvation, and ions. Includes `prepareforleap` and `fixatomorder` functionality. Can create macromolecular assemblies from PDBs with multiple models. Can solvate with a target # of solvent molecules.

- `source` - Read (limited) leaprc files.

- `mutate` - Mutate residues from one kind to another, keeping only common atoms.

- `desc` - DEBUG: describe a selection in the same manner as leap.

New functionality
=================
- Read topology/coordinates with the 'readdata' command.

- More complete read of Amber library/prep files.

- Read CMAP energy term from Amber MDOUT file.

- The `permutedihedrals` command will now check rings.

- The `graft` command will now use CONNECT atom information if it is present.

- The `energy` command will now calculate CMAP energies (if CMAP parameters are present) and/or LJ 12-6-4 contributions to VDW energy (if `lj1264` is specified).

- The `sequence` command now generates better geometries around bonds linking residues.

New Keywords
============
- Introduce ring intersection check to `checkstructure` action.
```
{noringcheck | [ringshortdist <rsdist>] [ringdcut <ringdcut>]
[ringacut <ringacut>]}]
```
Ring-bond intersections are detected when the ring center to bond center is less than <rsdist>, or less than <ringdcut> and the angle between the bond vector and ring perpendicular vector is less than <ringacut>.

- Ignore extra points by default in the `checkstructure action.
```
[{checkxp | xpmask <xpmask>}]
```
If `checkxp` is specified, extra points will be included. By default, extra points will be ignored as determined by 'xpmask'; the default mask to select extra points is '&@\\XP'

Add `namemap <mapset>` keywords for `change atomname from <mask>` to use an atom name map for determining new atom names.

Add `gb` to `change` command to change GB radii.

Add `complete` keyword to `zmatrix` command to get complete zmatrix instead of minimal zmatrix.

Add `atombondorder` keyword to mol2 output; sort bonds by first atom index (similar to how leap writes mol2 files).

Add `lj1264` keyword to the `energy` command to enable LJ 12-6-4 energy calculation.

New file formats recognized
===========================
- Read Amber parameter (force field) files.

- Read Amber force field modification (frcmod) files.

- Read leaprc files (limited).

- Read atom/pdb residue name maps.

Misc Fixes
==========
- Fix timing percentage of solute-solvent hydrogen bonds in `hbond` action.

- `replicatecell` action will correctly regenerate parameters as needed.

- Fix small memory leak when calculating modes.

- Ensure box information is properly updated if needed when using `crdaction`.

- Improve memory allocation in the Frame class to avoid frequent reallocation of memory.

- Improve handling of very large topology files.

- Better handling of very small boxes with pairlist code.

Not Yet Ready
=============
- Introduce the `byatom` keyword to `checkchirality` action to check the chirality of any atoms in specified mask that are chiral centers.

- Cannot yet build topology files for polarizable force fields (IPOL > 0).
Loading
Loading