Molecule Polymer Comb

Arguments:

  • nmolecule (int) - Number of molecules in simulation

  • moleculeX (json object) - Information about moleculeX where X ranges from 0 to nmolecule-1. In each moleculeX object the following must be specified:

    • type (string) - Type of molecule. Here PolymerComb

    • label (string) - label for this molecule, defaults to molX

    • chain_type (string) - Type of chain statistics. Either discrete (as documented here) or continuous.

    • volume_frac (float) - Volume fraction of moleculeX in the simulation. Must be 0-1.

    • backbone (json object or dict) - Backbone chain information. Required arguments depend on chain_type specified earlier. For example, if chain_type=discrete the arguments nbeads, nblocks, block_species, block_fractions (or monomer_sequence) must be specified. See Molecule Polymer Linear (continuous) and Molecule Polymer Linear (discrete) for required arguments.

    • sidechainX (json object) - Sidechain information of sidechainX where X starts at 1. In each sidechainX object, all information of the corresponding chain_type must be specified (see backbone argument above). Additionally, the following argument must also be specified:

      • graft_locations (list int) - the indicies of backbone sites that this sidechain will be grafted to. Indexing starts at 0.

Example (python):

# this creates an A-B bottlebrush
fA = 0.5  # fraction of A beads
N_BB = 50 # backbone length
N_SC = 10 # sidechain length
B_graft_start = int(fA*N_BB)

fts.add_molecule(type='PolymerComb',\
    chain_type='discrete',\
    backbone=dict(nbeads=N_BB,nblocks=2,block_fractions=[fA, 1-fA],block_species=['A', 'B']),\
    sidechain1=dict(nbeads=N_SC,nblocks=1,block_fractions=[1.0],block_species=['A'], graft_locations=list(range(0,B_graft_start))),\
    sidechain2=dict(nbeads=N_SC,nblocks=1,block_fractions=[1.0],block_species=['B'], graft_locations=list(range(B_graft_start,N_BB))),\
    volume_frac=1.0)

Example (json):

"molecules": {
  "molecule0": {
    "backbone": {
      "block_fractions": [0.5,0.5],
      "block_species": ["A","B"],
      "nbeads": 50,
      "nblocks": 2
    },
    "chain_type": "discrete",
    "sidechain1": {
      "block_fractions": [1.0],
      "block_species": ["A"],
      "graft_locations": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
      "nbeads": 10,
      "nblocks": 1
    },
    "sidechain2": {
      "block_fractions": [1.0],
      "block_species": ["B"],
      "graft_locations": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
      "nbeads": 10,
      "nblocks": 1
    },
    "type": "PolymerComb",
    "volume_frac": 1.0
  },
  "nmolecule": 1
},

Molecule Polymer Comb Formalism

This is described in Levi, Lequieu et al. Macromolecules (2020). Eventually should sumarize here.