Salome HOME
cb2f9becd45f165b42b2a7486d7e8c2ae0980637
[modules/hydrosolver.git] / src / salome_hydro / generate_interpolz.py
1
2 import os
3 hydro_solver_root = os.path.join(os.environ['HYDROSOLVER_ROOT_DIR'], 'lib', 'python2.7', 'site-packages', 'salome', 'salome', 'hydro')
4
5 def replace( lines, pattern, subst ):
6   for i in range( 0, len( lines ) ):
7     line = lines[i]
8     if pattern in lines[i]:
9       if isinstance( subst, list ):
10         del lines[i]
11         for s in subst:
12           new_line = line.replace( pattern, repr(s) )
13           lines.insert( i, new_line )
14       elif isinstance( subst, dict ):
15         del lines[i]
16         name = pattern[1:-1]
17         lines.insert( i, "%s = {}\n" % name )
18         keys = list(subst.keys())
19         keys.sort()
20         i = i+1
21         for k in keys:
22           v = subst[k]
23           lines.insert( i, "%s[%s] = %s\n" % (name, repr(k), repr(v) ) )
24           i = i+1
25       else:
26         new_line = line.replace( pattern, repr(subst) )
27         lines[i] = new_line
28
29
30 def generate( path, calc_case, med_file, med_groups_regions, z_undef, regions_interp_method ):
31   f = open( path, "w" )
32   tf = open( hydro_solver_root+"/interpolz.template", "r" )
33   templ = tf.readlines()
34
35   replace( templ, "<case_name_from_dlg>", calc_case )
36   replace( templ, "<MED_file_path_from_dlg>", med_file )
37   replace( templ, "<dictGroupRegion>", med_groups_regions )
38   replace( templ, "<z_undef_value_from_dlg>", z_undef )
39   replace( templ, "<dict_region_interpolation_method>", regions_interp_method )
40
41   for line in templ:
42     f.write( line )
43   f.close()
44
45 def generate_B( path, bathy_name, med_file, group_name, z_undef, iinterp ):
46   f = open( path, "w" )
47   tf = open( hydro_solver_root+"/interpolz_b.template", "r" )
48   templ = tf.readlines()
49
50   replace( templ, "<bathy_name_from_dlg>", bathy_name )
51   replace( templ, "<MED_file_path_from_dlg>", med_file )
52   replace( templ, "<MED_Group>", group_name )
53   replace( templ, "<z_undef_value_from_dlg>", z_undef )
54   replace( templ, "<interpolation_method>", iinterp )
55
56   for line in templ:
57     f.write( line )
58   f.close()
59
60 if __name__=='__main__':
61     generate( "test_interpolz.py", "case_1", "mesh.med", {"group_1":"reg_1", "group_2":"reg_2"}, -9999, {"reg_1" : 0, "reg_2": 1} )