# pylimer_tools_cpp package

## Module contents

## pylimer_tools_cpp Module

### pylimer_tools_cpp

A collection of utility python functions for handling LAMMPS output and polymers in Python.

### Functions

| [`do_linear_walk_chain_from_to`](api/pylimer_tools_cpp.do_linear_walk_chain_from_to.html.md#pylimer_tools_cpp.do_linear_walk_chain_from_to)(box, ...[, ...])       | Get coordinates linearly interpolated from one point to another (both exclusive).          |
|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
| [`do_random_walk`](api/pylimer_tools_cpp.do_random_walk.html.md#pylimer_tools_cpp.do_random_walk)(chain_len[, bead_distance, ...])                   | Do a random walk, return the coordinates of each point visited.                            |
| [`do_random_walk_chain_from_to`](api/pylimer_tools_cpp.do_random_walk_chain_from_to.html.md#pylimer_tools_cpp.do_random_walk_chain_from_to)(box, ...[, ...])       | Do a random walk from one point to another.                                                |
| [`do_random_walk_chain_from_to_mc`](api/pylimer_tools_cpp.do_random_walk_chain_from_to_mc.html.md#pylimer_tools_cpp.do_random_walk_chain_from_to_mc)(box, ...[, ...]) | Do a random walk from one point to another.                                                |
| [`inverse_langevin`](api/pylimer_tools_cpp.inverse_langevin.html.md#pylimer_tools_cpp.inverse_langevin)(x)                                             | A somewhat accurate (for $x \in (-1, 1)$) implementation of the inverse Langevin function. |
| [`randomly_sample_entanglements`](api/pylimer_tools_cpp.randomly_sample_entanglements.html.md#pylimer_tools_cpp.randomly_sample_entanglements)(universe, ...)       | Randomly find pairs of atoms that are close together and could be entanglements            |
| [`split_csv`](api/pylimer_tools_cpp.split_csv.html.md#pylimer_tools_cpp.split_csv)(file_path[, delimiter])                                      | Read a file containing a number of CSVs.                                                   |
| [`version_information`](api/pylimer_tools_cpp.version_information.html.md#pylimer_tools_cpp.version_information)()                                        | Returns  a string of the the current version, incl.                                        |

### Classes

| [`Atom`](api/pylimer_tools_cpp.Atom.html.md#pylimer_tools_cpp.Atom)(\*args, \*\*kwargs)                                                | A single bead or atom.                                                                                                                                                                                                                                                                                                              |
|-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`AtomPairEntanglements`](api/pylimer_tools_cpp.AtomPairEntanglements.html.md#pylimer_tools_cpp.AtomPairEntanglements)(self)                            | A struct to store pairs of atoms that are close together and could be entanglements.                                                                                                                                                                                                                                                |
| [`AtomStyle`](api/pylimer_tools_cpp.AtomStyle.html.md#pylimer_tools_cpp.AtomStyle)(\*values)                                                | An enumeration of the LAMMPS atom styles.                                                                                                                                                                                                                                                                                           |
| [`AveFileReader`](api/pylimer_tools_cpp.AveFileReader.html.md#pylimer_tools_cpp.AveFileReader)(self, file_path)                                 | Alternative implementation of the data file reader implemented in [`pylimer_tools.io.read_lammps_output_file.read_averages_file()`](pylimer_tools.io.html.md#pylimer_tools.io.read_lammps_output_file.read_averages_file).                                                                                       |
| [`BackTrackStatus`](api/pylimer_tools_cpp.BackTrackStatus.html.md#pylimer_tools_cpp.BackTrackStatus)(\*values)                                    | Enum for controlling the strand linking process in linkStrandsCallback.                                                                                                                                                                                                                                                             |
| [`Box`](api/pylimer_tools_cpp.Box.html.md#pylimer_tools_cpp.Box)(\*args, \*\*kwargs)                                                  | The box that the simulation is run in.                                                                                                                                                                                                                                                                                              |
| [`ComputedDoubleValues`](api/pylimer_tools_cpp.ComputedDoubleValues.html.md#pylimer_tools_cpp.ComputedDoubleValues)(\*values)                          | Floating point output quantities                                                                                                                                                                                                                                                                                                    |
| [`ComputedIntValues`](api/pylimer_tools_cpp.ComputedIntValues.html.md#pylimer_tools_cpp.ComputedIntValues)(\*values)                                | Integer output quantities                                                                                                                                                                                                                                                                                                           |
| [`DPDSimulator`](api/pylimer_tools_cpp.DPDSimulator.html.md#pylimer_tools_cpp.DPDSimulator)(self, universe[, ...])                             | A quick-and-dirty implementation of the dissipative particle dynamics (DPD) simulation with slip-springs as presented by Langeloth *et al.* [[LMBohmMullerPlathe13](acknowledgements.html.md#id11)] and Schneider *et al.* [[SFKarimiVarzanehMullerPlathe21](acknowledgements.html.md#id10)]. |
| [`DataFileReader`](api/pylimer_tools_cpp.DataFileReader.html.md#pylimer_tools_cpp.DataFileReader)(self)                                          | A reader for LAMMPS's write_data files.                                                                                                                                                                                                                                                                                             |
| [`DataFileWriter`](api/pylimer_tools_cpp.DataFileWriter.html.md#pylimer_tools_cpp.DataFileWriter)(self, universe)                                | A class to write a LAMMPS data file from a universe.                                                                                                                                                                                                                                                                                |
| [`DumpFileReader`](api/pylimer_tools_cpp.DumpFileReader.html.md#pylimer_tools_cpp.DumpFileReader)(self, path_of_file_to_read)                    | A reader for LAMMPS's dump files.                                                                                                                                                                                                                                                                                                   |
| [`ExitReason`](api/pylimer_tools_cpp.ExitReason.html.md#pylimer_tools_cpp.ExitReason)(\*values)                                              | An enum representing the reason for exiting the simulation or optimization procedure.                                                                                                                                                                                                                                               |
| [`LazyUniverseSequenceIterator`](api/pylimer_tools_cpp.LazyUniverseSequenceIterator.html.md#pylimer_tools_cpp.LazyUniverseSequenceIterator)                    | An iterator to iterate throught the universes in [`UniverseSequence`](api/pylimer_tools_cpp.UniverseSequence.html.md#pylimer_tools_cpp.UniverseSequence).                                                                                                                                                                              |
| [`LinearMaxDistanceProvider`](api/pylimer_tools_cpp.LinearMaxDistanceProvider.html.md#pylimer_tools_cpp.LinearMaxDistanceProvider)(self, ...)               | For MC generation, converts the $N$ to a maximum distance within which to sample.                                                                                                                                                                                                                                                   |
| [`LinkSwappingMode`](api/pylimer_tools_cpp.LinkSwappingMode.html.md#pylimer_tools_cpp.LinkSwappingMode)(\*values)                                  | How slip-links may act when they reach each-other or even a crosslink.                                                                                                                                                                                                                                                              |
| [`MCUniverseGenerator`](api/pylimer_tools_cpp.MCUniverseGenerator.html.md#pylimer_tools_cpp.MCUniverseGenerator)(self[, lx, ly, lz])                  | A [`pylimer_tools_cpp.Universe`](api/pylimer_tools_cpp.Universe.html.md#pylimer_tools_cpp.Universe) generator using a Monte-Carlo procedure.                                                                                                                                                                                   |
| [`MEHPForceBalance`](api/pylimer_tools_cpp.MEHPForceBalance.html.md#pylimer_tools_cpp.MEHPForceBalance)(self, universe[, ...])                     | A small simulation tool for quickly minimizing the force between the crosslinker beads.                                                                                                                                                                                                                                             |
| [`MEHPForceBalance2`](api/pylimer_tools_cpp.MEHPForceBalance2.html.md#pylimer_tools_cpp.MEHPForceBalance2)(\*args, \*\*kwargs)                      | A small simulation tool for quickly minimizing the force between the crosslinker beads.                                                                                                                                                                                                                                             |
| [`MEHPForceEvaluator`](api/pylimer_tools_cpp.MEHPForceEvaluator.html.md#pylimer_tools_cpp.MEHPForceEvaluator)(self)                                  | The base interface to change the way the force is evaluated during a MEHP run.                                                                                                                                                                                                                                                      |
| [`MEHPForceRelaxation`](api/pylimer_tools_cpp.MEHPForceRelaxation.html.md#pylimer_tools_cpp.MEHPForceRelaxation)(self, universe[, ...])               | A small simulation tool for quickly minimizing the force between the crosslinker beads.                                                                                                                                                                                                                                             |
| [`MaxDistanceProvider`](api/pylimer_tools_cpp.MaxDistanceProvider.html.md#pylimer_tools_cpp.MaxDistanceProvider)                                      | A generic implementation of a class, that shall provide a maximum distance for the MC sampling.                                                                                                                                                                                                                                     |
| [`Molecule`](api/pylimer_tools_cpp.Molecule.html.md#pylimer_tools_cpp.Molecule)(self, arg0, arg1, arg2, arg3)                              | An (ideally) connected series of atoms/beads.                                                                                                                                                                                                                                                                                       |
| [`MoleculeIterator`](api/pylimer_tools_cpp.MoleculeIterator.html.md#pylimer_tools_cpp.MoleculeIterator)                                            | An iterator to iterate through the atoms in [`Molecule`](api/pylimer_tools_cpp.Molecule.html.md#pylimer_tools_cpp.Molecule).                                                                                                                                                                                                   |
| [`MoleculeType`](api/pylimer_tools_cpp.MoleculeType.html.md#pylimer_tools_cpp.MoleculeType)(\*values)                                          | An enum representing the type of molecule/chain/strand.                                                                                                                                                                                                                                                                             |
| [`NeighbourList`](api/pylimer_tools_cpp.NeighbourList.html.md#pylimer_tools_cpp.NeighbourList)(self, atoms, box, cutoff)                        | Gives access to somewhat fast queries on the neighbourhood of atoms.                                                                                                                                                                                                                                                                |
| [`NoMaxDistanceProvider`](api/pylimer_tools_cpp.NoMaxDistanceProvider.html.md#pylimer_tools_cpp.NoMaxDistanceProvider)(self)                            | For MC generation, to disable the neighbour list usage.                                                                                                                                                                                                                                                                             |
| [`NonGaussianSpringForceEvaluator`](api/pylimer_tools_cpp.NonGaussianSpringForceEvaluator.html.md#pylimer_tools_cpp.NonGaussianSpringForceEvaluator)(self[, ...]) | This is equal to a spring evaluator for Langevin chains.                                                                                                                                                                                                                                                                            |
| [`NormalModeAnalyzer`](api/pylimer_tools_cpp.NormalModeAnalyzer.html.md#pylimer_tools_cpp.NormalModeAnalyzer)(self, spring_from, spring_to)          | Compute the normal modes and predict the loss/storage moduli.                                                                                                                                                                                                                                                                       |
| [`NormalModeSolver`](api/pylimer_tools_cpp.NormalModeSolver.html.md#pylimer_tools_cpp.NormalModeSolver)(\*values)                                  | Solver algorithms for normal mode analysis                                                                                                                                                                                                                                                                                          |
| [`OutputConfiguration`](api/pylimer_tools_cpp.OutputConfiguration.html.md#pylimer_tools_cpp.OutputConfiguration)(self)                                | A configuration object to configure the output values and frequency for simulation classes in this package.                                                                                                                                                                                                                         |
| [`SLESolver`](api/pylimer_tools_cpp.SLESolver.html.md#pylimer_tools_cpp.SLESolver)(\*values)                                                | Solver for sparse linear equation systems                                                                                                                                                                                                                                                                                           |
| [`SimpleSpringMEHPForceEvaluator`](api/pylimer_tools_cpp.SimpleSpringMEHPForceEvaluator.html.md#pylimer_tools_cpp.SimpleSpringMEHPForceEvaluator)(self[, kappa]) | This is equal to a spring evaluator for Gaussian chains.                                                                                                                                                                                                                                                                            |
| [`SimplifiedBalance2Network`](api/pylimer_tools_cpp.SimplifiedBalance2Network.html.md#pylimer_tools_cpp.SimplifiedBalance2Network)                          | A more efficient structure of the network for use in [`MEHPForceBalance2`](api/pylimer_tools_cpp.MEHPForceBalance2.html.md#pylimer_tools_cpp.MEHPForceBalance2).                                                                                                                                                                        |
| [`SimplifiedBalanceNetwork`](api/pylimer_tools_cpp.SimplifiedBalanceNetwork.html.md#pylimer_tools_cpp.SimplifiedBalanceNetwork)                            | A more efficient structure of the network for use in MEHP force balance, namely [`MEHPForceBalance`](api/pylimer_tools_cpp.MEHPForceBalance.html.md#pylimer_tools_cpp.MEHPForceBalance), though also passable to namely [`MEHPForceBalance2`](api/pylimer_tools_cpp.MEHPForceBalance2.html.md#pylimer_tools_cpp.MEHPForceBalance2).        |
| [`SimplifiedNetwork`](api/pylimer_tools_cpp.SimplifiedNetwork.html.md#pylimer_tools_cpp.SimplifiedNetwork)                                          | A more efficient structure of the network for use in MEHP, namely [`MEHPForceRelaxation`](api/pylimer_tools_cpp.MEHPForceRelaxation.html.md#pylimer_tools_cpp.MEHPForceRelaxation).                                                                                                                                                       |
| [`StructureSimplificationMode`](api/pylimer_tools_cpp.StructureSimplificationMode.html.md#pylimer_tools_cpp.StructureSimplificationMode)(\*values)            | How the structure shall be simplified during the optimization in order to remove non-trapped entanglement links.                                                                                                                                                                                                                    |
| [`Universe`](api/pylimer_tools_cpp.Universe.html.md#pylimer_tools_cpp.Universe)(self, Lx, Ly, Lz)                                          | Represents a full Polymer Network structure, a collection of molecules.                                                                                                                                                                                                                                                             |
| [`UniverseSequence`](api/pylimer_tools_cpp.UniverseSequence.html.md#pylimer_tools_cpp.UniverseSequence)(self)                                      | This class represents a sequence of Universes, with the Universe's data only being read on request.                                                                                                                                                                                                                                 |
| [`ZScoreMaxDistanceProvider`](api/pylimer_tools_cpp.ZScoreMaxDistanceProvider.html.md#pylimer_tools_cpp.ZScoreMaxDistanceProvider)(self, ...)               | For MC generation, converts the $N$ to a maximum distance within which to sample.                                                                                                                                                                                                                                                   |

### Variables

| [`STOP`](api/pylimer_tools_cpp.STOP.html.md#pylimer_tools_cpp.STOP)                     | Stop the linking process              |
|--------------------------------------------------------------------------------------------------|---------------------------------------|
| [`TRACK_BACKWARD`](api/pylimer_tools_cpp.TRACK_BACKWARD.html.md#pylimer_tools_cpp.TRACK_BACKWARD) | Track backward in the linking process |
| [`TRACK_FORWARD`](api/pylimer_tools_cpp.TRACK_FORWARD.html.md#pylimer_tools_cpp.TRACK_FORWARD)   | Continue linking forward              |
<!-- Submodules -->
<!-- ---------- -->
<!-- .. autosummary:: -->
<!-- :toctree: _autosummary -->
<!-- :template: custom-module-template.rst -->
<!-- :recursive: -->
