Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
__author__ = "Joerg Neugebauer, Sudarsan Surendralal, Jan Janssen"
__copyright__ = (
"Copyright 2020, Max-Planck-Institut für Eisenforschung GmbH "
"- Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Sudarsan Surendralal"
__email__ = "surendralal@mpie.de"
__status__ = "production"
__date__ = "Sep 1, 2017"
s = Settings()
class LammpsBase(AtomisticGenericJob):
"""
Class to setup and run and analyze LAMMPS simulations which is a derivative of
atomistics.job.generic.GenericJob. The functions in these modules are written in such the function names and
attributes are very generic (get_structure(), molecular_dynamics(), version) but the functions are written to handle
LAMMPS specific input/output.
Args:
project (pyiron.project.Project instance): Specifies the project path among other attributes
job_name (str): Name of the job
Attributes:
input (lammps.Input instance): Instance which handles the input
"""
def __init__(self, project, job_name):
super(LammpsBase, self).__init__(project, job_name)
def job(self, val):
if not (isinstance(val, (AtomisticGenericJob, JobPath))):
raise AssertionError()
if not (val.status == "finished"):
raise AssertionError()
self._job = val
self._set_trajectory()
)
__version__ = "1.0"
__maintainer__ = "Jan Janssen"
__email__ = "janssen@mpie.de"
__status__ = "development"
__date__ = "Sep 1, 2018"
BOHR_TO_ANGSTROM = (
scipy.constants.physical_constants["Bohr radius"][0] / scipy.constants.angstrom
)
HARTREE_TO_EV = scipy.constants.physical_constants["Hartree energy in eV"][0]
HARTREE_OVER_BOHR_TO_EV_OVER_ANGSTROM = HARTREE_TO_EV / BOHR_TO_ANGSTROM
class SxUniqDispl(AtomisticGenericJob):
def __init__(self, project, job_name):
super(SxUniqDispl, self).__init__(project, job_name)
self.__version__ = "0.1"
self.__name__ = "SxUniqDispl"
self.input = GenericParameters(table_name="displacement")
self.input["displacement"] = 0.01
self.structure_lst = []
def set_input_to_read_only(self):
"""
This function enforces read-only mode for the input classes, but it has to be implement in the individual
classes.
"""
super(SxUniqDispl, self).set_input_to_read_only()
self.input.read_only = True
Args:
hdf (ProjectHDFio): HDF5 group object - optional
group_name (str): HDF5 subgroup name - optional
"""
super(InteractiveBase, self).from_hdf(hdf=hdf, group_name=group_name)
with self.project_hdf5.open("input") as hdf5_input:
if "interactive" in hdf5_input.list_nodes():
interactive_dict = hdf5_input["interactive"]
self._interactive_flush_frequency = interactive_dict["interactive_flush_frequency"]
if "interactive_write_frequency" in interactive_dict.keys():
self._interactive_write_frequency = interactive_dict["interactive_write_frequency"]
else:
self._interactive_write_frequency = 1
class GenericInteractive(AtomisticGenericJob, InteractiveBase):
def __init__(self, project, job_name):
super(GenericInteractive, self).__init__(project, job_name)
self.output = GenericInteractiveOutput(job=self)
self._structure_previous = None
self._structure_current = None
self._interactive_enforce_structure_reset = False
self._interactive_grand_canonical = False
self._interactive_fetch_completed = True
self.interactive_cache = {'cells': [],
'energy_pot': [],
'energy_tot': [],
'forces': [],
'positions': [],
'pressures': [],
'stress': [],
'steps': [],
from __future__ import print_function
from pyiron.atomistics.structure.atoms import Atoms
from pyiron.atomistics.job.atomistic import AtomisticGenericJob
__author__ = "Yury Lysogorskiy"
__copyright__ = "Copyright 2019, Max-Planck-Institut für Eisenforschung GmbH - " \
"Computational Materials Design (CM) Department"
__version__ = "1.0"
__maintainer__ = "Jan Janssen"
__email__ = "janssen@mpie.de"
__status__ = "development"
__date__ = "Sep 1, 2017"
class StructureContainer(AtomisticGenericJob):
def __init__(self, project, job_name):
super(StructureContainer, self).__init__(project, job_name)
self.__version__ = "0.1"
self.__name__ = "StructureContainer"
self.server.run_mode.interactive = True
@property
def structure(self):
return self._structure
@structure.setter
def structure(self, structure):
if isinstance(structure, AtomisticGenericJob):
if structure.structure:
self._structure = structure.get_structure(iteration_step=-1)
self.parent_id = structure.job_id
from molmod.io.fchk import FCHKFile
from molmod.units import amu,angstrom,electronvolt
from molmod.periodic import periodic
import tamkin
__author__ = "Jan Janssen, Sander Borgmans"
__copyright__ = "Copyright 2019, Max-Planck-Institut für Eisenforschung GmbH - " \
"- Computational Materials Design (CM) Department"
__version__ = "1.0"
__maintainer__ = ""
__email__ = ""
__status__ = "trial"
__date__ = "Aug 27, 2019"
class Gaussian(AtomisticGenericJob):
def __init__(self, project, job_name):
super(Gaussian, self).__init__(project, job_name)
self.__name__ = "Gaussian"
self._executable_activate(enforce=True)
self.input = GaussianInput()
self.output = GaussianOutput(job=self)
def write_input(self):
input_dict = {'mem': self.server.memory_limit,
'verbosity': self.input['verbosity'],
'lot': self.input['lot'],
'basis_set': self.input['basis_set'],
'jobtype' : self.input['jobtype'],
'settings' : self.input['settings'],
'title' : self.input['title'],
'spin_mult': self.input['spin_mult'],
do_cross_DSD False
do_cross_DAA False
do_cross_DAD False
consistent_cross_rvs True
remove_dysfunctional_cross True
bond_term BondHarm
bend_term BendAHarm
do_squarebend True
do_bendclin True
do_sqoopdist_to_oopdist True
"""
self.load_string(input_str)
class QuickFF(AtomisticGenericJob):
def __init__(self, project, job_name):
super(QuickFF, self).__init__(project, job_name)
self.__name__ = "QuickFF"
self._executable_activate(enforce=True)
self.input = QuickFFInput()
self.ffatypes = None
self.ffatype_ids = None
self.aiener = None
self.aigrad = None
self.aihess = None
self.fn_ei = None
self.fn_vdw = None
def read_abinitio(self, fn):
numbers, coords, energy, grad, hess, masses, rvecs, pbc = read_abinitio(fn)
coords /= angstrom
def structure(self, structure):
if (
self.server.run_mode.interactive
or self.server.run_mode.interactive_non_modal
):
# only overwrite the initial structure if it is not set already.
if AtomisticGenericJob.structure.fget(self) is None:
AtomisticGenericJob.structure.fset(self, structure.copy())
self._structure_current = structure
else:
AtomisticGenericJob.structure.fset(self, structure)
from pyiron.atomistics.job.atomistic import AtomisticGenericJob
import warnings
__author__ = "Jan Janssen"
__copyright__ = (
"Copyright 2020, Max-Planck-Institut für Eisenforschung GmbH - "
"Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Jan Janssen"
__email__ = "janssen@mpie.de"
__status__ = "production"
__date__ = "Sep 1, 2017"
class GenericDFTJob(AtomisticGenericJob):
def __init__(self, project, job_name):
super(GenericDFTJob, self).__init__(project, job_name)
self._generic_input["fix_symmetry"] = True
@property
def encut(self):
return self.plane_wave_cutoff
@encut.setter
def encut(self, val):
self.plane_wave_cutoff = val
@property
def xc(self):
return self.exchange_correlation_functional
from pyiron.atomistics.job.atomistic import AtomisticGenericJob
from pyiron.base.master.generic import get_function_from_string
__author__ = "Jan Janssen"
__copyright__ = (
"Copyright 2020, Max-Planck-Institut für Eisenforschung GmbH - "
"Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Jan Janssen"
__email__ = "janssen@mpie.de"
__status__ = "production"
__date__ = "Sep 1, 2017"
class AtomisticParallelMaster(ParallelMaster, AtomisticGenericJob):
def __init__(self, project, job_name):
super(AtomisticParallelMaster, self).__init__(project, job_name=job_name)
@property
def structure(self):
if self.ref_job:
return self._ref_job.structure
else:
return None
@structure.setter
def structure(self, basis):
if self.ref_job:
self._ref_job.structure = basis
else:
raise ValueError(