1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2022 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 *
23 import tempfile,os,shutil
25 zeDir = tempfile.mkdtemp()
28 from MEDLoaderDataForTest import MEDLoaderDataForTest
29 m = MEDLoaderDataForTest.build1DMesh_1()
31 #! [UG_ReadMeshFromFile_3]
32 m.checkConsecutiveCellTypesForMEDFileFrmt()
33 #! [UG_ReadMeshFromFile_3]
34 #! [UG_ReadMeshFromFile_0]
35 from MEDLoader import WriteMesh
36 WriteMesh("file2.med",m,True)
37 #! [UG_ReadMeshFromFile_0]
38 #! [UG_ReadMeshFromFile_1]
39 from MEDLoader import ReadMeshFromFile
40 m=ReadMeshFromFile("file2.med")
41 #! [UG_ReadMeshFromFile_1]
42 #! [UG_ReadMeshFromFile_2]
43 m=ReadMeshFromFile("file2.med","mesh2")
44 assert(m.getName()=="mesh2")
45 #! [UG_ReadMeshFromFile_2]
47 mesh3D=MEDLoaderDataForTest.build3DMesh_1()
48 mesh2D=mesh3D.computeSkin()
49 mesh1D=mesh2D.computeSkin()
50 #! [UG_ReadMeshFromFile_4]
51 from MEDLoader import MEDFileUMesh
53 mm.setMeshAtLevel(0,mesh3D)
54 mm.setMeshAtLevel(-1,mesh2D)
55 #! [UG_ReadMeshFromFile_4]
56 otherCoordArray=mesh3D.getCoords()
57 #! [UG_ReadMeshFromFile_5]
58 mm.setCoords(otherCoordArray)
59 #! [UG_ReadMeshFromFile_5]
60 #! [UG_ReadMeshFromFile_6]
61 groupNodes=DataArrayInt([1,3,4,5]); groupNodes.setName("myNodes")
62 groupFaces=DataArrayInt([12,13,15]); groupFaces.setName("myFaces")
63 mm.addGroup(1,groupNodes)
64 mm.addGroup(-1,groupFaces)
65 #! [UG_ReadMeshFromFile_6]
66 oldName,newName="myNodes","myNodes2"
67 oldFamName,newFamName="Family_2","Family_3"
68 #! [UG_ReadMeshFromFile_7]
69 mm.changeGroupName(oldName,newName)
70 mm.changeFamilyName(oldFamName,newFamName)
71 #! [UG_ReadMeshFromFile_7]
72 #! [UG_ReadMeshFromFile_8]
73 mm.write("file.med",2)
74 #! [UG_ReadMeshFromFile_8]
76 #! [UG_ReadMeshFromFile_9]
77 mm.setMeshAtLevel(0,mesh3D,True)
78 #! [UG_ReadMeshFromFile_9]
81 from MEDLoaderDataForTest import MEDLoaderDataForTest
82 f=MEDLoaderDataForTest.buildVecFieldOnGauss_1();
85 from MEDLoader import WriteField
86 WriteField("file.med",f,True)
89 from MEDLoader import ReadField
90 f=ReadField("file.med")
93 from MEDLoader import GetAllFieldNames
94 print(GetAllFieldNames("file.med"))
97 f=ReadField("file.med","Field1")
100 from MEDLoader import GetAllFieldIterations
101 print(GetAllFieldIterations("file.med","Field1"))
105 f=ReadField("file.med","Field1",ts0,ts1)
110 WriteMesh("file5.med",m,True)
112 assert(f.getMesh().getHiddenCppPointer()==m.getHiddenCppPointer())
113 # extra line to insist on the fact that
114 WriteFieldUsingAlreadyWrittenMesh("file5.med",f)
117 from MEDLoaderDataForTest import MEDLoaderDataForTest
118 fname="PyExamples1.med"
120 fieldName="FieldOnAll"
123 m=MEDLoaderDataForTest.build2DMesh_3()
125 f=m.getMeasureField(False)
126 f=f.buildNewTimeReprFromThis(ONE_TIME,False)
127 f.setTime(5.5,iteration,order)
133 from MEDLoader import MEDFileUMesh, MEDFileField1TS
134 mm=MEDFileUMesh.New()
135 mm.setMeshAtLevel(0,mesh)
136 ff=MEDFileField1TS.New()
137 ff.setFieldNoProfileSBT(field)
142 profile=DataArrayInt([1,3,7]); profile.setName("pfl137")
143 fieldPartial=field[profile]
144 fieldPartial.setName("fieldPartial")
145 ff.setFieldProfile(fieldPartial,mm,level,profile)
149 ff=MEDFileField1TS.New(fname,fieldName,iteration,order)
150 mm=MEDFileMesh.New(fname)
151 # you can choose an appropriate method
153 field=ff.getFieldAtLevel(ON_CELLS,level)
154 field=ff.getFieldOnMeshAtLevel(ON_CELLS,level,mm)
157 maxDim,maxRelDims=ff.getNonEmptyLevels()
161 fieldTS2 = f.deepCopy()
162 fieldTS2.setTime(4.5,iteration+1,order)
163 fieldPartialTS1 = fieldPartial
164 fieldPartialTS2 = fieldPartial.deepCopy()
165 fieldPartialTS1.setTime(4.0,iteration+2,order)
166 fieldPartialTS2.setTime(3.5,iteration+3,order)
167 fieldPartialTS1.setName( fieldTS1.getName() )
168 fieldPartialTS2.setName( fieldTS1.getName() )
169 fname="PyExamples2.med"
171 #mm=MEDFileMesh.New(fname)
173 ff=MEDFileFieldMultiTS.New()
174 ff.appendFieldNoProfileSBT(fieldTS1)
175 ff.appendFieldNoProfileSBT(fieldTS2)
176 ff.appendFieldProfile(fieldPartialTS1,mm,level,profile)
177 ff.appendFieldProfile(fieldPartialTS2,mm,level,profile)
182 mm=MEDFileMesh.New(fname)
183 ff=MEDFileFieldMultiTS.New(fname,fieldName)
185 iteration,order,time=ff1TS.getTime()
186 # you can choose an appropriate method
187 field=ff1TS.field(mm)
188 field=ff1TS.getFieldAtLevel(ON_CELLS,level)
189 field=ff1TS.getFieldOnMeshAtLevel(ON_CELLS,level,mm)