def write_configuration_file(qoi_name,qoi_type,structures,target): qoidb = QoiDatabase() qoidb.add_qoi( qoi_name=qoi_name, qoi_type=qoi_type, structures=structures, target=target ) potential = OrderedDict() potential['potential_type'] = 'buckingham' potential['symbols'] = ['Mg','O'] potential['cutoff_global'] = 10.0 structures = OrderedDict() structures['structure_directory'] = 'test_PypospackEngine' structures['structures'] = OrderedDict() structures['structures']['MgO_NaCl'] = 'MgO_NaCl_unit.gga.relax.vasp' configuration = PyposmatConfigurationFile() configuration.qois = qoidb.qois configuration.potential = potential configuration.structures = structures configuration.write(filename='pyposmat.config.in')
MgO_qoi_constraints[qoi_name] = qoi_info['target'] * 0.20 # print out qoi performance constraints print(80*'-') print('{:^80}'.format('QOI PERFORMANCE CONSTRAINTS')) print(80*'-') for qoi_name, value in MgO_qoi_constraints.items(): print('{:>20} {:>10}'.format(qoi_name,value)) MgO_structures = OrderedDict() MgO_structures['structure_directory'] = 'test__PyposmatMonteCarloSampler' MgO_structures['structures'] = OrderedDict() MgO_structures['structures']['MgO_NaCl'] = 'MgO_NaCl_unit.gga.relax.vasp' MgO_configuration = PyposmatConfigurationFile() MgO_configuration.qois = MgO_qoi_db.qois MgO_configuration.potential = MgO_potential MgO_configuration.structures = MgO_structures assert isinstance(MgO_configuration.configuration,OrderedDict) MgO_configuration.write(filename='pypospack.config.in') MgO_configuration.read(filename='pypospack.config.in') # <---------------- end make configuration file filename_in='pypospack.config.in' filename_out='pypospack.results.out' engine = PyposmatMonteCarloSampler( filename_in=filename_in, filename_out=filename_out) # <---------------- printout for debugging purposes
from pypospack.pyposmat import PyposmatConfigurationFile from pypospack.pyposmat import QoiDatabase from pypospack.qoi import QoiDatabase from pypospack.io.filesystem import OrderedDictYAMLLoader from pypospack.task.lammps import LammpsSimulationError from pypospack.task.task_manager import PypospackTaskManagerError import scipy.stats import Ni__eam__morse_exp_universal as Ni_eam filename_out = 'pypospack.results.out' #------------------------------------------------------------------------------ # 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') # <---------------- end make configuration file filename_in = 'pypospack.config.in' filename_out = 'pypospack.results.out' engine = PyposmatMonteCarloSampler(filename_in=filename_in, filename_out=filename_out) # <---------------- printout for debugging purposes
import os, shutil, sys import numpy as np from mpi4py import MPI from pypospack.pyposmat import PyposmatConfigurationFile from pypospack.pyposmat import PyposmatIterativeSampler from pypospack.pyposmat import PyposmatDataFile if __name__ == "__main__": import Ni__eam__morse_exp_fs as config #------------------------------------------------------------------------------ # WRITE CONFIGURATION FILE #------------------------------------------------------------------------------ configuration = PyposmatConfigurationFile() configuration.qois = config.qoi_db.qois configuration.qoi_constraints = config.qoi_constraints configuration.structures = config.structure_db configuration.potential = config.potential_formalism configuration.sampling_type = config.sampling configuration.sampling_distribution = config.parameter_distribution configuration.sampling_constraints = config.parameter_constraints configuration.write(filename='pypospack.config.in') configuration.read(filename='pypospack.config.in') import argparse arg_parser = argparse.ArgumentParser() arg_parser.add_argument('-i', '--input', type=str, help="input file to be processed") args = vars(arg_parser.parse_args())
MgO_structure_db['structure_directory'] = 'test__DefectFormationEnergy' MgO_structure_db['structures'] = OrderedDict() MgO_structure_db['structures']['MgO_NaCl'] = 'MgO_NaCl_unit.gga.relax.vasp' MgO_structure_db['structures']['MgO_NaCl_fr_a'] = 'MgO_NaCl_fr_a.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_fr_a.defect_energy' _structures = MgO_configuration.qois['MgO_NaCl.fr_a']['structures'] from pypospack.qoi import DefectFormationEnergy qoi = DefectFormationEnergy(qoi_name=_qoi_name, structures=_structures) qoi.determine_tasks() print(80 * '-') print('{:^80}'.format('TASKS DATABASE')) print(80 * '-') for k, v in qoi.tasks.items(): tsk_name = k tsk_type = v['task_type']
for qoi_name, value in Si_sw_qoi_constraints.items(): print('{:>20} {:>10}'.format(qoi_name,value)) Si_sw_structures = OrderedDict() Si_sw_structures['structure_directory'] = 'test__PyposmatMonteCarloSampler' Si_sw_structures['structures'] = OrderedDict() Si_sw_structures['structures']['Si'] = 'Si_dia_unit.vasp' Si_sw_structures['structures']['Si_vac'] = 'Si_vac_333.vasp' #------------------------------------------------------------------------------ # WRITE CONFIGURATION FILE #------------------------------------------------------------------------------ Si_sw_configuration = PyposmatConfigurationFile() Si_sw_configuration.qois = Si_sw_qoi_db.qois Si_sw_configuration.potential = Si_sw_potential Si_sw_configuration.structures = Si_sw_structures Si_sw_configuration.sampling_type = sampling Si_sw_configuration.sampling_distribution = Si_sw_param_dist Si_sw_configuration.write(filename='pypospack.config.in') Si_sw_configuration.read(filename='pypospack.config.in') # <---------------- end make configuration file filename_in='pypospack.config.in' filename_out='pypospack.results.out' engine = PyposmatMonteCarloSampler( filename_in=filename_in, filename_out=filename_out)
for qoi_name, qoi_info in MgO_qoi_db.qois.items(): MgO_qoi_constraints[qoi_name] = qoi_info['target'] * 0.20 # print out qoi performance constraints print(80 * '-') print('{:^80}'.format('QOI PERFORMANCE CONSTRAINTS')) print(80 * '-') for qoi_name, value in MgO_qoi_constraints.items(): print('{:>20} {:>10}'.format(qoi_name, value)) MgO_structures = OrderedDict() MgO_structures['structure_directory'] = 'test__PyposmatMonteCarloSampler' MgO_structures['structures'] = OrderedDict() MgO_structures['structures']['MgO_NaCl'] = 'MgO_NaCl_unit.gga.relax.vasp' MgO_configuration = PyposmatConfigurationFile() MgO_configuration.qois = MgO_qoi_db.qois MgO_configuration.potential = MgO_potential MgO_configuration.structures = MgO_structures MgO_configuration.parameter_distribution_definitions = MgO_param_dist assert isinstance(MgO_configuration.configuration, OrderedDict) MgO_configuration.write(filename='pypospack.config.in') MgO_configuration.read(filename='pypospack.config.in') # <---------------- end make configuration file filename_in = 'pypospack.config.in' filename_out = 'pypospack.results.out' engine = PyposmatMonteCarloSampler(filename_in=filename_in, filename_out=filename_out) # <---------------- printout for debugging purposes