89 strcpy(resultat,
"00011111");
91 if (code!=NULL) strcpy(resultat,code);
92 version=exp.
aster(geo,fem,nometude,typeetude,resultat);
98 sprintf(messagever,
" Calcul aster \033[1;32m%.1lf\033[1;33m ",version);
101 char fichier_mess[500];
102 strcpy(fichier_mess,nometude);
103 strcat(fichier_mess,(
char*)
".mess");
104 char fichier_resu[500];
105 strcpy(fichier_resu,nometude);
106 strcat(fichier_resu,(
char*)
".resu");
107 bool fichier_mess_existant=
false;
108 bool fichier_resu_existant=
false;
109 bool fichier_resu_vide=
false;
110 struct stat t_stat_mess;
111 struct stat t_stat_resu;
112 std::ifstream stream_fichier_mess;
113 stream_fichier_mess.open(fichier_mess, std::ifstream::in);
114 if(stream_fichier_mess.good())
116 fichier_mess_existant=
true;
117 stat(fichier_mess,&t_stat_mess);
118 stream_fichier_mess.close();
122 t_stat_mess.st_ctime=0;
124 std::ifstream stream_fichier_resu;
125 stream_fichier_resu.open(fichier_resu, std::ifstream::in);
126 if(stream_fichier_resu.good())
128 fichier_resu_existant=
true;
129 stat(fichier_mess,&t_stat_resu);
130 stream_fichier_resu.close();
134 t_stat_resu.st_ctime=0;
141 if(fichier_mess_existant)
143 struct stat t_stat_2;
144 stat(fichier_mess,&t_stat_2);
145 if(t_stat_2.st_ctime<=t_stat_mess.st_ctime)
146 fichier_mess_existant=
false;
150 stream_fichier_mess.open(fichier_mess, std::ifstream::in);
151 if(stream_fichier_mess.good())
152 fichier_mess_existant=
true;
153 else fichier_mess_existant=
false;
156 if(fichier_resu_existant)
158 struct stat t_stat_2;
159 stat(fichier_resu,&t_stat_2);
160 if(t_stat_2.st_ctime<=t_stat_resu.st_ctime)
161 fichier_resu_existant=
false;
162 if (t_stat_2.st_size<2)
164 fichier_resu_existant=
false;
165 fichier_resu_vide=
true;
170 stream_fichier_resu.open(fichier_resu, std::ifstream::in);
171 if(stream_fichier_resu.good())
172 fichier_resu_existant=
true;
173 else fichier_resu_existant=
false;
174 struct stat t_stat_2;
175 stat(fichier_resu,&t_stat_2);
176 if (t_stat_2.st_size<2)
178 fichier_resu_existant=
false;
179 fichier_resu_vide=
true;
182 sprintf(message,
" Retour aster : erreur = \033[1;31m%s \033[1;33m\n fichier mess = \033[1;31m%s \033[1;33m\n fichier resu = \033[1;31m%s \033[1;33m",codesortie==0 ?
"non" :
"oui",fichier_mess_existant ?
"oui" :
"non",fichier_resu_existant ?
"oui" : (fichier_resu_vide ?
"vide" :
"non"));
184 if ((fichier_mess_existant) && (codesortie!=0))
186 FILE *out=fopen(fichier_mess,
"rt");
192 fgets(chaine,255,out);
193 char* ptr1=strstr(chaine,
"Erreur");
194 char* ptr2=strstr(chaine,
"erreur");
195 char* ptr3=strstr(chaine,
"Error");
196 char* ptr4=strstr(chaine,
"error");
197 if ((ptr1!=NULL)||(ptr2!=NULL)||(ptr3!=NULL)||(ptr4!=NULL))
199 sprintf(message,
" Ligne \033[1;31m%d\033[1;33m : \033[1;31m%s\033[1;33m",i,chaine);
200 for (
int j=0;j<strlen(message);j++)
201 if (message[j]==
'\n') message[j]=
' ';
213 char nomfichiertmp[600];
215 sprintf(nomfichiertmp,
"%s.resu",nometude);
216 std::string
res=imp.
aster(base,fem,nomfichiertmp,nometude);
217 if (
affichageactif==1) printf(
"%s",(
char*)(
"\033[1;31m"+
res+
"\033[1;33m").c_str());
221 sprintf(nomfichiertmp,
"%s.magic",nometude);
224 exp.
gmsh(fem,nometude);
247 strcpy(resultat,
"00011111");
248 if (code!=NULL) strcpy(resultat,code);
249 version=exp.
aster(geo,fem,nometude,typeetude,resultat,0.,niveaumax,lst);
254 char messagever[255];
255 sprintf(messagever,
" Calcul aster \033[1;32m%.1lf\033[1;33m ",version);
263 sprintf(message,
" Code de sortie aster : %d",codesortie);
270 char nomfichiertmp[600];
272 sprintf(nomfichiertmp,
"%s.resu",nometude);
273 std::string
res=imp.
aster(base,fem,nomfichiertmp,nometude);
274 if (
affichageactif==1) printf(
"%s",(
char*)(
"\033[1;31m"+
res+
"\033[1;33m").c_str());
278 sprintf(nomfichiertmp,
"%s.magic",nometude);
281 exp.
gmsh(fem,nometude);
294 param.
ajouter(
"Container_singularity_aster",
"~/containers/salome_meca-lgpl-2022.1.0-1-20221225-scibian-9.sif",
OT_PARAMETRES::STRING,
"Proprietes aster : Fichier du container code-aster (version >15)");
295 sprintf(fichier,
"%s/.magic",getenv(
"HOME"));