23char map_et_fait_der_C[] =
"$Header: /cvsroot/Lorene/C++/Source/Map/map_et_fait_der.C,v 1.7 2014/10/13 08:53:04 j_novak Exp $" ;
82Mtbl* map_et_fait_dxdr(
const Map* cvi) {
85 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
86 const Mg3d* mg = cv->
get_mg() ;
90 Mtbl* mti =
new Mtbl(mg) ;
94 const double* alpha = cv->alpha ;
95 const Valeur& ff = cv->ff ;
96 const Valeur& gg = cv->gg ;
98 for (
int l=0 ; l<nz ; l++) {
100 int nr = mg->get_nr(l);
101 int nt = mg->get_nt(l) ;
102 int np = mg->get_np(l) ;
104 const Tbl& da = *((cv->daa)[l]) ;
105 const Tbl& db = *((cv->dbb)[l]) ;
107 Tbl* tb = (mti->t)[l] ;
109 double* p_r = tb->t ;
111 switch(mg->get_type_r(l)) {
113 case FIN:
case RARE: {
114 for (
int k=0 ; k<np ; k++) {
115 for (
int j=0 ; j<nt ; j++) {
116 for (
int i=0 ; i<nr ; i++) {
118 ( alpha[l] * ( 1. + da(i) * ff(l, k, j, 0)
119 + db(i) * gg(l, k, j, 0) )
129 for (
int k=0 ; k<np ; k++) {
130 for (
int j=0 ; j<nt ; j++) {
131 for (
int i=0 ; i<nr ; i++) {
133 ( alpha[l] * ( 1. + da(i) * ff(l, k, j, 0) )
143 cout <<
"map_et_fait_dxdr: unknown type_r !" << endl ;
159Mtbl* map_et_fait_drdt(
const Map* cvi) {
162 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
163 const Mg3d* mg = cv->
get_mg() ;
167 Mtbl* mti =
new Mtbl(mg) ;
168 mti->set_etat_qcq() ;
171 const double* alpha = cv->alpha ;
172 const Valeur& ff = cv->ff ;
173 const Valeur& gg = cv->gg ;
174 const Valeur& dffdt = ff.dsdt() ;
175 const Valeur& dggdt = gg.dsdt() ;
178 for (
int l=0 ; l<nz ; l++) {
180 int nr = mg->get_nr(l);
181 int nt = mg->get_nt(l) ;
182 int np = mg->get_np(l) ;
184 const Tbl& aa = *((cv->aa)[l]) ;
185 const Tbl& bb = *((cv->bb)[l]) ;
187 Tbl* tb = (mti->t)[l] ;
189 double* p_r = tb->t ;
191 switch(mg->get_type_r(l)) {
194 case RARE :
case FIN: {
195 for (
int k=0 ; k<np ; k++) {
196 for (
int j=0 ; j<nt ; j++) {
197 for (
int i=0 ; i<nr ; i++) {
198 *p_r = alpha[l] * ( aa(i) * dffdt(l, k, j, 0)
199 + bb(i) * dggdt(l, k, j, 0) ) ;
209 for (
int k=0 ; k<np ; k++) {
210 for (
int j=0 ; j<nt ; j++) {
211 for (
int i=0 ; i<nr ; i++) {
212 *p_r = - aa(i) * dffdt(l, k, j, 0) ;
221 cout <<
"map_et_fait_drdt: unknown type_r !" << endl ;
238Mtbl* map_et_fait_stdrdp(
const Map* cvi) {
241 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
242 const Mg3d* mg = cv->
get_mg() ;
246 Mtbl* mti =
new Mtbl(mg) ;
247 mti->set_etat_qcq() ;
250 const double* alpha = cv->alpha ;
251 const Valeur& ff = cv->ff ;
252 const Valeur& gg = cv->gg ;
253 const Valeur& stdffdp = ff.stdsdp() ;
254 const Valeur& stdggdp = gg.stdsdp() ;
257 for (
int l=0 ; l<nz ; l++) {
259 int nr = mg->get_nr(l);
260 int nt = mg->get_nt(l) ;
261 int np = mg->get_np(l) ;
263 const Tbl& aa = *((cv->aa)[l]) ;
264 const Tbl& bb = *((cv->bb)[l]) ;
266 Tbl* tb = (mti->t)[l] ;
268 double* p_r = tb->t ;
270 switch(mg->get_type_r(l)) {
273 case RARE :
case FIN: {
274 for (
int k=0 ; k<np ; k++) {
275 for (
int j=0 ; j<nt ; j++) {
276 for (
int i=0 ; i<nr ; i++) {
277 *p_r = alpha[l] * ( aa(i) * stdffdp(l, k, j, 0)
278 + bb(i) * stdggdp(l, k, j, 0) ) ;
288 for (
int k=0 ; k<np ; k++) {
289 for (
int j=0 ; j<nt ; j++) {
290 for (
int i=0 ; i<nr ; i++) {
291 *p_r = - aa(i) * stdffdp(l, k, j, 0) ;
300 cout <<
"map_et_fait_stdrdp: unknown type_r !" << endl ;
317Mtbl* map_et_fait_srdrdt(
const Map* cvi) {
320 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
321 const Mg3d* mg = cv->
get_mg() ;
325 Mtbl* mti =
new Mtbl(mg) ;
326 mti->set_etat_qcq() ;
329 const double* alpha = cv->alpha ;
330 const double* beta = cv->beta ;
331 const Valeur& ff = cv->ff ;
332 const Valeur& gg = cv->gg ;
333 const Valeur& dffdt = ff.dsdt() ;
334 const Valeur& dggdt = gg.dsdt() ;
337 for (
int l=0 ; l<nz ; l++) {
339 const Grille3d* g = mg->get_grille3d(l) ;
341 int nr = mg->get_nr(l);
342 int nt = mg->get_nt(l) ;
343 int np = mg->get_np(l) ;
345 const Tbl& aa = *((cv->aa)[l]) ;
346 const Tbl& bb = *((cv->bb)[l]) ;
348 Tbl* tb = (mti->t)[l] ;
350 double* p_r = tb->t ;
352 switch(mg->get_type_r(l)) {
356 const Tbl& asx = cv->aasx ;
357 const Tbl& bsx = cv->bbsx ;
359 for (
int k=0 ; k<np ; k++) {
360 for (
int j=0 ; j<nt ; j++) {
361 for (
int i=0 ; i<nr ; i++) {
362 *p_r = ( asx(i) * dffdt(l, k, j, 0)
363 + bsx(i) * dggdt(l, k, j, 0) ) /
364 ( 1. + asx(i) * ff(l, k, j, 0)
365 + bsx(i) * gg(l, k, j, 0) ) ;
374 for (
int k=0 ; k<np ; k++) {
375 for (
int j=0 ; j<nt ; j++) {
376 for (
int i=0 ; i<nr ; i++) {
377 *p_r = alpha[l] * ( aa(i) * dffdt(l, k, j, 0)
378 + bb(i) * dggdt(l, k, j, 0) )
380 (g->x)[i] + aa(i) * ff(l, k, j, 0)
381 + bb(i) * gg(l, k, j, 0) )
392 const Tbl& asxm1 = cv->zaasx ;
394 for (
int k=0 ; k<np ; k++) {
395 for (
int j=0 ; j<nt ; j++) {
396 for (
int i=0 ; i<nr ; i++) {
397 *p_r = - asxm1(i) * dffdt(l, k, j, 0)
398 / ( 1. + asxm1(i) * ff(l, k, j, 0) ) ;
407 cout <<
"map_et_fait_srdrdt: unknown type_r !" << endl ;
423Mtbl* map_et_fait_srstdrdp(
const Map* cvi) {
426 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
427 const Mg3d* mg = cv->
get_mg() ;
431 Mtbl* mti =
new Mtbl(mg) ;
432 mti->set_etat_qcq() ;
435 const double* alpha = cv->alpha ;
436 const double* beta = cv->beta ;
437 const Valeur& ff = cv->ff ;
438 const Valeur& gg = cv->gg ;
439 const Valeur& stdffdp = ff.stdsdp() ;
440 const Valeur& stdggdp = gg.stdsdp() ;
443 for (
int l=0 ; l<nz ; l++) {
445 const Grille3d* g = mg->get_grille3d(l) ;
447 int nr = mg->get_nr(l);
448 int nt = mg->get_nt(l) ;
449 int np = mg->get_np(l) ;
451 const Tbl& aa = *((cv->aa)[l]) ;
452 const Tbl& bb = *((cv->bb)[l]) ;
454 Tbl* tb = (mti->t)[l] ;
456 double* p_r = tb->t ;
458 switch(mg->get_type_r(l)) {
462 const Tbl& asx = cv->aasx ;
463 const Tbl& bsx = cv->bbsx ;
465 for (
int k=0 ; k<np ; k++) {
466 for (
int j=0 ; j<nt ; j++) {
467 for (
int i=0 ; i<nr ; i++) {
468 *p_r = ( asx(i) * stdffdp(l, k, j, 0)
469 + bsx(i) * stdggdp(l, k, j, 0) ) /
470 ( 1. + asx(i) * ff(l, k, j, 0)
471 + bsx(i) * gg(l, k, j, 0) ) ;
480 for (
int k=0 ; k<np ; k++) {
481 for (
int j=0 ; j<nt ; j++) {
482 for (
int i=0 ; i<nr ; i++) {
483 *p_r = alpha[l] * ( aa(i) * stdffdp(l, k, j, 0)
484 + bb(i) * stdggdp(l, k, j, 0) )
486 (g->x)[i] + aa(i) * ff(l, k, j, 0)
487 + bb(i) * gg(l, k, j, 0) )
498 const Tbl& asxm1 = cv->zaasx ;
500 for (
int k=0 ; k<np ; k++) {
501 for (
int j=0 ; j<nt ; j++) {
502 for (
int i=0 ; i<nr ; i++) {
503 *p_r = - asxm1(i) * stdffdp(l, k, j, 0)
504 / ( 1. + asxm1(i) * ff(l, k, j, 0) ) ;
513 cout <<
"map_et_fait_srstdrdp: unknown type_r !" << endl ;
528Mtbl* map_et_fait_sr2drdt(
const Map* cvi) {
531 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
532 const Mg3d* mg = cv->
get_mg() ;
536 Mtbl* mti =
new Mtbl(mg) ;
537 mti->set_etat_qcq() ;
540 const double* alpha = cv->alpha ;
541 const double* beta = cv->beta ;
542 const Valeur& ff = cv->ff ;
543 const Valeur& gg = cv->gg ;
544 const Valeur& dffdt = ff.dsdt() ;
545 const Valeur& dggdt = gg.dsdt() ;
548 for (
int l=0 ; l<nz ; l++) {
550 const Grille3d* g = mg->get_grille3d(l) ;
552 int nr = mg->get_nr(l);
553 int nt = mg->get_nt(l) ;
554 int np = mg->get_np(l) ;
556 const Tbl& aa = *((cv->aa)[l]) ;
557 const Tbl& bb = *((cv->bb)[l]) ;
559 Tbl* tb = (mti->t)[l] ;
561 double* p_r = tb->t ;
563 switch(mg->get_type_r(l)) {
567 const Tbl& asx = cv->aasx ;
568 const Tbl& bsx = cv->bbsx ;
569 const Tbl& asx2 = cv->aasx2 ;
570 const Tbl& bsx2 = cv->bbsx2 ;
572 for (
int k=0 ; k<np ; k++) {
573 for (
int j=0 ; j<nt ; j++) {
574 for (
int i=0 ; i<nr ; i++) {
576 double ww = 1. + asx(i) * ff(l, k, j, 0)
577 + bsx(i) * gg(l, k, j, 0) ;
579 *p_r = ( asx2(i) * dffdt(l, k, j, 0)
580 + bsx2(i) * dggdt(l, k, j, 0) ) /
591 for (
int k=0 ; k<np ; k++) {
592 for (
int j=0 ; j<nt ; j++) {
593 for (
int i=0 ; i<nr ; i++) {
595 double ww = alpha[l] * (
596 (g->x)[i] + aa(i) * ff(l, k, j, 0)
597 + bb(i) * gg(l, k, j, 0) )
600 *p_r = alpha[l] * ( aa(i) * dffdt(l, k, j, 0)
601 + bb(i) * dggdt(l, k, j, 0) )
612 const Tbl& asxm1 = cv->zaasx ;
613 const Tbl& asxm1car = cv->zaasx2 ;
615 for (
int k=0 ; k<np ; k++) {
616 for (
int j=0 ; j<nt ; j++) {
617 for (
int i=0 ; i<nr ; i++) {
619 double ww = 1. + asxm1(i) * ff(l, k, j, 0) ;
621 *p_r = - asxm1car(i) * dffdt(l, k, j, 0)
622 / ( alpha[l] * ww*ww ) ;
631 cout <<
"map_et_fait_sr2drdt: unknown type_r !" << endl ;
647Mtbl* map_et_fait_sr2stdrdp(
const Map* cvi) {
650 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
651 const Mg3d* mg = cv->
get_mg() ;
655 Mtbl* mti =
new Mtbl(mg) ;
656 mti->set_etat_qcq() ;
659 const double* alpha = cv->alpha ;
660 const double* beta = cv->beta ;
661 const Valeur& ff = cv->ff ;
662 const Valeur& gg = cv->gg ;
663 const Valeur& stdffdp = ff.stdsdp() ;
664 const Valeur& stdggdp = gg.stdsdp() ;
667 for (
int l=0 ; l<nz ; l++) {
669 const Grille3d* g = mg->get_grille3d(l) ;
671 int nr = mg->get_nr(l);
672 int nt = mg->get_nt(l) ;
673 int np = mg->get_np(l) ;
675 const Tbl& aa = *((cv->aa)[l]) ;
676 const Tbl& bb = *((cv->bb)[l]) ;
678 Tbl* tb = (mti->t)[l] ;
680 double* p_r = tb->t ;
682 switch(mg->get_type_r(l)) {
686 const Tbl& asx = cv->aasx ;
687 const Tbl& bsx = cv->bbsx ;
688 const Tbl& asx2 = cv->aasx2 ;
689 const Tbl& bsx2 = cv->bbsx2 ;
691 for (
int k=0 ; k<np ; k++) {
692 for (
int j=0 ; j<nt ; j++) {
693 for (
int i=0 ; i<nr ; i++) {
695 double ww = 1. + asx(i) * ff(l, k, j, 0)
696 + bsx(i) * gg(l, k, j, 0) ;
698 *p_r = ( asx2(i) * stdffdp(l, k, j, 0)
699 + bsx2(i) * stdggdp(l, k, j, 0) ) /
709 for (
int k=0 ; k<np ; k++) {
710 for (
int j=0 ; j<nt ; j++) {
711 for (
int i=0 ; i<nr ; i++) {
713 double ww = alpha[l] * (
714 (g->x)[i] + aa(i) * ff(l, k, j, 0)
715 + bb(i) * gg(l, k, j, 0) )
718 *p_r = alpha[l] * ( aa(i) * stdffdp(l, k, j, 0)
719 + bb(i) * stdggdp(l, k, j, 0) )
730 const Tbl& asxm1 = cv->zaasx ;
731 const Tbl& asxm1car = cv->zaasx2 ;
733 for (
int k=0 ; k<np ; k++) {
734 for (
int j=0 ; j<nt ; j++) {
735 for (
int i=0 ; i<nr ; i++) {
737 double ww = 1. + asxm1(i) * ff(l, k, j, 0) ;
739 *p_r = - asxm1car(i) * stdffdp(l, k, j, 0)
740 / ( alpha[l] * ww*ww ) ;
749 cout <<
"map_et_fait_sr2stdrdp: unknown type_r !" << endl ;
767Mtbl* map_et_fait_rsxdxdr(
const Map* cvi) {
770 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
771 const Mg3d* mg = cv->
get_mg() ;
775 Mtbl* mti =
new Mtbl(mg) ;
776 mti->set_etat_qcq() ;
779 const double* alpha = cv->alpha ;
780 const double* beta = cv->beta ;
781 const Valeur& ff = cv->ff ;
782 const Valeur& gg = cv->gg ;
784 for (
int l=0 ; l<nz ; l++) {
786 const Grille3d* g = mg->get_grille3d(l) ;
788 int nr = mg->get_nr(l);
789 int nt = mg->get_nt(l) ;
790 int np = mg->get_np(l) ;
792 const Tbl& aa = *((cv->aa)[l]) ;
793 const Tbl& bb = *((cv->bb)[l]) ;
794 const Tbl& da = *((cv->daa)[l]) ;
795 const Tbl& db = *((cv->dbb)[l]) ;
797 Tbl* tb = (mti->t)[l] ;
799 double* p_r = tb->t ;
801 switch(mg->get_type_r(l)) {
805 const Tbl& asx = cv->aasx ;
806 const Tbl& bsx = cv->bbsx ;
808 for (
int k=0 ; k<np ; k++) {
809 for (
int j=0 ; j<nt ; j++) {
810 for (
int i=0 ; i<nr ; i++) {
812 *p_r = ( 1. + asx(i) * ff(l, k, j, 0)
813 + bsx(i) * gg(l, k, j, 0) ) /
814 ( 1. + da(i) * ff(l, k, j, 0)
815 + db(i) * gg(l, k, j, 0) ) ;
825 for (
int k=0 ; k<np ; k++) {
826 for (
int j=0 ; j<nt ; j++) {
827 for (
int i=0 ; i<nr ; i++) {
829 *p_r = ( (g->x)[i] + aa(i) * ff(l, k, j, 0)
830 + bb(i) * gg(l, k, j, 0)
831 + beta[l]/alpha[l] ) /
832 ( ( 1. + da(i) * ff(l, k, j, 0)
833 + db(i) * gg(l, k, j, 0) ) *
834 ( (g->x)[i] + beta[l]/alpha[l] ) ) ;
845 const Tbl& asxm1 = cv->zaasx ;
847 for (
int k=0 ; k<np ; k++) {
848 for (
int j=0 ; j<nt ; j++) {
849 for (
int i=0 ; i<nr ; i++) {
851 *p_r = ( 1. + asxm1(i) * ff(l, k, j, 0) ) /
852 ( 1. + da(i) * ff(l, k, j, 0) ) ;
862 cout <<
"map_et_fait_rsxdxdr: unknown type_r !" << endl ;
879Mtbl* map_et_fait_rsx2drdx(
const Map* cvi) {
882 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
883 const Mg3d* mg = cv->
get_mg() ;
887 Mtbl* mti =
new Mtbl(mg) ;
888 mti->set_etat_qcq() ;
891 const double* alpha = cv->alpha ;
892 const double* beta = cv->beta ;
893 const Valeur& ff = cv->ff ;
894 const Valeur& gg = cv->gg ;
896 for (
int l=0 ; l<nz ; l++) {
898 const Grille3d* g = mg->get_grille3d(l) ;
900 int nr = mg->get_nr(l);
901 int nt = mg->get_nt(l) ;
902 int np = mg->get_np(l) ;
904 const Tbl& aa = *((cv->aa)[l]) ;
905 const Tbl& bb = *((cv->bb)[l]) ;
906 const Tbl& da = *((cv->daa)[l]) ;
907 const Tbl& db = *((cv->dbb)[l]) ;
909 Tbl* tb = (mti->t)[l] ;
911 double* p_r = tb->t ;
913 switch(mg->get_type_r(l)) {
917 const Tbl& asx = cv->aasx ;
918 const Tbl& bsx = cv->bbsx ;
920 for (
int k=0 ; k<np ; k++) {
921 for (
int j=0 ; j<nt ; j++) {
922 for (
int i=0 ; i<nr ; i++) {
924 double ww = 1. + asx(i) * ff(l, k, j, 0)
925 + bsx(i) * gg(l, k, j, 0) ;
928 ( 1. + da(i) * ff(l, k, j, 0)
929 + db(i) * gg(l, k, j, 0) ) ;
939 for (
int k=0 ; k<np ; k++) {
940 for (
int j=0 ; j<nt ; j++) {
941 for (
int i=0 ; i<nr ; i++) {
943 double ww = ( (g->x)[i] + aa(i) * ff(l, k, j, 0)
944 + bb(i) * gg(l, k, j, 0)
945 + beta[l]/alpha[l] ) /
946 ( (g->x)[i] + beta[l]/alpha[l] ) ;
949 ( 1. + da(i) * ff(l, k, j, 0)
950 + db(i) * gg(l, k, j, 0) ) ;
961 for (
int k=0 ; k<np ; k++) {
962 for (
int j=0 ; j<nt ; j++) {
963 for (
int i=0 ; i<nr ; i++) {
965 *p_r = 1. + da(i) * ff(l, k, j, 0) ;
975 cout <<
"map_et_fait_rsx2drdx: unknown type_r !" << endl ;
998Mtbl* map_et_fait_d2rdx2(
const Map* cvi) {
1001 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
1002 const Mg3d* mg = cv->
get_mg() ;
1006 Mtbl* mti =
new Mtbl(mg) ;
1007 mti->set_etat_qcq() ;
1010 const double* alpha = cv->alpha ;
1011 const Valeur& ff = cv->ff ;
1012 const Valeur& gg = cv->gg ;
1014 for (
int l=0 ; l<nz ; l++) {
1016 int nr = mg->get_nr(l);
1017 int nt = mg->get_nt(l) ;
1018 int np = mg->get_np(l) ;
1020 const Tbl& dda = *((cv->ddaa)[l]) ;
1021 const Tbl& ddb = *((cv->ddbb)[l]) ;
1023 Tbl* tb = (mti->t)[l] ;
1024 tb->set_etat_qcq() ;
1025 double* p_r = tb->t ;
1027 switch(mg->get_type_r(l)) {
1029 case FIN:
case RARE: {
1030 for (
int k=0 ; k<np ; k++) {
1031 for (
int j=0 ; j<nt ; j++) {
1032 for (
int i=0 ; i<nr ; i++) {
1034 *p_r = alpha[l] * ( dda(i) * ff(l, k, j, 0)
1035 + ddb(i) * gg(l, k, j, 0) ) ;
1044 for (
int k=0 ; k<np ; k++) {
1045 for (
int j=0 ; j<nt ; j++) {
1046 for (
int i=0 ; i<nr ; i++) {
1048 *p_r = - alpha[l] * dda(i) * ff(l, k, j, 0) ;
1057 cout <<
"map_et_fait_d2rdx2: unknown type_r !" << endl ;
1076Mtbl* map_et_fait_lapr_tp(
const Map* cvi) {
1079 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
1080 const Mg3d* mg = cv->
get_mg() ;
1084 Mtbl* mti =
new Mtbl(mg) ;
1085 mti->set_etat_qcq() ;
1088 const double* alpha = cv->alpha ;
1089 const double* beta = cv->beta ;
1090 const Valeur& ff = cv->ff ;
1091 const Valeur& gg = cv->gg ;
1093 Valeur ff_tmp = ff ;
1094 Valeur gg_tmp = gg ;
1097 const Valeur& lapff = ff_tmp.lapang() ;
1098 const Valeur& lapgg = gg_tmp.lapang() ;
1101 for (
int l=0 ; l<nz ; l++) {
1103 const Grille3d* g = mg->get_grille3d(l) ;
1105 int nr = mg->get_nr(l);
1106 int nt = mg->get_nt(l) ;
1107 int np = mg->get_np(l) ;
1109 const Tbl& aa = *((cv->aa)[l]) ;
1110 const Tbl& bb = *((cv->bb)[l]) ;
1112 Tbl* tb = (mti->t)[l] ;
1113 tb->set_etat_qcq() ;
1114 double* p_r = tb->t ;
1116 switch(mg->get_type_r(l)) {
1120 const Tbl& asx = cv->aasx ;
1121 const Tbl& bsx = cv->bbsx ;
1122 const Tbl& asx2 = cv->aasx2 ;
1123 const Tbl& bsx2 = cv->bbsx2 ;
1125 for (
int k=0 ; k<np ; k++) {
1126 for (
int j=0 ; j<nt ; j++) {
1127 for (
int i=0 ; i<nr ; i++) {
1129 double ww = 1. + asx(i) * ff(l, k, j, 0)
1130 + bsx(i) * gg(l, k, j, 0) ;
1132 *p_r = ( asx2(i) * lapff(l, k, j, 0)
1133 + bsx2(i) * lapgg(l, k, j, 0) ) /
1134 (alpha[l] * ww*ww) ;
1143 for (
int k=0 ; k<np ; k++) {
1144 for (
int j=0 ; j<nt ; j++) {
1145 for (
int i=0 ; i<nr ; i++) {
1147 double ww = alpha[l] * (
1148 (g->x)[i] + aa(i) * ff(l, k, j, 0)
1149 + bb(i) * gg(l, k, j, 0) )
1152 *p_r = alpha[l] * ( aa(i) * lapff(l, k, j, 0)
1153 + bb(i) * lapgg(l, k, j, 0) )
1164 const Tbl& asxm1 = cv->zaasx ;
1165 const Tbl& asxm1car = cv->zaasx2 ;
1167 for (
int k=0 ; k<np ; k++) {
1168 for (
int j=0 ; j<nt ; j++) {
1169 for (
int i=0 ; i<nr ; i++) {
1171 double ww = 1. + asxm1(i) * ff(l, k, j, 0) ;
1173 *p_r = - asxm1car(i) * lapff(l, k, j, 0)
1174 / ( alpha[l] * ww*ww ) ;
1183 cout <<
"map_et_fait_lapr_tp: unknown type_r !" << endl ;
1199Mtbl* map_et_fait_d2rdtdx(
const Map* cvi) {
1202 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
1203 const Mg3d* mg = cv->
get_mg() ;
1207 Mtbl* mti =
new Mtbl(mg) ;
1208 mti->set_etat_qcq() ;
1211 const double* alpha = cv->alpha ;
1212 const Valeur& ff = cv->ff ;
1213 const Valeur& gg = cv->gg ;
1214 const Valeur& dffdt = ff.dsdt() ;
1215 const Valeur& dggdt = gg.dsdt() ;
1217 for (
int l=0 ; l<nz ; l++) {
1219 int nr = mg->get_nr(l);
1220 int nt = mg->get_nt(l) ;
1221 int np = mg->get_np(l) ;
1223 const Tbl& da = *((cv->daa)[l]) ;
1224 const Tbl& db = *((cv->dbb)[l]) ;
1226 Tbl* tb = (mti->t)[l] ;
1227 tb->set_etat_qcq() ;
1228 double* p_r = tb->t ;
1230 switch(mg->get_type_r(l)) {
1232 case FIN:
case RARE: {
1233 for (
int k=0 ; k<np ; k++) {
1234 for (
int j=0 ; j<nt ; j++) {
1235 for (
int i=0 ; i<nr ; i++) {
1237 *p_r = alpha[l] * ( da(i) * dffdt(l, k, j, 0)
1238 + db(i) * dggdt(l, k, j, 0) ) ;
1247 for (
int k=0 ; k<np ; k++) {
1248 for (
int j=0 ; j<nt ; j++) {
1249 for (
int i=0 ; i<nr ; i++) {
1251 *p_r = - alpha[l] * da(i) * dffdt(l, k, j, 0) ;
1260 cout <<
"map_et_fait_d2rdtdx: unknown type_r !" << endl ;
1276Mtbl* map_et_fait_sstd2rdpdx(
const Map* cvi) {
1279 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
1280 const Mg3d* mg = cv->
get_mg() ;
1284 Mtbl* mti =
new Mtbl(mg) ;
1285 mti->set_etat_qcq() ;
1288 const double* alpha = cv->alpha ;
1289 const Valeur& ff = cv->ff ;
1290 const Valeur& gg = cv->gg ;
1291 const Valeur& stdffdp = ff.stdsdp() ;
1292 const Valeur& stdggdp = gg.stdsdp() ;
1294 for (
int l=0 ; l<nz ; l++) {
1296 int nr = mg->get_nr(l);
1297 int nt = mg->get_nt(l) ;
1298 int np = mg->get_np(l) ;
1300 const Tbl& da = *((cv->daa)[l]) ;
1301 const Tbl& db = *((cv->dbb)[l]) ;
1303 Tbl* tb = (mti->t)[l] ;
1304 tb->set_etat_qcq() ;
1305 double* p_r = tb->t ;
1307 switch(mg->get_type_r(l)) {
1309 case FIN:
case RARE: {
1310 for (
int k=0 ; k<np ; k++) {
1311 for (
int j=0 ; j<nt ; j++) {
1312 for (
int i=0 ; i<nr ; i++) {
1314 *p_r = alpha[l] * ( da(i) * stdffdp(l, k, j, 0)
1315 + db(i) * stdggdp(l, k, j, 0) ) ;
1324 for (
int k=0 ; k<np ; k++) {
1325 for (
int j=0 ; j<nt ; j++) {
1326 for (
int i=0 ; i<nr ; i++) {
1328 *p_r = - alpha[l] * da(i) * stdffdp(l, k, j, 0) ;
1337 cout <<
"map_et_fait_sstd2rdpdx: unknown type_r !" << endl ;
1353Mtbl* map_et_fait_sr2d2rdt2(
const Map* cvi) {
1356 const Map_et* cv =
static_cast<const Map_et*
>(cvi) ;
1357 const Mg3d* mg = cv->
get_mg() ;
1361 Mtbl* mti =
new Mtbl(mg) ;
1362 mti->set_etat_qcq() ;
1365 const double* alpha = cv->alpha ;
1366 const double* beta = cv->beta ;
1367 const Valeur& ff = cv->ff ;
1368 const Valeur& gg = cv->gg ;
1369 const Valeur& d2ffdt2 = ff.d2sdt2() ;
1370 const Valeur& d2ggdt2 = gg.d2sdt2() ;
1373 for (
int l=0 ; l<nz ; l++) {
1375 const Grille3d* g = mg->get_grille3d(l) ;
1377 int nr = mg->get_nr(l);
1378 int nt = mg->get_nt(l) ;
1379 int np = mg->get_np(l) ;
1381 const Tbl& aa = *((cv->aa)[l]) ;
1382 const Tbl& bb = *((cv->bb)[l]) ;
1384 Tbl* tb = (mti->t)[l] ;
1385 tb->set_etat_qcq() ;
1386 double* p_r = tb->t ;
1388 switch(mg->get_type_r(l)) {
1392 const Tbl& asx = cv->aasx ;
1393 const Tbl& bsx = cv->bbsx ;
1394 const Tbl& asx2 = cv->aasx2 ;
1395 const Tbl& bsx2 = cv->bbsx2 ;
1397 for (
int k=0 ; k<np ; k++) {
1398 for (
int j=0 ; j<nt ; j++) {
1399 for (
int i=0 ; i<nr ; i++) {
1401 double ww = 1. + asx(i) * ff(l, k, j, 0)
1402 + bsx(i) * gg(l, k, j, 0) ;
1404 *p_r = ( asx2(i) * d2ffdt2(l, k, j, 0)
1405 + bsx2(i) * d2ggdt2(l, k, j, 0) ) /
1406 (alpha[l] * ww*ww) ;
1415 for (
int k=0 ; k<np ; k++) {
1416 for (
int j=0 ; j<nt ; j++) {
1417 for (
int i=0 ; i<nr ; i++) {
1419 double ww = alpha[l] * (
1420 (g->x)[i] + aa(i) * ff(l, k, j, 0)
1421 + bb(i) * gg(l, k, j, 0) )
1424 *p_r = alpha[l] * ( aa(i) * d2ffdt2(l, k, j, 0)
1425 + bb(i) * d2ggdt2(l, k, j, 0) )
1436 const Tbl& asxm1 = cv->zaasx ;
1437 const Tbl& asxm1car = cv->zaasx2 ;
1439 for (
int k=0 ; k<np ; k++) {
1440 for (
int j=0 ; j<nt ; j++) {
1441 for (
int i=0 ; i<nr ; i++) {
1443 double ww = 1. + asxm1(i) * ff(l, k, j, 0) ;
1445 *p_r = - asxm1car(i) * d2ffdt2(l, k, j, 0)
1446 / ( alpha[l] * ww*ww ) ;
1455 cout <<
"map_et_fait_sr2d2rdt2: unknown type_r !" << endl ;
int get_nzone() const
Returns the number of domains.
const Mg3d * get_mg() const
Gives the Mg3d on which the Mtbl is defined.