KratosOptimizationApplication 10.4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- KratosMultiphysics/.libs/KratosOptimizationApplication.so +0 -0
- KratosMultiphysics/.libs/libKratosOptimizationCore.dylib +0 -0
- KratosMultiphysics/OptimizationApplication/__init__.py +19 -0
- KratosMultiphysics/OptimizationApplication/algorithms/NLOPT_algorithms.py +255 -0
- KratosMultiphysics/OptimizationApplication/algorithms/SciPy_algorithms.py +154 -0
- KratosMultiphysics/OptimizationApplication/algorithms/__init__.py +0 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm.py +78 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_adam.py +68 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_base.py +393 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_gradient_projection.py +355 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_momentum_relaxed_gradient_projection.py +70 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_nesterov_accelarated_gradient.py +60 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_relaxed_gradient_projection.py +263 -0
- KratosMultiphysics/OptimizationApplication/algorithms/algorithm_steepest_descent.py +205 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_NLOPT_constraint.py +194 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_NLOPT_objective.py +191 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_SciPy_constraint.py +123 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_SciPy_objective.py +148 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_constraint.py +180 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_objective.py +133 -0
- KratosMultiphysics/OptimizationApplication/algorithms/standardized_rgp_constraint.py +268 -0
- KratosMultiphysics/OptimizationApplication/analyses_controller.py +75 -0
- KratosMultiphysics/OptimizationApplication/controls/control.py +123 -0
- KratosMultiphysics/OptimizationApplication/controls/external_response_function_control.py +149 -0
- KratosMultiphysics/OptimizationApplication/controls/master_control.py +198 -0
- KratosMultiphysics/OptimizationApplication/controls/material/material_properties_control.py +115 -0
- KratosMultiphysics/OptimizationApplication/controls/material/simp_control.py +229 -0
- KratosMultiphysics/OptimizationApplication/controls/shape/vertex_morphing_shape_control.py +289 -0
- KratosMultiphysics/OptimizationApplication/controls/thickness/shell_thickness_control.py +180 -0
- KratosMultiphysics/OptimizationApplication/controls_controller.py +205 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/avg_abs_improvement_conv_criterion.py +98 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/combined_conv_criterion.py +87 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/constraint_conv_criterion.py +68 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/convergence_criterion.py +26 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/l2_conv_criterion.py +77 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/magnitude_reduction_conv_criterion.py +85 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/max_iter_conv_criterion.py +48 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/patience_conv_criterion.py +116 -0
- KratosMultiphysics/OptimizationApplication/convergence_criteria/target_value_conv_criterion.py +64 -0
- KratosMultiphysics/OptimizationApplication/execution_policies/execution_policy.py +46 -0
- KratosMultiphysics/OptimizationApplication/execution_policies/execution_policy_decorator.py +67 -0
- KratosMultiphysics/OptimizationApplication/execution_policies/independent_analysis_execution_policy.py +78 -0
- KratosMultiphysics/OptimizationApplication/execution_policies/kratos_analysis_execution_policy.py +137 -0
- KratosMultiphysics/OptimizationApplication/execution_policies/stepping_analysis_execution_policy.py +88 -0
- KratosMultiphysics/OptimizationApplication/filtering/explicit_filter.py +124 -0
- KratosMultiphysics/OptimizationApplication/filtering/filter.py +188 -0
- KratosMultiphysics/OptimizationApplication/filtering/filter_utils.py +55 -0
- KratosMultiphysics/OptimizationApplication/filtering/helmholtz_analysis.py +139 -0
- KratosMultiphysics/OptimizationApplication/filtering/helmholtz_scalar_solver.py +39 -0
- KratosMultiphysics/OptimizationApplication/filtering/helmholtz_shape_solver.py +67 -0
- KratosMultiphysics/OptimizationApplication/filtering/helmholtz_solver_base.py +275 -0
- KratosMultiphysics/OptimizationApplication/filtering/helmholtz_vector_solver.py +39 -0
- KratosMultiphysics/OptimizationApplication/filtering/implicit_filter.py +192 -0
- KratosMultiphysics/OptimizationApplication/filtering/python_solvers_wrapper_implicit_filters.py +56 -0
- KratosMultiphysics/OptimizationApplication/model_part_controllers/connectivity_preserving_model_part_controller.py +72 -0
- KratosMultiphysics/OptimizationApplication/model_part_controllers/external_response_function_model_part_controller.py +110 -0
- KratosMultiphysics/OptimizationApplication/model_part_controllers/mdpa_model_part_controller.py +44 -0
- KratosMultiphysics/OptimizationApplication/model_part_controllers/model_part_controller.py +19 -0
- KratosMultiphysics/OptimizationApplication/model_parts_controller.py +92 -0
- KratosMultiphysics/OptimizationApplication/optimization_analysis.py +146 -0
- KratosMultiphysics/OptimizationApplication/optimizations_controller.py +223 -0
- KratosMultiphysics/OptimizationApplication/optimizer.py +61 -0
- KratosMultiphysics/OptimizationApplication/processes/optimization_problem_ascii_output_process.py +212 -0
- KratosMultiphysics/OptimizationApplication/processes/optimization_problem_field_output_process.py +122 -0
- KratosMultiphysics/OptimizationApplication/processes/optimization_problem_graph_output_process.py +184 -0
- KratosMultiphysics/OptimizationApplication/processes/optimization_problem_hdf5_output_process.py +84 -0
- KratosMultiphysics/OptimizationApplication/processes/optimization_problem_vtu_output_process.py +94 -0
- KratosMultiphysics/OptimizationApplication/processes/spatial_statistics_computation_process.py +81 -0
- KratosMultiphysics/OptimizationApplication/responses/__init__.py +0 -0
- KratosMultiphysics/OptimizationApplication/responses/additive_manufacturing_responses.py +410 -0
- KratosMultiphysics/OptimizationApplication/responses/analysis_based_response_function_factory.py +14 -0
- KratosMultiphysics/OptimizationApplication/responses/analysis_free_response_function_factory.py +14 -0
- KratosMultiphysics/OptimizationApplication/responses/base_response.py +66 -0
- KratosMultiphysics/OptimizationApplication/responses/binary_operator_response_function.py +103 -0
- KratosMultiphysics/OptimizationApplication/responses/combined_response_function.py +127 -0
- KratosMultiphysics/OptimizationApplication/responses/discrete_value_residual_response_function.py +131 -0
- KratosMultiphysics/OptimizationApplication/responses/evaluation_response_function.py +68 -0
- KratosMultiphysics/OptimizationApplication/responses/external_response_function.py +87 -0
- KratosMultiphysics/OptimizationApplication/responses/geometric_centroid_deviation_response_function.py +97 -0
- KratosMultiphysics/OptimizationApplication/responses/linear_strain_energy_response_function.py +72 -0
- KratosMultiphysics/OptimizationApplication/responses/literal_value_response_function.py +33 -0
- KratosMultiphysics/OptimizationApplication/responses/log_response_function.py +47 -0
- KratosMultiphysics/OptimizationApplication/responses/mass_response_function.py +71 -0
- KratosMultiphysics/OptimizationApplication/responses/response_function.py +126 -0
- KratosMultiphysics/OptimizationApplication/responses/response_routine.py +158 -0
- KratosMultiphysics/OptimizationApplication/responses/structural_responses.py +335 -0
- KratosMultiphysics/OptimizationApplication/responses_controller.py +390 -0
- KratosMultiphysics/OptimizationApplication/utilities/buffered_dict.py +399 -0
- KratosMultiphysics/OptimizationApplication/utilities/component_data_view.py +74 -0
- KratosMultiphysics/OptimizationApplication/utilities/helper_utilities.py +40 -0
- KratosMultiphysics/OptimizationApplication/utilities/logger_utilities.py +222 -0
- KratosMultiphysics/OptimizationApplication/utilities/model_part_utilities.py +117 -0
- KratosMultiphysics/OptimizationApplication/utilities/opt_line_search.py +173 -0
- KratosMultiphysics/OptimizationApplication/utilities/opt_projection.py +191 -0
- KratosMultiphysics/OptimizationApplication/utilities/optimization_problem.py +237 -0
- KratosMultiphysics/OptimizationApplication/utilities/optimization_problem_utilities.py +237 -0
- KratosMultiphysics/OptimizationApplication/utilities/response_utilities.py +249 -0
- KratosMultiphysics/OptimizationApplication/utilities/timer.py +45 -0
- KratosMultiphysics/OptimizationApplication/utilities/union_utilities.py +6 -0
- kratosoptimizationapplication-10.4.4.dist-info/METADATA +25 -0
- kratosoptimizationapplication-10.4.4.dist-info/RECORD +106 -0
- kratosoptimizationapplication-10.4.4.dist-info/WHEEL +6 -0
- kratosoptimizationapplication.dylibs/libKratosCore.dylib +4 -0
- kratosoptimizationapplication.dylibs/libgcc_s.1.1.dylib +0 -0
- kratosoptimizationapplication.dylibs/libgomp.1.dylib +0 -0
- kratosoptimizationapplication.dylibs/libstdc++.6.dylib +0 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from enum import Enum
|
|
3
|
+
|
|
4
|
+
import KratosMultiphysics as Kratos
|
|
5
|
+
import KratosMultiphysics.OptimizationApplication as KratosOA
|
|
6
|
+
from KratosMultiphysics.OptimizationApplication.responses.response_function import ResponseFunction
|
|
7
|
+
from KratosMultiphysics.OptimizationApplication.responses.evaluation_response_function import EvaluationResponseFunction
|
|
8
|
+
from KratosMultiphysics.OptimizationApplication.responses.response_function import SupportedSensitivityFieldVariableTypes
|
|
9
|
+
from KratosMultiphysics.OptimizationApplication.utilities.optimization_problem import OptimizationProblem
|
|
10
|
+
from KratosMultiphysics.OptimizationApplication.utilities.component_data_view import ComponentDataView
|
|
11
|
+
|
|
12
|
+
class BinaryOperator(str, Enum):
|
|
13
|
+
POWER = "^"
|
|
14
|
+
DIVIDE = "/"
|
|
15
|
+
MULTIPLY = "*"
|
|
16
|
+
ADD = "+"
|
|
17
|
+
SUBTRACT = "-"
|
|
18
|
+
|
|
19
|
+
BinaryOperatorValues = [operator.value for operator in BinaryOperator]
|
|
20
|
+
|
|
21
|
+
BinaryOperatorValuesMap = dict([(operator.value, operator) for operator in BinaryOperator])
|
|
22
|
+
|
|
23
|
+
def GetClosingBracketIndex(expression: str) -> int:
|
|
24
|
+
# this function assumes the starting point is without the opening bracket.
|
|
25
|
+
# it will give the position of the respective closing bracket
|
|
26
|
+
index = 0
|
|
27
|
+
brackets_counter = 1
|
|
28
|
+
while index < len(expression):
|
|
29
|
+
brackets_counter += (expression[index] == "(") + (expression[index] == ")") * -1
|
|
30
|
+
if brackets_counter == 0:
|
|
31
|
+
return index
|
|
32
|
+
index += 1
|
|
33
|
+
|
|
34
|
+
raise RuntimeError(f"The closing bracket not found for expression ({expression}")
|
|
35
|
+
|
|
36
|
+
def GetFunction(function_name: str, optimization_problem: OptimizationProblem, *args) -> ResponseFunction:
|
|
37
|
+
# import functions
|
|
38
|
+
from KratosMultiphysics.OptimizationApplication.responses.log_response_function import LogResponseFunction
|
|
39
|
+
|
|
40
|
+
functions_map: 'dict[str, type[ResponseFunction]]' = {
|
|
41
|
+
"log": LogResponseFunction
|
|
42
|
+
}
|
|
43
|
+
if function_name in functions_map.keys():
|
|
44
|
+
return functions_map[function_name](*args, optimization_problem)
|
|
45
|
+
else:
|
|
46
|
+
raise RuntimeError(f"Undefined \"{function_name}\" function. Followings are supported function names:\n\t" + "\n\t".join(functions_map.keys()))
|
|
47
|
+
|
|
48
|
+
def EvaluateValue(response_function: ResponseFunction, optimization_problem: OptimizationProblem) -> float:
|
|
49
|
+
response_data = ComponentDataView("evaluated_responses", optimization_problem).GetBufferedData()
|
|
50
|
+
|
|
51
|
+
if response_function.GetImplementedPhysicalKratosVariables():
|
|
52
|
+
if not response_data.HasValue(f"values/{response_function.GetName()}"):
|
|
53
|
+
response_data.SetValue(f"values/{response_function.GetName()}", response_function.CalculateValue())
|
|
54
|
+
|
|
55
|
+
return response_data.GetValue(f"values/{response_function.GetName()}")
|
|
56
|
+
else:
|
|
57
|
+
return response_function.CalculateValue()
|
|
58
|
+
|
|
59
|
+
def EvaluateGradient(response_function: ResponseFunction, physical_variable_gradient_map: 'dict[SupportedSensitivityFieldVariableTypes, Kratos.TensorAdaptors.DoubleCombinedTensorAdaptor]', optimization_problem: OptimizationProblem):
|
|
60
|
+
# first get the tensor adaptors for implemented physical kratos variables
|
|
61
|
+
resp_physical_variable_combined_tensor_adaptors: 'dict[SupportedSensitivityFieldVariableTypes, Kratos.TensorAdaptors.DoubleCombinedTensorAdaptor]' = {}
|
|
62
|
+
for variable, cta in physical_variable_gradient_map.items():
|
|
63
|
+
temp_cta = Kratos.TensorAdaptors.DoubleCombinedTensorAdaptor(cta, perform_store_data_recursively=False, copy=False)
|
|
64
|
+
if variable in response_function.GetImplementedPhysicalKratosVariables():
|
|
65
|
+
# if the response function depends on the variable, then add it to the dictionary for future evaluation.
|
|
66
|
+
resp_physical_variable_combined_tensor_adaptors[variable] = temp_cta
|
|
67
|
+
else:
|
|
68
|
+
# if the response function does not depend on the variable, then assign zeros.
|
|
69
|
+
temp_cta.data[:] = 0.0
|
|
70
|
+
temp_cta.StoreData() # store the combined ta values to its sub tensor adaptors
|
|
71
|
+
|
|
72
|
+
resp_physical_variable_combined_tensor_adaptors_to_evaluate: 'dict[SupportedSensitivityFieldVariableTypes, Kratos.TensorAdaptors.DoubleCombinedTensorAdaptor]' = {}
|
|
73
|
+
response_data = ComponentDataView("evaluated_responses", optimization_problem).GetUnBufferedData()
|
|
74
|
+
|
|
75
|
+
for variable, cta in resp_physical_variable_combined_tensor_adaptors.items():
|
|
76
|
+
# first check whether the gradients have been already evaluated. if so, take the gradients.
|
|
77
|
+
if response_data.HasValue(f"gradients/d{response_function.GetName()}_d{variable.Name()}"):
|
|
78
|
+
# found already evaluated gradient. Use it.
|
|
79
|
+
cta.SetData(response_data.GetValue(f"gradients/d{response_function.GetName()}_d{variable.Name()}").data)
|
|
80
|
+
cta.StoreData() # store the combined ta values to its sub tensor adaptors
|
|
81
|
+
else:
|
|
82
|
+
# gradients have not yet evaluated. put it to the dictionary for later evaluation
|
|
83
|
+
resp_physical_variable_combined_tensor_adaptors_to_evaluate[variable] = cta
|
|
84
|
+
|
|
85
|
+
if len(resp_physical_variable_combined_tensor_adaptors_to_evaluate) != 0:
|
|
86
|
+
response_function.CalculateGradient(resp_physical_variable_combined_tensor_adaptors_to_evaluate)
|
|
87
|
+
for variable, cta in resp_physical_variable_combined_tensor_adaptors_to_evaluate.items():
|
|
88
|
+
response_data.SetValue(f"gradients/d{response_function.GetName()}_d{variable.Name()}", Kratos.TensorAdaptors.DoubleCombinedTensorAdaptor(cta))
|
|
89
|
+
|
|
90
|
+
def GetResponseFunction(current_value: str, optimization_problem: OptimizationProblem) -> ResponseFunction:
|
|
91
|
+
from KratosMultiphysics.OptimizationApplication.responses.literal_value_response_function import LiteralValueResponseFunction
|
|
92
|
+
if current_value == "":
|
|
93
|
+
return LiteralValueResponseFunction(0.0)
|
|
94
|
+
else:
|
|
95
|
+
try:
|
|
96
|
+
# first try to get a literal response function
|
|
97
|
+
return LiteralValueResponseFunction(float(current_value))
|
|
98
|
+
except:
|
|
99
|
+
# literal response function fails. Then the current value may hold one of the followings
|
|
100
|
+
# 1. A leaf response function name
|
|
101
|
+
# 2. A response expression
|
|
102
|
+
# 3. A function call
|
|
103
|
+
|
|
104
|
+
if re.match(r"(^\w+)$", current_value) is not None:
|
|
105
|
+
# the match is a leaf response function name
|
|
106
|
+
return optimization_problem.GetResponse(current_value)
|
|
107
|
+
elif re.match(r"(^\w+\()", current_value) is not None:
|
|
108
|
+
# the match is a function call
|
|
109
|
+
args_starting_index = current_value.index("(")
|
|
110
|
+
function_name = current_value[:args_starting_index]
|
|
111
|
+
|
|
112
|
+
# now need to find the args correctly
|
|
113
|
+
args_list: 'list[str]' = []
|
|
114
|
+
index = args_starting_index + 1
|
|
115
|
+
current_arg = ""
|
|
116
|
+
while index < len(current_value) - 1:
|
|
117
|
+
current_char = current_value[index]
|
|
118
|
+
|
|
119
|
+
if current_char == "(":
|
|
120
|
+
closing_bracket_pos = GetClosingBracketIndex(current_value[index+1:])
|
|
121
|
+
current_arg += current_value[index:index+closing_bracket_pos+2]
|
|
122
|
+
index += closing_bracket_pos + 2
|
|
123
|
+
continue
|
|
124
|
+
|
|
125
|
+
if current_char == ",":
|
|
126
|
+
args_list.append(current_arg)
|
|
127
|
+
current_arg = ""
|
|
128
|
+
else:
|
|
129
|
+
current_arg += current_char
|
|
130
|
+
|
|
131
|
+
index += 1
|
|
132
|
+
|
|
133
|
+
args_list.append(current_arg)
|
|
134
|
+
return GetFunction(function_name, optimization_problem, *[__EvaluateResponseExpressionImpl(arg, optimization_problem) for arg in args_list])
|
|
135
|
+
else:
|
|
136
|
+
# this is a response expression.
|
|
137
|
+
return __EvaluateResponseExpressionImpl(current_value, optimization_problem)
|
|
138
|
+
|
|
139
|
+
def GetValuesAndOperators(response_expression: str, optimization_problem: OptimizationProblem) -> 'tuple[list[ResponseFunction], list[str]]':
|
|
140
|
+
responses: 'list[ResponseFunction]' = []
|
|
141
|
+
operators: 'list[str]' = []
|
|
142
|
+
|
|
143
|
+
index = 0
|
|
144
|
+
current_word = ""
|
|
145
|
+
while index < len(response_expression):
|
|
146
|
+
current_char = response_expression[index]
|
|
147
|
+
|
|
148
|
+
if current_char == "(":
|
|
149
|
+
# found opening bracket
|
|
150
|
+
closing_bracket_position = GetClosingBracketIndex(response_expression[index + 1:])
|
|
151
|
+
if current_word != "":
|
|
152
|
+
current_word = f"{current_word}{response_expression[index:index+closing_bracket_position+2]}"
|
|
153
|
+
else:
|
|
154
|
+
current_word = response_expression[index + 1:index+closing_bracket_position + 1]
|
|
155
|
+
index += closing_bracket_position + 2
|
|
156
|
+
continue
|
|
157
|
+
|
|
158
|
+
# check for binary operator or scientific notation value
|
|
159
|
+
if current_char in BinaryOperatorValues and not (re.match(r"(^[0-9.]+[e|E])$", current_word) and current_char in ["+", "-"]):
|
|
160
|
+
responses.append(GetResponseFunction(current_word, optimization_problem))
|
|
161
|
+
operators.append(current_char)
|
|
162
|
+
current_word = ""
|
|
163
|
+
index += 1
|
|
164
|
+
continue
|
|
165
|
+
|
|
166
|
+
current_word += current_char
|
|
167
|
+
index += 1
|
|
168
|
+
|
|
169
|
+
# add the last current_word
|
|
170
|
+
responses.append(GetResponseFunction(current_word, optimization_problem))
|
|
171
|
+
|
|
172
|
+
return responses, operators
|
|
173
|
+
|
|
174
|
+
def __EvaluateResponseExpressionImpl(response_expression: str, optimization_problem: OptimizationProblem) -> ResponseFunction:
|
|
175
|
+
from KratosMultiphysics.OptimizationApplication.responses.binary_operator_response_function import BinaryOperatorResponseFunction
|
|
176
|
+
|
|
177
|
+
response_expression = response_expression.replace(" ", "")
|
|
178
|
+
responses, operators = GetValuesAndOperators(response_expression, optimization_problem)
|
|
179
|
+
|
|
180
|
+
def __evaluate_operator(list_of_operators: 'list[str]') -> None:
|
|
181
|
+
operator_index = 0
|
|
182
|
+
while operator_index < len(operators):
|
|
183
|
+
if operators[operator_index] in list_of_operators:
|
|
184
|
+
left_operand = responses[operator_index]
|
|
185
|
+
right_operand = responses[operator_index + 1]
|
|
186
|
+
|
|
187
|
+
if not optimization_problem.HasResponse(left_operand) and left_operand.GetImplementedPhysicalKratosVariables() != []:
|
|
188
|
+
# the left operand is not in the optimization, and it will not be accessible since it will
|
|
189
|
+
# be within the BinaryOperatorResponseFunction. Hence adding it to optimization problem
|
|
190
|
+
# so that we can put the intermediate values and gradients to the optimization problem.
|
|
191
|
+
optimization_problem.AddComponent(left_operand)
|
|
192
|
+
|
|
193
|
+
if not optimization_problem.HasResponse(right_operand) and right_operand.GetImplementedPhysicalKratosVariables() != []:
|
|
194
|
+
# the right operand is not in the optimization, and it will not be accessible since it will
|
|
195
|
+
# be within the BinaryOperatorResponseFunction. Hence adding it to optimization problem
|
|
196
|
+
# so that we can put the intermediate values and gradients to the optimization problem.
|
|
197
|
+
optimization_problem.AddComponent(right_operand)
|
|
198
|
+
|
|
199
|
+
# now check whether the left operand is there in the optimization problem
|
|
200
|
+
if optimization_problem.HasResponse(left_operand):
|
|
201
|
+
left_operand_component_data_view = ComponentDataView(left_operand, optimization_problem)
|
|
202
|
+
# if it is in the optimization problem, and no data buffer has been defined, then define one.
|
|
203
|
+
if not left_operand_component_data_view.HasDataBuffer():
|
|
204
|
+
left_operand_component_data_view.SetDataBuffer(1)
|
|
205
|
+
|
|
206
|
+
# now check whether the right operand is there in the optimization problem
|
|
207
|
+
if optimization_problem.HasResponse(right_operand):
|
|
208
|
+
right_operand_component_data_view = ComponentDataView(right_operand, optimization_problem)
|
|
209
|
+
# if it is in the optimization problem, and no data buffer has been defined, then define one.
|
|
210
|
+
if not right_operand_component_data_view.HasDataBuffer():
|
|
211
|
+
right_operand_component_data_view.SetDataBuffer(1)
|
|
212
|
+
|
|
213
|
+
resultant_operator = BinaryOperatorResponseFunction(left_operand, right_operand, BinaryOperatorValuesMap[operators[operator_index]], optimization_problem)
|
|
214
|
+
if not optimization_problem.HasResponse(resultant_operator.GetName()):
|
|
215
|
+
# There is no already existing response with the same operation. Then use the new one.
|
|
216
|
+
responses[operator_index] = resultant_operator
|
|
217
|
+
else:
|
|
218
|
+
# There is an already existing response with the same operation. Then take it.
|
|
219
|
+
responses[operator_index] = optimization_problem.GetResponse(resultant_operator.GetName())
|
|
220
|
+
|
|
221
|
+
del responses[operator_index + 1]
|
|
222
|
+
del operators[operator_index]
|
|
223
|
+
else:
|
|
224
|
+
operator_index += 1
|
|
225
|
+
|
|
226
|
+
# according to BODMAS
|
|
227
|
+
__evaluate_operator(["^"])
|
|
228
|
+
__evaluate_operator(["*", "/"])
|
|
229
|
+
__evaluate_operator(["+", "-"])
|
|
230
|
+
|
|
231
|
+
return responses[0]
|
|
232
|
+
|
|
233
|
+
def EvaluateResponseExpression(response_expression: str, optimization_problem: OptimizationProblem) -> ResponseFunction:
|
|
234
|
+
evaluated_response_impl = __EvaluateResponseExpressionImpl(response_expression, optimization_problem)
|
|
235
|
+
if evaluated_response_impl.GetChildResponses() and evaluated_response_impl.GetImplementedPhysicalKratosVariables():
|
|
236
|
+
# if the response has children and has some dependence on the variables, then
|
|
237
|
+
# we need to use the EvaluationResponseFunction to clear the evaluation data
|
|
238
|
+
# whenever CalculateValue, CalculateGradient is used.
|
|
239
|
+
evaluated_response = EvaluationResponseFunction(evaluated_response_impl, optimization_problem)
|
|
240
|
+
optimization_problem.AddComponent(evaluated_response)
|
|
241
|
+
return evaluated_response
|
|
242
|
+
else:
|
|
243
|
+
# this means the following cases
|
|
244
|
+
# 1. No children, but has dependence variables -> Leaf responses such as mass.
|
|
245
|
+
# 2. No children, no dependence variables -> Leaf responses such as LiteralValueResponse.
|
|
246
|
+
# 3. Has children, no dependence variables -> An expression with only LiteralValueResponses and functions, without any responses such as mass.
|
|
247
|
+
# in the above cases, there is no need to clear the response evaluation data, hence the original evaluated
|
|
248
|
+
# response is returned without the EvaluationResponseFunction wrapper.
|
|
249
|
+
return evaluated_response_impl
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# KratosOptimizationApplication
|
|
3
|
+
#
|
|
4
|
+
# License: BSD License
|
|
5
|
+
# license: OptimizationApplication/license.txt
|
|
6
|
+
#
|
|
7
|
+
# Main authors: Reza Najian Asl, https://github.com/RezaNajian
|
|
8
|
+
#
|
|
9
|
+
# ==============================================================================
|
|
10
|
+
|
|
11
|
+
# Import additional libraries
|
|
12
|
+
import time
|
|
13
|
+
|
|
14
|
+
# ==============================================================================
|
|
15
|
+
class Timer:
|
|
16
|
+
# --------------------------------------------------------------------------
|
|
17
|
+
def __init__( self ):
|
|
18
|
+
self.Precision = 3
|
|
19
|
+
self.StartGlobalTime = None
|
|
20
|
+
self.StartLapTime = None
|
|
21
|
+
self.LapTime = None
|
|
22
|
+
# --------------------------------------------------------------------------
|
|
23
|
+
def StartTimer( self ):
|
|
24
|
+
self.StartGlobalTime = time.time()
|
|
25
|
+
self.StartLapTime = time.time()
|
|
26
|
+
|
|
27
|
+
# --------------------------------------------------------------------------
|
|
28
|
+
def GetLapTime( self ):
|
|
29
|
+
LapTime = time.time() - self.StartLapTime
|
|
30
|
+
return round( LapTime, self.Precision )
|
|
31
|
+
|
|
32
|
+
# --------------------------------------------------------------------------
|
|
33
|
+
def StartNewLap( self ):
|
|
34
|
+
self.StartLapTime = time.time()
|
|
35
|
+
|
|
36
|
+
#---------------------------------------------------------------------------
|
|
37
|
+
def GetTotalTime( self ):
|
|
38
|
+
totalTime = time.time() - self.StartGlobalTime
|
|
39
|
+
return round( totalTime, self.Precision )
|
|
40
|
+
|
|
41
|
+
# --------------------------------------------------------------------------
|
|
42
|
+
def GetTimeStamp( self ):
|
|
43
|
+
return time.ctime()
|
|
44
|
+
|
|
45
|
+
# ==============================================================================
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: KratosOptimizationApplication
|
|
3
|
+
Version: 10.4.4
|
|
4
|
+
Summary: KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
|
5
|
+
Author-email: Kratos Team <kratos@listas.cimne.upc.edu>
|
|
6
|
+
License: BSD-4-Clause
|
|
7
|
+
Classifier: Programming Language :: C++
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Topic :: Scientific/Engineering
|
|
10
|
+
Requires-Python: >=3.8
|
|
11
|
+
Requires-Dist: kratosmultiphysics==10.4.4
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
14
|
+
# OptimizationApplication
|
|
15
|
+
|
|
16
|
+
The Kratos OptimizationApplication is a framework for solving optimization problems in continuum mechanics. It is supposed to handle both gradient-based (adjoint-based) and gradient-free methods.
|
|
17
|
+
|
|
18
|
+
## Main Features
|
|
19
|
+
|
|
20
|
+
* State-of-the-art techniques and algorithms for shape, thickness and material/topology optimization.
|
|
21
|
+
* Efficient and consistent filtering techniques for parametrization-free shape, thickness and material/topology optimization.
|
|
22
|
+
* Abstract problem formulation which enables concurrent and nested multilevel-multi-scale optimization problems.
|
|
23
|
+
* Adaptive gradient-projection technique, developed specially for problems with an arbitrary large number of design variables of different scales.
|
|
24
|
+
* Modular implementation which enables analysis and optimization of multi-physics problems.
|
|
25
|
+
* Realization and implementation of additive manufacturing constraints, e.g. hangover conditions (support structures), stackability and geometric limitations.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
KratosMultiphysics/OptimizationApplication/optimizations_controller.py,sha256=GJhXuxbar-apmyc2AS27dvtFJHNAgnoeBWubFNtxyJU,12599
|
|
2
|
+
KratosMultiphysics/OptimizationApplication/model_parts_controller.py,sha256=X8g283E8EE9By6E7P5v283c_bEbs5Qba3lvt7Ldq_a0,5262
|
|
3
|
+
KratosMultiphysics/OptimizationApplication/__init__.py,sha256=gAh661XHyKlmRncykK7oAiXnqQiqz3FH1fwzkmUT5OQ,779
|
|
4
|
+
KratosMultiphysics/OptimizationApplication/responses_controller.py,sha256=XQwzBukmAFHBrUVrbqzimeQpLayKRJNa0CiNYx0dHik,22982
|
|
5
|
+
KratosMultiphysics/OptimizationApplication/optimizer.py,sha256=E5ZytMXClU6hYtz6BvlUepf2tNxv25YDXBhkpO8IsKw,3047
|
|
6
|
+
KratosMultiphysics/OptimizationApplication/analyses_controller.py,sha256=cEjXryoRcAQwl1yV84yLsyg4j73oTEwKtD4kcivNDAI,4130
|
|
7
|
+
KratosMultiphysics/OptimizationApplication/controls_controller.py,sha256=6tAwdVHgWBztpvc0UsHieNUHp-OEZ0m8zGusN4SKUrA,12333
|
|
8
|
+
KratosMultiphysics/OptimizationApplication/optimization_analysis.py,sha256=g61VHDXaFiGoMqUZjYD7aXxmhWZIhrZwCmpTnbM-k20,7779
|
|
9
|
+
KratosMultiphysics/OptimizationApplication/execution_policies/stepping_analysis_execution_policy.py,sha256=48tCRwBVEgWPpXr8V1hrSGDHqfD_0gtGuWSguDrl6mw,4103
|
|
10
|
+
KratosMultiphysics/OptimizationApplication/execution_policies/kratos_analysis_execution_policy.py,sha256=4ZiB2f5gFT2FZKKB9QtKjSE_ZjCq-oD_ktcdGBfbQHE,8704
|
|
11
|
+
KratosMultiphysics/OptimizationApplication/execution_policies/independent_analysis_execution_policy.py,sha256=kUdIy4p_QA3nMdlyvcac9nN8pla-oGIy20tgg1MMHpk,4112
|
|
12
|
+
KratosMultiphysics/OptimizationApplication/execution_policies/execution_policy.py,sha256=Yx0cizsjrhyzPO4epxmYK9pk-RoY5FmhEF427zsDwAM,1199
|
|
13
|
+
KratosMultiphysics/OptimizationApplication/execution_policies/execution_policy_decorator.py,sha256=e4ySkOiyqmWt6V4vJqetjJ4vsQJmQon3FwwOa2JGnzw,3279
|
|
14
|
+
KratosMultiphysics/OptimizationApplication/filtering/implicit_filter.py,sha256=Zs4Amcghb17A7s7iABHZmFGm5XqZPj7lt9zCVge2hzA,10897
|
|
15
|
+
KratosMultiphysics/OptimizationApplication/filtering/filter_utils.py,sha256=oCtZd7JWqNV_1uIdkwWl7wNCbNR_qei5tEQ9hDia-FY,3841
|
|
16
|
+
KratosMultiphysics/OptimizationApplication/filtering/helmholtz_solver_base.py,sha256=tSjb4w1gUufSCCVAkerYBdpkYWyZaL5cWP2R9oNsK6s,12404
|
|
17
|
+
KratosMultiphysics/OptimizationApplication/filtering/python_solvers_wrapper_implicit_filters.py,sha256=EikpXp3mMQY9QpGSSKRbTx2xxNyB_m4tYOoBRD_t3Dc,2809
|
|
18
|
+
KratosMultiphysics/OptimizationApplication/filtering/helmholtz_analysis.py,sha256=b2ZJ3g52pkW9E2JDA_JkbjAXTK4rkULL9ZbqWqsYcdo,7624
|
|
19
|
+
KratosMultiphysics/OptimizationApplication/filtering/helmholtz_shape_solver.py,sha256=7mSwooWqFdSTLnYV4wNoMdUqlKbC0Lv4-tIBj-IFZm8,3995
|
|
20
|
+
KratosMultiphysics/OptimizationApplication/filtering/helmholtz_scalar_solver.py,sha256=YvZlonJsSl-TRawWsXvrBUE6lyzp9BEsV9D3vYJ45NM,2326
|
|
21
|
+
KratosMultiphysics/OptimizationApplication/filtering/filter.py,sha256=7huM4Qc04Mf2LeoU5HoXKX95KwftFpGa3Eg_9W1fYfY,7908
|
|
22
|
+
KratosMultiphysics/OptimizationApplication/filtering/explicit_filter.py,sha256=XIUU8e6uETH_utno6qucY5k547x0Z-T80ISnW9pu-WI,7156
|
|
23
|
+
KratosMultiphysics/OptimizationApplication/filtering/helmholtz_vector_solver.py,sha256=3DXT4sHcGgtDPLATQRJre21IEWGW10_j3YZzofUWyuo,2346
|
|
24
|
+
KratosMultiphysics/OptimizationApplication/processes/optimization_problem_hdf5_output_process.py,sha256=J2nbKevM6eL_gxvpr7bKKJvOBqvBF-iYoDempcbc8rc,5150
|
|
25
|
+
KratosMultiphysics/OptimizationApplication/processes/optimization_problem_vtu_output_process.py,sha256=ckiwLyduSpHNAFzLefHZVIBYl33eOoooq0aM4PhOf2w,5540
|
|
26
|
+
KratosMultiphysics/OptimizationApplication/processes/optimization_problem_field_output_process.py,sha256=I0iG25ZBj3n6_ClTFNDbdE3TmT2lmxO1s8DndppzEgA,6499
|
|
27
|
+
KratosMultiphysics/OptimizationApplication/processes/spatial_statistics_computation_process.py,sha256=EjcyUHlVxVLwJWz6ZtPo2KL-TFL6FKJg9JgQE0A32jY,4625
|
|
28
|
+
KratosMultiphysics/OptimizationApplication/processes/optimization_problem_graph_output_process.py,sha256=wWGaHHGpxogOjKybBOtYiSEsOYpz-zMjg3ZfR5JI3tw,8628
|
|
29
|
+
KratosMultiphysics/OptimizationApplication/processes/optimization_problem_ascii_output_process.py,sha256=SeiPTERz2GekC4XbdNSYq40Err4Tma8jsukHTtzbP8c,10788
|
|
30
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_relaxed_gradient_projection.py,sha256=98BwATZT4N9JfHYlDn_aG9f3k5j4tpQSwT8Gw3GlGfM,14754
|
|
31
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_base.py,sha256=iNsOlNWc-W2OMQSnAh1PpdOXNvUymOTEHzdSRMQ-jH0,23776
|
|
32
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm.py,sha256=a4yy8qaa2obtEkM9u4xQwFr27yQUXWcn9sLstg4-J8c,3185
|
|
33
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_objective.py,sha256=nh0u8KmjskJYhKe40ml1iLGCXUeVAHX4O_YaRrUNMHk,7166
|
|
34
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_rgp_constraint.py,sha256=HT6ozzBaS9LtYaYBiZxdAkD7x3iasoZ_VUBKmHJvrnE,12271
|
|
35
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_adam.py,sha256=2jobZGfFO-yng4JLqID2ji0IBEB4anLbGNP45rUffUs,3810
|
|
36
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_NLOPT_objective.py,sha256=xHBwUEuliW9XY56Ziefoeerzr4b7zIT3KtYXjd8hv8M,10254
|
|
37
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_gradient_projection.py,sha256=q0iWyLOFqu2lgXZkZIuEc_pJ_RDqXg-NvUbR_sSznxY,19092
|
|
38
|
+
KratosMultiphysics/OptimizationApplication/algorithms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_nesterov_accelarated_gradient.py,sha256=-QWaw5c9oJG1D7cZjBHT39cUlggsVo6SFdCueo5cy-U,3498
|
|
40
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_SciPy_constraint.py,sha256=WpyQnonrKe3gCD8Fp9MSzcdfvDYLG9IfkABam-VZnSY,6410
|
|
41
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_SciPy_objective.py,sha256=5hHPASA6suAspqEhxQGISK1CWXusYOMCsPWRxNoZP2E,7614
|
|
42
|
+
KratosMultiphysics/OptimizationApplication/algorithms/SciPy_algorithms.py,sha256=zggMCiPuIZMbhNZRFaHXkpsv2pzNhyF3Aat-fFXbKiA,7958
|
|
43
|
+
KratosMultiphysics/OptimizationApplication/algorithms/NLOPT_algorithms.py,sha256=AZsEhx_88_-0l1_8XRd3rLidNsfxxaL4XmoGKdne2BM,13735
|
|
44
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_NLOPT_constraint.py,sha256=feKdS_nPEfbBeV35w3H21jii_ds89NURcBXGeu3SUUc,9943
|
|
45
|
+
KratosMultiphysics/OptimizationApplication/algorithms/standardized_constraint.py,sha256=_gF0TRIn-cEeBNmcckEYZktUyY3QRGZjjqm2t3RA-2w,9923
|
|
46
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_steepest_descent.py,sha256=-36WI06vtXyAnpLIdtRRHD119AbNRosLRaQM0aMNFbA,9986
|
|
47
|
+
KratosMultiphysics/OptimizationApplication/algorithms/algorithm_momentum_relaxed_gradient_projection.py,sha256=2tXR5k7caJ2JH15jFcX81wl31Brp6ry88hpRE5M-ayE,3708
|
|
48
|
+
KratosMultiphysics/OptimizationApplication/responses/discrete_value_residual_response_function.py,sha256=aFeBTP4l1YM8rkMDDhqJK_bX8e-j__BhhKm8_7iMFUY,7386
|
|
49
|
+
KratosMultiphysics/OptimizationApplication/responses/additive_manufacturing_responses.py,sha256=h8qED3ZW2wnjqEqembbM3-Y1TbCOyy9hVqr9xl-DWL8,21998
|
|
50
|
+
KratosMultiphysics/OptimizationApplication/responses/log_response_function.py,sha256=Zq3iHObOrFW3ru6l3ksgacv4OfjMI8dJhbIhgAW1oHM,2560
|
|
51
|
+
KratosMultiphysics/OptimizationApplication/responses/combined_response_function.py,sha256=JAG0YghYtPKeF5-WFefs4g8nEj5wc-ISp_lYSV__guA,7419
|
|
52
|
+
KratosMultiphysics/OptimizationApplication/responses/external_response_function.py,sha256=33FbW-aDLL0y-cpFKqLMnGyK_bwi0t9ozyWE3FBWjZk,5025
|
|
53
|
+
KratosMultiphysics/OptimizationApplication/responses/base_response.py,sha256=j6teLfHvSdEO2p467B_WOvM55etTJDZ-wimVZ4Rd3j0,3286
|
|
54
|
+
KratosMultiphysics/OptimizationApplication/responses/analysis_free_response_function_factory.py,sha256=qIgpe-ydBinfepefE-xS2np4uXcZy6BnClXY90xN8OM,807
|
|
55
|
+
KratosMultiphysics/OptimizationApplication/responses/response_routine.py,sha256=NgbX7a2392j03s0QBRZfDuOtAhUSYzg1pFeAiKHTLbs,7796
|
|
56
|
+
KratosMultiphysics/OptimizationApplication/responses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
KratosMultiphysics/OptimizationApplication/responses/structural_responses.py,sha256=psUWT97axOgjcgI8rfF2fvp2neFKXLvlYHgbYmTaa6w,18372
|
|
58
|
+
KratosMultiphysics/OptimizationApplication/responses/response_function.py,sha256=sr9y4l8P1ukyTDHFkPMbuAEOB1i_39MVQNnM4Kx1ivA,5527
|
|
59
|
+
KratosMultiphysics/OptimizationApplication/responses/linear_strain_energy_response_function.py,sha256=v376yiLdyPSiZXFBgo1Fj0raC2su57xP0iGTGNH6o-o,4102
|
|
60
|
+
KratosMultiphysics/OptimizationApplication/responses/evaluation_response_function.py,sha256=_NzxVGoPKdMqic_zuNveAuuZdFZnvkFSGRWkxkHD7CQ,3592
|
|
61
|
+
KratosMultiphysics/OptimizationApplication/responses/literal_value_response_function.py,sha256=5iI2JNDcoc5erzGP28E-3-loO687xmQv3ALHUNrTj5s,1288
|
|
62
|
+
KratosMultiphysics/OptimizationApplication/responses/geometric_centroid_deviation_response_function.py,sha256=FVc2jRziSw9ndN3NXJ16oXrP6_ob0gvZ3v6Vt_H5Z04,5413
|
|
63
|
+
KratosMultiphysics/OptimizationApplication/responses/analysis_based_response_function_factory.py,sha256=QeRc-L6hQUhe7J8WO50yc2P9q_iVYvQMOrlpHPzGljs,725
|
|
64
|
+
KratosMultiphysics/OptimizationApplication/responses/binary_operator_response_function.py,sha256=xlLirigV9lQfm3ZczHugbfo1n2dDdqaItFN9QhqIMjI,6388
|
|
65
|
+
KratosMultiphysics/OptimizationApplication/responses/mass_response_function.py,sha256=5PXK0d5YF2CKO1PkYCkyz1XN23WRMEqgCcOwUavJwao,3590
|
|
66
|
+
KratosMultiphysics/OptimizationApplication/model_part_controllers/external_response_function_model_part_controller.py,sha256=dpSheyrVTWXZ71Qx3Mq1b8xS3BnpdkACH4_q_7dOMJg,5586
|
|
67
|
+
KratosMultiphysics/OptimizationApplication/model_part_controllers/connectivity_preserving_model_part_controller.py,sha256=eOmDzCW55_bem4pzLd7py5vTSXPvXsRAFpAmkssMnCo,5018
|
|
68
|
+
KratosMultiphysics/OptimizationApplication/model_part_controllers/model_part_controller.py,sha256=9wtXqPKKtP5yrx1cv1lqBmn3j3S18hd0qMDz7YID4bU,355
|
|
69
|
+
KratosMultiphysics/OptimizationApplication/model_part_controllers/mdpa_model_part_controller.py,sha256=b6P_yJRci7P-TJrMM7HYgzCxK4GWGsbcZ-Mha-8MIgY,2190
|
|
70
|
+
KratosMultiphysics/OptimizationApplication/controls/external_response_function_control.py,sha256=M_DD7aUGgZk5Ol0mF6p_Yc7mtaZwOKfH5Ok_6wM1rNI,8568
|
|
71
|
+
KratosMultiphysics/OptimizationApplication/controls/control.py,sha256=tE4-hEMM4-lkP0_YVok4UKVaTykVBuu3OEvbt79Befc,5246
|
|
72
|
+
KratosMultiphysics/OptimizationApplication/controls/master_control.py,sha256=_WiJHxCXwudysXVtJTMMW-WE5vH7PxeY-rUFKuw70lY,11495
|
|
73
|
+
KratosMultiphysics/OptimizationApplication/controls/shape/vertex_morphing_shape_control.py,sha256=2fbasRliGsy1YUz3fdmll7jnAaTJ3L7Mg8KoaZ3fv08,18223
|
|
74
|
+
KratosMultiphysics/OptimizationApplication/controls/thickness/shell_thickness_control.py,sha256=0HZP9MgR753HuilVpkq4V9ejs-dMRymyz4OHE5BHJUY,11056
|
|
75
|
+
KratosMultiphysics/OptimizationApplication/controls/material/material_properties_control.py,sha256=vnYvZwz1XCpR0Br_ACx0M-8slBAhIFIPH-CgAHzTDhg,6848
|
|
76
|
+
KratosMultiphysics/OptimizationApplication/controls/material/simp_control.py,sha256=nILM4_rxz-6pZQ5Q8O6JyHOO7Mg3TLWk-vXqf_rg09w,13016
|
|
77
|
+
KratosMultiphysics/OptimizationApplication/utilities/response_utilities.py,sha256=_WXe-c6-a_tFmcJKdgQSuTBTNRw7ovD5XV-B_QQymgs,14433
|
|
78
|
+
KratosMultiphysics/OptimizationApplication/utilities/optimization_problem_utilities.py,sha256=KuaVJrgt6sYUIEpvFqeobHlfiHoWs_MBUULHdntPsNc,14927
|
|
79
|
+
KratosMultiphysics/OptimizationApplication/utilities/union_utilities.py,sha256=Tp--h4P9qgErPuLtKEFcEWxRtTV_00evsNs3islFJYc,246
|
|
80
|
+
KratosMultiphysics/OptimizationApplication/utilities/optimization_problem.py,sha256=NkeeodKiYuKfJ8jGxdzX2_eJZwtXicDZioqmDfcY0AU,11574
|
|
81
|
+
KratosMultiphysics/OptimizationApplication/utilities/opt_projection.py,sha256=3N19ARVSDPUrM_GCIVu9HL6jHeQXRlXzDcy6oUzu2F4,9189
|
|
82
|
+
KratosMultiphysics/OptimizationApplication/utilities/timer.py,sha256=pqCxshFQUeNhGEktJKYBrLRXylpkEG1QOjESt98SUbo,1724
|
|
83
|
+
KratosMultiphysics/OptimizationApplication/utilities/opt_line_search.py,sha256=7LIUer8Utqybar8a_YvUcfk2ITPsCTOUP8cgiU7eXlk,8243
|
|
84
|
+
KratosMultiphysics/OptimizationApplication/utilities/component_data_view.py,sha256=PBNjYWbs57j14MwjyaQfntidqcagWl0ae50hvFLgv88,3463
|
|
85
|
+
KratosMultiphysics/OptimizationApplication/utilities/logger_utilities.py,sha256=gK-9W-FS02MfEXnHMaQDHEWZYGw5IY7CxtgVPr9_o2s,8588
|
|
86
|
+
KratosMultiphysics/OptimizationApplication/utilities/buffered_dict.py,sha256=gsrLcSeW8vCZnaE-f0lTG-EPcX_2noqcbp_HPfeIOW8,18145
|
|
87
|
+
KratosMultiphysics/OptimizationApplication/utilities/model_part_utilities.py,sha256=mhzAS0WP9_MfuDKoApxK3nrpSEhbOZ1K6_9qSAMxLb8,7835
|
|
88
|
+
KratosMultiphysics/OptimizationApplication/utilities/helper_utilities.py,sha256=HZEO2nLGEe5abeyaM3m0TQg7LfjqpHC9UsCuj2qXRtI,1867
|
|
89
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/magnitude_reduction_conv_criterion.py,sha256=GbDiYs8knO8se-ebIojVUMZIRovHjQ60rV5QqDMQb7E,4652
|
|
90
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/target_value_conv_criterion.py,sha256=S8PY_4xfB08WSH5fzPnnkPcPn-dj149Bm7AjqJ0BtJE,3420
|
|
91
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/patience_conv_criterion.py,sha256=c235T6uXuVND1mI-yAHiN8kMJBtmDPHdyOZynQ40GkM,6108
|
|
92
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/avg_abs_improvement_conv_criterion.py,sha256=9GWK5DNelnYSdWftX4cFqPlh7nCYZiEnQpUdflwoqrc,5059
|
|
93
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/l2_conv_criterion.py,sha256=2xZZQxsxUR3bfmxMlTALXVnAHkQnlWarY3Ye_XDYOws,4115
|
|
94
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/constraint_conv_criterion.py,sha256=hbmZM9DwzKnpTJ3q8hbmPy3Y2mCeUWGQDRrRYbXz6E4,3516
|
|
95
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/max_iter_conv_criterion.py,sha256=9dI_Gfd1Ac0rTArrn1jOf0E5YfoXYXBWN3foRaFNxco,2090
|
|
96
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/convergence_criterion.py,sha256=V2Tt8qDPG64ZJnxpnHp9y1BZxsCpSO3hm8Yp1r1NNec,686
|
|
97
|
+
KratosMultiphysics/OptimizationApplication/convergence_criteria/combined_conv_criterion.py,sha256=WvD5Mu1Q1jznGJloEav-m3OULD5WO-udI0DD3lDDmf8,4198
|
|
98
|
+
KratosMultiphysics/.libs/libKratosOptimizationCore.dylib,sha256=IDenpH-IsEsWJzHMi1fe_NEdiZFAuFwns0qAxFJtUI8,9615712
|
|
99
|
+
KratosMultiphysics/.libs/KratosOptimizationApplication.so,sha256=wj4zByWAYH4ZgY_fmMGY42FNmkpzYn-cT3CQTPXDFU0,3545296
|
|
100
|
+
kratosoptimizationapplication.dylibs/libstdc++.6.dylib,sha256=UBC8pEzZeJ8SX8NP4S0fmEoPSoD-ATlEkYKn1lE1oao,3403264
|
|
101
|
+
kratosoptimizationapplication.dylibs/libKratosCore.dylib,sha256=Mz0PnN4WSdvlN8yh4PP_8smVlOup8tgcC_gcLKJVYes,63629792
|
|
102
|
+
kratosoptimizationapplication.dylibs/libgcc_s.1.1.dylib,sha256=fpfFgLpcOF0UncBU_FcuHCon2OBULeoTde2MpWjflFk,219232
|
|
103
|
+
kratosoptimizationapplication.dylibs/libgomp.1.dylib,sha256=D51-J5ZMfdwkdGXB-bAeBcBB7SgnynnqnM1gwISndz4,438880
|
|
104
|
+
kratosoptimizationapplication-10.4.4.dist-info/RECORD,,
|
|
105
|
+
kratosoptimizationapplication-10.4.4.dist-info/WHEEL,sha256=QX0UaoWXQIAv8vp5R3do793urekDoJdJRoGCk8nXIBY,115
|
|
106
|
+
kratosoptimizationapplication-10.4.4.dist-info/METADATA,sha256=FaRtLu3Y_yQAa17XqEMVgNQxAWHDN97cs1TUndTSHPk,1677
|
|
Binary file
|
|
Binary file
|
|
Binary file
|