Пример #1
0
def compute_thermodynamics(rho, T, verbose=True):
    beta = 1.0 / T
    config0 = Config.create(N=N, rho=rho, dt=dt, sigma=forcefield.sigma, T=T, mass=mass)
    sim = MDSimulator(config0, forcefield, mass=mass, r_skin=r_neighbor_skin)
    equilibrate_system(sim)
    gr = compute_gr(sim, rho, beta, verbose=True)
    virial, U_interact = calculate_thermodynamic_integrals(gr, rho, beta)
    return virial, U_interact
Пример #2
0
def get_equilibrated_simulation(rho, T):
    config0 = Config.create(N=N, rho=rho, dt=dt, sigma=forcefield.sigma, T=T, mass=mass)
    sim = MDSimulator(config0, forcefield, mass=mass, r_skin=r_neighbor_skin)
    for i in xrange(500):
        if not i%10:
            sim.config.randomize_velocities(T=T, mass=mass)
        sim.cycle(50)
        U = sim.evaluate_potential()
        print 'equilibrate cycle i=%03d U=%.3f' % (i, U)
    return sim
Пример #3
0
def compute_thermodynamics(rho, T, verbose=True):
    beta = 1.0 / T
    config0 = Config.create(N=N,
                            rho=rho,
                            dt=dt,
                            sigma=forcefield.sigma,
                            T=T,
                            mass=mass)
    sim = MDSimulator(config0, forcefield, mass=mass, r_skin=r_neighbor_skin)
    equilibrate_system(sim)
    gr = compute_gr(sim, rho, beta, verbose=True)
    virial, U_interact = calculate_thermodynamic_integrals(gr, rho, beta)
    return virial, U_interact
Пример #4
0
from pyljfluid.components import (LJForceField, Config, MDSimulator,
                                  StaticPairCorrelationCalculator)
import matplotlib.pyplot as plt

# Parameters
N = 1000
rho = 0.2
T = 1.5
forcefield = LJForceField(sigma=1.0, epsilon=1.0, r_cutoff=2.5)
r_neighbor_skin = 1.0 * forcefield.sigma
mass = 48 * forcefield.epsilon * forcefield.sigma ** -2
dt = 0.032

# Initialize system
config0 = Config.create(N=N, rho=rho, dt=dt, sigma=forcefield.sigma, T=T, mass=mass)
sim = MDSimulator(config0, forcefield, mass=mass, r_skin=r_neighbor_skin)

# Equilibrate
for i in xrange(200):
    sim.config.randomize_velocities(T=T, mass=mass)
    sim.cycle(50)
    print 'equilibrate cycle i=%03d U=%.3f' % (i, sim.evaluate_potential())

# Compute g(r)
gr_calc = StaticPairCorrelationCalculator(dr=0.01 * forcefield.sigma,
                                          r_max=config0.box_size / 2)
for i in xrange(1000):
    print 'compute cycle i=%04d H=%.4f ' % (i, sim.evaluate_hamiltonian())
    sim.cycle(25)
    gr_calc.accumulate_config(sim.config)
Пример #5
0
                                  StaticPairCorrelationCalculator)
import matplotlib.pyplot as plt

# Parameters
N = 1000
rho = 0.2
T = 1.5
forcefield = LJForceField(sigma=1.0, epsilon=1.0, r_cutoff=2.5)
r_neighbor_skin = 1.0 * forcefield.sigma
mass = 48 * forcefield.epsilon * forcefield.sigma**-2
dt = 0.032

# Initialize system
config0 = Config.create(N=N,
                        rho=rho,
                        dt=dt,
                        sigma=forcefield.sigma,
                        T=T,
                        mass=mass)
sim = MDSimulator(config0, forcefield, mass=mass, r_skin=r_neighbor_skin)

# Equilibrate
for i in xrange(200):
    sim.config.randomize_velocities(T=T, mass=mass)
    sim.cycle(50)
    print 'equilibrate cycle i=%03d U=%.3f' % (i, sim.evaluate_potential())

# Compute g(r)
gr_calc = StaticPairCorrelationCalculator(dr=0.01 * forcefield.sigma,
                                          r_max=config0.box_size / 2)
for i in xrange(1000):
    print 'compute cycle i=%04d H=%.4f ' % (i, sim.evaluate_hamiltonian())