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
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)
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()
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()
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()
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()
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)
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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
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
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())
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})
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
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})