コード例 #1
0
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
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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
コード例 #7
0
ファイル: MgO__buck.py プロジェクト: mastricker/pypospack
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)
コード例 #8
0
    'structure_directory'] = '../../../structure_db/MgO_structure_db'
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))
コード例 #9
0
import os, copy
import numpy as np
from pypospack.pyposmat.data import PyposmatConfigurationFile
from pypospack.pyposmat.data import PyposmatDataFile
from pypospack.pyposmat.data import PyposmatDataAnalyzer
import pypospack.pareto as pareto

if __name__ == "__main__":

    _configuration_filename = 'pyposmat.config.in'
    #--------------------------------------------------------------------------
    # DEFINE CONFIGURATION FILED
    #--------------------------------------------------------------------------
    import Si_sw as config
    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
    #<------------- write configuration file
    configuration.write(filename=_configuration_filename)
    #--------------------------------------------------------------------------
    # TEST CONFIGURATION FILE
    #--------------------------------------------------------------------------
    configuration.read(filename=_configuration_filename)

    #--------------------------------------------------------------------------
    # ANALYZE DATA
コード例 #10
0
        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()