Exemple #1
0
mc = RigidBodyMC( UniformSampler(all_mols) )
mc.setMaximumTranslation( 0.1 * angstrom )

volmc = VolumeMove( MapAsMolecules(all_mols) )
volmc.setVolumeChangingFunction( UniformVolumeChange(50 * angstrom3) )

moves = WeightedMoves()

moves.add(mc, 125)
moves.add(volmc, 1)

for i in range(1,1001):
    print("Running block %d" % i)
    timer.start()
    moves = system.run(moves, 100000)
    
    print("Took %d ms" % timer.elapsed())
    print("Energy = %f | Volume = %f" % (system.forceFields().energy(),    
                                         system.info().space().volume()))
                                         
    print("MC Accept %d Reject %d" % (moves.moves()[0].clone().nAccepted(),
                                      moves.moves()[0].clone().nRejected()))
    
    print("VMC Accept %d Reject %d" % (moves.moves()[1].clone().nAccepted(),
                                       moves.moves()[1].clone().nRejected()))
    
    
    
    PDB().write(system.forceFields().molecules(), "test%0004d.pdb" % i)
Exemple #2
0
system = System(all_mols, ffields)
system.setSpace(space)

mc = RigidBodyMC(UniformSampler(all_mols))
mc.setMaximumTranslation(0.1 * angstrom)

volmc = VolumeMove(MapAsMolecules(all_mols))
volmc.setVolumeChangingFunction(UniformVolumeChange(50 * angstrom3))

moves = WeightedMoves()

moves.add(mc, 125)
moves.add(volmc, 1)

for i in range(1, 1001):
    print("Running block %d" % i)
    timer.start()
    moves = system.run(moves, 100000)

    print("Took %d ms" % timer.elapsed())
    print("Energy = %f | Volume = %f" %
          (system.forceFields().energy(), system.info().space().volume()))

    print("MC Accept %d Reject %d" % (moves.moves()[0].clone().nAccepted(),
                                      moves.moves()[0].clone().nRejected()))

    print("VMC Accept %d Reject %d" % (moves.moves()[1].clone().nAccepted(),
                                       moves.moves()[1].clone().nRejected()))

    PDB().write(system.forceFields().molecules(), "test%0004d.pdb" % i)
Exemple #3
0
    print("%d moves took %d ms" % (nmoves, ms))

    PDB().write(system.info().groups().molecules(), "test%3.3d.pdb" % i)

mtsmc = moves.moves()[0].clone()

print("%d accepted, %d rejected, ratio == %f %%" % \
           (mtsmc.nAccepted(), mtsmc.nRejected(), mtsmc.acceptanceRatio()))

# check that the QM and MM energies have been conserved...
new_molpro = MolproFF(space, switchfunc)
new_molpro.setMolproExe(qmff.molproExe())
new_molpro.setEnergyOrigin(qmff.energyOrigin())

system_qmff = system.forceFields().forceField(qmff.ID())

new_molpro.addToQM(system_qmff.molecules(qmff.groups().qm()))
new_molpro.addToMM(system_qmff.molecules(qmff.groups().mm()),
                   {new_molpro.parameters().coulomb(): "charges"})

print("QM energy = %f, new molproff = %f" % \
            ( system.forceFields().forceField(qmff.ID()).energy(),
              new_molpro.energy() ))

qmff.change(system.forceFields().molecules())

print("qmff == %f" % qmff.energy())

# get the RDFs
rdfmonitor = system.monitors().monitor(Symbol("RDF"))
system = System(groups, ffields, monitors)

mc = RigidBodyMC(UniformSampler(solute))

mc.setTemperature(25 * celsius)
mc.setMaximumTranslation(0.3 * angstrom)

#for i in range(0,50):
#    moves = system.run(mc, 10000)
#
#    mc = moves.moves()[0].clone()
#    print "%d accepted, %d rejected, ratio = %f %%" % \
#             (mc.nAccepted(), mc.nRejected(), 100 * mc.acceptanceRatio())
#
#    print system.monitors().monitor(ffields.total()).average()

mtsmc = MTSMC(mc, e_fast.function(), 500)
mtsmc.setEnergyComponent(e_slow.function())

for i in range(0, 5000):
    moves = system.run(mtsmc, 20)

    mtsmc = moves.moves()[0].clone()
    print("%d accepted, %d rejected, ratio = %f %%" % \
             (mtsmc.nAccepted(), mtsmc.nRejected(), 100 * mtsmc.acceptanceRatio()))

    print("AVGENERGY: %f" %
          system.monitors().monitor(ffields.total()).average())
    print("ENERGY: %f" % system.forceFields().energy())
    sys.stdout.flush()
Exemple #5
0
    ms = timer.elapsed()

    print("%d moves took %d ms" % (nmoves, ms))

    PDB().write(system.info().groups().molecules(), "test%3.3d.pdb" % i)

mtsmc = moves.moves()[0].clone()

print("%d accepted, %d rejected, ratio == %f %%" % (mtsmc.nAccepted(), mtsmc.nRejected(), mtsmc.acceptanceRatio()))

# check that the QM and MM energies have been conserved...
new_molpro = MolproFF(space, switchfunc)
new_molpro.setMolproExe(qmff.molproExe())
new_molpro.setEnergyOrigin(qmff.energyOrigin())

system_qmff = system.forceFields().forceField(qmff.ID())

new_molpro.addToQM(system_qmff.molecules(qmff.groups().qm()))
new_molpro.addToMM(system_qmff.molecules(qmff.groups().mm()), {new_molpro.parameters().coulomb(): "charges"})

print("QM energy = %f, new molproff = %f" % (system.forceFields().forceField(qmff.ID()).energy(), new_molpro.energy()))

qmff.change(system.forceFields().molecules())

print("qmff == %f" % qmff.energy())

# get the RDFs
rdfmonitor = system.monitors().monitor(Symbol("RDF"))

rdf = rdfmonitor.getRDF(oxygen, oxygen)
Exemple #6
0
system = System(groups, ffields, monitors)

mc = RigidBodyMC( UniformSampler(solute) )

mc.setTemperature( 25 * celsius )
mc.setMaximumTranslation( 0.3 * angstrom )

#for i in range(0,50):
#    moves = system.run(mc, 10000)
#
#    mc = moves.moves()[0].clone()
#    print "%d accepted, %d rejected, ratio = %f %%" % \
#             (mc.nAccepted(), mc.nRejected(), 100 * mc.acceptanceRatio())
#         
#    print system.monitors().monitor(ffields.total()).average()


mtsmc = MTSMC(mc, e_fast.function(), 500)
mtsmc.setEnergyComponent(e_slow.function())

for i in range(0,5000):
    moves = system.run(mtsmc, 20)

    mtsmc = moves.moves()[0].clone()
    print("%d accepted, %d rejected, ratio = %f %%" % \
             (mtsmc.nAccepted(), mtsmc.nRejected(), 100 * mtsmc.acceptanceRatio()))
         
    print("AVGENERGY: %f" % system.monitors().monitor(ffields.total()).average())
    print("ENERGY: %f" % system.forceFields().energy())
    sys.stdout.flush()