pid + 1, Real3D(x[pid], y[pid], z[pid]), Real3D(vx[pid], vy[pid], vz[pid]), types[pid], masses[pid], charges[pid] ] allParticles.append(part) system.storage.addParticles(allParticles, *props) system.storage.decompose() # set up LJ interaction according to the parameters read from the .top file ljinteraction = gromacs.setLennardJonesInteractions(system, defaults, atomtypeparameters, verletlist, rc) # set up angle interactions according to the parameters read from the .top file angleinteractions = gromacs.setAngleInteractions(system, angletypes, angletypeparams) # set up coulomb interactions according to the parameters read from the .top file # !! Warning: this only works for reaction-field now! qq_interactions = gromacs.setCoulombInteractions(system, verletlist, rc, types, epsilon1=1, epsilon2=80, kappa=0) # set up bonded interactions according to the parameters read from the .top file bondedinteractions = gromacs.setBondedInteractions(system, bondtypes, bondtypeparams)
#system.storage.decompose() # set up LJ interaction according to the parameters read from the .top file #ljinteraction=gromacs.setLennardJonesInteractions(system, defaults, atomtypeparameters, verletlist,rc) ########## tabulated nb interactions ############ tabfilesnb = ["table_O_O.xvg", "table_H_O.xvg", "table_H_H.xvg"] potentials = genTabPotentials(tabfilesnb) tabulatedinteraction = espressopp.interaction.VerletListTabulated(verletlist) tabulatedinteraction.setPotential(0, 0, potentials["O_O"]) tabulatedinteraction.setPotential(0, 1, potentials["H_O"]) tabulatedinteraction.setPotential(1, 1, potentials["H_H"]) system.addInteraction(tabulatedinteraction) # set up angle interactions according to the parameters read from the .top file angleinteractions=gromacs.setAngleInteractions(system, angletypes, angletypeparams) # set up bonded interactions according to the parameters read from the .top file bondedinteractions=gromacs.setBondedInteractions(system, bondtypes, bondtypeparams) # exlusions, i.e. pairs of atoms not considered for the non-bonded part. Those are defined either by bonds which automatically generate an exclusion. Or by the nregxcl variable verletlist.exclude(exclusions) # langevin thermostat langevin = espressopp.integrator.LangevinThermostat(system) langevin.gamma = 10 langevin.temperature = 2.4942 # kT in gromacs units integrator = espressopp.integrator.VelocityVerlet(system) integrator.addExtension(langevin) integrator.dt = timestep