1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
25 BASE = os.environ["MED_ROOT_DIR"]
26 BASE = os.path.join( BASE, 'share', 'salome', 'resources', 'med' )
28 fileName = os.path.join( BASE, 'pointe.med' )
29 fileName = os.path.join( BASE, 'carre_en_quad4_seg2.med' )
31 # MED Mesh read from a (local) file
33 from libMEDMEM_Swig import *
37 mdDriver = MED_MED_RDONLY_DRIVER(fileName, md)
40 mdDriver.readFileStruct()
43 mLocal = md.getMesh(md.getMeshName(0))
46 # MED Mesh recieved from a distant component (via CORBA)
48 from omniORB import CORBA
49 from LifeCycleCORBA import *
50 from libSALOME_Swig import *
52 orb = CORBA.ORB_init([''], CORBA.ORB_ID)
53 lcc = LifeCycleCORBA(orb)
55 C = lcc.FindOrLoadComponent("FactoryServerPy", "Compo1Py")
56 C.Initialise(fileName)
58 mDistant = C.Calcul1()
60 # Compare local and distant copies
64 if (len(x) != len(y)):
67 for i in xrange(len(x)):
68 s = s + abs(x[i] - y[i]);
72 if (len(x) != len(y)):
74 for i in xrange(len(x)):
79 def transpose(x, n, m):
83 y[i + j*n] = x[i*m + j];
86 m = mDistant.getSpaceDimension();
87 print "SpaceDimension : ", m
88 n = mDistant.getNumberOfNodes();
89 print "NumberOfNodes : ", n
91 x1 = mDistant.getCoordinates(MED_FULL_INTERLACE);
92 x2 = mDistant.getCoordinates(MED_NO_INTERLACE);
93 x3 = mDistant.getCoordinates(MED_FULL_INTERLACE);
95 print "Coordinates (MED_FULL_INTERLACE) : ", x1
96 print "Coordinates (MED_NO_INTERLACE) : ", x2
98 if (ecart(x1, x3) > 1e-7):
99 raise RuntimeError, "getCoordinates : INTERLACE"
101 x4 = transpose(x1, n, m);
102 print "Coordinates (MED_NO_INTERLACE) : ", x4
104 if (ecart(x2, x4) > 1e-7):
105 raise RuntimeError, "getCoordinates : NO_INTERLACE"
108 print "All tests passed"