]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
EHPOC: L1.1.1: Structrured/structrured interpolation
authoreap <eap@opencascade.com>
Fri, 18 Sep 2009 12:07:22 +0000 (12:07 +0000)
committereap <eap@opencascade.com>
Fri, 18 Sep 2009 12:07:22 +0000 (12:07 +0000)
Implementation of 1D-3D cartesian/cartesian interpolation

+MEDCouplingNormalizedCartesianMesh.hxx MEDCouplingNormalizedCartesianMesh.txx

src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx [new file with mode: 0644]
src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx [new file with mode: 0644]
src/MEDCoupling/Makefile.am

diff --git a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx
new file mode 100644 (file)
index 0000000..70dc268
--- /dev/null
@@ -0,0 +1,51 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#ifndef __MEDCouplingNormalizedCartesianMesh_HXX__
+#define __MEDCouplingNormalizedCartesianMesh_HXX__
+
+#include "NormalizedUnstructuredMesh.hxx"
+
+namespace ParaMEDMEM
+{
+  class MEDCouplingCMesh;
+}
+
+template<int SPACEDIM,int MESHDIM>
+class MEDCouplingNormalizedCartesianMesh : public INTERP_KERNEL::GenericMesh
+{
+public:
+  static const int MY_SPACEDIM=SPACEDIM;
+  static const int MY_MESHDIM=MESHDIM;
+  typedef int MyConnType;
+  static const INTERP_KERNEL::NumberingPolicy My_numPol=INTERP_KERNEL::ALL_C_MODE;
+public:
+  MEDCouplingNormalizedCartesianMesh(ParaMEDMEM::MEDCouplingCMesh *mesh);
+  //void getBoundingBox(double *boundingBox) const;
+  //INTERP_KERNEL::NormalizedCellType getTypeOfElement(int eltId) const;
+  //unsigned char getNumberOfNodesOfElement(int eltId) const;
+  //unsigned long getNumberOfNodes() const;
+  unsigned long getNumberOfElements() const;
+  unsigned long nbCellsAlongAxis(int axis) const;
+  const double * getCoordsAlongAxis(int axis) const;
+  ~MEDCouplingNormalizedCartesianMesh();
+private:
+  ParaMEDMEM::MEDCouplingCMesh *_mesh;
+};
+
+#endif
diff --git a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx
new file mode 100644 (file)
index 0000000..ec8d2ca
--- /dev/null
@@ -0,0 +1,57 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File      : MEDCouplingNormalizedCartesianMesh.txx
+// Created   : Mon Aug 17 12:00:38 2009
+// Author    : Edward AGAPOV (eap)
+//
+
+#include "MEDCouplingNormalizedCartesianMesh.hxx"
+#include "MEDCouplingCMesh.hxx"
+
+template<int SPACEDIM,int MESHDIM>
+MEDCouplingNormalizedCartesianMesh<SPACEDIM,MESHDIM>::MEDCouplingNormalizedCartesianMesh(ParaMEDMEM::MEDCouplingCMesh *mesh):_mesh(mesh)
+{
+  if(_mesh)
+    _mesh->incrRef();
+}
+
+template<int SPACEDIM,int MESHDIM>
+MEDCouplingNormalizedCartesianMesh<SPACEDIM,MESHDIM>::~MEDCouplingNormalizedCartesianMesh()
+{
+  if(_mesh)
+    _mesh->decrRef();
+}
+
+template<int SPACEDIM,int MESHDIM>
+unsigned long MEDCouplingNormalizedCartesianMesh<SPACEDIM,MESHDIM>::getNumberOfElements() const
+{
+  return _mesh->getNumberOfCells();
+}
+
+template<int SPACEDIM,int MESHDIM>
+unsigned long MEDCouplingNormalizedCartesianMesh<SPACEDIM,MESHDIM>::nbCellsAlongAxis(int axis) const
+{
+  return _mesh->getCoordsAt(axis)->getNumberOfTuples() - 1;
+}
+
+template<int SPACEDIM,int MESHDIM>
+const double * MEDCouplingNormalizedCartesianMesh<SPACEDIM,MESHDIM>::getCoordsAlongAxis(int axis) const
+{
+  return _mesh->getCoordsAt(axis)->getPointer();
+}
index 9524a106441899c2ad93d8a4e49f1b1bbd72b58b..20c460b147d74d342a823d4af91b20d693d35323 100644 (file)
@@ -33,7 +33,8 @@ MEDCouplingField.hxx MEDCouplingNormalizedUnstructuredMesh.hxx MEDCouplingMemArr
 MEDCouplingNormalizedUnstructuredMesh.txx  MEDCouplingMemArray.txx MEDCouplingRefCountObject.hxx  \
 MEDCouplingCMesh.hxx MEDCouplingTimeDiscretization.hxx                                            \
 MEDCouplingFieldDiscretization.hxx MEDCouplingPointSet.hxx                                        \
-MEDCouplingUMeshDesc.hxx MEDCouplingNatureOfField.hxx
+MEDCouplingUMeshDesc.hxx MEDCouplingNatureOfField.hxx                                             \
+MEDCouplingNormalizedCartesianMesh.hxx MEDCouplingNormalizedCartesianMesh.txx
 
 # Libraries targets