16#include <calcul_spectres.h>
22void ecrit_spectre(DoubleVect& E,
int n,
double temps,
int a)
24 Nom fichier =
"spectre_";
33 for (
int j=0; j<n; j++)
36 fic7 << j+1 <<
" " << E(j) << finl;
41void ecrit_spectre_operateur(DoubleVect& E,
int n,
double temps,
int nb_op,
int a,
double dt)
43 Nom fichier =
"spectre_";
59 for (
int j=0; j<n; j++)
62 fic7 << j+1 <<
" " << E(j)/dt << finl;
74void calc_sp_nouveau_2(DoubleTab& vit_som ,
int n,
double temps,
double& Ec,
double& Df)
78 DoubleTab fft_u(n,n,n+2),fft_v(n,n,n+2),fft_w(n,n,n+2);
79 DoubleVect EX(n),EY(n),EZ(n);
80 DoubleTab u(n+1,n+1,n+1),v(n+1,n+1,n+1),w(n+1,n+1,n+1);
81 DoubleTab uu(n+1,n+1,n+1),vv(n+1,n+1,n+1),ww(n+1,n+1,n+1);
83 DoubleVect fx(n),fy(n),fz(n);
84 IntTab wl(6*n+14),wm(4*n+14),wn(4*n+14),iwork(2*n);
86 F77NAME(CALCUL0SPECTRE0AP0CHP0PER)(vit_som.
addr(),E.
addr(),&n,fft_u.addr(),fft_v.addr(),fft_w.addr(),u.addr(),v.addr(),w.addr(),uu.addr(),vv.addr(),ww.addr(),nE.addr(),EX.addr(),EY.addr(),EZ.addr(),fx.addr(),fy.addr(),fz.addr(),wl.addr(),wm.addr(),wn.addr(),iwork.addr());
88 ecrit_spectre(E,n,temps,3);
93 for (i=0; i<n/2-1; i++)
94 D(i) = (i+1)*(i+1)*E(i);
99void calc_sp_nouveau_2_operateur(DoubleTab& vit_som ,
int n,
double temps,
int nb_op,
double dt, DoubleVect& E)
103 DoubleTab fft_u(n,n,n+2),fft_v(n,n,n+2),fft_w(n,n,n+2);
104 DoubleVect EX(n),EY(n),EZ(n);
105 DoubleTab u(n+1,n+1,n+1),v(n+1,n+1,n+1),w(n+1,n+1,n+1);
106 DoubleTab uu(n+1,n+1,n+1),vv(n+1,n+1,n+1),ww(n+1,n+1,n+1);
108 DoubleVect fx(n),fy(n),fz(n);
109 IntTab wl(6*n+14),wm(4*n+14),wn(4*n+14),iwork(2*n);
112 F77NAME(CALCUL0SPECTRE0AP0CHP0PER)(vit_som.
addr(),E.
addr(),&n,fft_u.addr(),fft_v.addr(),fft_w.addr(),u.addr(),v.addr(),w.addr(),uu.addr(),vv.addr(),ww.addr(),nE.addr(),EX.addr(),EY.addr(),EZ.addr(),fx.addr(),fy.addr(),fz.addr(),wl.addr(),wm.addr(),wn.addr(),iwork.addr());
118void calc_sp_operateur(DoubleTab& vit_u, DoubleTab& vit_v, DoubleTab& vit_w,
int n,
double temps,
int nb_op,
double dt, DoubleVect& E)
125 DoubleTab fft_u(n,n,n+2),fft_v(n,n,n+2),fft_w(n,n,n+2);
126 DoubleVect EX(n),EY(n),EZ(n);
127 DoubleTab u(n+1,n+1,n+1),v(n+1,n+1,n+1),w(n+1,n+1,n+1);
128 DoubleTab uu(n+1,n+1,n+1),vv(n+1,n+1,n+1),ww(n+1,n+1,n+1);
130 DoubleVect fx(n),fy(n),fz(n);
131 IntTab wl(6*n+14),wm(4*n+14),wn(4*n+14),iwork(2*n);
133 F77NAME(CALCUL0SPECTRE0AVEC030VIT)(vit_u.
addr(),vit_v.
addr(),vit_w.
addr(),E.
addr(),&n,fft_u.addr(),fft_v.addr(),fft_w.addr(),u.addr(),v.addr(),w.addr(),uu.addr(),vv.addr(),ww.addr(),nE.addr(),EX.addr(),EY.addr(),EZ.addr(),fx.addr(),fy.addr(),fz.addr(),wl.addr(),wm.addr(),wn.addr(),iwork.addr());
139void calc_Ec(DoubleVect& E,
int kc,
double& Integ)
143 for (i=0; i<kc-1; i++)
144 Integ += (E(i+1)+E(i))/2.0;
class Nom Une chaine de caractere pour nommer les objets de TRUST
Cette classe est a la classe C++ ofstream ce que la classe Sortie est a la classe C++ ostream Elle re...