Salome HOME
Merge branch 'BR_2018_V8_5' into BR_PY3
[modules/hydro.git] / doc / salome / tutorial / add_field_h_on_group.py
1 #!/bin/env python
2
3
4 from MEDLoader import *
5 import numpy as np
6
7 # Open the file
8
9
10 def set_var_on_group(filename, meshname, groups_val, varname):
11     """
12     Set values on group
13
14     @param filename Name of the MED file
15     @param meshname Name of the mesh in the MED file
16     @param groups_val List of tuples (Name, value)
17     @param varname Name of the field
18     """
19     # Opening mesh
20     meshFile2D = MEDFileUMesh(filename, meshname)
21
22     m2D = meshFile2D.getMeshAtLevel(0)
23
24     npoin = m2D.getNumberOfNodes()
25
26     # Values for the field
27     values = DataArrayDouble(npoin)
28
29     for group, val in groups_val:
30         # Getting element in the group
31         cellsInGroup = meshFile2D.getGroupArr(0, group)
32         for cell in cellsInGroup:
33             # Get list of node in the element
34             nodes = m2D.getNodeIdsOfCell(cell[0])
35             for node in nodes:
36                 values[node] = val
37
38     # Building the new field
39     field = MEDCouplingFieldDouble.New(ON_NODES)
40     field.setName(varname)
41     field.setMesh(m2D)
42     field.setArray(values)
43     field.setTime(0.0,0,-1)
44
45     # Writing field in file
46     WriteField(filename,field,False)
47
48
49 if __name__ == "__main__":
50     filename = "HYDRO_garonne_1F_Z-KS.med"
51     meshname = "HYDRO_garonne_1"
52     groups = [("litMineur", 1.00),
53               ("riveGauche",0.00),
54               ("riveDroite",0.00),
55               ]
56     varname = "WATER DEPTH"
57
58     set_var_on_group(filename, meshname, groups, varname)
59