示例#1
0
def test__read_configuration_file():
    engine = PyposmatEngine(filename_in=_pyposmat_config_fn,
                            filename_out='pyposmat.config.out')
    engine.read_configuration_file()

    assert isinstance(engine.configuration, PyposmatConfigurationFile)
    assert engine.configuration.qois is not None
示例#2
0
    def read_configuration_file(self, filename=None):
        PyposmatEngine.read_configuration_file(self, filename=filename)
        # self.structure_directory = self.configuration.structures['structure_directory']
        self.n_iterations = self.configuration.sampling_type['n_iterations']
        self.parameter_names = [
            p for p in self.configuration.sampling_distribution
        ]
        self.qoi_names = [k for k in self.configuration.qois]
        self.error_names = ['{}.err'.format(k) for k in self.qoi_names]
        self.parameter_distribution_definition =\
                self.configuration.sampling_distribution

        try:
            self.free_parameter_names = [
                k for k, v in self.parameter_distribution_definition.items()
                if v[0] != 'equals'
            ]
        except KeyError as e:
            print(self.parameter_distribution_definition.items())
            raise
        if self.configuration.sampling_constraints is not None:
            self.parameter_constraints = copy.deepcopy(
                self.configuration.sampling_constraints)
        else:
            self.parameter_constraints = OrderedDict()

        self.constrained_parameter_names = []
        for p in self.parameter_names:
            if p not in self.free_parameter_names:
                self.constrained_parameter_names.append(p)
示例#3
0
def test__configure():
    # this test are the submethods in the configure() method
    engine = PyposmatEngine(filename_in=_pyposmat_config_fn,
                            filename_out='pyposmat.config.out')
    engine.create_base_directories()
    engine.read_configuration_file()
    engine.configure_qoi_manager()
    engine.configure_task_manager()
示例#4
0
def test__read_configuration_file():
    engine = PyposmatEngine(filename_in=config_fn,
                            filename_out='pyposmat.config.out')
    engine.create_base_directories()
    engine.read_configuration_file()

    from pypospack.pyposmat.data import PyposmatConfigurationFile
    assert type(engine.configuration) is PyposmatConfigurationFile

    cleanup_simulation_directories()
示例#5
0
def test__configure_qoi_manager():
    engine = PyposmatEngine(filename_in=config_fn,
                            filename_out='pyposmat.config.out')
    engine.create_base_directories()
    engine.read_configuration_file()
    engine.configure_qoi_manager()

    from pypospack.qoi import QoiManager
    assert type(engine.qoi_manager) is QoiManager

    cleanup_simulation_directories()
示例#6
0
    def read_configuration_file(self,filename=None):
        PyposmatEngine.read_configuration_file(self,filename=filename)

        # does this have to be removed?
        # self.structure_directory = self.configuration.structures['structure_directory']
        if self.DEBUG:
            if os.path.isdir(self.structure_directory):
                msg = "[OK] structure_directory:".format(self.structure_directory)
                self.__log(msg)
            else:
                msg = "[FAIL] structure_directory:".format(self.structure_directory)
                raise PyposmatEngineError(msg)
        

        # set name arrays for validation qois
        self.qoi_validation_names = self.configuration.qoi_validation_names
        self.error_validation_names = self.configuration.error_validation_names
        self.normed_error_validation_names = self.configuration.normed_error_validation_names

        # set dictionaries for qoi targets
        self.qoi_validation_targets = self.configuration.qoi_validation_targets
    
        # set dictionary for reference potentials
        self.reference_potentials = self.configuration.reference_potentials
示例#7
0
def test__configure_qoi_manager():
    engine = PyposmatEngine(filename_in=_pyposmat_config_fn,
                            filename_out='pyposmat.config.out')
    engine.read_configuration_file()
    engine.configure_qoi_manager()
示例#8
0

def test__configure():
    # this test are the submethods in the configure() method
    engine = PyposmatEngine(filename_in=_pyposmat_config_fn,
                            filename_out='pyposmat.config.out')
    engine.create_base_directories()
    engine.read_configuration_file()
    engine.configure_qoi_manager()
    engine.configure_task_manager()


if __name__ == "__main__":
    engine = PyposmatEngine(filename_in=_pyposmat_config_fn,
                            filename_out='pyposmat.config.out')
    engine.read_configuration_file()
    #print(engine.configuration)
    #print(engine.configuration.read(filename=_pyposmat_config_fn))
    print(engine.configuration.configuration)

    if False:
        print("structure_directory:{}".format(engine.structure_directory))
        print("structures")
        for k, v in engine.structures['structures'].items():
            print(k, v)

        from pypospack.potentials.MgO import MgO_LewisCatlow
        _parameters = MgO_LewisCatlow['parameters']
        _results = engine.evaluate_parameter_set(parameters=_parameters)

        print(80 * '-')
from pypospack.exceptions import LammpsSimulationError

filename_in = "pypospack.config.in"
filename_out = "pypospack.results.out"

a0 = 3.52
r0 = 1 / (2**0.5) * a0
parameters = OrderedDict()
parameters['p_NiNi_phi0'] = 1.0
parameters['p_NiNi_gamma'] = 2.0
parameters['p_NiNi_r0'] = r0
parameters['d_Ni_rho0'] = 1.0
parameters['d_Ni_beta'] = 4.0
parameters['d_Ni_r0'] = r0
parameters['e_Ni_latticetype'] = 'fcc'
parameters['e_Ni_ecoh'] = -4.45
parameters['e_Ni_B'] = 188.
parameters['e_Ni_a0'] = a0

if __name__ == "__main__":
    engine = PyposmatEngine(filename_in=filename_in, filename_out=filename_out)
    engine.read_configuration_file(
        filename=os.path.join('data', 'pyposmat.config.in'))
    engine.configure_qoi_manager()
    engine.configure_task_manager()
    try:
        engine.evaluate_parameter_set(parameters=parameters)
    except LammpsSimulationError as e:
        print('lammps_simulation_error')