4 # include "MEDMEM_Med.hxx"
5 # include "MEDMEM_DriverFactory.hxx"
6 # include "MEDMEM_STRING.hxx"
8 # include "MEDMEM_Mesh.hxx"
9 # include "MEDMEM_Grid.hxx"
10 # include "MEDMEM_Field.hxx"
11 # include "MEDMEM_Group.hxx"
12 # include "MEDMEM_Family.hxx"
14 # include "MEDMEM_Exception.hxx"
15 # include "utilities.h"
18 using namespace MEDMEM;
19 using namespace MED_EN;
27 MESSAGE("MED::MED()");
33 MED::MED(driverTypes driverType, const string & fileName)
35 const char * LOC = "MED::MED(driverTypes driverType, const string & fileName) : ";
38 MESSAGE(LOC << "driverType = " << driverType);
40 int current = addDriver(driverType,fileName,MED_LECT);
42 _drivers[current]->open();
43 _drivers[current]->readFileStruct();
44 _drivers[current]->close();
54 const char * LOC = "MED::~MED() : ";
57 // Analysis of the object MED
61 map<FIELD_ *, MESH_NAME_>::const_iterator currentField;
63 for ( currentField=_meshName.begin();currentField != _meshName.end(); currentField++ ) {
64 if ( (*currentField).first != NULL) index++;
67 MESSAGE(LOC << " there is(are) " << index << " field(s):");
68 for ( currentField=_meshName.begin();currentField != _meshName.end(); currentField++ ) {
69 if ( (*currentField).first != NULL) MESSAGE(" " << ((*currentField).first)->getName().c_str());
72 map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::iterator itSupportOnMesh ;
74 for ( itSupportOnMesh=_support.begin();itSupportOnMesh != _support.end(); itSupportOnMesh++ ) {
75 map<MED_EN::medEntityMesh,SUPPORT *>::iterator itSupport ;
76 for ( itSupport=(*itSupportOnMesh).second.begin();itSupport!=(*itSupportOnMesh).second.end();itSupport++)
80 MESSAGE(LOC << " there is(are) " << index << " support(s):");
82 map<MESH_NAME_,MESH*>::const_iterator currentMesh;
84 for ( currentMesh=_meshes.begin();currentMesh != _meshes.end(); currentMesh++ ) {
85 if ( (*currentMesh).second != NULL)
89 MESSAGE(LOC << " there is(are) " << index << " meshe(s):");
90 // for ( currentMesh=_meshes.begin();currentMesh != _meshes.end(); currentMesh++ ) {
91 // if ( (*currentMesh).second != NULL)
93 // SCRUTE((*currentMesh).second);
95 // string meshName = ((*currentMesh).second)->getName();
97 // MESSAGE(" " << meshName);
101 // delete all ? : PG : YES !
102 // map<FIELD_ *, MESH_NAME_>::const_iterator currentField;
103 for ( currentField=_meshName.begin();currentField != _meshName.end(); currentField++ ) {
104 if ( (*currentField).first != NULL) {
105 // cast in right type to delete it !
106 switch ((*currentField).first->getValueType()) {
108 delete (FIELD<int>*) (*currentField).first ;
111 delete (FIELD<double>*) (*currentField).first ;
114 MESSAGE(LOC << "Field has type different of int or double, could not destroy its values array !") ;
115 delete (*currentField).first;
119 // map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::iterator itSupportOnMesh ;
120 for ( itSupportOnMesh=_support.begin();itSupportOnMesh != _support.end(); itSupportOnMesh++ ) {
121 map<MED_EN::medEntityMesh,SUPPORT *>::iterator itSupport ;
122 for ( itSupport=(*itSupportOnMesh).second.begin();itSupport!=(*itSupportOnMesh).second.end();itSupport++)
123 if (! dynamic_cast<GROUP*>( (*itSupport).second ) &&
124 ! dynamic_cast<FAMILY*>( (*itSupport).second ) )
125 delete (*itSupport).second ;
128 // map<MESH_NAME_,MESH*>::const_iterator currentMesh;
129 for ( currentMesh=_meshes.begin();currentMesh != _meshes.end(); currentMesh++ ) {
130 if ( (*currentMesh).second != NULL)
132 if (!((*currentMesh).second)->getIsAGrid())
133 delete (*currentMesh).second;
135 delete (GRID *) (*currentMesh).second;
139 index =_drivers.size();
141 MESSAGE(LOC << "In this object MED there is(are) " << index << " driver(s):");
143 for (unsigned int ind=0; ind < _drivers.size(); ind++ )
145 SCRUTE(_drivers[ind]);
146 if ( _drivers[ind] != NULL) delete _drivers[ind];
156 Create the specified driver and return its index reference to path to
157 read or write methods.
159 int MED::addDriver(driverTypes driverType,
160 const string & fileName="Default File Name.med",
161 MED_EN::med_mode_acces access) {
163 const char * LOC = "MED::addDriver(driverTypes driverType, const string & fileName=\"Default File Name.med\") : ";
167 MESSAGE(LOC << " the file name is " << fileName);
172 GENDRIVER *driver = DRIVERFACTORY::buildDriverForMed(driverType,fileName,
175 _drivers.push_back(driver);
177 int current = _drivers.size()-1;
179 driver->setId(current);
187 Duplicate the given driver and return its index reference to path to
188 read or write methods.
190 int MED::addDriver(GENDRIVER & driver) {
191 const char * LOC = "MED::addDriver(GENDRIVER &) : ";
196 SCRUTE(_drivers.size());
198 _drivers.push_back(&driver);
200 SCRUTE(_drivers.size());
205 current = _drivers.size()-1;
207 driver.setId(current);
216 Remove the driver referenced by its index.
218 void MED::rmDriver (int index/*=0*/)
219 throw (MED_EXCEPTION)
221 const char * LOC = "MED::rmDriver (int index=0): ";
225 //_drivers.erase(&_drivers[index]);
228 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
229 << "The index given is invalid, index must be between 0 and |"
237 ??? to do comment ???
239 void MED::writeFrom (int index/*=0*/)
240 throw (MED_EXCEPTION)
242 const char * LOC = "MED::write (int index=0): ";
245 if (_drivers[index]) {
246 // open and close are made by all objects !
247 _drivers[index]->writeFrom();
249 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
250 << "The index given is invalid, index must be between 0 and |"
258 Write all objects with the driver given by its index.
260 void MED::write (int index/*=0*/)
261 throw (MED_EXCEPTION)
263 const char * LOC = "MED::write (int index=0): ";
266 if (_drivers[index]) {
267 // open and close are made by the subsequent objects !
268 _drivers[index]->write();
271 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
272 << "The index given is invalid, index must be between 0 and |"
280 Parse all the file and generate empty object.
282 All object must be read explicitly later with their own method read
283 or use MED::read to read all.
285 This method is automaticaly call by constructor with driver information.
287 void MED::readFileStruct (int index/*=0*/)
288 throw (MED_EXCEPTION)
290 const char * LOC = "MED::readFileStruct (int index=0): ";
293 if (_drivers[index]) {
294 _drivers[index]->open();
295 _drivers[index]->readFileStruct();
296 _drivers[index]->close();
299 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
300 << "The index given is invalid, index must be between 0 and |"
307 Read all objects in the file specified in the driver given by its index.
309 void MED::read (int index/*=0*/)
310 throw (MED_EXCEPTION)
312 const char * LOC = "MED::read (int index=0): ";
315 if (_drivers[index]) {
316 // open and close are made by all objects !
318 SCRUTE(_drivers[index]);
319 SCRUTE(&_drivers[index]);
320 // _drivers[index]->open();
321 _drivers[index]->read();
322 // _drivers[index]->close();
325 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
326 << "The index given is invalid, index must be between >0 and < |"
334 // ------- End Of Drivers Management Part
337 Get the number of MESH objects.
339 int MED::getNumberOfMeshes ( void ) const {
341 const char * LOC = "MED::getNumberOfMeshes ( void ) const : ";
344 return _meshes.size();
348 Get the number of FIELD objects.
350 int MED::getNumberOfFields ( void ) const {
352 const char * LOC = "MED::getNumberOfFields ( void ) const : ";
355 return _fields.size(); // we get number of field with different name
359 Get the names of all MESH objects.
361 meshNames is an in/out argument.
363 It is a string array of size the
364 number of MESH objects. It must be allocated before calling
365 this method. All names are put in it.
367 void MED::getMeshNames ( string * meshNames ) const
368 throw (MED_EXCEPTION)
370 const char * LOC = "MED::getMeshNames ( string * ) const : ";
372 unsigned int meshNamesSize;
374 if ( ( meshNamesSize = sizeof(meshNames) / sizeof(string *) )
376 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
377 << "Size of parameter meshNames is |"
378 << meshNamesSize << "| and should be |"
379 << _meshes.size() << "| and should be |"
383 // REM : ALLOCATION D'UN TABLEAU DE POINTEURS SUR STRING FAITE PAR LE CLIENT
384 map<MESH_NAME_,MESH*>::const_iterator currentMesh; // ??ITERATEUR CONST SUR UN OBJET NON CONST ??
386 int meshNamesIndex = 0;
388 for ( currentMesh=_meshes.begin();currentMesh != _meshes.end(); currentMesh++ ) {
389 meshNames[meshNamesIndex]=(*currentMesh).first;
390 meshNamesIndex++; // CF OPTIMISATION
397 Get the names of all MESH objects.
399 Return a deque<string> object which contain the name of all MESH objects.
401 deque<string> MED::getMeshNames () const {
403 const char * LOC = "MED::getMeshNames () const : ";
406 deque<string> meshNames(_meshes.size());
408 map<MESH_NAME_,MESH*>::const_iterator currentMesh; // ??ITERATEUR CONST SUR UN OBJET NON CONST ??
410 int meshNamesIndex = 0;
412 for ( currentMesh=_meshes.begin();currentMesh != _meshes.end(); currentMesh++ ) {
413 meshNames[meshNamesIndex]=(*currentMesh).first;
414 meshNamesIndex++; // CF OPTIMISATION
423 Return a reference to the MESH object named meshName.
425 MESH * MED::getMesh ( const string & meshName ) const
426 throw (MED_EXCEPTION)
429 const char * LOC = "MED::getMesh ( const string & meshName ) const : ";
432 map<MESH_NAME_,MESH*>::const_iterator itMeshes = _meshes.find(meshName);
434 if ( itMeshes == _meshes.end() )
435 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
436 << "There is no known mesh named |"
441 return (*itMeshes).second;
447 \internal Return a reference to the MESH object associated with
450 MESH * MED::getMesh (const FIELD_ * const field ) const
451 throw (MED_EXCEPTION)
454 const char * LOC = "MED::getMesh ( const FIELD * field ) const : ";
457 FIELD_ * f = const_cast< FIELD_* > (field); // Comment faire mieux ?
458 map<FIELD_ *, MESH_NAME_>::const_iterator itMeshName = _meshName.find(f);
460 if ( itMeshName == _meshName.end() )
461 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
462 << "There is no known mesh associated with |"
463 << field << "| pointer"
467 string meshName = (*itMeshName).second;
468 map<MESH_NAME_,MESH*>::const_iterator itMeshes = _meshes.find(meshName);
469 if ( itMeshes == _meshes.end() )
470 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
471 << "There is no known mesh named |"
472 << meshName << " while it's associated with the found field |"
473 << field << "| pointer"
477 return (*itMeshes).second;
484 Get the names of all FIELD objects.
486 fieldNames is an in/out argument.
488 It is an array of string of size the
489 number of FIELD objects. It must be allocated before calling
490 this method. All names are put in it.
492 void MED::getFieldNames ( string * fieldNames ) const
493 throw (MED_EXCEPTION)
495 const char * LOC = "MED::getFieldNames ( string * ) const : ";
498 // unsigned int fieldNamesSize = sizeof(fieldNames) / sizeof(string *);
500 // if ( fieldNamesSize != _fields.size() )
501 // throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
502 // << "Size of parameter fieldNames is |"
503 // << fieldNamesSize << "| and should be |"
504 // << _fields.size() << "| and should be |"
508 // REM : ALLOCATION D'UN TABLEAU DE POINTEURS SUR STRING FAITE PAR LE CLIENT
509 map<FIELD_NAME_,MAP_DT_IT_>::const_iterator currentField;
511 int fieldNamesIndex = 0;
512 for ( currentField=_fields.begin();currentField != _fields.end(); currentField++ ) {
513 fieldNames[fieldNamesIndex]=(*currentField).first;
514 fieldNamesIndex++; // CF OPTIMISATION
522 Get the names of all FIELD objects.
524 Return a deque<string> object which contain the name of all FIELD objects.
526 deque<string> MED::getFieldNames () const {
528 const char * LOC = "MED::getFieldNames ( ) const : ";
531 deque<string> fieldNames(_fields.size());
533 map<FIELD_NAME_,MAP_DT_IT_>::const_iterator currentField;
535 int fieldNamesIndex = 0;
537 for ( currentField=_fields.begin();currentField != _fields.end(); currentField++ ) {
538 fieldNames[fieldNamesIndex]=(*currentField).first;
539 fieldNamesIndex++; // CF OPTIMISATION
547 Return a deque<DT_IT_> which contain all iteration step for the FIELD
548 identified by its name.
550 deque<DT_IT_> MED::getFieldIteration (const string & fieldName) const
551 throw (MED_EXCEPTION)
554 const char * LOC = "MED::getFieldIteration ( const string & ) const : ";
557 map<FIELD_NAME_,MAP_DT_IT_>::const_iterator itFields = _fields.find(fieldName);
559 if ( itFields == _fields.end() )
560 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
561 << "There is no known field named |"
565 // const MAP_DT_IT_ & myIterationMap = const_cast<const MAP_DT_IT_ & > ((*itFields).second);
566 const MAP_DT_IT_ & myIterationMap = (*itFields).second ;
567 MAP_DT_IT_::const_iterator currentIterator ;
569 int iterationSize = myIterationMap.size();
571 SCRUTE(iterationSize);
573 deque<DT_IT_> Iteration(iterationSize);
575 int iterationIndex = 0;
577 for (currentIterator = myIterationMap.begin();
578 currentIterator != myIterationMap.end(); currentIterator++ )
580 SCRUTE(((*currentIterator).first).dt);
581 SCRUTE(((*currentIterator).first).it);
583 Iteration[iterationIndex].dt = ((*currentIterator).first).dt;
584 Iteration[iterationIndex].it = ((*currentIterator).first).it;
586 // Iteration[iterationIndex]=(*currentIterator).first;
587 SCRUTE(Iteration[iterationIndex].dt);
588 SCRUTE(Iteration[iterationIndex].it);
589 iterationIndex++; // CF OPTIMISATION
597 Return a reference to the FIELD object named fieldName with
598 time step number dt and order number it.
600 FIELD_ * MED::getField ( const string & fieldName, const int dt=MED_NOPDT, const int it=MED_NOPDT ) const
601 throw (MED_EXCEPTION)
604 const char * LOC = "MED::getField ( const string &, const int, const int ) const : ";
607 MESSAGE(LOC << "fieldName = "<<fieldName<<", dt ="<<dt<<", it = "<<it);
614 map<FIELD_NAME_,MAP_DT_IT_>::const_iterator itFields = _fields.find(fieldName);
616 if ( itFields == _fields.end() )
617 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
618 << "There is no known field named |"
623 const MAP_DT_IT_ & map_dtIt = const_cast<const MAP_DT_IT_ & > ((*itFields).second);
624 MAP_DT_IT_::const_iterator itMap_dtIt = map_dtIt.find(dtIt);
626 if ( itMap_dtIt == map_dtIt.end() )
627 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
628 << "There is no (dt,it) |("
629 << dt << "," << it << ")| associated with the found field |"
636 //return _fields[fieldName][dtIt];
637 return (*itMap_dtIt).second;
642 Return a reference to the FIELD object named fieldName with
643 time and iteration nb it.
645 FIELD_ *MED::getField2(const string & fieldName, double time, int it) const throw (MEDEXCEPTION)
647 const char * LOC = "MED::getField2 ( const string &, const int, const int ) const : ";
648 const double eps=1e-9;
649 map<FIELD_NAME_,MAP_DT_IT_>::const_iterator itFields=_fields.find(fieldName);
650 if ( itFields == _fields.end() )
651 throw MED_EXCEPTION (LOCALIZED( STRING(LOC) << "There is no known field named |" << fieldName << "|"));
652 MAP_DT_IT_::const_iterator iters=(*itFields).second.begin();
655 for(;iters!=(*itFields).second.end() && !found;iters++)
656 if(fabs((*iters).second->getTime()-time)<eps)
657 //if(it==(*iters).first.it)
663 throw MED_EXCEPTION(LOCALIZED( STRING(LOC) << "There is no known field existing at specified time and iteration !!! "));
668 // fiend ostream & MED::operator<<(ostream &os,const MED & med) const {
673 Return a map<MED_EN::medEntityMesh,SUPPORT*> which contain
674 foreach entity, a reference to the SUPPORT on all elements.
676 const map<MED_EN::medEntityMesh,SUPPORT*> & MED::getSupports(const string & meshName) const
677 throw (MED_EXCEPTION)
679 const char * LOC = "MED::getSupports ( const string ) const : ";
682 map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::const_iterator itSupportOnMesh = _support.find(meshName) ;
684 if ( itSupportOnMesh == _support.end() )
685 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
686 << "There is no support on mesh named |"
691 return (*itSupportOnMesh).second ;
695 Return a reference to the SUPPORT object on all elements of entity
696 for the MESH named meshName.
698 SUPPORT * MED::getSupport (const string & meshName,MED_EN::medEntityMesh entity) const
699 throw (MED_EXCEPTION)
701 const char * LOC = "MED::getSupport ( const string, MED_EN::medEntityMesh ) const : ";
705 for (map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::const_iterator const_itSupportOnMesh=_support.begin(); const_itSupportOnMesh != _support.end();
706 const_itSupportOnMesh++ )
708 map<MED_EN::medEntityMesh,SUPPORT *>::const_iterator const_itSupport ;
709 for (const_itSupport=(*const_itSupportOnMesh).second.begin();
710 const_itSupport!=(*const_itSupportOnMesh).second.end();const_itSupport++) index++;
713 MESSAGE(LOC << "In this MED object there is(are) " << index << " support(s):");
715 for (map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::const_iterator const_itSupportOnMesh=_support.begin();const_itSupportOnMesh != _support.end(); const_itSupportOnMesh++ )
717 map<MED_EN::medEntityMesh,SUPPORT *>::const_iterator const_itSupport ;
718 for (const_itSupport=(*const_itSupportOnMesh).second.begin();
719 const_itSupport!=(*const_itSupportOnMesh).second.end();const_itSupport++)
721 MESSAGE(LOC << "Support on mesh " << (*const_itSupportOnMesh).first << " on entity " << (*const_itSupport).first << " : " << *((*const_itSupport).second));
726 map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::const_iterator const_itSupportOnMesh = _support.find(meshName) ;
728 if ( const_itSupportOnMesh == _support.end() )
729 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
730 << "There is no support on mesh named |"
735 // map<MED_EN::medEntityMesh,SUPPORT *> & SupportOnMesh = (map<MED_EN::medEntityMesh,SUPPORT *>&) ((*itSupportOnMesh).second) ;
736 // map<MED_EN::medEntityMesh,SUPPORT *>::const_iterator itSupport = SupportOnMesh.find(entity) ;
738 // if (itSupport == SupportOnMesh.end() )
739 // throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
740 // << "There is no support on entity "
741 // << entity << " in mesh named |"
742 // << meshName << "|"
747 map<MED_EN::medEntityMesh,SUPPORT *> SupportOnMesh = ((*const_itSupportOnMesh).second);
749 map<MED_EN::medEntityMesh,SUPPORT *>::const_iterator itSupport = SupportOnMesh.find(entity) ;
751 if (itSupport == SupportOnMesh.end() )
752 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC)
753 << "There is no support on entity "
754 << entity << " in mesh named |"
759 return (*itSupport).second ;
763 Temporary method : when all MESH objects are read, this methods
764 update all SUPPORT objects with the rigth dimension.
766 void MED::updateSupport ()
769 const char * LOC = "MED::updateSupport () : ";
772 map<MESH_NAME_, map<MED_EN::medEntityMesh,SUPPORT *> >::iterator itSupportOnMesh ;
773 for ( itSupportOnMesh=_support.begin();itSupportOnMesh != _support.end(); itSupportOnMesh++ ) {
774 map<MED_EN::medEntityMesh,SUPPORT *>::iterator itSupport ;
775 for ( itSupport=(*itSupportOnMesh).second.begin();itSupport!=(*itSupportOnMesh).second.end();itSupport++)
777 (*itSupport).second->update() ;
779 catch (MEDEXCEPTION & ex) {
780 // entity not defined in mesh -> we remove support on it !
781 MESSAGE(LOC<<ex.what());
782 delete (*itSupport).second ;
783 (*itSupportOnMesh).second.erase(itSupport) ; // that's rigth ????
792 Add the given MESH object. MED object control it,
793 and destroy it, so you must not destroy it after.
795 The meshName is given by the MESH object.
797 void MED::addMesh( MESH * const ptrMesh)
798 throw (MED_EXCEPTION)
800 const char * LOC = "MED::addMesh(const MESH * ptrMesh): ";
804 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrMesh must not be NULL !"));
807 if ( ! ( meshName = ptrMesh->getName()).size() )
808 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrMesh->_name must not be NULL !"));
810 // MESH * meshToMed = new MESH(*ptrMesh); DO WE HAVE TO COPY THE ENTRY MESH OR NOT ????? (NB)
812 _meshes[meshName] = ptrMesh; // if ptrMesh->meshName already exists it is modified
814 // _meshes[meshName] = meshToMed;
820 Add the given FIELD object. MED object control it,
821 and destroy it, so you must not destroy it after.
823 The fieldName is given by the FIELD object.
825 void MED::addField( FIELD_ * const ptrField)
826 throw (MED_EXCEPTION)
828 const char * LOC = "MED::addField(const FIELD_ * const ptrField): ";
832 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrField must not be NULL !"));
835 if ( ! (fieldName = ptrField->getName()).size() )
836 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrField->_name must not be NULL !"));
838 SUPPORT * ptrSupport;
839 if ( ! ( ptrSupport = (SUPPORT * ) ptrField->getSupport()) )
840 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrField->_support must not be NULL !"));
843 if ( ! ( ptrMesh = ptrSupport->getMesh()) )
844 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrField->_support->_mesh must not be NULL !"));
847 if ( ! ( meshName = ptrMesh->getName()).size() )
848 throw MED_EXCEPTION ( LOCALIZED( STRING(LOC) << "ptrField->_support->_mesh->_name must not be NULL !"));
851 dtIt.dt = ptrField->getIterationNumber();
852 dtIt.it = ptrField->getOrderNumber();
854 _fields [fieldName][dtIt] = ptrField; // if it already exists it is replaced
855 _meshName [ptrField] = meshName; // if it already exists it is replaced
856 _meshes [meshName] = ptrMesh; // if it already exists it is replaced
858 // int numberOfTypes = ptrSupport->getNumberOfTypes(); !! UNUSED VARIABLE !!
859 _support [meshName][ptrSupport->getEntity()] = ptrSupport;// if it already exists it is replaced