예제 #1
0
def test_box_expansion():

    h2o = gt.System(box_size=[7, 7, 7])
    h2o.add_solvent('h2o', n=5)
    ase_atoms = h2o.random().ase_atoms()

    intra = gt.GAP('intra')
    intra.mol_idxs = [[3*j + i for i in range(3)] for j in range(5)]
    calc = IICalculator(intra=intra,
                        inter=gt.GAP('iter'))

    new_atoms = calc.expanded_atoms(atoms=ase_atoms)

    from timeit import repeat
    print('Expansion runs in ',
          min(repeat(lambda: calc.expanded_atoms(atoms=ase_atoms),
                     number=100))/100,
          's')

    write('tmp.xyz', new_atoms)

    ade_mol = ade.Molecule('tmp.xyz')
    assert ade_mol.distance(0, 1) < 2           # Å
    assert ade_mol.distance(0, 3) > 5           # Å
    os.remove('tmp.xyz')
예제 #2
0
def test_gap_train():

    system = gt.System(box_size=[10, 10, 10])

    training_data = gt.Data(name='test')
    training_data.load(system=system,
                       filename=os.path.join(here, 'data', 'rnd_training.xyz'))

    assert len(training_data) == 10
    assert len(training_data[0].atoms) == 31

    if 'GT_GAP' not in os.environ or not os.environ['GT_GAP'] == 'True':
        return

    # Run GAP train with the training data
    gap = gt.GAP(name='test', system=system)
    gap.train(training_data)