From 37ce86b9fbf263a5f9e3178e16fbc1efd3673365 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Mon, 8 Sep 2025 10:40:39 -0700 Subject: [PATCH 1/4] Update IMDv3 support details for GROMACS, NAMD, and LAMMPS - state for each engine if they support concurrent connections - minor markup/link reformatting - moved information from https://github.com/MDAnalysis/mdanalysis/pull/4923 to here --- docs/source/usage.rst | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/source/usage.rst b/docs/source/usage.rst index 6bd6780..6db0e5d 100644 --- a/docs/source/usage.rst +++ b/docs/source/usage.rst @@ -25,6 +25,8 @@ Specific IMDv3 options were added to GROMACS, as documented in the GROMACS User Guide `Molecular dynamics parameters (.mdp options)`_ under *Interactive Molecular Dynamics (IMD)*. +GROMACS does *not* support multiple concurrent connections to the same IMD port. + In GROMACS, you will know that the simulation is ready and waiting for the IMDClient when this line is printed to the terminal: @@ -44,7 +46,9 @@ NAMD ---- The IMDv3 protocol has been implementaed in NAMD and will be made available through the official NAMD release in the near future. It is currently available as a part of the -official NAMD GitLab repository - https://gitlab.com/tcbgUIUC/namd. +official NAMD GitLab repository https://gitlab.com/tcbgUIUC/namd . + +NAMD **does** support multiple concurrent connections to the same IMD port. To use IMDv3 with NAMD, add the following lines to your NAMD configuration file: @@ -75,10 +79,12 @@ You are now ready to connect to the simulation engine with the IMDClient. LAMMPS ------ -The IMDv3 protocol is part of the official LAMMPS distribution since ``patch_4Feb2025``. -It is available in the LAMMPS source code repository - https://github.com/lammps/lammps. -Information on using IMDv3 with LAMMPS can be found in the LAMMPS documentation -- https://docs.lammps.org/fix_imd.html +The IMDv3 protocol is part of the official LAMMPS distribution since **patch_4Feb2025**. +It is available in the LAMMPS source code repository https://github.com/lammps/lammps. +Information on using IMDv3 with LAMMPS can be found in the LAMMPS documentation for +`fix_imd`_. + +LAMMPS does *not* support multiple concurrent connections to the same IMD port. To use IMDv3 with LAMMPS, add the following lines to your LAMMPS input script: @@ -95,6 +101,8 @@ following terminal message: You are now ready to connect to the simulation engine with a client. +.. _`fix_imd`: https://docs.lammps.org/fix_imd.html + Using IMDClient ^^^^^^^^^^^^^^^ From 4f2155df2a8af641fe3cc63d8f7ee246aa748a69 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Mon, 8 Sep 2025 10:44:59 -0700 Subject: [PATCH 2/4] Update docs/source/usage.rst --- docs/source/usage.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/usage.rst b/docs/source/usage.rst index 6db0e5d..1731064 100644 --- a/docs/source/usage.rst +++ b/docs/source/usage.rst @@ -48,7 +48,7 @@ The IMDv3 protocol has been implementaed in NAMD and will be made available thro official NAMD release in the near future. It is currently available as a part of the official NAMD GitLab repository https://gitlab.com/tcbgUIUC/namd . -NAMD **does** support multiple concurrent connections to the same IMD port. +NAMD *does* support multiple concurrent connections to the same IMD port. To use IMDv3 with NAMD, add the following lines to your NAMD configuration file: From 6e019c5255707a0b8eff37e78ea28dd41fdab6e8 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Mon, 8 Sep 2025 10:46:39 -0700 Subject: [PATCH 3/4] Apply suggestions from code review --- docs/source/usage.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/usage.rst b/docs/source/usage.rst index 1731064..161ad53 100644 --- a/docs/source/usage.rst +++ b/docs/source/usage.rst @@ -82,7 +82,7 @@ LAMMPS The IMDv3 protocol is part of the official LAMMPS distribution since **patch_4Feb2025**. It is available in the LAMMPS source code repository https://github.com/lammps/lammps. Information on using IMDv3 with LAMMPS can be found in the LAMMPS documentation for -`fix_imd`_. +`fix imd`_. LAMMPS does *not* support multiple concurrent connections to the same IMD port. @@ -101,7 +101,7 @@ following terminal message: You are now ready to connect to the simulation engine with a client. -.. _`fix_imd`: https://docs.lammps.org/fix_imd.html +.. _`fix imd`: https://docs.lammps.org/fix_imd.html Using IMDClient ^^^^^^^^^^^^^^^ From 1e854a93e06c7a4f390f8282d9a9927bca68c4cf Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Tue, 9 Sep 2025 12:46:25 -0700 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: ljwoods2 <145226270+ljwoods2@users.noreply.github.com> --- docs/source/usage.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/usage.rst b/docs/source/usage.rst index 161ad53..31ad741 100644 --- a/docs/source/usage.rst +++ b/docs/source/usage.rst @@ -48,7 +48,7 @@ The IMDv3 protocol has been implementaed in NAMD and will be made available thro official NAMD release in the near future. It is currently available as a part of the official NAMD GitLab repository https://gitlab.com/tcbgUIUC/namd . -NAMD *does* support multiple concurrent connections to the same IMD port. +NAMD *does* in principle support multiple concurrent connections to the same IMD port, however, this behavior has not been tested with IMDv3 and therefore should not relied upon. Instead, we suggest rewriting a singular client's trajectory data processing code to perform all tasks that multiple clients would have performed. This method will likely also reduce the TCP latency overhead of maintaining multiple client connections. If you have a use-case that this method doesn't cover, please `raise an issue`_. To use IMDv3 with NAMD, add the following lines to your NAMD configuration file: @@ -102,7 +102,7 @@ following terminal message: You are now ready to connect to the simulation engine with a client. .. _`fix imd`: https://docs.lammps.org/fix_imd.html - +.. _`raise an issue`: https://github.com/Becksteinlab/imdclient/issues Using IMDClient ^^^^^^^^^^^^^^^