 |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
Aller à la documentation de ce fichier.
46 MGOPT::MGOPT(
bool save):gestd(NULL),gestnd(NULL),carte(NULL),savedbg(save)
48 strcpy(
nomfichierdbg,
"mailleurautomatiqueoptimisation.magicdbg");
51 params.
ajouter(
"typecarte",1.,
OT_PARAMETRES::DOUBLE,
"0. calcul d'une nouvelle carte de taille 1. utilisation d'une carte existante 2. calcul d'une nouvelle carte de taille (nouvelle version) 3. utilisation d'une carte existante (nouvelle version)");
59 sprintf(fichier,
"%s/.magic",getenv(
"HOME"));
99 affiche((
char*)
"*************************");
100 affiche((
char*)
"Optimisation de topologie");
101 affiche((
char*)
"*************************");
105 affiche((
char*)
"Écriture d'un fichier de parametres par défaut");
109 void MGOPT::optimise(
char *nomgestd,
char *nomgestnd,
char *nomsortie,
char *nomparam,
char *nomparamaster)
112 affiche((
char*)
"*************************");
113 affiche((
char*)
"Optimisation de topologie");
114 affiche((
char*)
"*************************");
118 time_t heuredeb = time(NULL);
119 tdebut = *localtime(&heuredeb);
121 char *p=strchr(nomgestd,
'.');
122 strncpy(
nometude,nomgestd,p-nomgestd);
124 p=strchr(nomsortie,
'.');
127 affiche((
char*)
"Preparation du modèle");
134 affiche((
char*)
"Debut optimisation");
136 affiche((
char*)
"Enregistrement resultat");
137 char nomsortiend[500];
139 strcat(nomsortiend,
"_nd.magic");
145 affiche((
char*)
"Enregistrement resultat simplifie");
146 char nomfichier[2000];
150 affiche((
char*)
"Enregistrement resultat sous GMSH");
152 char nomfichier[2000];
156 exp.
gmsh(fem,nomfichier);
161 affiche((
char*)
"Carte de taille");
172 char nomfichiersortie[3000];
173 sprintf(nomfichiersortie,
"%s.ctt",
nometude);
176 else if (typecarte==1)
181 carte->
lire((
char *)fichiercarte.c_str());
183 else if (typecarte==2)
189 char nomfichiersortie[3000];
190 sprintf(nomfichiersortie,
"%sctt.sol",
nometude);
194 sprintf(nomfichiersortie,
"%s",
nometude);
197 else if (typecarte==3)
203 affiche((
char*)
"Maillage par le mailleur bloc");
209 affiche((
char*)
"Creation du maillage FEM");
222 FILE* out=fopen(nomfichier,
"wt");
224 LISTE_FEM_NOEUD::iterator it;
229 no->change_numero(i);
230 fprintf(out,
"%d %lf %lf %lf\n",i,no->get_x(),no->get_y(),no->get_z());
232 LISTE_FEM_ELEMENT3::iterator it2;
239 strcpy(origine,
"nondesign");
241 strcpy(origine,
"design");
242 fprintf(out,
"%d %d %d %d %d %lf %s\n",i,tet->get_fem_noeud(0)->get_numero(),tet->get_fem_noeud(1)->get_numero(),tet->get_fem_noeud(2)->get_numero(),tet->get_fem_noeud(3)->get_numero(),tet->get_solution(),origine);
virtual void enregistrer(std::ostream &o, double version=MAGIC_VERSION_FICHIER_DOUBLE)
virtual void lire_params(char *fichier)
FEM_ELEMENT3 * get_suivant_element3(LISTE_FEM_ELEMENT3::iterator &it)
virtual void optimisation(int num_adapt, class FEM_MAILLAGE *fem, char *nomparamaster, int iter=0)=0
int ajouter_fem_maillage(FEM_MAILLAGE *femmai)
virtual void optimise(char *nomgestd, char *nomgestnd, char *nomsortie, char *nomparam, char *nomparamaster)
double get_valeur(std::string chaine, int num=0)
virtual void change_nom_fichierdbg(char *nom)
virtual void construit(void)
virtual void enregistrer(char *chemin)
void ajouter(std::string chaine, double valeur, int typep, std::string aide="")
FEM_NOEUD * get_premier_noeud(LISTE_FEM_NOEUD::iterator &it)
virtual void lire(char *nom)=0
virtual void active_affichage(void(*fonc)(char *))
MG_MAILLAGE * get_mg_maillage(void)
unsigned int get_nb_fem_noeud(void)
std::string get_nom(std::string chaine)
void gmsh(class MG_MAILLAGE *mai, std::string fichier)
FEM_MAILLAGE * get_fem_maillageid(unsigned long num)
virtual class FEM_MAILLAGE * prepare_model(class MG_GESTIONNAIRE *gestd, MG_GESTIONNAIRE *gestnd)
unsigned int get_nb_fem_element3(void)
MG_MAILLAGE * get_mg_maillage(unsigned int num)
virtual int maille(class FEM_MAILLAGE *fem, bool courbure_discrete=false, int num=0)
virtual void enregistrer(char *nom)
void enregistrer(char *nom)
MG_GEOMETRIE * get_mg_geometrie(void)
unsigned int get_nb_mg_maillage(void)
virtual void enregistre_simple(char *nomfichier, class FEM_MAILLAGE *fem)
FEM_NOEUD * get_suivant_noeud(LISTE_FEM_NOEUD::iterator &it)
void construit(int pas_echan=20, int pas_estim=20, class MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
MG_GEOMETRIE * get_mg_geometrie(unsigned int num)
void(* affiche_ptr)(char *mess)
FEM_ELEMENT3 * get_premier_element3(LISTE_FEM_ELEMENT3::iterator &it)