Coverage for tests/test_JIT.py: 97%
33 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
1import pytest
2import os
4@pytest.mark.slow
5def test_JIT():
6 import gamdpy as gp
7 import numpy as np
8 os.environ['NUMBA_CUDA_LOW_OCCUPANCY_WARNINGS'] = '0'
10 # Generate configurations with a FCC lattice
11 configuration1 = gp.Configuration(D=3)
12 configuration1.make_lattice(gp.unit_cells.FCC, cells=[8, 8, 8], rho=0.8442)
13 configuration1['m'] = 1.0
14 configuration1.randomize_velocities(temperature=1.44)
15 #configuration2 = gp.Configuration(D=3)
16 #configuration2.make_lattice(rp.unit_cells.FCC, cells=[5, 5, 13], rho=1.2000)
17 #configuration2['m'] = 1.0
18 #configuration2.randomize_velocities(temperature=0.44)
19 configuration3 = gp.Configuration(D=3)
20 configuration3.make_lattice(gp.unit_cells.FCC, cells=[16, 16, 32], rho=0.8442)
21 configuration3['m'] = 1.0
22 configuration3.randomize_velocities(temperature=2.44)
24 # Make pair potentials
25 # pairfunc = gp.apply_shifted_force_cutoff(rp.LJ_12_6_sigma_epsilon)
26 #sig, eps, cut = 1.0, 1.0, 2.5
27 #pairpot1 = gp.PairPotential(pairfunc, params=[sig, eps, cut], max_num_nbs=1000)
29 pairfunc = gp.apply_shifted_potential_cutoff(gp.LJ_12_6_sigma_epsilon)
30 sig = [[1.00, 0.80],
31 [0.80, 0.88]]
32 eps = [[1.00, 1.50],
33 [1.50, 0.50]]
34 cut = np.array(sig)*2.5
35 pairpot2 = gp.PairPotential(pairfunc, params=[sig, eps, cut], max_num_nbs=1000)
37 # Make integrators
38 dt = 0.001 # timestep. Conservative choice
39 temperature = 0.7 # Not used for NVE
40 pressure = 1.2 # Not used for NV*
42 integrators = [gp.integrators.NVE(dt=dt),
43 gp.integrators.NVT(temperature=temperature, tau=0.2, dt=dt),
44 gp.integrators.NVT_Langevin(temperature=temperature, alpha=0.2, dt=dt, seed=2023),
45 gp.integrators.NPT_Atomic (temperature=temperature, tau=0.4, pressure=pressure, tau_p=20, dt=dt),
46 gp.integrators.NPT_Langevin(temperature=temperature, pressure=pressure,
47 alpha=0.1, alpha_baro=0.0001, mass_baro=0.0001,
48 volume_velocity=0.0, barostatModeISO = True , boxFlucCoord = 2,
49 dt=dt, seed=2023)]
51 for configuration in [configuration1, configuration3]:
52 for pairpot in [pairpot2, ]:
53 ev = gp.Evaluator(configuration, pairpot)
54 for integrator in integrators:
55 runtime_actions = [gp.TrajectorySaver(),
56 gp.ScalarSaver(),
57 gp.MomentumReset(100)]
59 sim = gp.Simulation(configuration, pairpot, integrator, runtime_actions,
60 num_timeblocks=2, steps_per_timeblock=256,
61 storage='memory')
62 print(sim.compute_plan)
64if __name__ == '__main__':
65 test_JIT()