def dev__defect_calculation(): print(80*'-') print('{:^80}'.format('defect_calculation')) print(80*'-') simulation_dir = 'rank_test' testing_set = testing_set_Si_sw.get_testing_set_Si() configuration = PyposmatConfigurationFile() configuration.qois = testing_set['qoi_db'].qois configuration.structures = testing_set['structure_db'] qoi_manager = QoiManager( qoi_database=configuration.qois, fullauto=False ) qoi_manager.configure() qoi_manager.determine_tasks() print('qoi_manager.tasks') print(len('qoi_manager.tasks')*'-') for k,v in qoi_manager.tasks.items(): print(k,v) task_manager = TaskManager(base_directory=simulation_dir) task_manager.configure( tasks = qoi_manager.tasks, structures = testing_set['structure_db'] ) task_managger.evaluate_tasks() qoi_manager.calculate_qois( task_results=task_manager.results ) qoi_manager.qois
def write_configuration_file(filename='pyposmat.config'): configuration = PyposmatConfigurationFile() configuration.qois = qoi_db.qois configuration.qoi_constraints = qoi_constraints configuration.structures = structure_db configuration.potential = potential_formalism configuration.sampling_type = sampling configuration.sampling_distribution = parameter_distribution configuration.sampling_constraints = parameter_constraints configuration.write(filename=filename)
def write_configuration_file( filename, qois, potential_definition, structures): configuration = PyposmatConfigurationFile() configuration.qois = qois configuration.potential = potential_definition configuration.sampling_distribution = parameter_distribution configuration.structures = structures configuration.write(filename=filename)
def write_configuration_file(config_fn): import Si_sw #------------------------------------------------------------------------------ # WRITE CONFIGURATION FILE #------------------------------------------------------------------------------ Si_sw_configuration = PyposmatConfigurationFile() Si_sw_configuration.qois = Si_sw.Si_sw_qoi_db.qois Si_sw_configuration.potential = Si_sw.Si_sw_potential Si_sw_configuration.structures = Si_sw.Si_sw_structures Si_sw_configuration.sampling_type = Si_sw.Si_sw_sampling Si_sw_configuration.sampling_distribution = Si_sw.Si_sw_parameter_distribution Si_sw_configuration.write(filename=config_fn) Si_sw_configuration.read(filename=config_fn)
def write_configuration_file(config_fn): """ Args: config_fn(str): the name of the configuration file """ from pypospack.pyposmat.data import PyposmatDataFile import Ni__eam__morse_exp_universal as Ni__eam Ni_eam_configuration = PyposmatConfigurationFile() Ni_eam_configuration.qois = Ni_eam.Ni_qoi_db.qois Ni_eam_configuration.potential = Ni_eam.Ni_eam_potential_formalism Ni_eam_configuration.structures = Ni_eam.Ni_structure_db Ni_eam_configuration.sampling_type = Ni_eam.Ni_eam_sampling Ni_eam_configuration.sampling_distribution =Ni_eam.Ni_eam_parameter_distribution Ni_eam_configuration.write(filename=config_fn) Ni_eam_configuration.read(filename=config_fn)
def test__calculate_stacking_fault(potential,qoi_db,structure_db): simulation_directory = 'rank_test' configuration = PyposmatConfigurationFile() configuration.qois = qoi_db.qois configuration.structures = structure_db qoi_manager = QoiManager(qoi_database=configuration.qois,fullauto=False) qoi_manager.configure() qoi_manager.determine_tasks() task_manager = TaskManager(base_directory='rank_test') task_manager.configure(tasks=qoi_manager.tasks,structures=structure_db) task_manager.evaluate_tasks(parameters=potential,potential=potential) qoi_manager.calculate_qois( task_results=task_manager.results) qoi_manager.qois
qoi_db.add_qoi(qoi_name="MgO_NaCl.G", qoi_type='shear_modulus', structures=OrderedDict([('ideal', 'MgO_NaCl')]), target=92.66) qoi_db.add_qoi(qoi_name="MgO_NaCl.001s", qoi_type="E_surface", structures=OrderedDict([ ('slab', 'MgO_NaCl_001s'), ('ideal', 'MgO_NaCl'), ], ), target=0.05595) qoi_constraints = OrderedDict() #------------------------------------------------------------------------------ # WRITE CONFIGURATION FILE # this is currently creating a race condition, where the file is being written # by multiple ranks to the same location. #------------------------------------------------------------------------------ if __name__ == '__main__': from pypospack.pyposmat.data import PyposmatConfigurationFile pyposmat_filename_in = 'pyposmat.config.in' configuration = PyposmatConfigurationFile() configuration.qois = qoi_db.qois configuration.qoi_constraints = qoi_constraints configuration.structures = structure_db configuration.potential = potential_formalism configuration.sampling_type = sampling configuration.sampling_distribution = parameter_distribution configuration.sampling_constraints = parameter_constraints configuration.write(filename=pyposmat_filename_in)
MgO_structure_db['structures'] = OrderedDict() MgO_structure_db['structures']['MgO_NaCl'] = 'MgO_NaCl_unit.gga.relax.vasp' print(80 * '-') print('{:^80}'.format('STRUCTURE DATABASE')) print(80 * '-') print('Structure directory:{}'.format(MgO_structure_db['structure_directory'])) print(20 * '-' + ' ' + 59 * '-') print('{:^20} {:^59}'.format('structure_name', 'structure_filename')) print(20 * '-' + ' ' + 59 * '-') for k, v in MgO_structure_db['structures'].items(): print('{:<20} {:<59}'.format(k, v)) MgO_configuration = PyposmatConfigurationFile() MgO_configuration.qois = MgO_qoi_db.qois MgO_configuration.structures = MgO_structure_db _qoi_name = 'MgO_NaCl.thermal_expansion' _structures = OrderedDict([('ideal', 'MgO_NaCl')]) qoi = ThermalExpansion(qoi_name=_qoi_name, structures=_structures) qoi.determine_tasks() print(80 * '-') print('{:^80}'.format('TASKS DATABASE')) print(80 * '-') max_len_task_name = 0 max_len_task_type = 0 for k, v in qoi.tasks.items(): max_len_task_name = max(max_len_task_name, len(k)) max_len_task_type = max(max_len_task_type, len(v['task_type']))
s = [80 * '-'] s += ['{:^80}'.format('ERROR_NAMES')] s += [80 * '-'] s += [p for p in _error_names] self.log("\n".join(s)) if __name__ == "__main__": import Ni__eam__morse_exp_universal as Ni_eam #------------------------------------------------------------------------------ # WRITE CONFIGURATION FILE #------------------------------------------------------------------------------ Ni_eam_configuration = PyposmatConfigurationFile() Ni_eam_configuration.qois = Ni_eam.Ni_qoi_db.qois Ni_eam_configuration.potential = Ni_eam.Ni_eam_potential_formalism Ni_eam_configuration.structures = Ni_eam.Ni_structure_db Ni_eam_configuration.sampling_type = Ni_eam.Ni_eam_sampling Ni_eam_configuration.sampling_distribution = Ni_eam.Ni_eam_parameter_distribution Ni_eam_configuration.write(filename='pypospack.config.in') Ni_eam_configuration.read(filename='pypospack.config.in') pypospack_filename_in = 'pypospack.config.in' pyposmat_app = PyposmatIterativeSampler( configuration_filename=pypospack_filename_in) pyposmat_app.read_configuration_file() #pyposmat_app.read_configuration_file(filename=pyposmat_configuration_filename) pyposmat_app.run_all()