Salome HOME
yamm adaptation and lot 6
[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 = 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, interp ):
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, "<interpolation_method_value_from_dlg>", interp )
40
41   for line in templ:
42     f.write( line )
43   f.close()
44
45
46 if __name__=='__main__':
47     generate( "test_interpolz.py", "case_1", "mesh.med", {"group_1":"reg_1", "group_2":"reg_2"}, -9999, "linear" )