示例#1
0
def test_BussiThermostat():
    system, positions, topology = readSystem('emim_BCN4_Jiung2014')
    dof = atomsmm.countDegreesOfFreedom(system)
    NVE = atomsmm.VelocityVerletPropagator()
    thermostat = atomsmm.VelocityRescalingPropagator(300*unit.kelvin, dof, 0.1*unit.picoseconds)
    integrator = atomsmm.GlobalThermostatIntegrator(1*unit.femtoseconds, NVE, thermostat, 1)
    execute(integrator, -13064.351037463852)
示例#2
0
def test_Chained():
    system, positions, topology = readSystem('emim_BCN4_Jiung2014')
    dof = atomsmm.countDegreesOfFreedom(system)
    NVE = atomsmm.VelocityVerletPropagator()
    thermostat = atomsmm.VelocityRescalingPropagator(300*unit.kelvin, dof, 0.1*unit.picoseconds)
    integrator = atomsmm.ChainedPropagator(NVE, thermostat).integrator(1*unit.femtoseconds)
    integrator.setRandomNumberSeed(1)
    execute(integrator, -13064.756951334914)
示例#3
0
def test_TrotterSuzuki():
    system, positions, topology = readSystem('emim_BCN4_Jiung2014')
    dof = atomsmm.countDegreesOfFreedom(system)
    NVE = atomsmm.VelocityVerletPropagator()
    thermostat = atomsmm.VelocityRescalingPropagator(300*unit.kelvin, dof, 0.1*unit.picoseconds)
    combined = atomsmm.TrotterSuzukiPropagator(NVE, thermostat)
    integrator = combined.integrator(1*unit.femtoseconds)
    integrator.setRandomNumberSeed(1)
    execute(integrator, -13064.351037463852)
示例#4
0
def test_NoseHooverPropagator():
    system, positions, topology = readSystem('emim_BCN4_Jiung2014')
    dof = atomsmm.countDegreesOfFreedom(system)
    NVE = atomsmm.VelocityVerletPropagator()
    thermostat = atomsmm.NoseHooverPropagator(300*unit.kelvin, dof, 10*unit.femtoseconds, 2)
    thermostat = atomsmm.SuzukiYoshidaPropagator(thermostat, 3)
    combined = atomsmm.TrotterSuzukiPropagator(NVE, thermostat)
    integrator = combined.integrator(1*unit.femtoseconds)
    integrator.setRandomNumberSeed(1)
    execute(integrator, -13067.685398497035)
示例#5
0
def test_VelocityVerlet():
    NVE = atomsmm.VelocityVerletPropagator()
    integrator = atomsmm.GlobalThermostatIntegrator(1*unit.femtoseconds, NVE)
    execute(integrator, -13069.385589639898)
示例#6
0
                                            shift).setForceGroup(1)
    outerForce = atomsmm.FarNonbondedForce(innerForce, rcut,
                                           rswitch).setForceGroup(2)
    for force in [exceptions, innerForce, outerForce]:
        force.importFrom(nbforce)
        force.addTo(system)
    NVE = atomsmm.RespaPropagator([2, 2, 1])
    integrator = atomsmm.GlobalThermostatIntegrator(dt, NVE)
else:
    nbforce = system.getForce(nbforceIndex)
    nbforce.setUseSwitchingFunction(True)
    nbforce.setSwitchingDistance(rswitch)
    # thermostat = atomsmm.VelocityRescalingPropagator(temp, dof, 1/friction)
    thermostat = atomsmm.NoseHooverLangevinPropagator(temp, dof, 1 / friction,
                                                      friction)
    NVE = atomsmm.VelocityVerletPropagator()
    integrator = atomsmm.TrotterSuzukiPropagator(NVE,
                                                 thermostat).integrator(dt)
    integrator.setRandomNumberSeed(seed)

integrator.pretty_print()

for (term,
     energy) in atomsmm.utils.splitPotentialEnergy(system, pdb.topology,
                                                   pdb.positions).items():
    print(term + ":", energy)

platform = openmm.Platform.getPlatformByName('CUDA')
properties = {"Precision": "mixed"}
simulation = app.Simulation(pdb.topology, system, integrator, platform,
                            properties)