Hi. I would like to do a simulation with a large # of small “molecules” with each molecule confined to a box bounded by reflecting walls. In other words, I’d like to run MD on an ensemble of confined molecules using one LAMMPS simulation.
Commands like “region” and “fix wall/reflect” seem designed for such a simulation (i.e. a cubic confining “block” region would be defined by 6 reflecting walls).
However — I want to study a large ensemble of molecules, say 10^3-10^6 molecules. For 10^3, I’d need 111111 = 1331 walls to confine each molecule to a box. For 10^6, I’d need (101^3) walls. I’m not sure that defining these “one wall at a time” would be sensible. It might be very inefficient, for example (both in memory use and parallelization), or even impossible if the number of regions is too high.
Also, I want to make sure atoms in different boxes don’t interact even if their spatial positions are within the cutoff radius. I could do this with double walls that create gaps between the confining boxes, but that would worsen the abovementioned problems.
So, in summary, I want to simulate an ensemble of confined molecules with no intermolecular interactions. Not sure if confining them using walls is the best way to do this, but if it is, I have several questions:
- Is there a command to create a “lattice” of walls and/or confining regions?
2a) If so, what is the most efficient way to implement the condition that different molecules won’t interact with each other? There used to be a command ~ “pair_modify exclude molecule” that disabled _intra_molecular pair interactions. I want to disable _inter_molecular pair interactions.
2b) Given 2a, what is the most efficient way to parallelize this? For example, suppose I wanted each processor to handle 101010=1000 molecules and boxes, and run a simulation on 64 processors (for a total of 64000 molecules). This simulation would run on eight 8-processor nodes. The key thing for the purposes of these simulations is that atoms belonging to different molecules need not be included in each others’ neighbor lists, so I assume this would greatly reduce the amount of necessary interprocessor and internode communication.
Given the large ensemble, not sure of the most efficient way to implement this type of simulation in LAMMPS. Not sure if it’s set up to to this – has anyone used it for similar projects?