E-CAM minDist2segments_KKT_for_SRP module¶
The minDist2segments_KKT_for_SRP module returns the minimal distance between two line segments. It uses the Karush-Kuhn-Tucker conditions (KKT) for the minimization of distance under constraints. The module implements the previous function for the SRP fix in LAMMPS. Indeed, the SRP function to compute the minimal distance does not always give the correct solution.
To study the long term memory of the initial conformation of a highly entangled polymer we need to preserve the topology. That means that two polymer bonds cannot cross. It is of great importance for the study of post-mitotic chromosome unfolding. Minimal distance between two bonds can be used in Dissipative-Particle-Dynamics to prevent bond crossings (see the reference [Kumar2001] and [Sirk2012]) too. To resolve the excluded volume constraints one could use a repulsive potential between the two points associated to the minimal distance (see the reference [Kumar2001]). We propose a new option in the computation of the minimal distance in the SRP fix for LAMMPS. Indeed, SRP fix computes the minimal distance between two infinite lines and reset the solution to occur along the interior of the bond. This method is not always accurate. The KKT conditions allows to solve the problem of minimal distance such finite segment length constraint holds.
It is part of E-CAM post-doc pilot project.
|[Sirk2012]||An enhanced entangled polymer model for dissipative particle dynamics, J. Chem. Phys. 136, 134903 (2012); https://doi.org/10.1063/1.3698476|
|[Kumar2001]||(1, 2) Brownian dynamics simulations of flexible polymers with spring–spring repulsions, J. Chem. Phys. 114, 6937, (2001); https://doi.org/10.1063/1.1358860|
You can find pdf file with a detailed derivation of the minimal distance between two segments using the Karush-Kuhn-Tucker conditions on the minDist2segments_KKT GitLab repository. The modifications are to an existing code base SRP fix for LAMMPS.
I provide simple modifications to the SRP fix files in the LAMMPS source code. In order to use minimal distance between two segments with KKT conditions you need to pass min_KKT to the distance argument of the SRP fix. The instructions to install, test and run the module can be found on the minDist2segments_KKT GitLab repository. The purpose of the module is to calculate the minimal distance between two segments. For each distance we compare the result to an “exact enumeration” of all the possible distances and return a warning if the two results differ by more than the enumeration precision.
You can find the modifications for the SRP fix files on the minDist2segments_KKT GitLab repository for_SRP folder.