Skip to content

Commit b260a27

Browse files
committed
Updating Rom's Compressible flow rom_manager settings.
1 parent c760af0 commit b260a27

3 files changed

Lines changed: 84 additions & 69 deletions

File tree

  • rom_application/RomManager PotentialFlow

rom_application/RomManager PotentialFlow/naca0012_compressible_subsonic_rom_potential_flow_2D/rom_manager.py

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
1414

1515
def 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()
@@ -130,11 +130,11 @@ def plot_mu_values(mu_train,mu_test):
130130
plt.grid(True)
131131
plt.legend(bbox_to_anchor=(.85, 1.03, 1., .102), loc='upper left', borderaxespad=0.)
132132
plt.savefig("MuValues.png")
133-
133+
134134
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
135135
#
136136
# plot
137-
#
137+
#
138138
def plot_Cps(mu_train,mu_test):
139139
case_names = ["FOM","ROM","HROM"]
140140
markercolor = ["ob","xr","+g"]
@@ -191,7 +191,7 @@ def plot_Cps(mu_train,mu_test):
191191
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
192192
#
193193
# save / load parameters
194-
#
194+
#
195195
def save_mu_parameters(mu_train, mu_test):
196196
archivo = open('Data/mu_train.dat', 'wb')
197197
pickle.dump(mu_train, archivo)
@@ -241,26 +241,31 @@ def GetRomManagerParameters():
241241
"rom_stages_to_test" : ["ROM","HROM"], // ["ROM","HROM"]
242242
"paralellism" : null, // null, TODO: add "compss"
243243
"projection_strategy": "galerkin", // "lspg", "galerkin", "petrov_galerkin"
244-
"assembling_strategy": "global", // "global", "elemental"
244+
"assembling_strategy": "global", // "global", "elemental"
245245
"save_gid_output": true, // false, true #if true, it must exits previously in the ProjectParameters.json
246246
"save_vtk_output": false,
247247
"output_name": "mu", // "id" , "mu"
248248
"ROM":{
249249
"svd_truncation_tolerance": 1e-30,
250-
"model_part_name": "MainModelPart",
250+
"model_part_name": "MainModelPart",
251251
"nodal_unknowns": ["VELOCITY_POTENTIAL","AUXILIARY_VELOCITY_POTENTIAL"], // Main unknowns. Snapshots are taken from these
252252
"rom_basis_output_format": "numpy", // "json" "numpy"
253253
"rom_basis_output_name": "RomParameters",
254254
"snapshots_control_type": "step", // "step", "time"
255255
"snapshots_interval": 1,
256-
"petrov_galerkin_training_parameters":{
257-
"basis_strategy": "residuals", // 'residuals', 'jacobian'
256+
"galerkin_rom_bns_settings": {
257+
"monotonicity_preserving": false
258+
},
259+
"lspg_rom_bns_settings": {
260+
"train_petrov_galerkin": false,
261+
"basis_strategy": "reactions", // 'residuals', 'jacobian', 'reactions'
258262
"include_phi": false,
259263
"svd_truncation_tolerance": 1e-12,
260-
"echo_level": 0
264+
"solving_technique": "normal_equations", // 'normal_equations', 'qr_decomposition'
265+
"monotonicity_preserving": false
261266
},
262-
"lspg_rom_bns_settings": {
263-
"solving_technique": "normal_equations" // 'normal_equations', 'qr_decomposition'
267+
"petrov_galerkin_rom_bns_settings": {
268+
"monotonicity_preserving": false
264269
}
265270
},
266271
"HROM":{
@@ -284,7 +289,7 @@ def GetRomManagerParameters():
284289

285290
# Definir rango de valores de mach y angulo de ataque
286291
mach_range = [ 0.20, 0.70]
287-
angle_range = [-1.00, 6.00]
292+
angle_range = [-1.00, 6.00]
288293

289294
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
290295
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@@ -293,28 +298,28 @@ def GetRomManagerParameters():
293298
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
294299
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
295300
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
296-
301+
297302
if load_old_mu_parameters:
298303
mu_train, mu_test = load_mu_parameters()
299304

300305
elif only_test:
301306
CleanToTest()
302307

303308
mu_train = get_multiple_params_by_Halton_sequence(NumberofMuTrain, angle_range, mach_range, "train",
304-
fix_corners_of_parametric_space = False )
305-
mu_test = get_multiple_params_by_Halton_sequence(NumberOfMuTest , angle_range, mach_range, "test" ,
306-
fix_corners_of_parametric_space = False)
309+
fix_corners_of_parametric_space = False )
310+
mu_test = get_multiple_params_by_Halton_sequence(NumberOfMuTest , angle_range, mach_range, "test" ,
311+
fix_corners_of_parametric_space = False)
307312

308313
save_mu_parameters(mu_train,mu_test)
309314
plot_mu_values(mu_train,mu_test)
310-
315+
311316
else:
312317
CleanFolder()
313-
318+
314319
mu_train = get_multiple_params_by_Halton_sequence(NumberofMuTrain, angle_range, mach_range, "train",
315-
fix_corners_of_parametric_space = True )
316-
mu_test = get_multiple_params_by_Halton_sequence(NumberOfMuTest , angle_range, mach_range, "test" ,
317-
fix_corners_of_parametric_space = False)
320+
fix_corners_of_parametric_space = True )
321+
mu_test = get_multiple_params_by_Halton_sequence(NumberOfMuTest , angle_range, mach_range, "test" ,
322+
fix_corners_of_parametric_space = False)
318323

319324
save_mu_parameters(mu_train,mu_test)
320325
plot_mu_values(mu_train,mu_test)

rom_application/RomManager PotentialFlow/naca0012_compressible_transonic_rom_potential_flow_2D/rom_manager.py

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
1414

1515
def 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

173173
def 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+
#
180180
def 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+
#
237237
def 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

321326
if __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

Comments
 (0)