44 double epsilon,
int max_ite,
int dyn_nu_t)
57 F.resize_array(N_comp*(N+1));
58 Un_old.resize_array(N_comp*(N+1));
59 Unp1.resize_array(N_comp*(N+1));
60 aa.resize_array(N_comp*N);
63 cis.resize_array(N_comp);
64 visco_tot.resize_array(N);
143 for (
int j = 0 ; j < N_comp ; j++)
144 for(
int i=0 ; i<N+1 ; i++)
146 tabdouble(F,j,i) = 0;
155 for(
int i= 0; i<N ; i++)
159 for(
int i=1 ; i<N ; i++)
161 bb[i] = visco_tot[i]/(y_[i+1]-y_[i]);
162 dd[i]=1./(yc[i]-yc[i-1]);
165 dd[1] = 1./(yc[1]-y0);
167 bb[0] = visco_tot[0]/(2.*(y_[1]-y_[0]));
170 cc[N-1] = dd[N-1]*(bb[N-1]+bb[N-2])+(1./dt);
172 for(
int i=N-2 ; i>0 ; i--)
174 cc[i] = dd[i]*(bb[i]+bb[i-1])-((dd[i]*dd[i+1]*bb[i]*bb[i])/cc[i+1])+(1./dt);
178 for (
int j = 0 ; j < N_comp ; j++)
179 tabdouble(aa,j,N-1) = tabdouble(F,j,N-1) + dd[N-1]*bb[N-1]*tabdouble(Unp1,j,N) + (tabdouble(Un_old,j,N-1)/dt);
181 for (
int j = 0 ; j < N_comp ; j++)
182 for(
int i=N-2 ; i>0 ; i--)
184 tabdouble(aa,j,i) = tabdouble(F,j,i) + dd[i]*bb[i]*tabdouble(aa,j,i+1)/cc[i+1] + (tabdouble(Un_old,j,i)/dt);
188 for (
int j = 0 ; j < N_comp ; j++)
190 tabdouble(Unp1,j,1) = (tabdouble(aa,j,1)+2*bb[0]*dd[1]*tabdouble(Unp1,j,0))/(cc[1]+bb[0]*dd[1]);
192 for (
int j = 0 ; j < N_comp ; j++)
194 for (
int i=2 ; i<N ; i++)
196 tabdouble(Unp1,j,i) = (dd[i]*bb[i-1]/cc[i])*tabdouble(Unp1,j,i-1)+(tabdouble(aa,j,i)/cc[i]);
233 double frottement=0.;
235 for (
int j = 0 ; j < N_comp ; j++)
238 cis[j] = le_a.
calculer_a_local(0)*(tabdouble(Unp1,j,1)-tabdouble(Unp1,j,0))/((y_[1]-y0));
239 frottement += cis[j]*cis[j];
246 utau = sqrt(sqrt(frottement));
248 criterion = (std::fabs(utau_old-utau))/(std::fabs(utau)+DMINFLOAT);
254 Cerr <<
"Warning : NON convergence in the TBLE resolution !!!" << finl;
256 while((criterion > eps)&&(it<max_it));