Herezh_dev/herezh_pp/Elements/Mecanique/SFE/Met_Sfe2s2.cc

1 line
26 KiB
C++
Raw Normal View History

// FICHIER : Met_Sfe1.cp // CLASSE : Met_Sfe1 #include <iostream> #include <math.h> #include <stdlib.h> #include "Sortie.h" #include "Util.h" #include "MathUtil.h" #include "Met_Sfe1.h" // ========================================================================================= // vu la taille des executables le fichier est decompose en deux // le premier : Met_Sfe1s1.cp concerne les constructeurs, destructeur et // la gestion des variables // le second : Met_Sfe1s2.cp concerne le calcul // ========================================================================================= // METHODES PUBLIQUES : // ------------------------ calculs ---------------------------------------- // cas explicite, toutes les grandeurs sont a 0 ou t /* Met_Sfe1::Expli Met_Sfe1::Cal_explicit ( Tableau<Noeud *>& tab_noeud, Mat_pleine& dphi,int nombre_noeud) { Met_abstraite::Calcul_giB_0(tab_noeud,dphi,nombre_noeud); // calcul de la base a t=0 Calcul_giB_t(tab_noeud,dphi,nombre_noeud); // calcul de la base a t Calcul_gijBB_0 (); // metrique base naturelle Calcul_gijBB_t (); // " Calcul_gijHH_t (); // composantes controvariantes Jacobien_t(); // calcul du jacobien a t D_giB_t(dphi); // D_gijBB_t(); //variation de la metrique en BB // retour des infos Expli ex; ex.gijBB_0 = gijBB_0; ex.gijBB_t = gijBB_t; ex.gijHH_t = gijHH_t; ex.d_gijBB_t = &d_gijBB_t; ex.jacobien = jacobien_t; // liberation des tenseurs intermediaires LibereTenseur(); return ex; }; */ // cas implicite, toutes les grandeurs sont a 0 ou t+dt /*Met_abstraite::Impli Met_Sfe1::Cal_implicit ( Tableau<Noeud *>& tab_noeud, Mat_pleine& dphi, int nombre_noeud) { // tout d'abord on calcul les elements relatifs a la facette plane Met_abstraite::Calcul_giB_0(tab_noeud,dphi,nombre_noeud); // calcul de la base a t=0 *aiB_0 = *giB_0; Met_abstraite::Calcul_giB_t(tab_noeud,dphi,nombre_noeud); // calcul de la base a t *aiB_t = *giB_t; Met_abstraite::Calcul_giB_tdt(tab_noeud,dphi,nombre_noeud); // calcul de la base a tdt *aiB_tdt = *giB_tdt; Met_abstraite::Calcul_gijBB_0 (); // metrique base naturelle Met_abstraite::Calcul_gijBB_t (); // " Met_abstraite::Calcul_gijBB_tdt (); // " Met_abstraite::Calcul_gijHH_tdt (); // composantes controvariantes *aijBB_0 = *gijBB_0; *aijBB_t = *gijBB_t; *aijBB_tdt = *gijBB_tdt; *aijHH_tdt = *gijHH_tdt; Met_abstraite::Jacobien_tdt(); // calcul du jacobien a t ajacobien_tdt = jacobien_tdt; */ /* D_giB_tdt(dphi); // D_gijBB_tdt(); //variation de la metrique en BB Calcul_giH_tdt(); // base duale D_giH_tdt(); // variation de la base duale D_gijHH_tdt(); //variation de la metrique en HH Djacobien_tdt(); // variation du jacobien */ // retour des infos /* Impli ex; ex.gijBB_0 = gijBB_0; ex.gijBB_t = gijBB_t; ex.gijBB_tdt = gijBB_tdt; ex.gijHH_tdt = gijHH_tdt; ex.d_gijBB_tdt = &d_gijBB_tdt; ex.d_gijHH_tdt = &d_gijHH_tdt; ex.jacobien = jacobien_tdt; ex.d_jacobien_tdt = &d_jacobien_tdt; // liberation des tenseurs intermediaires LibereTenseur(); return ex; };*/ /* // pour la remontee au infos duaux Met_abstraite::InfoImp Met_Sfe1::Cal_InfoImp ( Tableau<Noeud *>& tab_noeud, Mat_pleine& dphi,Vecteur& phi, int nombre_noeud) { Calcul_M0(tab_noeud,phi,nombre_noeud); Calcul_Mtdt(tab_noeud,phi,nombre_noeud); Calcul_giB_0(tab_noeud,dphi,nombre_noeud); // calcul de la base a t=0 Calcul_giB_tdt(tab_noeud,dphi,nombre_noeud); // calcul de la base a tdt Calcul_gijBB_0 (); // " Calcul_gijHH_0 (); // composantes controvariantes Calcul_gijBB_tdt (); // " Calcul_gijHH_tdt (); // composantes controvariantes // bases duales Calcul_giH_0(); Calcul_giH_tdt(); // retour des infos InfoImp ex; ex.M0 = M0; ex.Mtdt = Mtdt; ex.giB_0 = giB_0; ex.giB_tdt = giB_tdt; ex.