1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2019 CEA/DEN, EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 from MEDLoader import *
24 from MEDLoaderDataForTest import MEDLoaderDataForTest
25 m = MEDLoaderDataForTest.build1DMesh_1()
27 #! [UG_ReadMeshFromFile_3]
28 m.checkConsecutiveCellTypesForMEDFileFrmt()
29 #! [UG_ReadMeshFromFile_3]
30 #! [UG_ReadMeshFromFile_0]
31 from MEDLoader import WriteMesh
32 WriteMesh("file2.med",m,True)
33 #! [UG_ReadMeshFromFile_0]
34 #! [UG_ReadMeshFromFile_1]
35 from MEDLoader import ReadMeshFromFile
36 m=ReadMeshFromFile("file2.med")
37 #! [UG_ReadMeshFromFile_1]
38 #! [UG_ReadMeshFromFile_2]
39 m=ReadMeshFromFile("file2.med","mesh2")
40 assert(m.getName()=="mesh2")
41 #! [UG_ReadMeshFromFile_2]
43 mesh3D=MEDLoaderDataForTest.build3DMesh_1()
44 mesh2D=mesh3D.computeSkin()
45 mesh1D=mesh2D.computeSkin()
46 #! [UG_ReadMeshFromFile_4]
47 from MEDLoader import MEDFileUMesh
49 mm.setMeshAtLevel(0,mesh3D)
50 mm.setMeshAtLevel(-1,mesh2D)
51 #! [UG_ReadMeshFromFile_4]
52 otherCoordArray=mesh3D.getCoords()
53 #! [UG_ReadMeshFromFile_5]
54 mm.setCoords(otherCoordArray)
55 #! [UG_ReadMeshFromFile_5]
56 #! [UG_ReadMeshFromFile_6]
57 groupNodes=DataArrayInt([1,3,4,5]); groupNodes.setName("myNodes")
58 groupFaces=DataArrayInt([12,13,15]); groupFaces.setName("myFaces")
59 mm.addGroup(1,groupNodes)
60 mm.addGroup(-1,groupFaces)
61 #! [UG_ReadMeshFromFile_6]
62 oldName,newName="myNodes","myNodes2"
63 oldFamName,newFamName="Family_2","Family_3"
64 #! [UG_ReadMeshFromFile_7]
65 mm.changeGroupName(oldName,newName)
66 mm.changeFamilyName(oldFamName,newFamName)
67 #! [UG_ReadMeshFromFile_7]
68 #! [UG_ReadMeshFromFile_8]
69 mm.write("file.med",2)
70 #! [UG_ReadMeshFromFile_8]
72 #! [UG_ReadMeshFromFile_9]
73 mm.setMeshAtLevel(0,mesh3D,True)
74 #! [UG_ReadMeshFromFile_9]
77 from MEDLoaderDataForTest import MEDLoaderDataForTest
78 f=MEDLoaderDataForTest.buildVecFieldOnGauss_1();
81 from MEDLoader import WriteField
82 WriteField("file.med",f,True)
85 from MEDLoader import ReadField
86 f=ReadField("file.med")
89 from MEDLoader import GetAllFieldNames
90 print(GetAllFieldNames("file.med"))
93 f=ReadField("file.med","Field1")
96 from MEDLoader import GetAllFieldIterations
97 print(GetAllFieldIterations("file.med","Field1"))
101 f=ReadField("file.med","Field1",ts0,ts1)
106 WriteMesh("file5.med",m,True)
108 assert(f.getMesh().getHiddenCppPointer()==m.getHiddenCppPointer())
109 # extra line to insist on the fact that
110 WriteFieldUsingAlreadyWrittenMesh("file5.med",f)
113 from MEDLoaderDataForTest import MEDLoaderDataForTest
114 fname="PyExamples1.med"
116 fieldName="FieldOnAll"
119 m=MEDLoaderDataForTest.build2DMesh_3()
121 f=m.getMeasureField(False)
122 f=f.buildNewTimeReprFromThis(ONE_TIME,False)
123 f.setTime(5.5,iteration,order)
129 from MEDLoader import MEDFileUMesh, MEDFileField1TS
130 mm=MEDFileUMesh.New()
131 mm.setMeshAtLevel(0,mesh)
132 ff=MEDFileField1TS.New()
133 ff.setFieldNoProfileSBT(field)
138 profile=DataArrayInt([1,3,7]); profile.setName("pfl137")
139 fieldPartial=field[profile]
140 fieldPartial.setName("fieldPartial")
141 ff.setFieldProfile(fieldPartial,mm,level,profile)
145 ff=MEDFileField1TS.New(fname,fieldName,iteration,order)
146 mm=MEDFileMesh.New(fname)
147 # you can choose an appropriate method
149 field=ff.getFieldAtLevel(ON_CELLS,level)
150 field=ff.getFieldOnMeshAtLevel(ON_CELLS,level,mm)
153 maxDim,maxRelDims=ff.getNonEmptyLevels()
157 fieldTS2 = f.deepCopy()
158 fieldTS2.setTime(4.5,iteration+1,order)
159 fieldPartialTS1 = fieldPartial
160 fieldPartialTS2 = fieldPartial.deepCopy()
161 fieldPartialTS1.setTime(4.0,iteration+2,order)
162 fieldPartialTS2.setTime(3.5,iteration+3,order)
163 fieldPartialTS1.setName( fieldTS1.getName() )
164 fieldPartialTS2.setName( fieldTS1.getName() )
165 fname="PyExamples2.med"
167 #mm=MEDFileMesh.New(fname)
169 ff=MEDFileFieldMultiTS.New()
170 ff.appendFieldNoProfileSBT(fieldTS1)
171 ff.appendFieldNoProfileSBT(fieldTS2)
172 ff.appendFieldProfile(fieldPartialTS1,mm,level,profile)
173 ff.appendFieldProfile(fieldPartialTS2,mm,level,profile)
178 mm=MEDFileMesh.New(fname)
179 ff=MEDFileFieldMultiTS.New(fname,fieldName)
181 iteration,order,time=ff1TS.getTime()
182 # you can choose an appropriate method
183 field=ff1TS.field(mm)
184 field=ff1TS.getFieldAtLevel(ON_CELLS,level)
185 field=ff1TS.getFieldOnMeshAtLevel(ON_CELLS,level,mm)