-// Copyright (C) 2007-2013 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
std::string _name;
std::vector<const Cell*> _cells;
std::vector< Group* > _groups; // des sous-groupes composant le Group
- //bool _isShared; // true if any Cell was added to the mesh from other Group
bool _isProfile; // is a field support or not
std::vector<std::string> _refNames; /* names of groups referring this one;
_refNames is resized according to nb of references
void setData( int nb_comp, Group* supp )
{ _support = supp; _comp_names.resize(nb_comp); _nb_gauss.resize(nb_comp,1); }
- int nbComponents() const { return _comp_names.size(); }
+ int nbComponents() const { return _comp_names.size(); }
std::string & compName( int i_comp ) { return _comp_names[ i_comp ]; }
- bool isValidNbGauss() const { return *std::max_element( _nb_gauss.begin(), _nb_gauss.end() ) ==
+ bool isSameNbGauss() const { return *std::max_element( _nb_gauss.begin(), _nb_gauss.end() ) ==
*std::min_element( _nb_gauss.begin(), _nb_gauss.end() ); }
- int nbGauss() const { return _nb_gauss[0] ? _nb_gauss[0] : 1; }
+ int nbGauss() const { return _nb_gauss[0] ? _nb_gauss[0] : 1; }
bool hasGauss() const { return nbGauss() > 1; }
};
// ----------------------------------------------------------------------------
bool hasSameComponentsBySupport() const;
bool isMultiTimeStamps() const;
- bool isMedCompatible() const;
+ bool isMedCompatible(bool& sameNbGauss) const;
ParaMEDMEM::TypeOfField getMedType( const int iSub=0 ) const;
ParaMEDMEM::TypeOfTimeDiscretization getMedTimeDisc() const;
int getNbTuples( const int iSub=0 ) const;
int getNbGauss( const int iSub=0 ) const;
const Group* getSupport( const int iSub=0 ) const;
int setValues( double * valPtr, const int iSub, const int elemShift=0 ) const;
+ void splitSubWithDiffNbGauss();
//virtual void dump(std::ostream&) const;
//virtual ~DoubleField() {}
Node* getNode( TID nID ) { return _points.getNode( nID ); }
int getNbCellsOfType( TCellType type ) const { return _cellsByType[type].size(); }
const Cell* insert(TCellType type, const Cell& ma) { return &( *_cellsByType[type].insert( ma ).first ); }
+ Group* addNewGroup(std::vector<SauvUtilities::Group*>* groupsToFix=0);
ParaMEDMEM::MEDFileData* convertInMEDFileDS();
private: