Global

GlobalForceField #

GlobalForceField constins a set of interactions that affects all the particles.

GlobalPair #

It depends on the distances between two particles.

3SPN2BaseBase #

It is specific to 3SPN2 Coarse-Grained DNA model.

ProteinDNANonSpecific #

It is a Coarse-Grained hydrogen bond model.

Common parts #

There are common fields in [[forcefields.global]] table. One specifies the condition when an interaction is ignored. Another specifies the spatial partitioning method.

ignore #

There are 3 ways to define ignoring pairs.

First, particles_within ignores pairs that are connected within N consecutive topological connection.

Second, group ignores inter- or intra-group particle pairs. group is defined in System.

Third, molecule ignores inter- or intra-molecule particle pairs. molecule is defined as a set of particles that are connected to each other via bond topology. That means that, molecule is a connected component of a graph when we consider a particle as a node and a bond connection as an edge.

To define connections on the topology, see Topology.

  • ignore.particles_within: Table
    • It ignores pairs of particles that are connected via a certain connection within a certain number.
    • The key is the name of the connection, and the value is the number of concecutive connections.
    • For example, ignore.particles_within.bond = 3 ignores particles that are connected via 1, 2, or 3 consecutive bond connections.
  • ignore.group: Table
    • It ignores inter- or intra-group pairs.
    • intra: Array of Strings
      • It ignores intra-group particle pairs.
    • inter: Array of Array of Strings
      • It ignores inter-group particle pairs.
    • An example later follows.
  • ignore.molecule: String
    • It ignores inter-/intra-molecule pairs.
    • "Nothing": It does not ignore anything based on molecule (default).
    • "Self": It ignores intra-molecule pairs.
    • "Others": It ignores inter-molecule pairs.

Let’s say we have the following system.

[[systems]]
particles = [
    {... group = "A"}, # particle 0
    {... group = "A"}, #          1
    {... group = "A"}, #          2
     
    {... group = "B"}, # particle 3
    {... group = "B"}, #          4
    {... group = "B"}, #          5
     
    {... group = "C"}, # particle 6
    {... group = "C"}, #          7
    {... group = "C"}, #          8
]

The following interaction

[[forcefields.global]]
interaction = "Pair"
ignore.group.intra = ["A", "B", "C"]

ignores interactions between 0-1, 0-2, 1-2, but does not ignore 0-3, 0-6, 3-6 interactions.

Also, the following interaction

[[forcefields.global]]
interaction = "Pair"
ignore.group.inter = [["A", "B"], ["A", "C"]]

ignores interactions between 0-3, 0-4, 0-5, 3-6, 3-7, 3-8, but does not ignore 0-1, 3-4, 3-6 interactions.

spatial_partition #

It provides spatial partitioning algorithm to construct a neighbor list.

  • type: String
    • The following spatial partitioning methods are available.
    • "CellList"
    • "RTree"
    • "VerletList"
  • margin: Floating
    • The margin in the neighboring list, relative to the cutoff length.
    • It affects the efficiency, but not the accuracy. The most efficient value depends on a potential to be used.