Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MESHCOLLECTIONDRIVER_HXX_
00020 #define MESHCOLLECTIONDRIVER_HXX_
00021
00022 #include "MEDSPLITTER.hxx"
00023
00024 namespace MEDSPLITTER
00025 {
00026 class MESHCollection;
00027 class ParaDomainSelector;
00028
00029 class MEDSPLITTER_EXPORT MESHCollectionDriver
00030 {
00031 public:
00032
00033 MESHCollectionDriver(MESHCollection*);
00034 virtual ~MESHCollectionDriver(){}
00035
00036 virtual int read(char*, ParaDomainSelector* sel=0)=0;
00037 int readSeq(char*,char*);
00038
00039 virtual void write(char*, ParaDomainSelector* sel=0)=0;
00040 virtual void readFields (vector <MEDMEM::FIELD<int> *>& filenames, char* fieldname,
00041 int itnumber, int ordernumber) =0;
00042 virtual void readFields (vector <MEDMEM::FIELD<double> *>& filenames, char* fieldname,
00043 int itnumber, int ordernumber) =0;
00044 virtual void writeFields(vector <MEDMEM::FIELD<int> *>& filenames, char* fieldname)=0;
00045 virtual void writeFields(vector <MEDMEM::FIELD<double> *>& filenames, char* fieldname)=0;
00046
00047 void readFileStruct(vector <string>& field_names,vector<int>& iternumber,vector <int>& ordernumber,vector <int> & types);
00048
00049 int getFieldType(const std::string& fieldname);
00050
00051
00052 void readLoc2GlobCellConnect(int idomain, const set<int>& loc_domains, ParaDomainSelector* ds,
00053 vector<int> & loc2glob_corr);
00054
00055 int readMeshDimension() const;
00056
00057 protected:
00058
00059 void readSubdomain(vector<int*>& cellglobal,
00060 vector<int*>& faceglobal,
00061 vector<int*>& nodeglobal, int idomain);
00062 void writeSubdomain(int idomain,int nbdomain, char*filename,
00063 ParaDomainSelector* domain_selector);
00064
00065 void writeElementJoint(medEntityMesh entity ,
00066 int icz,
00067 int idomain,
00068 int idistant,
00069 char* mesh_name,
00070 char* joint_name,
00071 med_2_3::med_idt fid );
00072 void jointSort(int* elems, int nbelems, bool is_first);
00073
00074
00075
00076 MESHCollection* _collection;
00077
00078 std::vector <std::string> _filename;
00079 std::vector <std::string> _meshname;
00080
00081 };
00082
00083 }
00084
00085
00086 #endif