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.