grad[0] = 2 * (constrained_node.X0 - target_x) grad[1] = 2 * (constrained_node.Y0 - target_y) grad[2] = 2 * (constrained_node.Z0 - target_z) gradient[node.Id] = [grad[0], grad[1], grad[2]] else: gradient[node.Id] = [0.0, 0.0, 0.0] communicator.reportGradient("distance_1861", gradient) # ======================================================================================================= # Perform optimization # ======================================================================================================= # Create optimizer and perform optimization optimizer = optimizer_factory.CreateOptimizer( parameters["optimization_settings"], model, CustomAnalyzer()) optimizer.Optimize() # ======================================================================================================= # Test results and clean directory # ======================================================================================================= output_directory = parameters["optimization_settings"]["output"][ "output_directory"].GetString() optimization_log_filename = parameters["optimization_settings"]["output"][ "optimization_log_filename"].GetString() + ".csv" optimization_model_part_name = parameters["optimization_settings"][ "model_settings"]["model_part_name"].GetString() # Testing original_directory = os.getcwd() os.chdir(output_directory)
import KratosMultiphysics as KM # Additional imports from KratosMultiphysics.ShapeOptimizationApplication import optimizer_factory from KratosMultiphysics.KratosUnittest import TestCase import KratosMultiphysics.kratos_utilities as kratos_utilities import csv, os # Read parameters with open("parameters.json", 'r') as parameter_file: parameters = KM.Parameters(parameter_file.read()) model = KM.Model() # Create optimizer and perform optimization optimizer = optimizer_factory.CreateOptimizer( parameters["optimization_settings"], model) optimizer.Optimize() # ======================================================================================================= # Test results and clean directory # ======================================================================================================= output_directory = parameters["optimization_settings"]["output"][ "output_directory"].GetString() optimization_log_filename = parameters["optimization_settings"]["output"][ "optimization_log_filename"].GetString() + ".csv" optimization_model_part_name = parameters["optimization_settings"][ "model_settings"]["model_part_name"].GetString() # Testing original_directory = os.getcwd() os.chdir(output_directory)