1 #include "MEDMEM_TypeMeshDriver.hxx"
2 #include "MEDMEM_DriversDef.hxx"
4 #include "MEDMEM_Family.hxx"
5 #include "MEDMEM_Group.hxx"
6 #include "MEDMEM_Coordinate.hxx"
7 #include "MEDMEM_Connectivity.hxx"
8 #include "MEDMEM_Mesh.hxx"
9 #include "MEDMEM_CellModel.hxx"
12 using namespace MEDMEM;
14 // Every memory allocation made in the MedDriver members function are desallocated in the Mesh destructor
16 TYPE_MESH_DRIVER::TYPE_MESH_DRIVER():
18 _ptrMesh(( MESH *)MED_NULL),
19 // A VOIR _medIdt(MED_INVALID),
24 TYPE_MESH_DRIVER::TYPE_MESH_DRIVER(const string & fileName,
26 MED_EN::med_mode_acces accessMode):
27 GENDRIVER(fileName,accessMode),
29 // A VOIR _medIdt(MED_INVALID),
34 TYPE_MESH_DRIVER::TYPE_MESH_DRIVER(const TYPE_MESH_DRIVER & driver):
36 _ptrMesh(driver._ptrMesh),
37 // A VOIR _medIdt(MED_INVALID),
38 _meshName(driver._meshName)
42 TYPE_MESH_DRIVER::~TYPE_MESH_DRIVER()
46 void TYPE_MESH_DRIVER::open()
49 const char * LOC = "TYPE_MESH_DRIVER::open()" ;
53 // _status = MED_OPENED;
55 // _medIdt = MED_INVALID;
56 // _status = MED_CLOSED;
57 // throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<" Could not open file "<<_fileName<<" in mode "<<_accessMode));
63 void TYPE_MESH_DRIVER::close()
66 const char * LOC = "TYPE_MESH_DRIVER::close() " ;
70 // if ( _status == MED_OPENED) {
71 // err=MED_FR::MEDfermer(_medIdt);
72 // H5close(); // If we call H5close() all the files are closed.
74 // throw MEDEXCEPTION( LOCALIZED(STRING(LOC)
75 // <<" Error when closing file !"
78 // _status = MED_CLOSED;
79 // _medIdt = MED_INVALID;
85 void TYPE_MESH_DRIVER::setMeshName(const string & meshName) { _meshName = meshName; };
86 string TYPE_MESH_DRIVER::getMeshName() const { return _meshName; };
89 //---------------------------------- RDONLY PART -------------------------------------------------------------
91 TYPE_MESH_RDONLY_DRIVER::TYPE_MESH_RDONLY_DRIVER(): TYPE_MESH_DRIVER()
95 TYPE_MESH_RDONLY_DRIVER::TYPE_MESH_RDONLY_DRIVER(const string & fileName,
97 TYPE_MESH_DRIVER(fileName,ptrMesh,MED_RDONLY)
99 MESSAGE("TYPE_MESH_RDONLY_DRIVER::TYPE_MESH_RDONLY_DRIVER(const string & fileName, MESH * ptrMesh) has been created");
102 TYPE_MESH_RDONLY_DRIVER::TYPE_MESH_RDONLY_DRIVER(const TYPE_MESH_RDONLY_DRIVER & driver):
103 TYPE_MESH_DRIVER(driver)
107 TYPE_MESH_RDONLY_DRIVER::~TYPE_MESH_RDONLY_DRIVER()
109 //MESSAGE("TYPE_MESH_RDONLY_DRIVER::~TYPE_MESH_RDONLY_DRIVER() has been destroyed");
112 GENDRIVER * TYPE_MESH_RDONLY_DRIVER::copy(void) const
114 return new TYPE_MESH_RDONLY_DRIVER(*this);
117 void TYPE_MESH_RDONLY_DRIVER::read(void)
120 const char * LOC = "TYPE_MESH_RDONLY_DRIVER::read() : " ;
123 if (_status!=MED_OPENED)
124 throw MEDEXCEPTION(LOCALIZED(STRING(LOC) << "The _idt of file " << _fileName << " is : " << " (the file is not opened)." )) ;
126 _ptrMesh->_name = _meshName;
132 void TYPE_MESH_RDONLY_DRIVER::write( void ) const
135 throw MEDEXCEPTION("TYPE_MESH_RDONLY_DRIVER::write : Can't write with a RDONLY driver !");
139 /*--------------------- WRONLY PART -------------------------------*/
141 TYPE_MESH_WRONLY_DRIVER::TYPE_MESH_WRONLY_DRIVER():TYPE_MESH_DRIVER()
145 TYPE_MESH_WRONLY_DRIVER::TYPE_MESH_WRONLY_DRIVER(const string & fileName,
147 TYPE_MESH_DRIVER(fileName,ptrMesh,MED_WRONLY)
149 MESSAGE("TYPE_MESH_WRONLY_DRIVER::TYPE_MESH_WRONLY_DRIVER(const string & fileName, MESH * ptrMesh) has been created");
152 TYPE_MESH_WRONLY_DRIVER::TYPE_MESH_WRONLY_DRIVER(const TYPE_MESH_WRONLY_DRIVER & driver):
153 TYPE_MESH_DRIVER(driver)
157 TYPE_MESH_WRONLY_DRIVER::~TYPE_MESH_WRONLY_DRIVER()
159 //MESSAGE("TYPE_MESH_WRONLY_DRIVER::TYPE_MESH_WRONLY_DRIVER(const string & fileName, MESH * ptrMesh) has been destroyed");
162 GENDRIVER * TYPE_MESH_WRONLY_DRIVER::copy(void) const
164 return new TYPE_MESH_WRONLY_DRIVER(*this);
167 void TYPE_MESH_WRONLY_DRIVER::read (void)
170 throw MEDEXCEPTION("TYPE_MESH_WRONLY_DRIVER::read : Can't read with a WRONLY driver !");
173 void TYPE_MESH_WRONLY_DRIVER::write(void) const
176 const char * LOC = "void TYPE_MESH_WRONLY_DRIVER::write(void) const : ";
179 throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<< "Write Driver isn\'t implemented"));
186 /*--------------------- RDWR PART -------------------------------*/
188 TYPE_MESH_RDWR_DRIVER::TYPE_MESH_RDWR_DRIVER():TYPE_MESH_DRIVER()
192 TYPE_MESH_RDWR_DRIVER::TYPE_MESH_RDWR_DRIVER(const string & fileName,
194 TYPE_MESH_DRIVER(fileName,ptrMesh,MED_RDWR)
196 MESSAGE("TYPE_MESH_RDWR_DRIVER::TYPE_MESH_RDWR_DRIVER(const string & fileName, MESH * ptrMesh) has been created");
199 TYPE_MESH_RDWR_DRIVER::TYPE_MESH_RDWR_DRIVER(const TYPE_MESH_RDWR_DRIVER & driver):
200 TYPE_MESH_RDONLY_DRIVER::TYPE_MESH_DRIVER(driver)
204 TYPE_MESH_RDWR_DRIVER::~TYPE_MESH_RDWR_DRIVER() {
205 //MESSAGE("TYPE_MESH_RDWR_DRIVER::TYPE_MESH_RDWR_DRIVER(const string & fileName, MESH * ptrMesh) has been destroyed");
208 GENDRIVER * TYPE_MESH_RDWR_DRIVER::copy(void) const
210 return new TYPE_MESH_RDWR_DRIVER(*this);
213 void TYPE_MESH_RDWR_DRIVER::write(void) const
216 TYPE_MESH_WRONLY_DRIVER::write();
218 void TYPE_MESH_RDWR_DRIVER::read (void)
221 TYPE_MESH_RDONLY_DRIVER::read();