X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2Fgeom2medcoupling.py;h=3f1c42d27ff0cb232745f703fc46f12f98a364d7;hb=b832b15337be013a56e0976170e5e235b89fcb03;hp=44a3a7e09a215c8fde7f5cac3673f5be30e72c88;hpb=39080e491acc2bd49a7c6e20ffeeaecb11b3006f;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/geom2medcoupling.py b/src/MEDCoupling_Swig/geom2medcoupling.py index 44a3a7e09..3f1c42d27 100644 --- a/src/MEDCoupling_Swig/geom2medcoupling.py +++ b/src/MEDCoupling_Swig/geom2medcoupling.py @@ -1,6 +1,6 @@ #! /usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright (C) 2021 CEA/DEN, EDF R&D +# Copyright (C) 2021-2024 CEA, EDF # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -71,3 +71,29 @@ def to_geomshape(mcmesh): if mcmesh.getSpaceDimension() != 3: mcmesh.changeSpaceDimension(3,0.0) return (dico[mdim])(mcmesh) + +def compute_interpolation_P0P0_matrix_with_geom(srcMesh,trgMesh): + """ + Method computing interpolation matrix P0P0 using GEOM/OCCT engine. + This method is normaly slower than mc.MEDCouplingRemapper.prepare method but it may be used to check values. + + :return: a matrix with the same format than mc.MEDCouplingRemapper.getCrudeMatrix (use mc.MEDCouplingRemapper.ToCSRMatrix to convert it into scipy sparse format) + """ + mat_geom = [ {} for i in range(trgMesh.getNumberOfCells()) ] + for j in range(trgMesh.getNumberOfCells()): + for i in range(srcMesh.getNumberOfCells()): + mc_src_mesh = srcMesh[i] + src_geom = to_geomshape(mc_src_mesh) + mc_trg_mesh = trgMesh[j] + trg_geom = to_geomshape(mc_trg_mesh) + + from salome.geom import geomBuilder + geompy = geomBuilder.New() + import GEOM + geompy.ExportBREP(src_geom, "src.brep") + geompy.ExportBREP(trg_geom, "trg.brep") + Common_1 = geompy.MakeCommonList([src_geom, trg_geom], True) + _,_,volume = geompy.BasicProperties(Common_1) + if volume > 0.: + mat_geom[j][i] = volume + return mat_geom \ No newline at end of file