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

1import pytest 

2import os 

3 

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' 

9 

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) 

23 

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) 

28 

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) 

36 

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* 

41 

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)] 

50 

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)] 

58 

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) 

63 

64if __name__ == '__main__': 

65 test_JIT() 

66