def test_add_methods(self): # This method checks all the "GetXXX" Methods if they throw an error tmp = Parameters("""{}""") key = "int" tmp.AddInt(key, 10) self.assertEqual(tmp[key].GetInt(), 10) key = "double" tmp.AddDouble(key, 2.0) self.assertEqual(tmp[key].GetDouble(), 2.0) key = "bool" tmp.AddBool(key, True) self.assertEqual(tmp[key].GetBool(), True) key = "string" tmp.AddString(key, "hello") self.assertEqual(tmp[key].GetString(), "hello") key = "vector" vector = Vector(3) vector[0] = 5.2 vector[1] = -3.1 vector[2] = 4.33 tmp.AddVector(key, vector) V = tmp[key].GetVector() self.assertEqual(V[0], 5.2) self.assertEqual(V[1], -3.1) self.assertEqual(V[2], 4.33) key = "matrix" matrix = Matrix(3, 2) matrix[0, 0] = 1.0 matrix[0, 1] = 2.0 matrix[1, 0] = 3.0 matrix[1, 1] = 4.0 matrix[2, 0] = 5.0 matrix[2, 1] = 6.0 tmp.AddMatrix(key, matrix) A = tmp[key].GetMatrix() self.assertEqual(A[0, 0], 1.0) self.assertEqual(A[0, 1], 2.0) self.assertEqual(A[1, 0], 3.0) self.assertEqual(A[1, 1], 4.0) self.assertEqual(A[2, 0], 5.0) self.assertEqual(A[2, 1], 6.0)
def __init__(self, identifier, response_settings, model): default_parameters = KratosMultiphysics.Parameters( """ { "response_type": "stochastic_adjoint_lift_potential_jump", "risk_measure": "expected_value", "primal_settings": "", "adjoint_settings": "", "xmc_settings": "", "design_surface_sub_model_part_name": "", "auxiliary_mdpa_path": "auxiliary_mdpa", "primal_data_transfer_with_python": true, "output_dict_results_file_name": "", "output_pressure_file_path": "" } """ ) response_settings.ValidateAndAssignDefaults(default_parameters) self.identifier = identifier self.response_settings = response_settings if not response_settings["primal_settings"].GetString() == "": self.primal_settings = response_settings["primal_settings"].GetString() else: raise Exception("Please set the path to the primal parameters in \"primal_settings\"") if not response_settings["adjoint_settings"].GetString() == "": self.adjoint_settings = response_settings["adjoint_settings"].GetString() else: raise Exception("Please set the path to the adjoint parameters in \"adjoint_settings\"") if not response_settings["xmc_settings"].GetString() == "": self.xmc_settings_path = response_settings["xmc_settings"].GetString() else: raise Exception("Please set the path to the XMC parameters in \"xmc_settings\"") if not response_settings["design_surface_sub_model_part_name"].GetString() == "": self.design_surface_sub_model_part_name = response_settings["design_surface_sub_model_part_name"].GetString() else: raise Exception("Please set the name of the design surface submodelpart in \"design_surface_sub_model_part_name\"") self.auxiliary_mdpa_path = response_settings["auxiliary_mdpa_path"].GetString() self.risk_measure = response_settings["risk_measure"].GetString() if response_settings.Has("output_dict_results_file_name"): self.output_dict_results_file_name = response_settings["output_dict_results_file_name"].GetString() self.results_dict = {} else: self.output_dict_results_file_name = "" if response_settings.Has("output_pressure_file_path"): self.output_pressure_file_path = response_settings["output_pressure_file_path"].GetString() else: self.output_pressure_file_path = "" # Create the primal solver with open(self.response_settings["primal_settings"].GetString(),'r') as parameter_file: primal_parameters = Parameters( parameter_file.read() ) primal_parameters = _CheckParameters(primal_parameters) if primal_parameters.Has("adjoint_parameters_path"): primal_parameters["adjoint_parameters_path"].SetString(self.response_settings["adjoint_settings"].GetString()) else: primal_parameters.AddString("adjoint_parameters_path", self.response_settings["adjoint_settings"].GetString()) if primal_parameters.Has("design_surface_sub_model_part_name"): primal_parameters["design_surface_sub_model_part_name"].SetString(self.design_surface_sub_model_part_name) else: primal_parameters.AddString("design_surface_sub_model_part_name", self.design_surface_sub_model_part_name) if primal_parameters.Has("auxiliary_mdpa_path"): primal_parameters["auxiliary_mdpa_path"].SetString(self.auxiliary_mdpa_path) else: primal_parameters.AddString("auxiliary_mdpa_path", self.auxiliary_mdpa_path) open(self.response_settings["primal_settings"].GetString(), 'w').write(primal_parameters.PrettyPrintJsonString()) # Store current design self.current_model_part = _GetModelPart(model, primal_parameters["solver_settings"])