This PR addresses a couple of issues related to starting and simulating large, single chains (e.g. 500mers) where the goal is to have large simulation volumes (i.e. box edge length ~ length of completely stretched out monomer).
1. Skips PACKMOL
PACKMOL can struggle with very long molecules. One solution is to just keep increasing the box_expand_factor, but, if the goal is to simulate a single molecule, then we can skip the packing step completely and go straight from mbuild compound to foyer.
This PR now checks the length of mb_compounds after going through the build_molecule steps. If it's only one, then fill_box is skipped.
2. Allows user to pass type of neighbor list used.
cell type neighbor lists scale with system volume, and these systems have a very low density. Using a cell type nlist was causing memory errors.
For these simulations, we can pass tree to use a tree-type neighbor list which should be better at handling small N systems in very large volumes.
I'm going to close this for now...I don't think this is a good permanent solution. Will probably add functionality initializing single large molecules in a separate, larger PR.
This PR addresses a couple of issues related to starting and simulating large, single chains (e.g. 500mers) where the goal is to have large simulation volumes (i.e. box edge length ~ length of completely stretched out monomer).
1. Skips PACKMOL
box_expand_factor
, but, if the goal is to simulate a single molecule, then we can skip the packing step completely and go straight from mbuild compound to foyer.mb_compounds
after going through thebuild_molecule
steps. If it's only one, thenfill_box
is skipped.2. Allows user to pass type of neighbor list used.
tree
to use a tree-type neighbor list which should be better at handling small N systems in very large volumes.