//************************************************************************ // --- Logiciel MEF++ // --- // --- Copyright 1996-2000 GIREF, Université Laval // --- TOUS DROITS RÉSERVÉS // --- ALL RIGHTS RESERVED // --- // --- Ce logiciel est couvert par la Loi sur le droit d'auteur. // --- L'utilisation, ou la modification de ce logiciel sous toutes ses // --- formes, que ce soit code source ou code compilé, à des fins // --- personnelles et non commerciales sont autorisées sans frais pour // --- autant que la présente notice de copyright ainsi que cette // --- permission apparaissent dans toutes les copies ainsi que dans la // --- documentation. // --- Le GIREF et l'Université Laval ne prétendent en aucune façon que // --- ce logiciel convient à un emploi quelconque. Celui-ci est // --- distribué sans aucune garantie implicite ou explicite. //************************************************************************ //******************************************************************** // Nom du fichier: conversionVU.cc // //******************************************************************** // Description: Programme servant a faire la conversion du // format GIREF vers VU. // //******************************************************************** #include "ChaineCar.h" #include "ChampGeoLin.h" #include "ChampScalConstElem.h" #include "ChampScalLin.h" #include "ChampScalQuad.h" #include "ChampTensO2SymLin.h" #include "ChampVect2DLin.h" #include "ChampVect2DQuad.h" #include "ChampVect3DLin.h" #include "ChampVect3DQuad.h" #include "ExportVU.h" #include "ExpressionAlgebrique.h" #include "fonctionsChaineCar.h" #include "InitialisationArgvArgc.h" #include "InitialisationTraitementSignal.h" #include "Maillage.h" #include "PETScInitialisation.h" #include "traducteurERMsg.h" #include #include #include using namespace std; ExportVU lExport; // pas de compression a priori car on va ajouter le temps dans le fichier template void importeChamp(PTTypeChamp& pChamp,std::ifstream& pFichier,ChaineCar& pNomDuChamp, ChaineCar& pNomDuFichier){ pChamp.asgnNom(pNomDuChamp); ERMsg lMsg = pChamp.importe(pFichier); if(lMsg) lExport.ajouteChamp(pChamp, pNomDuChamp); // if(lMsg) lMsg = lExport.exporteInfo(pNomDuFichier); } int main(int argc, char *argv[]) { /// //*********************************** //* BLOC: Initialisations générales * //*********************************** PETScInitialisation lPETScInit(&argc, &argv); sInitialisationArgvArgc.asgnArguments(argc, argv); initialiseTraitementSignal(); const vector lArgv = sInitialisationArgvArgc.reqArgv(); // On déclare une variable qui contiendra potentiellement un message d'erreur ERMsg lMsg = ERMsg(ERMsg::OK); // On recupere le GroupeProcessus associe a PETSC_COMM_WORLD const PAGroupeProcessus lGroupeGlobal = PETScInitialisation::reqPetscCommWorld(); // On déclare les variables qui seront extraites de la ligne de commande ChaineCar lNom; ChaineCar lTypeDeChamp1; ChaineCar lNomDuFichier1; ChaineCar lNomDuChamp1; std::ifstream lFichier1; ChaineCar lTypeDeChamp2; ChaineCar lNomDuFichier2; ChaineCar lNomDuChamp2; std::ifstream lFichier2; Entier lNombre(0); // Vérification des paramètres passés à la ligne de commande. const Entier lNbArg = lArgv.size(); if (lNbArg < 3 || lNbArg > 4) { ChaineCar lNomProgramme = sInitialisationArgvArgc.reqNomProgramme(); ChaineCar lMessageUsage = "USAGE: \n"; lMessageUsage += enleveCheminAccesFichier(lNomProgramme); lMessageUsage += " Prefixe_fichier_mail nombre_fichier"; lMsg.ajoute(ERMsg(ERMsg::ERREUR, lMessageUsage)); } else { lNom = lArgv[1]; lNomDuFichier1 = lArgv[1]; lNomDuChamp1 = "M"; lNomDuFichier2 = lArgv[1]; lNomDuChamp2 = "U"; lNombre = atoi(argv[2]); } // Lecture du Maillage Maillage lMail; if(lMsg) lMsg = lMail.importe(lNom); for (int i = 1; i