예제 #1
0
    def set(self, **kwargs):
        """Set parameters like set(key1=value1, key2=value2, ...).

        A dictionary containing the parameters that have been changed
        is returned.

        The special keyword 'parameters' can be used to read
        parameters from a file."""

        if 'parameters' in kwargs:
            filename = kwargs.pop('parameters')
            parameters = Parameters.read(filename)
            parameters.update(kwargs)
            kwargs = parameters

        changed_parameters = {}

        for key, value in kwargs.items():
            oldvalue = self.parameters.get(key)
            if key not in self.parameters or not (value == oldvalue):
                if isinstance(oldvalue, dict):
                    # Special treatment for dictionary parameters:
                    for name in value:
                        if name not in oldvalue:
                            raise KeyError('Unknown subparameter "{}" in '
                                           'dictionary parameter "{}"'.format(
                                               name, key))
                    oldvalue.update(value)
                    value = oldvalue
                changed_parameters[key] = value
                self.parameters[key] = value

        return changed_parameters
예제 #2
0
 def read(self, label):
     'Read atoms, parameters and calculated results from restart files.'
     self.atoms = ase.io.read(label + '_restart.traj')
     self.parameters = Parameters.read(label + '_params.ase')
     from ase.io.jsonio import read_json
     with open(label + '_results.json') as fd:
         self.results = read_json(fd)
예제 #3
0
파일: gamess_us.py 프로젝트: PHOTOX/fuase
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + '.out'):
            raise ReadError

        self.parameters = Parameters.read(self.label + '.ase')
        self.atoms = read_gamess_us_input(self.label + '.inp')

        self.read_results()
예제 #4
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + '.out'):
            raise ReadError

        self.parameters = Parameters.read(self.label + '.ase')
        self.atoms = read_orca_input(self.label + '.inp')

        self.read_results()
예제 #5
0
파일: abinit.py 프로젝트: wes-amat/ase
    def read(self, label):
        """Read results from ABINIT's text-output file."""
        FileIOCalculator.read(self, label)
        filename = self.label + '.txt'
        if not os.path.isfile(filename):
            raise ReadError('ABINIT output file ' + filename + ' is missing.')

        self.atoms = read_abinit(self.label + '.in')
        self.parameters = Parameters.read(self.label + '.ase')

        self.initialize(self.atoms)
        self.read_results()
예제 #6
0
파일: abinit.py 프로젝트: PHOTOX/fuase
    def read(self, label):
        """Read results from ABINIT's text-output file."""
        FileIOCalculator.read(self, label)
        filename = self.label + '.txt'
        if not os.path.isfile(filename):
            raise ReadError

        self.atoms = read_abinit(self.label + '.in')
        self.parameters = Parameters.read(self.label + '.ase')

        self.initialize(self.atoms)
        self.read_results()
예제 #7
0
파일: __init__.py 프로젝트: Rhouli/ljmd-c
    def read_input(self, label):
        """ Read MyMD input and restart file

        Initializes self.frames with frame from restart file
        and self.parameters with data form input file.

        WARNING: This function is not yet properly implemented
        """
        # TODO: make it take an arbitrary input filename
        self.label = label

        # If the input was generated by ASE, it is simple
        if False and os.path.isfile(self.label + '.ase'):
            self.parameters = Parameters.read(self.label + '.ase')
        else:
            if not os.path.isfile(self.label + '.inp'):
                raise ReadError
            f = open(self.label + '.inp')
            s = f.readlines()

            parse = self.parse_line
            p = self.parameters

            natoms = int(parse(s[0]))
            # mass    = float( parse(s[1]) ) #not needed, default in
            # read_restart
            epsilon = float(parse(s[2]))
            sigma = float(parse(s[3]))
            rcut = float(parse(s[4]))
            box = parse(s[5])
            restfile = parse(s[6])
            trajfile = parse(s[7])
            enerfile = parse(s[8])
            nsteps = int(parse(s[9]))
            dt = float(parse(s[10]))
            nprint = int(parse(s[11]))
            # TODO: start parsing the format...

        atoms = io.read_restart(label + '.rest')
        atoms.set_cell([box, box, box])

        if len(atoms) != natoms:
            s = "natoms = {} from {} does not match with\n".\
                format(natoms, self.label + '.inp')
            s = "natoms = {} from restart file {}".\
                format(len(atoms), self.label + '.rest')
            raise RuntimeError(s)

        self.potentials = potentials.LJPotential(
            epsilon=epsilon,
            sigma=sigma,
            rcut=rcut)
예제 #8
0
파일: aims.py 프로젝트: fuulish/fuase
    def read(self, label):
        FileIOCalculator.read(self, label)
        geometry = os.path.join(self.directory, 'geometry.in')
        control = os.path.join(self.directory, 'control.in')
                        
        for filename in [geometry, control, self.out]:
            if not os.path.isfile(filename):
                raise ReadError

        self.atoms = read_aims(geometry)
        self.parameters = Parameters.read(os.path.join(self.directory,
                                                       'parameters.ase'))
        self.read_results()
예제 #9
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        geometry = self.label + '.car'
        output = self.label + '.outmol'
        force = self.label + '.grad'

        for filename in [force, output, geometry]:
            if not os.path.isfile(filename):
                raise ReadError

        self.atoms = read(geometry)
        self.parameters = Parameters.read(self.label + 'parameters.ase')
        self.read_results()
예제 #10
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        geometry = self.label + '.car'
        output = self.label + '.outmol'
        force = self.label + '.grad'

        for filename in [force, output, geometry]:
            if not os.path.isfile(filename):
                raise ReadError

        self.atoms = read(geometry)
        self.parameters = Parameters.read(self.label + 'parameters.ase')
        self.read_results()
예제 #11
0
파일: orca.py 프로젝트: hherbol/ase_orca
    def read(self, label):
        """Used to read the results of a previous calculation if restarting"""
        FileIOCalculator.read(self, label)

        from ase.io.orca import read_orca_out
        filename = self.label

        if not os.path.isfile(filename + ".log"):
            raise ReadError

        self.atoms = read_orca_out(filename, quantity='atoms')
        self.parameters = Parameters.read(self.label + '.ase')
        self.read_results()
예제 #12
0
파일: gaussian.py 프로젝트: PHOTOX/fuase
    def read(self, label):
        """Used to read the results of a previous calculation if restarting"""
        FileIOCalculator.read(self, label)

        from ase.io.gaussian import read_gaussian_out
        filename = self.label + '.log'

        if not os.path.isfile(filename):
            raise ReadError

        self.atoms = read_gaussian_out(filename, quantity='atoms')
        self.parameters = Parameters.read(self.label + '.ase')
        initial_magmoms = self.parameters.pop('initial_magmoms')
        self.atoms.set_initial_magnetic_moments(initial_magmoms)
        self.read_results()
예제 #13
0
    def read(self, label):
        """Used to read the results of a previous calculation if restarting"""
        FileIOCalculator.read(self, label)

        from ase.io.gaussian import read_gaussian_out
        filename = self.label + '.log'

        if not os.path.isfile(filename):
            raise ReadError

        self.atoms = read_gaussian_out(filename, quantity='atoms')
        self.parameters = Parameters.read(self.label + '.ase')
        initial_magmoms = self.parameters.pop('initial_magmoms')
        self.atoms.set_initial_magnetic_moments(initial_magmoms)
        self.read_results()
예제 #14
0
파일: elk.py 프로젝트: PHOTOX/fuase
    def read(self, label):
        FileIOCalculator.read(self, label)
        totenergy = os.path.join(self.directory, 'TOTENERGY.OUT')
        eigval = os.path.join(self.directory, 'EIGVAL.OUT')
        kpoints = os.path.join(self.directory, 'KPOINTS.OUT')

        for filename in [totenergy, eigval, kpoints, self.out]:
            if not os.path.isfile(filename):
                raise ReadError

        # read state from elk.in because *.OUT do not provide enough digits!
        self.atoms = read_elk(os.path.join(self.directory, 'elk.in'))
        self.parameters = Parameters.read(os.path.join(self.directory,
                                                       'parameters.ase'))
        self.initialize(self.atoms)
        self.read_results()
예제 #15
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        totenergy = os.path.join(self.directory, 'TOTENERGY.OUT')
        eigval = os.path.join(self.directory, 'EIGVAL.OUT')
        kpoints = os.path.join(self.directory, 'KPOINTS.OUT')

        for filename in [totenergy, eigval, kpoints, self.out]:
            if not os.path.isfile(filename):
                raise ReadError('ELK output file ' + filename + ' is missing.')

        # read state from elk.in because *.OUT do not provide enough digits!
        self.atoms = read_elk(os.path.join(self.directory, 'elk.in'))
        self.parameters = Parameters.read(
            os.path.join(self.directory, 'parameters.ase'))
        self.initialize(self.atoms)
        self.read_results()
예제 #16
0
    def read(self, label=None):
        if label is None: label = self.label
        FileIOCalculator.read(self, label)
        geometry = os.path.join(self.directory, 'geometry.in')
        control = os.path.join(self.directory, 'control.in')

        for filename in [geometry, control, self.out]:
            if not os.path.isfile(filename):
                raise ReadError

        self.atoms, symmetry_block = read_aims(geometry, True)
        self.parameters = Parameters.read(
            os.path.join(self.directory, 'parameters.ase'))
        if symmetry_block:
            self.parameters["symmetry_block"] = symmetry_block
        self.read_results()
예제 #17
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + '.out'):
            raise ReadError

        with open(self.label + '.inp') as fd:
            for line in fd:
                if line.startswith('geometry'):
                    break
            symbols = []
            positions = []
            for line in fd:
                if line.startswith('end'):
                    break
                words = line.split()
                symbols.append(words[0])
                positions.append([float(word) for word in words[1:]])

        self.parameters = Parameters.read(self.label + '.ase')
        self.read_results()
예제 #18
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + ".out"):
            raise ReadError

        f = open(self.label + ".nw")
        for line in f:
            if line.startswith("geometry"):
                break
        symbols = []
        positions = []
        for line in f:
            if line.startswith("end"):
                break
            words = line.split()
            symbols.append(words[0])
            positions.append([float(word) for word in words[1:]])

        self.parameters = Parameters.read(self.label + ".ase")
        self.state = Atoms(symbols, positions, magmoms=self.parameters.pop("magmoms"))
        self.read_results()
예제 #19
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + '.out'):
            raise ReadError

        f = open(self.label + '.nw')
        for line in f:
            if line.startswith('geometry'):
                break
        symbols = []
        positions = []
        for line in f:
            if line.startswith('end'):
                break
            words = line.split()
            symbols.append(words[0])
            positions.append([float(word) for word in words[1:]])

        self.parameters = Parameters.read(self.label + '.ase')
        self.atoms = Atoms(symbols, positions,
                           magmoms=self.parameters.pop('initial_magmoms'))
        self.read_results()
예제 #20
0
    def read(self, label):
        FileIOCalculator.read(self, label)
        if not os.path.isfile(self.label + '.out'):
            raise ReadError

        f = open(self.label + '.nw')
        for line in f:
            if line.startswith('geometry'):
                break
        symbols = []
        positions = []
        for line in f:
            if line.startswith('end'):
                break
            words = line.split()
            symbols.append(words[0])
            positions.append([float(word) for word in words[1:]])

        self.parameters = Parameters.read(self.label + '.ase')
        self.atoms = Atoms(symbols, positions,
                           magmoms=self.parameters.pop('initial_magmoms'))
        self.read_results()
예제 #21
0
    def set(self, **kwargs):
        """Set all parameters.

        Parameters:
            kwargs  : Dictionary containing the keywords for deMon
        """
        # Put in the default arguments.
        kwargs = self.default_parameters.__class__(**kwargs)

        if 'parameters' in kwargs:
            filename = kwargs.pop('parameters')
            parameters = Parameters.read(filename)
            parameters.update(kwargs)
            kwargs = parameters

        changed_parameters = {}

        for key, value in kwargs.items():
            oldvalue = self.parameters.get(key)
            if key not in self.parameters or not equal(value, oldvalue):
                changed_parameters[key] = value
                self.parameters[key] = value

        return changed_parameters
예제 #22
0
    def set(self, **kwargs):
        """Set all parameters.

        Parameters:
            kwargs  : Dictionary containing the keywords for deMon
        """
        # Put in the default arguments.
        kwargs = self.default_parameters.__class__(**kwargs)

        if 'parameters' in kwargs:
            filename = kwargs.pop('parameters')
            parameters = Parameters.read(filename)
            parameters.update(kwargs)
            kwargs = parameters

        changed_parameters = {}

        for key, value in kwargs.items():
            oldvalue = self.parameters.get(key)
            if key not in self.parameters or not equal(value, oldvalue):
                changed_parameters[key] = value
                self.parameters[key] = value

        return changed_parameters
예제 #23
0
파일: cp2k.py 프로젝트: ltalirz/ase
 def read(self, label):
     'Read atoms, parameters and calculated results from restart files.'
     from numpy import array  # needed by eval(<label_results.ase>)
     self.atoms = ase.io.read(label + '_restart.traj')
     self.parameters = Parameters.read(label + '_params.ase')
     self.results = eval(open(label + '_results.ase').read())
예제 #24
0
파일: cp2k.py 프로젝트: misdoro/python-ase
 def read(self, label):
     'Read atoms, parameters and calculated results from restart files.'
     self.atoms = ase.io.read(label + '_restart.traj')
     self.parameters = Parameters.read(label + '_params.ase')
     results_txt = open(label + '_results.ase').read()
     self.results = eval(results_txt, {'array': np.array})
예제 #25
0
def read_ase_and_abinit_inputs(label):
    with open(label + '.in') as fd:
        atoms = read_abinit_in(fd)
    parameters = Parameters.read(label + '.ase')
    return atoms, parameters
예제 #26
0
파일: cp2k.py 프로젝트: essil1/ase-laser
 def read(self, label):
     'Read atoms, parameters and calculated results from restart files.'
     self.atoms = ase.io.read(label + '_restart.traj')
     self.parameters = Parameters.read(label + '_params.ase')
     results_txt = open(label + '_results.ase').read()
     self.results = eval(results_txt, {'array': np.array})