Skip to content

Commit 5ca3e67

Browse files
drroeDaniel R. Roe
andauthored
Major Version Update: 7.00.0 (#1166)
* Add the solvent, no clipping. Might be overestimating the actual solvent needed * Better estimate of boxes needed * Start adapting the solvate script * Start adding code to remove water molecules within a tolerance * Do the final strip to only retain the target number of waters * Do final cell construction * Start trying to do truncated octahedron * Cannot finish box from Solvate with specified numbers the same way as the original since the method for determining waters out of the box is different. Just use the cell we have been using. Probably will require some imaging. * Try to use autoimage. Still looks like there are visual artefacts * Make density calc separate * Add some debug * Actually increment ntries. Do the autoimage at the end * Put sugar options in SugarBuilder * Add help text for adding ions * Add another safety valve * Add function to sort typenames by making the first typename < last typename * Test sorting typenames and using them in std::map * Have ParmHolder use std::map. Make the old class with std::vector into ParmArray; assigning nonbonds needs to be able to do addition with iterators, so std::map cannot be used in that case. * Update dependencies * Remove unused code * Everything but dihedrals/impropers is stored alphabetical now * All parameters are alphabetical now execpt dihedral/improper * Start the version 7 changelog * Add remove residue, graft on new one test * checkchirality byatom is not ready yet - disable for now * Add tests for grafting with connect atoms * Automatically use connect atom information if grafting with internal coordinates * checkchirality byatom is not ready. * Add note about connect atom information * Start LJ calculation for 1-4 * Add LJ 12-6-4 energy routine * Add flag to turn on LJ 12-6-4 calc for 1-4 * Start adding LJ 12-6-4 keyword * Improve feedback when LJC is active * Add LJC version of nonbond calc * Pass in LJ 12-6-4 * LJ 12-6-4 calc for standalone VDW * Add PME calc with LJC * Add LJCPME calc type * Enable LJC calc * Update dependencies * Add files for decomposing PME with LJCPME * Update dependecies * Update depends * Fix class name * Add decomposed LJC pme * Add test with/without LJC * Add test save files * Add 'lj1264' keyword for 'enedecomp' * Add lj1264 decomp test * Start a class for calculating CMAP energies * Start the cmap torsion routine * Get coords * Add more of the torsion code * Finish torsion routine for cmap * Add to build framework, add missing depends * Enable cmap for testing * Calc psi * Add debug code to print gradients * Add reduced version of the spline routine * Start CMAP setup. Add function to get CMAP grid terms * Start adding CMAP setup code * Add generate_cubic_spline * Add variables to hold partial deriv for each grid * Calculate dE/dPsi * Calculate d^2E/dPhiPsi * Start doing the interpolation to actually get the energy * Start filling in stencils * Add the weight matrix * Generate the bicubic coefficients * Do bicubic interpolation * Refactor to make it easier to create a routine that also caluclates forces * DO the force calc * Debug force write * Need to sum energy * Create separate routines for force and force+energy * Make a common function to return number of possible selected atoms in mask, Natom(). Create function to check if all atoms are selected. * Respect mask selection * Print selected cmaps * Improve code docs. Hide some debug info. Pass in force array for force calc * Hide more debug info and remove old code * Add a debug level * Add CMAP test * Do not try to calculate CMAP energy if no CMAP terms/parameters are present * Have topology report whether non-contiguous mols are present * Pass in just the Topology * Create separate routine for fixing atom ordering * If residues in molecules are not contiguous, fix the ordering by default unless nofixorder is specified. * Add CMAP to new stuff. Note that fixatomorder now baked into the build command * Fix up help * I can't believe I got these backwards... * Add TODO for renumbering after adding ions * Give build the ability to just work directly on an input file * Update help * Allow the second ion to also be 0 for neutralization. This allows one to specify both positive and negative counter ions and use whatever ion is suitable for neutralization. It also allows one to add a specified number of positive or negative counter ions and automatically have the opposite charge counter ion neutralize. * Read IPOL section * Start fixing CMAP for the pol FF * Start handling formerly unhandled CMAP flags * Better error message when a CMAP is invalid. CMAP PARAMETER line is not always 8 floats. Sometimes apparently there are commas... * Handle 9.5 and comma CMAP parameters * Hide debug info * Save residue offsets for CMAP * Ensure cmap residue offsets match before assignment * Do not report mass/pol if they arent actually different * Report when LJ parameters are changed within a FF load * Add copy constructor * Be more verbose when updating parameters by saying what we are changing the parameters from * If AtomType has LJ params do not overwrite the hasLJ flag * Only report if the LJ type is changing if there were already params * Save file name as well as title * Was referencing the wrong var. Can lead to segfaults * When combining parm sets, combine names and file names as well * Add files used in parameterization as comments * Use FF description flag instead * Report the parameter set being combined so we know what is actually overwriting what * Add large indices for angles and bonds * No longer CHAMBER-specific. * Convert index limits to # atom limits * When appending top, only print warning for no atom types when assignin nonbonds if verbose * Only put a warning about no atom types found if all the types are blank. Maybe should be if any are blank? * Add doassembly keyword for automatically creating assemblies from PDB MODELs * Handle large pointers * Change the tolerance for number of times smallest diff seen to > 2 instead of > 4 * Note the 'doassembly' keyword * Note nsolvent keyword * Wildcard is not in TypeNameHolder anymore, remove from DataSize * Start the DihedralParmSet class * Add PreviousParm * Put the dihedrals from Dihedral parm set into the main parameter set * Convert back to a vector to preserve parameter ordering for now * Add back the warnings; are there too many now? * Put the function to transfer dihedral params from the set to the holder in the set * Put the type name string function that was in AmberParamFile in TypeNameHolder * Update CMakeLists * Add function for putting parameters in dihedral set into improper holder * Remove single multiplicity dihedral parameter add from the Dihedral/Improper parm holders. Use DihedralParmSet routines in AmberParamFile, and make use of DihedralParmSet for impropers * Use DihedralParmSet * Remove references to temporary file * Use DihedralParmSet * Go back to PreviousParm instead of PreviousArray to be consistent with other parameter holders; important for UpdateParameters.h * Allow multiplicity > 1 for impropers * Remove code that is now in DihedralParmSet * Consolidate the multiplicity check * By default do not report dihedrals with "missing" multiplicities since it seems like it happens a lot and there is nothing in the force field description that says you have to have a term for every multiplicity * Add missing break * Add missing ; * Keep track of the number of missing parameters, and make it an error on build * Have make depend trigger subdirectory make depend as well * Add small note about system build capability. Upgrade to lyx 2.4. * Add some notes about namespaces. Update to lyx 2.4. * Update the doxyfile * Add subdirectories * Add some namespace documentation * Script to extract current version number no matter where you are * Script for automatically updating the version string in the Doxyfile * Automatically update doxygen version number when doing make docs * Have make docs call GeneratePDFs.sh * Cpptraj needs to be modified if unhandled radii set * Add help for the source command * Update PDFs. Start adding section to manual for building systems, containing the build, sequence, and source commands. * Add note about improved sequence command * The sequence command is now located in the system build part of the manual. * Make desc a hidden command since its primary use is debugging against leap * Add more readdata formats to manual * Fix up help text * Add documentation for some datafile options * Add link to leaprc source * Add a build Example * Add entry about reading files as top/coords with readdata * Add information about CONNECT atoms with graft ic * Do not print warning for readdata coords if set not already present * File names are now printed * Fix up check help * Start build test * Add build from COORDS test * Enable the build test * Add test for change atomname with namemap * Update energy help. Fix change help text, and add entry for change gb/lj1264. * Add zmatrix complete test * Fix up entry for zmatrix complete * Add entry for mol2 write atombondorder * Make nodlparams the default * Fix up prepareforleap help * Add warning about missing residues to build * Start code for allowing redirection of all problem details to a file. * Add reportfile keyword * Add manual entry for reportfile keyword * Add sections for build help * Simplify the build example * Hide check setup timing behind TIMER ifdef * Hide detailed template/parm load behind ifdef * Hide the leap prompt as debug info when loading leaprc files * Update Cluster build files * Fix ParameterSet location * Fix reporting overwritten addatomtypes entries, and report duplicate entries by default - it's useful info * Do not recommend addmissingres command yet because it is so not ready for prime time * Move hint about fixatomorder from Topology to ParmFile since we really should only need it after a topology is loaded * Add StructureCheck report mode without leading frame arg * Hide some build timers behind ifdef TIMER * Add file output timer * Add missing leaprc * Previously, specifying '-shared' would silently disable libsander support in cpptraj. Create a new category of linked libraries that is cpptraj-only that will not be linked to libcpptraj so that libsander can be supported with -shared * Add warning about leaps value of PI * Just report split off groups * Warn about ignoring set default cmap on/off * Make sure the box isnt too small when doing nsolvent to prevent clashes across unit cell boundaries. Disable truncoct for now * Add note about clipX being 0 if truncoct is ever enabled for nsolvent * Add note about nsolvent not working for truncoct yet * Add note about nsolvent functionality being experimental * Start modxna info class * Add to build * Get modxna info from mol2 file * Cant be in the Cpptraj namespace because if included in Topology will clash with the Cpptraj class. * Move out of the Structure namespace * Remove references to ModXNA_Info * Save ModXNA info in Topology * V7.00.0 - MAJOR VERSION BUMP! Addition of system build/parameterization code, among other improvements. Lots of changes under the hood as far as topology/parameter handling goes. * Hide debug info * Update year * Start adding a short libsander test * Finish short libsander test * Combine into the existing test dir * Add missing inits * Add missing init of sander var * Update manual pdf * Expand the build section of the manual * Fix checkstructure in parallel * Add a bunch of missing variables in printf statements * 12-6-4 tests need PME * Support more default options * Make unhandled set or set default options in leaprc files an error. Read more set default options * Read set default flexiblewater and deleteextrapointangles * Replace option vars in AssignParams with DataSet_LeapOpts * Revert; not all leap options pertain to parameter assignment * Put the defaults in variables * Allow default scee and scnb to be overwritten by set default sceescalefactor etc. Trap IPOL, not yet supported * Check for bad leap options when building directly from leaprc * Allow existing aliases to be overwritten * Allow flexible water option to be turned on * Handle flexible water option. Try to choose a better default top name * Add help/manual for flexiblewater * Note IPOL > 0 not yet supported in changelog * FFTW is recommended --------- Co-authored-by: Daniel R. Roe <daniel.roe@nih.gov>
1 parent ad353fe commit 5ca3e67

349 files changed

Lines changed: 134469 additions & 12550 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ clean: config.h
3838

3939
docs: src/cpptraj.Doxyfile
4040
cd doc && make docs
41-
cd src && doxygen cpptraj.Doxyfile
41+
cd src && ../devtools/UpdateDoxyVersion.sh && doxygen cpptraj.Doxyfile
4242

4343
# Remove cpptraj binary
4444
uninstall: config.h

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ CPPTRAJ see the following publication:
4646
Disclaimer and Copyright
4747
========================
4848

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

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

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

configure

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ UsageFull() {
103103
echo " -gprofile : Use Gnu compiler GLIBC profiling (>= V4.5)*"
104104
echo " -vtune : Enable options for use with Intel Vtune."
105105
echo " -single-ensemble : Enable support for reading/writing single ensemble trajectories."
106+
echo " -leappi : Use LEaP's value of PI for converting radians/degrees."
106107
echo ""
107108
echo "*NOTE: -profile and -gprofile are mutually exclusive."
108109
echo ""
@@ -202,6 +203,7 @@ icpp=0 # Used to count cmake_prefix_paths
202203

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

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

262264
LIB_STAT[$LPARANC]='off'
263265
LIB_CKEY[$LPARANC]='pnetcdf'
@@ -347,7 +349,7 @@ LIB_FLAG[$LSANDER]='-lsander'
347349
LIB_STTC[$LSANDER]=''
348350
LIB_D_ON[$LSANDER]='-DUSE_SANDERLIB'
349351
LIB_DOFF[$LSANDER]=''
350-
LIB_TYPE[$LSANDER]='ld'
352+
LIB_TYPE[$LSANDER]='cpptraj'
351353

352354
LIB_STAT[$LTIMER]='off'
353355
LIB_CKEY[$LTIMER]='timer'
@@ -1334,6 +1336,7 @@ SetupFinalFlags() {
13341336
DIRECTIVES="$DIRECTIVES -DLIBPME -DHAVE_FFTWD=1"
13351337
fi
13361338
fi
1339+
if [ $USE_LEAP_PI -eq 1 ] ; then DIRECTIVES="$DIRECTIVES -DCPPTRAJ_USE_LEAP_PI" ; fi
13371340
# Determine if this is a GitHub or AmberTools build
13381341
if [ ! -z "$AMBERHOME" ] ; then
13391342
AMBCFGDIR=`pwd | grep "AmberTools/src"`
@@ -1384,6 +1387,7 @@ SetupFinalFlags() {
13841387
# Set up include and linking flags
13851388
ldf=''
13861389
CPPTRAJ_LIB=''
1390+
CPPTRAJONLY_LIB=''
13871391
CPPTRAJ_INC=''
13881392
nincl=0
13891393
for ((i=0; i < $NLIB; i++)) ; do
@@ -1420,6 +1424,8 @@ SetupFinalFlags() {
14201424
ldf="$ldf ${LIB_FLAG[$i]}"
14211425
elif [ "${LIB_TYPE[$i]}" = 'cpp' ] ; then
14221426
CPPTRAJ_LIB="$CPPTRAJ_LIB ${LIB_FLAG[$i]}"
1427+
elif [ "${LIB_TYPE[$i]}" = 'cpptraj' ] ; then
1428+
CPPTRAJONLY_LIB="$CPPTRAJONLY_LIB ${LIB_FLAG[$i]}"
14231429
fi
14241430
fi
14251431
done
@@ -2842,6 +2848,7 @@ while [ ! -z "$1" ] ; do
28422848
'-nolfs' ) LFS='' ;;
28432849
'-single-ensemble' ) USE_SINGLEENSEMBLE=1 ;;
28442850
'-debugon' ) USE_CPPTRAJDEBUG=1 ;;
2851+
'-leappi' ) USE_LEAP_PI=1 ;;
28452852
# Code profiling
28462853
'-profile' ) USE_PROFILE=1 ;;
28472854
'-gprofile' ) USE_PROFILE=2 ;;
@@ -2851,7 +2858,7 @@ while [ ! -z "$1" ] ; do
28512858
'-libstatic' ) USE_STATIC=2 ;;
28522859
'-shared' )
28532860
USE_SHARED=1
2854-
LIB_STAT[$LSANDER]='off'
2861+
# LIB_STAT[$LSANDER]='off'
28552862
;;
28562863
'-amberlib' )
28572864
if [ -z "$AMBERHOME" ] ; then
@@ -3064,12 +3071,16 @@ if [ $USE_STATIC -eq 1 ] ; then
30643071
elif [ $USE_STATIC -eq 2 ] ; then
30653072
echo " Specified libraries will be linked statically if possible."
30663073
fi
3074+
if [ $USE_LEAP_PI -eq 1 ] ; then
3075+
echo " Using LEaP's value of PI for converting radians/degrees."
3076+
fi
30673077
#echo DIRECTIVES $DIRECTIVES
30683078
#echo CFLAGS $CFLAGS
30693079
#echo CXXFLAGS $CXXFLAGS
30703080
#echo FFLAGS $FFLAGS
30713081
#echo LDFLAGS $LDFLAGS
30723082
#echo CPPTRAJ_LIB $CPPTRAJ_LIB
3083+
#echo CPPTRAJONLY_LIB $CPPTRAJONLY_LIB
30733084
#echo CPPTRAJ_INC $CPPTRAJ_INC
30743085
#echo REQUIRES_FLINK $REQUIRES_FLINK FLINK $FLINK
30753086
echo ""
@@ -3179,6 +3190,7 @@ ARPACK_TARGET=$ARPACK_TARGET
31793190
FFT_TARGET=$FFT_TARGET
31803191
31813192
CPPTRAJ_LIB=$CPPTRAJ_LIB
3193+
CPPTRAJONLY_LIB=$CPPTRAJONLY_LIB
31823194
LDFLAGS=$LDFLAGS
31833195
SFX=$SFX
31843196
EXE=$EXE

devtools/FindMissingTests.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
if [ ! -f 'Makefile' ] ; then
4+
echo "Should be executed in directory where main test Makefile is."
5+
exit 1
6+
fi
7+
8+
for DIR in `ls -d Test_*` ; do
9+
if [ -d "$DIR" ] ; then
10+
IN_MAKEFILE=`grep $DIR Makefile`
11+
if [ -z "$IN_MAKEFILE" ] ; then
12+
echo "$DIR not in Makefile."
13+
fi
14+
fi
15+
done

devtools/GetVersionNum.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
3+
EXEDIR=`dirname $0`
4+
5+
if [ ! -d "$EXEDIR" ] ; then
6+
echo "Error: Could not determine execution directory."
7+
exit 1
8+
fi
9+
10+
cd $EXEDIR
11+
12+
VFILE=../src/Version.h
13+
if [ ! -f "$VFILE" ] ; then
14+
echo "Version file $VFILE not found."
15+
exit 1
16+
fi
17+
18+
VERSION=`awk '{if ($2 == "CPPTRAJ_INTERNAL_VERSION") {gsub(/\"/,""); printf ("%s", $3);}}' $VFILE`
19+
echo $VERSION
20+
exit 0

devtools/UpdateDoxyVersion.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/bin/bash
2+
3+
# Update the cpptraj.Doxyfile version number
4+
5+
EXEDIR=`dirname $0`
6+
7+
if [ ! -d "$EXEDIR" ] ; then
8+
echo "Error: Could not determine execution directory."
9+
exit 1
10+
fi
11+
12+
cd $EXEDIR
13+
DFILE=../src/cpptraj.Doxyfile
14+
if [ ! -f "$DFILE" ] ; then
15+
echo "Doxygen file $DFILE not found."
16+
exit 1
17+
fi
18+
19+
VERSION=`./GetVersionNum.sh`
20+
if [ $? -ne 0 ] ; then
21+
echo "Error: Could not get version number."
22+
exit 1
23+
fi
24+
25+
if [ -f 'tmp.cpptraj.Doxyfile' ] ; then
26+
rm tmp.cpptraj.Doxyfile
27+
fi
28+
awk -v vstring="$VERSION" '{
29+
if ($1 == "PROJECT_NUMBER")
30+
printf("PROJECT_NUMBER = %s\n", vstring);
31+
else
32+
print $0;
33+
}' $DFILE > tmp.cpptraj.Doxyfile
34+
mv tmp.cpptraj.Doxyfile $DFILE
35+
36+
exit 0
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include "ArgList.h"
2+
#include "BufferedLine.h"
3+
#include <cstdio>
4+
5+
int main(int argc, char** argv)
6+
{
7+
BufferedLine infile;
8+
if (infile.OpenFileRead(argv[1])) return 1;
9+
10+
const char* ptr = infile.Line();
11+
while (ptr != 0) {
12+
ArgList line(ptr, "{}':, ");
13+
//line.PrintDebug();
14+
for (int iarg = 0; iarg < line.Nargs(); iarg += 2)
15+
printf(" c4params_.insert( NameMapPair(\"%s\", %s) );\n", line[iarg].c_str(), line[iarg+1].c_str());
16+
ptr = infile.Line();
17+
}
18+
19+
infile.CloseFile();
20+
return 0;
21+
}

doc/ChangeLog.v7.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
Changes in version 7.0 of CPPTRAJ. 2026
2+
=======================================
3+
4+
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.
5+
6+
New Commands
7+
============
8+
- `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.
9+
10+
- `source` - Read (limited) leaprc files.
11+
12+
- `mutate` - Mutate residues from one kind to another, keeping only common atoms.
13+
14+
- `desc` - DEBUG: describe a selection in the same manner as leap.
15+
16+
New functionality
17+
=================
18+
- Read topology/coordinates with the 'readdata' command.
19+
20+
- More complete read of Amber library/prep files.
21+
22+
- Read CMAP energy term from Amber MDOUT file.
23+
24+
- The `permutedihedrals` command will now check rings.
25+
26+
- The `graft` command will now use CONNECT atom information if it is present.
27+
28+
- 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).
29+
30+
- The `sequence` command now generates better geometries around bonds linking residues.
31+
32+
New Keywords
33+
============
34+
- Introduce ring intersection check to `checkstructure` action.
35+
```
36+
{noringcheck | [ringshortdist <rsdist>] [ringdcut <ringdcut>]
37+
[ringacut <ringacut>]}]
38+
```
39+
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>.
40+
41+
- Ignore extra points by default in the `checkstructure action.
42+
```
43+
[{checkxp | xpmask <xpmask>}]
44+
```
45+
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'
46+
47+
Add `namemap <mapset>` keywords for `change atomname from <mask>` to use an atom name map for determining new atom names.
48+
49+
Add `gb` to `change` command to change GB radii.
50+
51+
Add `complete` keyword to `zmatrix` command to get complete zmatrix instead of minimal zmatrix.
52+
53+
Add `atombondorder` keyword to mol2 output; sort bonds by first atom index (similar to how leap writes mol2 files).
54+
55+
Add `lj1264` keyword to the `energy` command to enable LJ 12-6-4 energy calculation.
56+
57+
New file formats recognized
58+
===========================
59+
- Read Amber parameter (force field) files.
60+
61+
- Read Amber force field modification (frcmod) files.
62+
63+
- Read leaprc files (limited).
64+
65+
- Read atom/pdb residue name maps.
66+
67+
Misc Fixes
68+
==========
69+
- Fix timing percentage of solute-solvent hydrogen bonds in `hbond` action.
70+
71+
- `replicatecell` action will correctly regenerate parameters as needed.
72+
73+
- Fix small memory leak when calculating modes.
74+
75+
- Ensure box information is properly updated if needed when using `crdaction`.
76+
77+
- Improve memory allocation in the Frame class to avoid frequent reallocation of memory.
78+
79+
- Improve handling of very large topology files.
80+
81+
- Better handling of very small boxes with pairlist code.
82+
83+
Not Yet Ready
84+
=============
85+
- Introduce the `byatom` keyword to `checkchirality` action to check the chirality of any atoms in specified mask that are chiral centers.
86+
87+
- Cannot yet build topology files for polarizable force fields (IPOL > 0).

0 commit comments

Comments
 (0)