1313# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
1414
1515def GenerateMeshes (id , angle , typename ):
16-
16+
1717 with open ("ProjectParametersMeshMoving.json" ,'r' ) as parameter_file :
1818 mesh_parameters = KratosMultiphysics .Parameters (parameter_file .read ())
1919 mesh_parameters ["processes" ]["boundary_conditions_process_list" ][0 ]["Parameters" ]["rotation_angle" ].SetDouble (angle * - np .pi / 180 )
20-
20+
2121 model = KratosMultiphysics .Model ()
2222 mesh_simulation = MeshMovingAnalysis (model ,mesh_parameters )
2323 mesh_simulation .Run ()
@@ -73,7 +73,7 @@ def UpdateProjectParameters(parameters, mu=None):
7373 mach_infinity = mu [1 ]
7474 id = mu [3 ]
7575 typename = mu [4 ]
76-
76+
7777 upwind_factor_constant = upwind_aprox (angle_of_atack , mach_infinity )
7878 critical_mach = transonic_parameters (mach_infinity )
7979
@@ -148,7 +148,7 @@ def transonic_parameters(mach_infinity):
148148 # disminuye en valor absoluto con el espesor del perfil
149149
150150 cp_min = - 0.6
151-
151+
152152 if mach_infinity < 0.7 :
153153 # Prandtl-Glauert rule (no es preciso para M > 0.7)
154154 cp_M = cp_min / (np .sqrt (1 - mach_infinity ** 2 ))
@@ -172,11 +172,11 @@ def transonic_parameters(mach_infinity):
172172
173173def upwind_aprox (angle ,mach ): #0.0 0.6 / 5.0 0.85
174174 return 2.1489732 / (1 + np .exp (- (1.55470776 * angle + 37.876707 * mach - 31.48703546 ))) + 0.09767296 + 0.5
175-
175+
176176# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
177177#
178178# plot
179- #
179+ #
180180def plot_Cps (mu_train ,mu_test ):
181181 case_names = ["FOM" ,"ROM" ,"HROM" ]
182182 markercolor = ["ob" ,"xr" ,"+g" ]
@@ -233,7 +233,7 @@ def plot_Cps(mu_train,mu_test):
233233# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
234234#
235235# save / load parameters
236- #
236+ #
237237def save_mu_parameters (mu_train , mu_test ):
238238 archivo = open ('Data/mu_train.dat' , 'wb' )
239239 pickle .dump (mu_train , archivo )
@@ -284,26 +284,31 @@ def GetRomManagerParameters():
284284 "rom_stages_to_test" : ["ROM","HROM"], // ["ROM","HROM"]
285285 "paralellism" : null, // null, TODO: add "compss"
286286 "projection_strategy": "galerkin", // "lspg", "galerkin", "petrov_galerkin"
287- "assembling_strategy": "global", // "global", "elemental"
287+ "assembling_strategy": "global", // "global", "elemental"
288288 "save_gid_output": true, // false, true #if true, it must exits previously in the ProjectParameters.json
289289 "save_vtk_output": false,
290290 "output_name": "mu", // "id" , "mu"
291291 "ROM":{
292292 "svd_truncation_tolerance": 1e-30,
293- "model_part_name": "MainModelPart",
293+ "model_part_name": "MainModelPart",
294294 "nodal_unknowns": ["VELOCITY_POTENTIAL","AUXILIARY_VELOCITY_POTENTIAL"], // Main unknowns. Snapshots are taken from these
295295 "rom_basis_output_format": "numpy", // "json" "numpy"
296296 "rom_basis_output_name": "RomParameters",
297297 "snapshots_control_type": "step", // "step", "time"
298298 "snapshots_interval": 1,
299- "petrov_galerkin_training_parameters":{
300- "basis_strategy": "residuals", // 'residuals', 'jacobian'
299+ "galerkin_rom_bns_settings": {
300+ "monotonicity_preserving": false
301+ },
302+ "lspg_rom_bns_settings": {
303+ "train_petrov_galerkin": false,
304+ "basis_strategy": "reactions", // 'residuals', 'jacobian', 'reactions'
301305 "include_phi": false,
302306 "svd_truncation_tolerance": 1e-12,
303- "echo_level": 0
307+ "solving_technique": "normal_equations", // 'normal_equations', 'qr_decomposition'
308+ "monotonicity_preserving": false
304309 },
305- "lspg_rom_bns_settings ": {
306- "solving_technique ": "normal_equations" // 'normal_equations', 'qr_decomposition'
310+ "petrov_galerkin_rom_bns_settings ": {
311+ "monotonicity_preserving ": false
307312 }
308313 },
309314 "HROM":{
@@ -315,7 +320,7 @@ def GetRomManagerParameters():
315320 }
316321 }""" )
317322 return general_rom_manager_parameters
318-
323+
319324# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
320325
321326if __name__ == "__main__" :
@@ -328,7 +333,7 @@ def GetRomManagerParameters():
328333
329334 # Definir rango de valores de mach y angulo de ataque
330335 mach_range = [ 0.72 , 0.77 ]
331- angle_range = [ 1.00 , 1.50 ]
336+ angle_range = [ 1.00 , 1.50 ]
332337
333338 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
334339 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -337,28 +342,28 @@ def GetRomManagerParameters():
337342 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
338343 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
339344 #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
340-
345+
341346 if load_old_mu_parameters :
342347 mu_train , mu_test = load_mu_parameters ()
343348
344349 elif only_test :
345350 CleanToTest ()
346351
347352 mu_train = get_multiple_params_by_Halton_sequence (NumberofMuTrain , angle_range , mach_range , "train" ,
348- fix_corners_of_parametric_space = False )
349- mu_test = get_multiple_params_by_Halton_sequence (NumberOfMuTest , angle_range , mach_range , "test" ,
350- fix_corners_of_parametric_space = False )
353+ fix_corners_of_parametric_space = False )
354+ mu_test = get_multiple_params_by_Halton_sequence (NumberOfMuTest , angle_range , mach_range , "test" ,
355+ fix_corners_of_parametric_space = False )
351356
352357 save_mu_parameters (mu_train ,mu_test )
353358 plot_mu_values (mu_train ,mu_test )
354-
359+
355360 else :
356361 CleanFolder ()
357-
362+
358363 mu_train = get_multiple_params_by_Halton_sequence (NumberofMuTrain , angle_range , mach_range , "train" ,
359- fix_corners_of_parametric_space = True )
360- mu_test = get_multiple_params_by_Halton_sequence (NumberOfMuTest , angle_range , mach_range , "test" ,
361- fix_corners_of_parametric_space = False )
364+ fix_corners_of_parametric_space = True )
365+ mu_test = get_multiple_params_by_Halton_sequence (NumberOfMuTest , angle_range , mach_range , "test" ,
366+ fix_corners_of_parametric_space = False )
362367
363368 save_mu_parameters (mu_train ,mu_test )
364369 plot_mu_values (mu_train ,mu_test )
0 commit comments