ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/aster/src/mgaster.cpp
Revision: 326
Committed: Mon Mar 12 15:34:00 2012 UTC (13 years, 2 months ago) by francois
Original Path: magic/lib/optimisation/src/mgaster.cpp
File size: 1579 byte(s)
Log Message:
integration du calcul par code aster dans magic. Seul les volumes sont faits

File Contents

# User Rev Content
1 francois 326 #include "gestionversion.h"
2     #include "mgaster.h"
3     #include "fem_maillage.h"
4     #include "mg_gestionnaire.h"
5     #include "mg_export.h"
6     #include "mg_import.h"
7    
8    
9    
10    
11    
12    
13    
14    
15    
16    
17     MGASTER::MGASTER()
18     {
19    
20     }
21    
22     MGASTER::MGASTER(MGASTER &mdd)
23     {
24     }
25    
26    
27     MGASTER::~MGASTER()
28     {
29     }
30    
31     void MGASTER::active_affichage(void (*fonc)(char*))
32     {
33     affiche=fonc;
34     affichageactif=1;
35     }
36    
37     void MGASTER::calcule_volume(FEM_MAILLAGE* fem,char *nometude,char *code)
38     {
39     affiche((char*)"");
40     affiche((char*)"*************************");
41     affiche((char*)" Calcul par code aster");
42     affiche((char*)"*************************");
43     affiche((char*)"");
44     affiche((char*)"");
45     affiche((char*)"");
46     FEM_ELEMENT3 *ele=fem->get_fem_element3(0);
47     MG_VOLUME* vol=(MG_VOLUME*)ele->get_mg_element_maillage()->get_lien_topologie();
48     MG_EXPORT exp;
49     if (code!=NULL) exp.aster(vol,fem,nometude,0,code);
50     else exp.aster(vol,fem,nometude,0,(char*)"00011111");
51     affiche((char*)" Calcul aster");
52     char nomfichiertmp[255];
53     sprintf(nomfichiertmp,"%s/as_run %s.export 1>aster.log 2>&1",getenv("PATHASTER"),nometude);
54     int codesortie=system(nomfichiertmp);
55     if (codesortie!=0)
56     {
57     sprintf(nomfichiertmp," Code de sortie aster : %d",codesortie);
58     affiche(nomfichiertmp);
59     }
60     affiche((char*)" Recuperation des resultats");
61     MG_IMPORT imp;
62     sprintf(nomfichiertmp,"%s.resu",nometude);
63     imp.aster(fem,nomfichiertmp,nometude);
64     affiche((char*)" Enregistrement MAGIC");
65     sprintf(nomfichiertmp,"%s.magic",nometude);
66     fem->get_mg_maillage()->get_gestionnaire()->enregistrer(nomfichiertmp);
67     affiche((char*)" Enregistrement GMSH");
68     exp.gmsh(fem,nometude);
69     }