1 line
26 KiB
C++
1 line
26 KiB
C++
|
// 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.
|