28 char sym_tensor_trans_aux_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Tensor/sym_tensor_trans_aux.C,v 1.21 2014/10/13 08:53:43 j_novak Exp $" ;
118 double precis,
int it_max ) {
124 assert(&mu_in !=
p_mu) ;
125 assert( (precis > 0.) && (it_max > 0) ) ;
139 Param* par_mat,
double precis,
145 assert(&a_in !=
p_aaa) ;
147 assert( (precis > 0.) && (it_max > 0) ) ;
164 zero.set_etat_zero() ;
171 hijtt.
set_auxiliary(hrr_tt, eta_sr_tt, mu_over_r, w_tt, x_new, zero) ;
177 for (
int it=0; it<=it_max; it++) {
181 set_auxiliary(hrr_new+hrr_tt, eta_over_r+eta_sr_tt, mu_over_r,
182 w_new+w_tt, x_new, h_old - hrr_new-hrr_tt) ;
185 Scalar h_new = (1 + hij(1,1))*( hij(2,3)*hij(2,3) - hij(2,2)*hij(3,3) )
186 + hij(1,2)*hij(1,2)*(1 + hij(3,3))
187 + hij(1,3)*hij(1,3)*(1 + hij(2,2))
188 - hij(1,1)*(hij(2,2) + hij(3,3)) - 2*hij(1,2)*hij(1,3)*hij(2,3) ;
191 double diff =
max(
max(
abs(h_new - h_old))) ;
193 cout <<
"Sym_tensor_trans::set_AtB_det_one : "
194 <<
"iteration : " << it <<
" convergence on h: "
198 set_auxiliary(hrr_new+hrr_tt, eta_over_r+eta_sr_tt, mu_over_r,
199 w_new+w_tt, x_new, h_old - hrr_new-hrr_tt) ;
212 h_old = lambda*h_new +(1-lambda)*h_old ;
216 cout <<
"Sym_tensor_trans:::set_AtBtt_det_one : convergence not reached \n" ;
217 cout <<
" for the required accuracy (" << precis <<
") ! "
228 double precis,
int it_max ) {
231 assert( (precis > 0.) && (it_max > 0) ) ;
246 zero.set_etat_zero() ;
248 const Scalar& hrr_tt = hijtt( 1, 1 ) ;
257 for (
int it=0; it<=it_max; it++) {
261 set_auxiliary(hrr_new+hrr_tt, eta_over_r+eta_sr_tt, mu_over_r,
262 w_new+w_tt, x_new, h_old - hrr_new-hrr_tt) ;
265 Scalar h_new = (1 + hij(1,1))*( hij(2,3)*hij(2,3) - hij(2,2)*hij(3,3) )
266 + hij(1,2)*hij(1,2)*(1 + hij(3,3))
267 + hij(1,3)*hij(1,3)*(1 + hij(2,2))
268 - hij(1,1)*(hij(2,2) + hij(3,3)) - 2*hij(1,2)*hij(1,3)*hij(2,3) ;
271 double diff =
max(
max(
abs(h_new - h_old))) ;
273 cout <<
"Sym_tensor_trans::set_tt_part_det_one : "
274 <<
"iteration : " << it <<
" convergence on h: "
278 set_auxiliary(hrr_new+hrr_tt, eta_over_r+eta_sr_tt, mu_over_r,
279 w_new+w_tt, x_new, h_old - hrr_new-hrr_tt) ;
288 h_old = lambda*h_new +(1-lambda)*h_old ;
292 cout <<
"Sym_tensor_trans:::set_AtBtt_det_one : convergence not reached \n" ;
293 cout <<
" for the required accuracy (" << precis <<
") ! "
310 assert(&a_in !=
p_aaa) ;
327 set_auxiliary(hrr_new, eta_over_r, mu_over_r, w_new, x_new, hh - hrr_new) ;