00001
00002
00003 #include "nbr_spx.h"
00004 #include "utilitaires.h"
00005 #include "graphique.h"
00006 #include "math.h"
00007 #include "metric.h"
00008 #include "param.h"
00009 #include "param_elliptic.h"
00010 #include "vector.h"
00011 #include "scalar.h"
00012 #include "spheroid.h"
00013 #include "diff.h"
00014 #include "proto.h"
00015 #include "unites.h"
00016 #include "tensor.h"
00017 #include "sym_tensor.h"
00018
00019
00020
00021
00022 void coupe_l_tous( Sym_tensor& hij,Sym_tensor& aa, Scalar& nn,Scalar& ppsi,Vector& bb, int ntt, int cutoff){
00023
00024 nn.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00025 ppsi.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00026 Scalar bb1 = bb.set(1);
00027 bb1.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00028 Scalar mmu = bb.mu();
00029 Scalar etta = bb.eta();
00030
00031 mmu.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00032 etta.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00033
00034 bb.set_vr_eta_mu(bb1, etta, mmu);
00035
00036 tensor_coupe_l(aa, ntt, cutoff);
00037 tensor_coupe_l(hij, ntt, cutoff);
00038
00039
00040
00041
00042 return;
00043
00044 }
00045
00046 void tensor_coupe_l( Sym_tensor& ten, int ntt, int cutoff){
00047
00048 Scalar ten1 = ten.set(1,1);
00049 ten1.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00050 int dzp = ten1.get_dzpuis();
00051
00052 Scalar eta = ten.eta();
00053 Scalar mmu = ten.mu();
00054 Scalar xxx = ten.xxx();
00055 Scalar www = ten.www();
00056 Scalar smalltrace = ten.set(2,2) + ten.set(3,3);
00057
00058 eta.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00059 mmu.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00060 xxx.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00061 www.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00062 smalltrace.annule_l(2*(ntt-1) - cutoff, 2*(ntt-1));
00063
00064 eta.div_r_dzpuis(dzp);
00065 mmu.div_r_dzpuis(dzp);
00066
00067
00068
00069 ten.set_auxiliary(ten1, eta, mmu, www, xxx, smalltrace);
00070
00071 return;
00072 }
00073