From bc7b4f445df27cbcecc0df873c53eac1847c2350 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 26 Feb 2026 15:01:04 -0500 Subject: [PATCH 1/3] Add missing Hamiltonian dimension values write. Warn if remd values dimension write is unhandled --- src/NetcdfFile.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/NetcdfFile.cpp b/src/NetcdfFile.cpp index 86ad691e9f..dedc5289b8 100644 --- a/src/NetcdfFile.cpp +++ b/src/NetcdfFile.cpp @@ -1632,13 +1632,16 @@ int NetcdfFile::WriteRemdValues(Frame const& frm) { if (remValType_.DimType(idx) == ReplicaDimArray::TEMPERATURE) { RemdValues_[idx] = frm.Temperature(); //mprintf("DEBUG: T= %g\n", frm.Temperature()); + } else if (remValType_.DimType(idx) == ReplicaDimArray::HAMILTONIAN) { + RemdValues_[idx] = (double)(frm.RemdIndices()[idx]); } else if (remValType_.DimType(idx) == ReplicaDimArray::PH) { RemdValues_[idx] = frm.pH(); //mprintf("DEBUG: pH= %g\n", frm.pH()); } else if (remValType_.DimType(idx) == ReplicaDimArray::REDOX) { RemdValues_[idx] = frm.RedOx(); //mprintf("DEBUG: RedOx= %g\n", frm.RedOx()); - } + } else + mprinterr("Internal Error: NetcdfFile::WriteRemdValues(): Unhandled remd value write for dim %i (%s)\n", idx, ReplicaDimArray::dimType(remValType_.DimType(idx))); } count_[1] = remd_dimension_; // # dimensions if ( NC::CheckErr(nc_put_vara_double(ncid_, RemdValuesVID_, start_, count_, &RemdValues_[0])) ) From 4c88c8116efb80fe060f88ed14507b5575cb6634 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 26 Feb 2026 15:02:41 -0500 Subject: [PATCH 2/3] Add missing hamiltonian remd write in parallel --- src/NetcdfFile.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/NetcdfFile.cpp b/src/NetcdfFile.cpp index dedc5289b8..2c4383c857 100644 --- a/src/NetcdfFile.cpp +++ b/src/NetcdfFile.cpp @@ -1673,6 +1673,8 @@ int NetcdfFile::parallelWriteRemdValues(int set, Frame const& frm) { if (remValType_.DimType(idx) == ReplicaDimArray::TEMPERATURE) { RemdValues_[idx] = frm.Temperature(); //mprintf("DEBUG: T= %g\n", frm.Temperature()); + } else if (remValType_.DimType(idx) == ReplicaDimArray::HAMILTONIAN) { + RemdValues_[idx] = (double)(frm.RemdIndices()[idx]); } else if (remValType_.DimType(idx) == ReplicaDimArray::PH) { RemdValues_[idx] = frm.pH(); //mprintf("DEBUG: pH= %g\n", frm.pH()); From ad3f182444519ace661ec2995e8d92a5c1dcece1 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 26 Feb 2026 15:58:47 -0500 Subject: [PATCH 3/3] V6.31.0. Minor version bump for fixed MREMD Hamiltonian value write. Adds warnings when remd values are unhandled --- src/NetcdfFile.cpp | 7 +++++-- src/Version.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/NetcdfFile.cpp b/src/NetcdfFile.cpp index 2c4383c857..e0842fad7a 100644 --- a/src/NetcdfFile.cpp +++ b/src/NetcdfFile.cpp @@ -599,7 +599,8 @@ int NetcdfFile::ReadRemdValues(Frame& frm) { } else if (remValType_.DimType(idx) == ReplicaDimArray::REDOX) { frm.SetRedOx( RemdValues_[idx] ); //mprintf("DEBUG: RedOx= %g\n", frm.RedOx()); - } + } else + mprinterr("Internal Error: NetcdfFile::ReadRemdValues(): Unhandled remd value read for dim %i (%s)\n", idx, ReplicaDimArray::dimType(remValType_.DimType(idx))); } } return 0; @@ -1681,7 +1682,9 @@ int NetcdfFile::parallelWriteRemdValues(int set, Frame const& frm) { } else if (remValType_.DimType(idx) == ReplicaDimArray::REDOX) { RemdValues_[idx] = frm.RedOx(); //mprintf("DEBUG: RedOx= %g\n", frm.RedOx()); - } + } else + rprinterr("Internal Error: NetcdfFile::WriteRemdValues(): Unhandled remd value write for dim %i (%s)\n", idx, ReplicaDimArray::dimType(remValType_.DimType(idx))); + } pcount_[1] = remd_dimension_; // # dimensions if ( NC::CheckErr(ncmpi_put_vara_double(ncid_, RemdValuesVID_, pstart_, pcount_, &RemdValues_[0])) ) diff --git a/src/Version.h b/src/Version.h index 9e3180b088..a8fc48117a 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V6.30.1" +#define CPPTRAJ_INTERNAL_VERSION "V6.31.0" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif