import KratosMultiphysics.kratos_utilities as kratos_utilities import os, csv import numpy as np KM.Logger.GetDefaultOutput().SetSeverity(KM.Logger.Severity.WARNING) np.random.seed(2021) # Read parameters with open("stochastic_mlmc_optimization_parameters.json", 'r') as parameter_file: parameters = KM.Parameters(parameter_file.read()) model = KM.Model() # Create optimizer and perform optimization optimizer = optimizer_factory.Create(model, parameters["optimization_settings"]) optimizer.Optimize() # ======================================================================================================= # Test results and clean directory # ======================================================================================================= original_directory = os.getcwd() output_directory = parameters["optimization_settings"]["output"][ "output_directory"].GetString() optimization_model_part_name = parameters["optimization_settings"][ "model_settings"]["model_part_name"].GetString() optimization_log_filename = parameters["optimization_settings"]["output"][ "optimization_log_filename"].GetString() + ".csv" # Testing by # 1) using the "json_output_process" & "json_check_process" within the structural analysis
if communicator.isRequestingValueOf("x_squared_sum"): value = 0.0 for node in current_design.Nodes: value += node.X**2 communicator.reportValue("x_squared_sum", value) if communicator.isRequestingGradientOf("x_squared_sum"): gradient = {} for node in current_design.Nodes: gradient[node.Id] = [2 * node.X, 0.0, 0.0] communicator.reportGradient("x_squared_sum", gradient) # Create optimizer and perform optimization optimizer = optimizer_factory.Create(model, parameters["optimization_settings"], CustomAnalyzer()) optimizer.Optimize() # ======================================================================================================= # Test results and clean directory # ======================================================================================================= output_directory = parameters["optimization_settings"]["output"][ "output_directory"].GetString() optimization_model_part_name = parameters["optimization_settings"][ "model_settings"]["model_part_name"].GetString() optimization_log_filename = parameters["optimization_settings"]["output"][ "optimization_log_filename"].GetString() + ".csv" # Testing by # 1) some values from csv output