Salome HOME
new method MEDCouplingUMesh::computeNeighborsOfNodes
[tools/medcoupling.git] / src / MEDCoupling / MEDCouplingDefinitionTime.cxx
index a43312d902d3ac47378101ff1c328776dd325a21..3d3bf7cc1cae815178e7bb9709f513816fcef4b5 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2014  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.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,6 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+// Author : Anthony Geay (CEA/DEN)
 
 #include "MEDCouplingDefinitionTime.hxx"
 #include "MEDCouplingFieldDouble.hxx"
@@ -26,13 +27,13 @@ using namespace ParaMEDMEM;
 
 const double MEDCouplingDefinitionTime::EPS_DFT=1e-15;
 
-MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(const MEDCouplingFieldDouble *f, int meshId, const std::vector<int>& arrId, int fieldId) throw(INTERP_KERNEL::Exception)
+MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(const MEDCouplingFieldDouble *f, int meshId, const std::vector<int>& arrId, int fieldId)
 {
   static const char msg[]="TimeSlice::New : mismatch of arrays number of a fieldDouble and its policy !!! Internal error !!!";
   if(!f)
     throw INTERP_KERNEL::Exception("MEDCouplingDefinitionTimeSlice::New : empty field !");
   switch(f->getTimeDiscretization())
-    {
+  {
     case ONE_TIME:
       {
         if(arrId.size()!=1)
@@ -55,13 +56,13 @@ MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(const MEDCou
       throw INTERP_KERNEL::Exception("Invalide time discretization ! NO_TIME ! Impossible to build a definition time slice !");
     default:
       throw INTERP_KERNEL::Exception("Invalide time discretization : Not recognized !");
-    }
+  }
 }
 
-MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(TypeOfTimeDiscretization type, const std::vector<int>& tiI, const std::vector<double>& tiD) throw(INTERP_KERNEL::Exception)
+MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(TypeOfTimeDiscretization type, const std::vector<int>& tiI, const std::vector<double>& tiD)
 {
   switch(type)
-    {
+  {
     case ONE_TIME:
       return MEDCouplingDefinitionTimeSliceInst::New(tiI,tiD);
     case CONST_ON_TIME_INTERVAL:
@@ -70,7 +71,7 @@ MEDCouplingDefinitionTimeSlice *MEDCouplingDefinitionTimeSlice::New(TypeOfTimeDi
       return MEDCouplingDefinitionTimeSliceLT::New(tiI,tiD);
     default:
       throw INTERP_KERNEL::Exception("MEDCouplingDefinitionTimeSlice::New : unrecognized time discretization type !");
-    }
+  }
 }
 
 bool MEDCouplingDefinitionTimeSlice::isEqual(const MEDCouplingDefinitionTimeSlice& other, double eps) const
@@ -99,7 +100,7 @@ void MEDCouplingDefinitionTimeSlice::appendRepr(std::ostream& stream) const
   stream << " *** MeshId : " << _mesh_id << " ArrayId : " << _array_id;
 }
 
-MEDCouplingDefinitionTimeSlice::MEDCouplingDefinitionTimeSlice(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception):_mesh_id(meshId),_array_id(arrId),_field_id(fieldId)
+MEDCouplingDefinitionTimeSlice::MEDCouplingDefinitionTimeSlice(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId):_mesh_id(meshId),_array_id(arrId),_field_id(fieldId)
 {
   int tmp1,tmp2;
   double t1=f->getStartTime(tmp1,tmp2);
@@ -108,6 +109,16 @@ MEDCouplingDefinitionTimeSlice::MEDCouplingDefinitionTimeSlice(const MEDCoupling
     throw INTERP_KERNEL::Exception("MEDCouplingDefinitionTimeSlice : End time strictly before Start time ...");
 }
 
+std::size_t MEDCouplingDefinitionTimeSlice::getHeapMemorySizeWithoutChildren() const
+{
+  return 0;
+}
+
+std::vector<const BigMemoryObject *> MEDCouplingDefinitionTimeSlice::getDirectChildren() const
+{
+  return std::vector<const BigMemoryObject *>();
+}
+
 bool MEDCouplingDefinitionTimeSlice::isFullyIncludedInMe(const MEDCouplingDefinitionTimeSlice *other, double eps) const
 {
   double t1=getStartTime();
@@ -189,7 +200,7 @@ void MEDCouplingDefinitionTimeSliceInst::getHotSpotsTime(std::vector<double>& re
   ret[0]=_instant;
 }
 
-void MEDCouplingDefinitionTimeSliceInst::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTimeSliceInst::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const
 {
   meshId=_mesh_id;
   arrId=_array_id;
@@ -218,7 +229,7 @@ double MEDCouplingDefinitionTimeSliceInst::getEndTime() const
   return _instant;
 }
 
-MEDCouplingDefinitionTimeSliceInst::MEDCouplingDefinitionTimeSliceInst(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId)
+MEDCouplingDefinitionTimeSliceInst::MEDCouplingDefinitionTimeSliceInst(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId)
 {
   int tmp1,tmp2;
   double t1=f->getStartTime(tmp1,tmp2);
@@ -259,7 +270,7 @@ void MEDCouplingDefinitionTimeSliceCstOnTI::getHotSpotsTime(std::vector<double>&
   ret[0]=(_start+_end)/2.;
 }
 
-void MEDCouplingDefinitionTimeSliceCstOnTI::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTimeSliceCstOnTI::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const
 {
   meshId=_mesh_id;
   arrId=_array_id;
@@ -307,7 +318,7 @@ TypeOfTimeDiscretization MEDCouplingDefinitionTimeSliceCstOnTI::getTimeType() co
   return CONST_ON_TIME_INTERVAL;
 }
 
-MEDCouplingDefinitionTimeSliceCstOnTI::MEDCouplingDefinitionTimeSliceCstOnTI(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId) throw(INTERP_KERNEL::Exception):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId)
+MEDCouplingDefinitionTimeSliceCstOnTI::MEDCouplingDefinitionTimeSliceCstOnTI(const MEDCouplingFieldDouble *f, int meshId, int arrId, int fieldId):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId)
 {
   int tmp1,tmp2;
   double t1=f->getStartTime(tmp1,tmp2);
@@ -349,7 +360,7 @@ void MEDCouplingDefinitionTimeSliceLT::getHotSpotsTime(std::vector<double>& ret)
   ret[1]=_end;
 }
 
-void MEDCouplingDefinitionTimeSliceLT::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTimeSliceLT::getIdsOnTime(double tm, double eps, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const
 {
   if(fabs(tm-_start)<eps)
     {
@@ -416,7 +427,7 @@ TypeOfTimeDiscretization MEDCouplingDefinitionTimeSliceLT::getTimeType() const
   return LINEAR_TIME;
 }
 
-MEDCouplingDefinitionTimeSliceLT::MEDCouplingDefinitionTimeSliceLT(const MEDCouplingFieldDouble *f, int meshId, int arrId, int arr2Id, int fieldId) throw(INTERP_KERNEL::Exception):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId),_array_id_end(arr2Id)
+MEDCouplingDefinitionTimeSliceLT::MEDCouplingDefinitionTimeSliceLT(const MEDCouplingFieldDouble *f, int meshId, int arrId, int arr2Id, int fieldId):MEDCouplingDefinitionTimeSlice(f,meshId,arrId,fieldId),_array_id_end(arr2Id)
 {
   int tmp1,tmp2;
   double t1=f->getStartTime(tmp1,tmp2);
@@ -429,7 +440,7 @@ MEDCouplingDefinitionTime::MEDCouplingDefinitionTime():_eps(EPS_DFT)
 {
 }
 
-MEDCouplingDefinitionTime::MEDCouplingDefinitionTime(const std::vector<const MEDCouplingFieldDouble *>& fs, const std::vector<int>& meshRefs, const std::vector<std::vector<int> >& arrRefs) throw(INTERP_KERNEL::Exception)
+MEDCouplingDefinitionTime::MEDCouplingDefinitionTime(const std::vector<const MEDCouplingFieldDouble *>& fs, const std::vector<int>& meshRefs, const std::vector<std::vector<int> >& arrRefs)
 {
   std::size_t sz=fs.size();
   if(sz!=arrRefs.size())
@@ -458,6 +469,16 @@ MEDCouplingDefinitionTime::MEDCouplingDefinitionTime(const std::vector<const MED
     }
 }
 
+std::size_t MEDCouplingDefinitionTime::getHeapMemorySizeWithoutChildren() const
+{
+  return _slices.capacity()*(sizeof(MEDCouplingDefinitionTimeSlice)+sizeof(int));
+}
+
+std::vector<const BigMemoryObject *> MEDCouplingDefinitionTime::getDirectChildren() const
+{
+  return std::vector<const BigMemoryObject *>();
+}
+
 void MEDCouplingDefinitionTime::assign(const MEDCouplingDefinitionTime& other)
 {
   std::size_t sz=other._slices.size();
@@ -477,7 +498,7 @@ bool MEDCouplingDefinitionTime::isEqual(const MEDCouplingDefinitionTime& other)
   return true;
 }
 
-void MEDCouplingDefinitionTime::getIdsOnTimeRight(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTime::getIdsOnTimeRight(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const
 {
   std::vector<int> meshIds;
   std::vector<int> arrIds;
@@ -490,7 +511,7 @@ void MEDCouplingDefinitionTime::getIdsOnTimeRight(double tm, int& meshId, int& a
   fieldId=fieldIds.back();
 }
 
-void MEDCouplingDefinitionTime::getIdsOnTimeLeft(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTime::getIdsOnTimeLeft(double tm, int& meshId, int& arrId, int& arrIdInField, int& fieldId) const
 {
   std::vector<int> meshIds;
   std::vector<int> arrIds;
@@ -503,7 +524,7 @@ void MEDCouplingDefinitionTime::getIdsOnTimeLeft(double tm, int& meshId, int& ar
   fieldId=fieldIds.front();
 }
 
-void MEDCouplingDefinitionTime::getIdsOnTime(double tm, std::vector<int>& meshIds, std::vector<int>& arrIds, std::vector<int>& arrIdsInField, std::vector<int>& fieldIds) const throw(INTERP_KERNEL::Exception)
+void MEDCouplingDefinitionTime::getIdsOnTime(double tm, std::vector<int>& meshIds, std::vector<int>& arrIds, std::vector<int>& arrIdsInField, std::vector<int>& fieldIds) const
 {
   std::vector<int> ids;
   int id=0;