コード例 #1
0
def requirevtk(code=0, parallel=False):
    from ase.test import NotAvailable
    if not hasvtk:
        # VTK required but not installed, force termination
        # with exit status determined by the code argument.
        raise NotAvailable('VTK is not installed.', code)
    if parallel and not hasmpi:
        # VTK MPI required but not installed, force termination
        # with exit status determined by the code argument.
        raise NotAvailable('VTK is not MPI compatible.', code)
コード例 #2
0
ファイル: __init__.py プロジェクト: yfyh2013/ase
def installed():
    import os
    from ase.test import NotAvailable
    dcmd = os.getenv('DFTB_COMMAND')
    dpre = os.getenv('DFTB_PREFIX')
    if dcmd == None:
        raise NotAvailable('DFTB_COMMAND not defined')
    if dpre == None:
        raise NotAvailable('DFTB_PREFIX not defined (for slater koster files)')
    return True
コード例 #3
0
ファイル: cp2k_H2_None.py プロジェクト: uu1477/MyAse
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    # Basically, the entire CP2K input is passed in explicitly.
    # Disable ASE's input generation by setting everything to None.
    # ASE should only add the CELL and the COORD section.
    calc = CP2K(basis_set=None,
                basis_set_file=None,
                max_scf=None,
                cutoff=None,
                force_eval_method=None,
                potential_file=None,
                poisson_solver=None,
                pseudo_potential=None,
                stress_tensor=False,
                xc=None,
                label='test_H2_inp',
                inp=inp)
    h2 = molecule('H2', calculator=calc)
    h2.center(vacuum=2.0)
    energy = h2.get_potential_energy()
    energy_ref = -30.6989595886
    diff = abs((energy - energy_ref) / energy_ref)
    assert diff < 1e-10
    print('passed test "H2_None"')
コード例 #4
0
def installed():
    import os
    from ase.test import NotAvailable
    vcmd = os.getenv('VASP_COMMAND')
    vscr = os.getenv('VASP_SCRIPT')
    if vcmd == None and vscr == None:
        raise NotAvailable('Neither VASP_COMMAND nor VASP_SCRIPT defined')
    return True
コード例 #5
0
ファイル: vasp_xml.py プロジェクト: btodac/ase
def main():
    if sys.version_info < (2, 7):
        raise NotAvailable('read_xml requires Python version 2.7 or greater')

    assert installed()

    # simple test calculation of CO molecule
    d = 1.14
    co = Atoms('CO', positions=[(0, 0, 0), (0, 0, d)],
               pbc=True)
    co.center(vacuum=5.)

    calc = Vasp(xc='LDA',
                prec='Low',
                algo='Fast',
                ismear=0,
                sigma=1.,
                nbands=12,
                istart=0,
                nelm=3,
                lwave=False,
                lcharg=False,
                ldipol=True)

    co.set_calculator(calc)
    energy = co.get_potential_energy()
    forces = co.get_forces()
    dipole_moment = co.get_dipole_moment()

    # check that parsing of vasprun.xml file works
    conf = read('vasprun.xml')
    assert conf.calc.parameters['kpoints_generation']
    assert conf.calc.parameters['sigma'] == 1.0
    assert conf.calc.parameters['ialgo'] == 68
    assert energy - conf.get_potential_energy() == 0.0

    # Check some arrays
    assert np.allclose(conf.get_forces(), forces)
    assert np.allclose(conf.get_dipole_moment(), dipole_moment, atol=1e-6)

    # Check k-point-dependent properties
    assert len(conf.calc.get_eigenvalues(spin=0)) >= 12
    assert conf.calc.get_occupation_numbers()[2] == 2
    assert conf.calc.get_eigenvalues(spin=1) is None
    kpt = conf.calc.get_kpt(0)
    assert kpt.weight == 1.

    # Perform a spin-polarised calculation
    co.calc.set(ispin=2, ibrion=-1)
    co.get_potential_energy()
    conf = read('vasprun.xml')
    assert len(conf.calc.get_eigenvalues(spin=1)) >= 12
    assert conf.calc.get_occupation_numbers(spin=1)[0] == 1.

    # Cleanup
    calc.clean()
コード例 #6
0
ファイル: __init__.py プロジェクト: essil1/ase-laser
def installed2():
    # Check if env variables exist for Vasp2
    import os
    from ase.test import NotAvailable
    vcmd = os.getenv('VASP_COMMAND')
    vscr = os.getenv('VASP_SCRIPT')
    vase = os.getenv('ASE_VASP_COMMAND')
    if vcmd is None and vscr is None and vase is None:
        raise NotAvailable(
            'Neither ASE_VASP_COMMAND, VASP_COMMAND nor VASP_SCRIPT defined')
    return True
コード例 #7
0
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K(label='test_H2_LDA')
    h2 = molecule('H2', calculator=calc)
    h2.center(vacuum=2.0)
    energy = h2.get_potential_energy()
    energy_ref = -30.6989595886
    diff = abs((energy - energy_ref) / energy_ref)
    assert diff < 1e-10
    print('passed test "H2_LDA"')
コード例 #8
0
ファイル: cp2k_restart.py プロジェクト: essil1/ase-laser
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K()
    h2 = molecule('H2', calculator=calc)
    h2.center(vacuum=2.0)
    h2.get_potential_energy()
    calc.write('test_restart')  # write a restart
    calc2 = CP2K(restart='test_restart')  # load a restart
    assert not calc2.calculation_required(h2, ['energy'])
    print('passed test "restart"')
コード例 #9
0
ファイル: cp2k_O2.py プロジェクト: essil1/ase-laser
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K(label='test_O2', uks=True, cutoff=150 * units.Rydberg,
                basis_set="SZV-MOLOPT-SR-GTH")
    o2 = molecule('O2', calculator=calc)
    o2.center(vacuum=2.0)
    energy = o2.get_potential_energy()
    energy_ref = -861.057011375
    diff = abs((energy - energy_ref) / energy_ref)
    assert diff < 1e-10
    print('passed test "O2"')
コード例 #10
0
ファイル: cp2k_H2_libxc.py プロジェクト: essil1/ase-laser
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K(xc='XC_GGA_X_PBE XC_GGA_C_PBE',
                pseudo_potential="GTH-PBE",
                label='test_H2_libxc')
    h2 = molecule('H2', calculator=calc)
    h2.center(vacuum=2.0)
    energy = h2.get_potential_energy()
    energy_ref = -31.591716529642
    diff = abs((energy - energy_ref) / energy_ref)
    assert diff < 1e-10
    print('passed test "H2_libxc"')
コード例 #11
0
    def plot(self, name=''):
        """Plot the individual curves"""

        try:
            import matplotlib.pyplot as plt

        except ImportError:
            raise NotAvailable('This needs matplotlib module.')

        if self.form == 'eam' or self.form == 'alloy':
            nrow = 2
        elif self.form == 'adp':
            nrow = 3
        else:
            raise RuntimeError('Unknown form of potential: %s' % self.form)

        if hasattr(self, 'r'):
            r = self.r
        else:
            r = np.linspace(0, self.cutoff, 50)

        if hasattr(self, 'rho'):
            rho = self.rho
        else:
            rho = np.linspace(0, 10.0, 50)

        plt.subplot(nrow, 2, 1)
        self.elem_subplot(rho, self.embedded_energy, r'$\rho$',
                          r'Embedding Energy $F(\bar\rho)$', name, plt)

        plt.subplot(nrow, 2, 2)
        self.elem_subplot(r, self.electron_density, r'$r$',
                          r'Electron Density $\rho(r)$', name, plt)

        plt.subplot(nrow, 2, 3)
        self.multielem_subplot(r, self.phi, r'$r$',
                               r'Pair Potential $\phi(r)$', name, plt)
        plt.ylim(-1.0, 1.0)  # need reasonable values

        if self.form == 'adp':
            plt.subplot(nrow, 2, 5)
            self.multielem_subplot(r, self.d, r'$r$', r'Dipole Energy', name,
                                   plt)

            plt.subplot(nrow, 2, 6)
            self.multielem_subplot(r, self.q, r'$r$', r'Quadrupole Energy',
                                   name, plt)

        plt.plot()
コード例 #12
0
ファイル: __init__.py プロジェクト: fuulish/fuase
def installed():
    import os
    from ase.test import NotAvailable
    # check if CASTEP_COMMAND is set a environment variable
    if not os.environ.has_key('CASTEP_COMMAND'):
        print("WARNING: Environment variable CASTEP_COMMAND is not set")
        print("Will set CASTEP_COMMAND  = castep for the sake of this test")
        print(
            "Please change it if this does not run castep in your environment")
        os.environ['CASTEP_COMMAND'] = 'castep'

    if not (os.system(
            'which %s > /dev/null 2>&1' % os.environ['CASTEP_COMMAND']) == 0):
        raise NotAvailable("""Could not find CASTEP. If you have it
                              installed make sure, you set the CASTEP_COMMAND
                              environment variable correctly""")
    return True
コード例 #13
0
ファイル: cp2k_H2_LS.py プロジェクト: uu1477/MyAse
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    inp = """&FORCE_EVAL
               &DFT
                 &QS
                   LS_SCF ON
                 &END QS
               &END DFT
             &END FORCE_EVAL"""
    calc = CP2K(label='test_H2_LS', inp=inp)
    h2 = molecule('H2', calculator=calc)
    h2.center(vacuum=2.0)
    energy = h2.get_potential_energy()
    energy_ref = -30.6989581747
    diff = abs((energy - energy_ref) / energy_ref)
    assert diff < 5e-7
    print('passed test "H2_LS"')
コード例 #14
0
ファイル: cp2k_GeoOpt.py プロジェクト: yfyh2013/ase
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K(label='test_H2_GOPT')
    atoms = molecule('H2', calculator=calc)
    atoms.center(vacuum=2.0)

    # Run Geo-Opt
    gopt = BFGS(atoms, logfile=None)
    gopt.run(fmax=1e-6)

    # check distance
    dist = atoms.get_distance(0, 1)
    dist_ref = 0.7245595
    assert (dist - dist_ref) / dist_ref < 1e-7

    # check energy
    energy_ref = -30.7025616943
    energy = atoms.get_potential_energy()
    assert (energy - energy_ref) / energy_ref < 1e-10
    print('passed test "H2_GEO_OPT"')
コード例 #15
0
def main():
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    calc = CP2K(label='test_H2_MD')
    positions = [(0, 0, 0), (0, 0, 0.7245595)]
    atoms = Atoms('HH', positions=positions, calculator=calc)
    atoms.center(vacuum=2.0)

    # Run MD
    MaxwellBoltzmannDistribution(atoms, 0.5 * 300 * units.kB, force_temp=True)
    energy_start = atoms.get_potential_energy() + atoms.get_kinetic_energy()
    dyn = VelocityVerlet(atoms, 0.5 * units.fs)
    #def print_md():
    #    energy = atoms.get_potential_energy() + atoms.get_kinetic_energy()
    #    print("MD total-energy: %.10feV" %  energy)
    #dyn.attach(print_md, interval=1)
    dyn.run(20)

    energy_end = atoms.get_potential_energy() + atoms.get_kinetic_energy()

    assert energy_start - energy_end < 1e-4
    print('passed test "H2_MD"')
コード例 #16
0
ファイル: vasp2_xml.py プロジェクト: essil1/ase-laser
def main():
    if sys.version_info < (2, 7):
        raise NotAvailable('read_xml requires Python version 2.7 or greater')

    assert installed()

    # simple test calculation of CO molecule
    d = 1.14
    co = Atoms('CO', positions=[(0, 0, 0), (0, 0, d)], pbc=True)
    co.center(vacuum=5.)

    calc = Vasp(xc='PBE',
                prec='Low',
                algo='Fast',
                ismear=0,
                sigma=1.,
                istart=0,
                lwave=False,
                lcharg=False,
                ldipol=True)

    co.set_calculator(calc)
    energy = co.get_potential_energy()
    forces = co.get_forces()
    dipole_moment = co.get_dipole_moment()

    # check that parsing of vasprun.xml file works
    conf = read('vasprun.xml')
    assert conf.calc.parameters['kpoints_generation']
    assert conf.calc.parameters['sigma'] == 1.0
    assert conf.calc.parameters['ialgo'] == 68
    assert energy - conf.get_potential_energy() == 0.0
    assert np.allclose(conf.get_forces(), forces)
    assert np.allclose(conf.get_dipole_moment(), dipole_moment, atol=1e-6)

    # Cleanup
    calc.clean()
コード例 #17
0
ファイル: __init__.py プロジェクト: uu1477/MyAse
def installed():
    import os
    import subprocess
    from ase.test import NotAvailable
    # check if CASTEP_COMMAND is set an environment variable
    if 'CASTEP_COMMAND' not in os.environ:
        print("WARNING: Environment variable CASTEP_COMMAND is not set")
        print("Will set CASTEP_COMMAND  = castep for the sake of this test")
        print(
            "Please change it if this does not run castep in your environment")
        os.environ['CASTEP_COMMAND'] = 'castep'

    try:
        # not python 2.6-safe
        #subprocess.check_output([os.environ['CASTEP_COMMAND']])
        devnull = open(os.devnull)
        subprocess.Popen([os.environ['CASTEP_COMMAND']],
                         stdout=devnull,
                         stderr=devnull)
    except OSError:
        raise NotAvailable("""Could not find CASTEP. If you have it
                              installed make sure, you set the CASTEP_COMMAND
                              environment variable correctly""")
    return True
コード例 #18
0
ファイル: cp2k_neb.py プロジェクト: lileist/myScripts
def main():
    """add the following line in .bash_profile and source the .bash_profile to
       define the varialbe "ASE_CP2K_COMMAND": 
       export ASE_CP2K_COMMAND="mpiexec.hydra -n NCORES cp2k_shell.popt"
       where NCORES is the total number of cores used for calculation.
       mpiexec.hydra is the mpi command used for the parrallel running.
    """
    if "ASE_CP2K_COMMAND" not in os.environ:
        raise NotAvailable('$ASE_CP2K_COMMAND not defined')

    # Basically, the entire CP2K input is passed in explicitly.
    # Disable ASE's input generation by setting everything to None.
    # ASE should only add the CELL and the COORD section.
    calc = CP2K(basis_set=None,
                basis_set_file=None,
                max_scf=None,
                cutoff=None,
                force_eval_method=None,
                potential_file=None,
                poisson_solver=None,
                pseudo_potential=None,
                stress_tensor=False,
                xc=None,
                label='N2O4-NH4', inp=inp)
コード例 #19
0
ファイル: reactions_test.py プロジェクト: lqcata/ase
from ase.test import NotAvailable

try:
    import cmr
except ImportError:
    raise NotAvailable('CMR is required')

from cmr.ui import DirectoryReader

from cmr.test.examples.ase_reaction_energy import ASEReactionEnergy

# see the module for the required format of reactions definition
from ase.test.cmr.reactions import reactions
from ase.test.cmr.reactions import reference

# assure that all reactions define a reaction_id
for r in reactions:
    assert r[-1][0] == 'reaction_id'

# project id: must uniquely identify the project!
project_id = 'EMT' + ' reaction energies'

# if True, then results are uploaded to the database
database = False

# create assisting class for project with project_id,
# that allows one to convert trajectory files into
# db-files and perform analysis
re = ASEReactionEnergy(project_id, reactions, prefix='', verbose=False)

# compounds names
コード例 #20
0
import os

from ase.test import NotAvailable

try:
    nwchem_command = os.getenv('NWCHEM_COMMAND')
    if nwchem_command == None:
        raise NotAvailable('NWCHEM_COMMAND not defined')
except NotAvailable:
    raise NotAvailable('Nwchem required')

import numpy as np

from ase.tasks.main import run

atoms, task = run("nwchem molecule O2 O -l -p task=gradient")
atoms, task = run('nwchem molecule O2 O -s')
ae = 2 * task.data['O']['energy'] - task.data['O2']['energy']
assert abs(ae - 6.605) < 1e-3
コード例 #21
0
import os

from ase.test import NotAvailable

try:
    fleur = os.getenv('FLEUR')
    if fleur == None:
        raise NotAvailable('FLEUR not defined')
except NotAvailable:
    raise NotAvailable('Fleur required')

import numpy as np

from ase.tasks.main import run

atoms, task = run("fleur bulk Al -x fcc -a 4.04 --k-point-density=3.0 -p xc=PBE")
atoms, task = run('fleur bulk Al -s')
コード例 #22
0
ファイル: hcp.py プロジェクト: lqcata/ase
try:
    import scipy
except ImportError:
    from ase.test import NotAvailable
    raise NotAvailable('This test needs scipy module.')

import numpy as np
from ase.io import read, PickleTrajectory
from ase.lattice import bulk
from ase.calculators.emt import EMT

a0 = 3.52 / np.sqrt(2)
c0 = np.sqrt(8 / 3.0) * a0
print '%.4f %.3f' % (a0, c0 / a0)
for i in range(3):
    traj = PickleTrajectory('Ni.traj', 'w')
    eps = 0.01
    for a in a0 * np.linspace(1 - eps, 1 + eps, 4):
        for c in c0 * np.linspace(1 - eps, 1 + eps, 4):
            ni = bulk('Ni', 'hcp', a=a, covera=c / a)
            ni.set_calculator(EMT())
            ni.get_potential_energy()
            traj.write(ni)

    configs = read('Ni.traj@:')
    energies = [config.get_potential_energy() for config in configs]
    ac = [(config.cell[0, 0], config.cell[2, 2]) for config in configs]
    from ase.optimize import polyfit
    p = polyfit(ac, energies)
    from scipy.optimize import fmin_bfgs
    a0, c0 = fmin_bfgs(p, (a0, c0))
コード例 #23
0
ファイル: netcdftrajectory.py プロジェクト: uu1477/MyAse
from ase.test import NotAvailable

import ase.io.netcdftrajectory as netcdftrajectory

if not netcdftrajectory.have_nc:
    raise NotAvailable('No NetCDF module available (netCDF4-python, '
                       'scipy.io.netcdf)')

import os
from ase import Atom, Atoms
from ase.io import NetCDFTrajectory

co = Atoms([Atom('C', (0, 0, 0)), Atom('O', (0, 0, 1.2))], pbc=True)
traj = NetCDFTrajectory('1.nc', 'w', co)
for i in range(5):
    co.positions[:, 2] += 0.1
    traj.write()
del traj
if netcdftrajectory.have_nc == netcdftrajectory.NC_IS_NETCDF4:
    traj = NetCDFTrajectory('1.nc', 'a')
    co = traj[-1]
    print(co.positions)
    co.positions[:] += 1
    traj.write(co)
    del traj
    t = NetCDFTrajectory('1.nc', 'a')
else:
    t = NetCDFTrajectory('1.nc', 'r')

print(t[-1].positions)
print('.--------')
コード例 #24
0
ファイル: jacapo.py プロジェクト: slabanja/ase
# do some tests here before we import
# Right version of Scientific?
from ase.test import NotAvailable
import os
try:
    import Scientific
    version = Scientific.__version__.split(".")
    print 'Found ScientificPython version: ', Scientific.__version__
    if map(int, version) < [2, 8]:
        print 'ScientificPython 2.8 or greater required for numpy support in NetCDF'
        raise NotAvailable(
            'ScientificPython version 2.8 or greater is required')
except (ImportError, NotAvailable):
    print "No Scientific python found. Check your PYTHONPATH"
    raise NotAvailable('ScientificPython version 2.8 or greater is required')

if not (os.system('which dacapo.run') == 0):
    print "No Dacapo Fortran executable (dacapo.run) found. Check your path settings."
    raise NotAvailable(
        'dacapo.run is not installed on this machine or not in the path')

# Now Scientific 2.8 and dacapo.run should both be available

from ase import Atoms, Atom
from ase.calculators.jacapo import Jacapo

atoms = Atoms([Atom('H', [0, 0, 0])], cell=(2, 2, 2))

calc = Jacapo('Jacapo-test.nc',
              pw=200,
              nbands=2,
コード例 #25
0
ファイル: trajectory.py プロジェクト: uu1477/MyAse
import sys

from ase.test import NotAvailable, must_raise

if sys.platform in ['win32']:
    raise NotAvailable('Fails on Windows '
                       'https://trac.fysik.dtu.dk/projects/ase/ticket/62')

import os
from ase import Atom, Atoms
from ase.io import Trajectory, read
from ase.constraints import FixBondLength

co = Atoms([Atom('C', (0, 0, 0)),
            Atom('O', (0, 0, 1.2))])
traj = Trajectory('1.traj', 'w', co)
for i in range(5):
    co.positions[:, 2] += 0.1
    traj.write()

traj = Trajectory('1.traj', 'a')
co = read('1.traj')
print(co.positions)
co.positions[:] += 1
traj.write(co)

for a in Trajectory('1.traj'):
    print(1, a.positions[-1, 2])
co.positions[:] += 1
t = Trajectory('1.traj', 'a')
t.write(co)
コード例 #26
0
ファイル: vasp_co.py プロジェクト: lqcata/ase
#!/usr/bin/python
"""
Run some VASP tests to ensure that the VASP calculator works. This
is conditional on the existence of the VASP_COMMAND or VASP_SCRIPT
environment variables

"""

from ase.test import NotAvailable
import os

vcmd = os.getenv('VASP_COMMAND')
vscr = os.getenv('VASP_SCRIPT')
if vcmd == None and vscr == None:
    raise NotAvailable('Neither VASP_COMMAND nor VASP_SCRIPT defined')

from ase import Atoms
from ase.calculators.vasp import Vasp
import numpy as np


def array_almost_equal(a1, a2, tol=np.finfo(type(1.0)).eps):
    """Replacement for old numpy.testing.utils.array_almost_equal."""
    return (np.abs(a1 - a2) < tol).all()


d = 1.14
co = Atoms('CO', positions=[(0, 0, 0), (0, 0, d)], pbc=True)
co.center(vacuum=5.)

calc = Vasp(xc='PBE',
コード例 #27
0
if not os.path.exists('calcDelta.py'):
    try:
        resp = urllib.request.urlopen(src)
        urllib.request.urlretrieve(src, filename=name)
        z = zipfile.ZipFile(name)
        try:  # new in 2.6
            z.extractall()
        except AttributeError:
            # http://stackoverflow.com/questions/7806563/how-to-unzip-a-zip-file-with-python-2-4
            for f in z.namelist():
                fd = open(f, "w")
                fd.write(z.read(f))
                fd.close()
        # AttributeError if unzip not found
    except (urllib.error.HTTPError, AttributeError):
        raise NotAvailable('Retrieval of zip failed')
os.chdir('..')

task = Task(
    tag=tag,
    use_lock_files=True,
)

# header
h = ['#element', 'V0', 'B0', 'B1']

if not os.path.exists('%s_raw.csv' % tag):
    # read calculated results from json file and write into csv
    task.read()
    task.analyse()
コード例 #28
0
ファイル: mopac_cmdline.py プロジェクト: fuulish/fuase
from ase.test import NotAvailable

from ase.calculators.mopac import Mopac

if Mopac().get_command() is None:
    raise NotAvailable('MOPAC required')

from ase.tasks.main import run

atoms, task = run("mopac molecule O2 O")
atoms, task = run('mopac molecule O2 O -s')
ae = 2 * task.data['O']['energy'] - task.data['O2']['energy']
print ae
assert abs(ae - 12.658) < 1e-3
コード例 #29
0
ファイル: v_sim.py プロジェクト: nnnadine/ase
"""Check reading of a sample v_sim .ascii file, and I/O consistency"""

try:
    from urllib.request import urlretrieve
    from urllib.error import URLError
except ImportError:
    from urllib import urlretrieve
    from urllib2 import URLError
from socket import error as SocketError

from ase.test import NotAvailable
from ase.io import read

raise NotAvailable('The web site which this test depends upon.  '
                   'TODO: Let us not depend on external websites.')

dest = 'demo.ascii'
src = 'http://inac.cea.fr/L_Sim/V_Sim/files/' + dest
copy = 'demo2.ascii'

try:
    urlretrieve(src, filename=dest)
except (IOError, URLError, SocketError):
    raise NotAvailable('Retrieval of ' + src + ' failed')

atoms = read(dest, format='v-sim')

atoms.write(copy)
atoms2 = read(copy)

tol = 1e-6
コード例 #30
0
""" test run for gromacs calculator """

from ase.test import NotAvailable
from ase.calculators.gromacs import Gromacs

if Gromacs().get_command() is None:
    raise NotAvailable(
        'Gromacs required, setup your GMXCMD environmental variable')

GRO_INIT_FILE = 'hise_box.gro'

# write structure file
outfile = open('hise_box.gro', 'w')
outfile.write('HISE for testing  \n')
outfile.write('   20 \n')
outfile.write('    3HISE     N    1   1.966   1.938   1.722 \n')
outfile.write('    3HISE    H1    2   2.053   1.892   1.711 \n')
outfile.write('    3HISE    H2    3   1.893   1.882   1.683 \n')
outfile.write('    3HISE    H3    4   1.969   2.026   1.675 \n')
outfile.write('    3HISE    CA    5   1.939   1.960   1.866 \n')
outfile.write('    3HISE    HA    6   1.934   1.869   1.907 \n')
outfile.write('    3HISE    CB    7   2.055   2.041   1.927 \n')
outfile.write('    3HISE   HB1    8   2.141   2.007   1.890 \n')
outfile.write('    3HISE   HB2    9   2.043   2.137   1.903 \n')
outfile.write('    3HISE   ND1   10   1.962   2.069   2.161 \n')
outfile.write('    3HISE    CG   11   2.065   2.032   2.077 \n')
outfile.write('    3HISE   CE1   12   2.000   2.050   2.287 \n')
outfile.write('    3HISE   HE1   13   1.944   2.069   2.368 \n')
outfile.write('    3HISE   NE2   14   2.123   2.004   2.287 \n')
outfile.write('    3HISE   HE2   15   2.177   1.981   2.369 \n')
outfile.write('    3HISE   CD2   16   2.166   1.991   2.157 \n')