def __init__(self, task_name, task_directory, structure_filename, restart=False, fullauto=False, temperature=None, pressure=0, time_total=None, time_step=None, supercell=[10, 10, 10]): assert temperature is not None assert time_total is not None assert time_step is not None LammpsSimulation.__init__(self, task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) self.temperature = temperature self.pressure = pressure self.time_total = time_total self.time_step = time_step self.supercell = supercell self.lammps_out_fn = 'lammps.out' self.lattice_fn = 'lattice.out'
def get_conditions_ready(self): LammpsSimulation.get_conditions_ready(self) if self.bulk_structure_name is not None: _is_components_exist = [] for k, v in self.bulk_lattice_components.items(): _is_components_exist.append(v is not None) _all_components_exist = all(_is_components_exist) self.conditions_READY['bulk_lattice_components'] =\ _all_components_exist
def __init__(self, task_name, task_directory, structure_filename, restart=False, fullauto=False): _task_type = 'lmps_min_pos' LammpsSimulation.__init__(self, task_name=task_name, task_directory=task_directory, task_type=_task_type, structure_filename=structure_filename, restart=restart, fullauto=fullauto)
def test____init___(): task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) #<--- code being tested from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) #<--- check directory structure assert os.path.isdir(os.path.abspath(lammps_task.task_directory)) assert os.listdir(lammps_task.task_directory) == [] #<--- check attributes assert lammps_task.task_name == task_name assert os.path.abspath(lammps_task.task_directory)\ == os.path.abspath(task_directory) assert lammps_task.task_type == 'single_point' assert lammps_task.lammps_bin == os.environ['LAMMPS_BIN'] assert lammps_task.lammps_input_filename == 'lammps.in' assert lammps_task.lammps_output_filename == 'lammps.out' assert lammps_task.lammps_structure_filename == 'lammps.structure' # assert lammps_task.lammps_eam_filename is None assert lammps_task.potential is None assert lammps_task.structure_filename == structure_filename assert isinstance(lammps_task.structure, crystal.SimulationCell) assert lammps_task.status == 'INIT'
def _lammps_input_create_atoms(self): str_out = LammpsSimulation._lammps_input_create_atoms(self) str_out += "replicate {} {} {}\n".format(self.supercell[0], self.supercell[1], self.supercell[2]) str_out += "change_box all x scale 1 y scale 1 z scale 1 remap\n" return str_out
def test__on_init(): symbols = configuration['potential']['symbols'] task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) assert 'potential' in configuration assert 'parameters' in configuration #<--- code setup from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) #<--- test setup assert os.path.exists(task_directory) assert lammps_task.status == 'INIT' assert lammps_task.potential is None #<--- code being testing lammps_task.on_init(configuration) #<--- expected behavior lammps_setfl_filename = '{}.eam.alloy'.format("".join(symbols)) #<--- check directory structure assert os.path.isdir(os.path.abspath(lammps_task.task_directory)) #<--- check attributes assert lammps_task.task_name == task_name assert os.path.abspath(lammps_task.task_directory)\ == os.path.abspath(task_directory) assert lammps_task.task_type == 'single_point' assert lammps_task.lammps_bin == os.environ['LAMMPS_BIN'] assert lammps_task.lammps_input_filename == 'lammps.in' assert lammps_task.lammps_output_filename == 'lammps.out' assert lammps_task.lammps_structure_filename == 'lammps.structure' assert lammps_task.lammps_setfl_filename is None assert isinstance(lammps_task.potential, potential.Potential) assert lammps_task.structure_filename == structure_filename assert isinstance(lammps_task.structure, crystal.SimulationCell) assert lammps_task.process is None if len(lammps_task.conditions_READY) == 0: assert lammps_task.status == 'READY' else: assert lammps_task.status == 'CONFIG'
def test__configure_potential(): #<--- expected behavior symbols = configuration['potential']['symbols'] task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) assert 'potential' in configuration assert 'parameters' in configuration #<--- code setup from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) lammps_task.configuration = configuration #<--- test setup assert os.path.exists(task_directory) assert lammps_task.status == 'INIT' assert lammps_task.potential is None assert lammps_task.configuration['potential']['potential_type'] \ == configuration['potential']['potential_type'] #<--- code being testing lammps_task.configure_potential() #<--- testing to see if the potential is setup correctly assert isinstance(lammps_task.potential, potential.Potential) if type(lammps_task.potential) == potential.EamPotential: assert isinstance(lammps_task.potential.obj_pair, potential.PairPotential) assert isinstance(lammps_task.potential.obj_density, potential.EamDensityFunction) assert isinstance(lammps_task.potential.obj_embedding, potential.EamEmbeddingFunction) if type(lammps_task.potential) == potential.EamPotential \ and 'setfl_filename' in configuration['potential']: if configuration['potential']['setfl_filename'] is not None: lammps_setfl_filename = '{}.eam.alloy'.format("".join(symbols)) assert os.path.isfile( os.path.join(task_directory, lammps_setfl_filename))
def on_init(self, configuration=None, results=None): LammpsSimulation.on_init(self, configuration=configuration) if 'bulk_structure' in configuration: self.bulk_structure_name = configuration['bulk_structure'] self.bulk_structure_filename = configuration[ 'bulk_structure_filename'] self.bulk_structure_lattice = OrderedDict() _lattice_parameter_variables = [ 'lmps_min_all.a11', 'lmps_min_all.a12', 'lmps_min_all.a13', 'lmps_min_all.a21', 'lmps_min_all.a22', 'lmps_min_all.a23', 'lmps_min_all.a31', 'lmps_min_all.a32', 'lmps_min_all.a33' ] self.bulk_lattice_components = OrderedDict() for k in _lattice_parameter_variables: _k = '{}.{}'.format(self.bulk_structure_name, k) self.bulk_lattice_components[_k] = None
def __init__(self, task_name, task_directory, structure_filename, restart=False, fullauto=False): _task_type = 'lmps_min_sf' self.bulk_structure_name = None self.bulk_structure_filename = None self.bulk_structure_lattice = None LammpsSimulation.__init__(self, task_name=task_name, task_directory=task_directory, task_type=_task_type, structure_filename=structure_filename, restart=restart, fullauto=fullauto)
def test__on_ready(): symbols = configuration['potential']['symbols'] task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) assert 'potential' in configuration assert 'parameters' in configuration #<--- code setup from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) lammps_task.on_init(configuration) lammps_task.on_config(configuration) #<--- test setup assert os.path.exists(task_directory) assert lammps_task.status == 'READY' #<--- code being testing lammps_task.on_ready(configuration) #<--- expected behavior lammps_setfl_filename = '{}.eam.alloy'.format("".join(symbols)) #<--- check to see if the configuration dictionaries were setup correctly assert type(lammps_task.conditions_INIT) == OrderedDict assert type(lammps_task.conditions_CONFIG) == OrderedDict assert type(lammps_task.conditions_READY) == OrderedDict assert type(lammps_task.conditions_RUNNING) == OrderedDict assert type(lammps_task.conditions_POST) == OrderedDict assert type(lammps_task.conditions_FINISHED) == OrderedDict assert os.path.isfile(os.path.join(task_directory, lammps_setfl_filename)) assert lammps_task.conditions_INIT['task_directory_created'] assert all([v for k, v in lammps_task.conditions_INIT.items()]) == True assert lammps_task.conditions_CONFIG['potential_initialized'] == True assert lammps_task.conditions_CONFIG['parameters_processed'] == True assert all([v for k, v in lammps_task.conditions_CONFIG.items()]) == True assert all([v for k, v in lammps_task.conditions_READY.items()]) == True assert lammps_task.conditions_RUNNING['process_initialized'] == True assert all([v for k, v in lammps_task.conditions_RUNNING.items()]) == True assert lammps_task.conditions_POST['process_finished'] == False assert all([v for k, v in lammps_task.conditions_POST.items()]) == False assert all([v for k, v in lammps_task.conditions_FINISHED.items()]) == False
def test__on_ready(): task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) assert 'potential' in configuration assert 'parameters' in configuration #<--- code setup from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) lammps_task.on_init(configuration) lammps_task.on_config(configuration) #<--- test setup assert os.path.exists(task_directory) assert lammps_task.status == 'READY' #<--- code being testing lammps_task.on_ready(configuration) assert type(lammps_task.conditions_INIT) == OrderedDict assert type(lammps_task.conditions_CONFIG) == OrderedDict assert type(lammps_task.conditions_READY) == OrderedDict assert type(lammps_task.conditions_RUNNING) == OrderedDict assert type(lammps_task.conditions_POST) == OrderedDict assert type(lammps_task.conditions_FINISHED) == OrderedDict assert lammps_task.conditions_INIT['task_directory_created'] assert all([v for k, v in lammps_task.conditions_INIT.items()]) == True assert lammps_task.conditions_CONFIG['potential_initialized'] == True assert lammps_task.conditions_CONFIG['parameters_processed'] == True assert all([v for k, v in lammps_task.conditions_CONFIG.items()]) == True assert all([v for k, v in lammps_task.conditions_READY.items()]) == True #assert lammps_task.conditions_RUNNING['process_initialized']== False #assert all([v for k,v in lammps_task.conditions_RUNNING.items()]) == False assert lammps_task.conditions_POST['process_finished'] == False assert all([v for k, v in lammps_task.conditions_POST.items()]) == False assert all([v for k, v in lammps_task.conditions_FINISHED.items()]) == False
def test____init___(): symbols = configuration['potential']['symbols'] task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] eam_setfl_filename = configuration['potential']['setfl_filename'] restart = False fullauto = False cleanup(task_directory) assert not os.path.exists(task_directory) assert type(eam_setfl_filename) is str assert type(structure_filename) is str poscar = vasp.Poscar() poscar.read(structure_filename) assert os.path.isfile(eam_setfl_filename) assert os.path.isfile(structure_filename) #<--- code being tested from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) #<--- expected behavior lammps_setfl_filename = '{}.eam.alloy'.format("".join(symbols)) #<--- check directory structure assert os.path.isdir(os.path.abspath(lammps_task.task_directory)) assert os.listdir(lammps_task.task_directory) == [] #<--- check attributes assert lammps_task.task_name == task_name assert os.path.abspath(lammps_task.task_directory)\ == os.path.abspath(task_directory) assert lammps_task.task_type == 'single_point' assert lammps_task.lammps_bin == os.environ['LAMMPS_BIN'] assert lammps_task.lammps_input_filename == 'lammps.in' assert lammps_task.lammps_output_filename == 'lammps.out' assert lammps_task.lammps_structure_filename == 'lammps.structure' assert lammps_task.lammps_setfl_filename == None assert lammps_task.potential is None assert lammps_task.structure_filename == structure_filename assert isinstance(lammps_task.structure, crystal.SimulationCell) assert lammps_task.status == 'INIT'
def on_ready(self,configuration=None,results=None): LammpsSimulation.on_ready( self, configuration=configuration, results=results)
def on_post(self, configuration=None): self._get_lattice_parameter_from_lattice_out_file( filename=os.path.join(self.task_directory, self.lattice_fn), supercell=self.supercell) LammpsSimulation.on_post(self, configuration=configuration)
print('poscar_filename={}'.format(Ni_structure_definition['filename'])) assert os.path.isfile(Ni_structure_definition['filename']) Ni_task_configuration = OrderedDict() Ni_task_configuration['task'] = OrderedDict() Ni_task_configuration['task']['task_name'] = 'Ni_fcc_unit.E_min_all' Ni_task_configuration['task']['task_directory'] = 'Ni_fcc_.E_min_all' Ni_task_configuration['task_type'] = 'min_none' Ni_task_configuration['potential'] = Ni_eam_potential_definition Ni_task_configuration['parameters'] = Ni_eam_parameters Ni_task_configuration['structure'] = Ni_structure_definition configuration = Ni_task_configuration task_name = configuration['task']['task_name'] task_directory = configuration['task']['task_directory'] structure_filename = configuration['structure']['filename'] restart = False fullauto = False from pypospack.task.lammps import LammpsSimulation lammps_task = LammpsSimulation(task_name=task_name, task_directory=task_directory, structure_filename=structure_filename) lammps_task.on_init(configuration) lammps_task.on_config(configuration) lammps_task.on_ready(configuration) lammps_task.on_running(configuration) lammps_task.on_post(configuration)
def on_ready(self, configuration=None, results=None): if self.bulk_structure_name is not None: self.__modify_structure(results=results) LammpsSimulation.on_ready(self, configuration=configuration)
def on_config(self, configuration, results=None): if self.bulk_structure_name is not None: for k, v in results.items(): if k in self.bulk_lattice_components: self.bulk_lattice_components[k] = v LammpsSimulation.on_config(self, configuration=None, results=None)
def postprocess(self): LammpsSimulation.postprocess(self)
def on_post(self, configuration=None): self.__get_results_from_lammps_outputfile() LammpsSimulation.on_post(self, configuration=configuration)
def on_config(self,configuration,results=None): LammpsSimulation.on_config(self,configuration=None,results=None)
def on_init(self,configuration=None,results=None): LammpsSimulation.on_init(self,configuration=configuration)