20 #include "headcpp.hpp"
22 #include "spheric.hpp"
24 #include "tensor_impl.hpp"
43 cerr <<
"Unknown case in Domain_adapted::export_tau_val_domain_vr" << endl ;
52 double fact_t, fact_r, fact_rt ;
58 assert (baset==COS_EVEN) ;
60 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
62 if ((j==0) || (j==1)) {
64 for (
int i=0 ; i<ilim-1 ; i++) {
66 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
72 for (
int i=1 ; i<ilim-1 ; i++) {
76 pos_gal_r.
set(0) = 0 ;
79 fact_r = - (2*i+1) * pow(-1, i) ;
82 fact_r = -double(4*i+3)/3. ;
83 for (
int t=0 ; t<i ; t++)
84 fact_r *= -
double(2*t+3)/double(2*t+2) ;
88 cerr <<
"Strange base in Domain_adapted:export_tau_val_domain_vr" << endl ;
91 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
101 int mquant = (k%2==0) ?
int(k/2) : int((k-1)/2) ;
108 assert (baset==COS_EVEN) ;
110 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
111 for (
int i=1 ; i<ilim-1 ; i++) {
114 pos_gal_r.
set(0) = 0 ;
116 pos_gal_t.
set(1) = 0 ;
117 pos_gal_rt = pos_cf ;
118 pos_gal_rt.
set(0) = 0 ;
119 pos_gal_rt.
set(1) = 0 ;
122 fact_r = -pow(-1, i)*(2*i+1) ;
124 fact_rt = 2*pow(-1, i)*(2*i+1) ;
128 for (
int t=0 ; t<i ; t++)
129 l0 *= -
double(2*t+3)/double(2*t+2) ;
130 fact_r = - l0 * double(4*i+3)/3. ;
132 fact_rt = 2*l0*double(4*i+3)/3. ;
136 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vr" << endl ;
139 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
140 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
153 assert (baset==SIN_ODD) ;
155 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
156 for (
int i=1 ; i<ilim ; i++) {
159 pos_gal_r.
set(0) = 0 ;
162 fact_r = - 2 * pow(-1, i) ;
165 fact_r = -double(4*i+1) ;
166 for (
int t=0 ; t<i ; t++)
167 fact_r *= -
double(2*t+1)/double(2*t+2) ;
171 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vr" << endl ;
174 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
199 cerr <<
"Unknown case in Domain_nucleus::export_tau_val_domain_vt" << endl ;
208 double fact_t, fact_r, fact_rt ;
214 assert (baset==SIN_EVEN) ;
216 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
218 for (
int i=1 ; i<ilim-1 ; i++) {
222 pos_gal_r.
set(0) = 0 ;
225 fact_r = - (2*i+1) * pow(-1, i) ;
228 fact_r = -double(4*i+3)/3. ;
229 for (
int t=0 ; t<i ; t++)
230 fact_r *= -
double(2*t+3)/double(2*t+2) ;
234 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
237 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
248 assert (baset==COS_ODD) ;
250 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
251 for (
int i=0 ; i<ilim ; i++) {
253 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
263 assert (baset==COS_ODD) ;
265 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
266 for (
int i=1 ; i<ilim ; i++) {
269 pos_gal_r.
set(0) = 0 ;
272 fact_r = - 2 * pow(-1, i) ;
275 fact_r = -double(4*i+1) ;
276 for (
int t=0 ; t<i ; t++)
277 fact_r *= -
double(2*t+1)/double(2*t+2) ;
281 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
284 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
295 assert (baset==COS_ODD) ;
297 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
298 for (
int i=0 ; i<ilim ; i++) {
300 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
310 assert (baset==COS_ODD) ;
312 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
313 for (
int i=1 ; i<ilim ; i++) {
316 pos_gal_r.
set(0) = 0 ;
319 fact_r = - 2 * pow(-1, i) ;
322 fact_r = -double(4*i+1) ;
323 for (
int t=0 ; t<i ; t++)
324 fact_r *= -
double(2*t+1)/double(2*t+2) ;
328 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
331 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
339 int mquant = (k%2==0) ?
int(k/2) : int((k-1)/2) ;
346 assert (baset==SIN_EVEN) ;
348 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
349 for (
int i=1 ; i<ilim-1 ; i++) {
353 pos_gal_r.
set(0) = 0 ;
356 fact_r = - (2*i+1) * pow(-1, i) ;
359 fact_r = -double(4*i+3)/3. ;
360 for (
int t=0 ; t<i ; t++)
361 fact_r *= -
double(2*t+3)/double(2*t+2) ;
365 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
368 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
379 assert (baset==COS_ODD) ;
381 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
382 for (
int i=1 ; i<ilim ; i++) {
385 pos_gal_r.
set(0) = 0 ;
387 pos_gal_t.
set(1) = 0 ;
388 pos_gal_rt = pos_cf ;
389 pos_gal_rt.
set(0) = 0 ;
390 pos_gal_rt.
set(1) = 0 ;
393 fact_r = -2*pow(-1, i) ;
395 fact_rt = 2*pow(-1, i) ;
399 for (
int t=0 ; t<i ; t++)
400 l0 *= -
double(2*t+1)/double(2*t+2) ;
401 fact_r = - l0 * double(4*i+1) ;
403 fact_rt = double(4*i+1)*l0 ;
407 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
410 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
411 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
438 cerr <<
"Unknown case in Domain_nucleus::export_tau_val_domain_vp" << endl ;
447 double fact_t, fact_r, fact_rt ;
453 assert (baset==SIN_ODD) ;
455 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
459 for (
int i=0 ; i<ilim-1 ; i++) {
461 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
467 for (
int i=1 ; i<ilim-1 ; i++) {
471 pos_gal_r.
set(0) = 0 ;
474 fact_r = - (2*i+1) * pow(-1, i) ;
477 fact_r = -double(4*i+3)/3. ;
478 for (
int t=0 ; t<i ; t++)
479 fact_r *= -
double(2*t+3)/double(2*t+2) ;
483 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
486 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
499 assert (baset==COS_EVEN) ;
501 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
502 for (
int i=0 ; i<ilim ; i++) {
504 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
514 assert (baset==COS_EVEN) ;
516 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
517 for (
int i=1 ; i<ilim ; i++) {
520 pos_gal_r.
set(0) = 0 ;
523 fact_r = - 2 * pow(-1, i) ;
526 fact_r = -double(4*i+1) ;
527 for (
int t=0 ; t<i ; t++)
528 fact_r *= -
double(2*t+1)/double(2*t+2) ;
532 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vp" << endl ;
535 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
546 assert (baset==COS_EVEN) ;
548 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
549 for (
int i=0 ; i<ilim ; i++) {
551 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
561 assert (baset==COS_EVEN) ;
563 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
564 for (
int i=1 ; i<ilim ; i++) {
567 pos_gal_r.
set(0) = 0 ;
570 fact_r = - 2 * pow(-1, i) ;
573 fact_r = -double(4*i+1) ;
574 for (
int t=0 ; t<i ; t++)
575 fact_r *= -
double(2*t+1)/double(2*t+2) ;
579 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vp" << endl ;
582 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
594 assert (baset==SIN_ODD) ;
596 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
600 for (
int i=0 ; i<ilim-1 ; i++) {
602 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
608 for (
int i=1 ; i<ilim-1 ; i++) {
612 pos_gal_r.
set(0) = 0 ;
615 fact_r = - (2*i+1) * pow(-1, i) ;
618 fact_r = -double(4*i+3)/3. ;
619 for (
int t=0 ; t<i ; t++)
620 fact_r *= -
double(2*t+3)/double(2*t+2) ;
624 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
627 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
640 assert (baset==SIN_ODD) ;
642 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
646 for (
int i=0 ; i<ilim-1 ; i++) {
648 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
654 for (
int i=1 ; i<ilim-1 ; i++) {
658 pos_gal_r.
set(0) = 0 ;
661 fact_r = - (2*i+1) * pow(-1, i) ;
664 fact_r = -double(4*i+3)/3. ;
665 for (
int t=0 ; t<i ; t++)
666 fact_r *= -
double(2*t+3)/double(2*t+2) ;
670 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
673 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
683 int mquant = (k%2==0) ?
int(k/2) : int((k-1)/2) ;
690 assert (baset==SIN_ODD) ;
692 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
693 for (
int i=1 ; i<ilim-1 ; i++) {
697 pos_gal_r.
set(0) = 0 ;
700 fact_r = - (2*i+1) * pow(-1, i) ;
703 fact_r = -double(4*i+3)/3. ;
704 for (
int t=0 ; t<i ; t++)
705 fact_r *= -
double(2*t+3)/double(2*t+2) ;
709 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vt" << endl ;
712 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
723 assert (baset==COS_EVEN) ;
725 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
726 for (
int i=1 ; i<ilim ; i++) {
729 pos_gal_r.
set(0) = 0 ;
731 pos_gal_t.
set(1) = 0 ;
732 pos_gal_rt = pos_cf ;
733 pos_gal_rt.
set(0) = 0 ;
734 pos_gal_rt.
set(1) = 0 ;
737 fact_r = -2*pow(-1, i) ;
739 fact_rt = 4*pow(-1, i) ;
743 for (
int t=0 ; t<i ; t++)
744 l0 *= -
double(2*t+1)/double(2*t+2) ;
745 fact_r = - l0 * double(4*i+1) ;
747 fact_rt = 2*double(4*i+1)*l0 ;
751 cerr <<
"Strange base in Domain_nucleus:export_tau_val_domain_vp" << endl ;
754 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
755 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
767 assert (mlim>=llim) ;
785 cerr <<
"Unknown case in Domain_nucleus_export_tau_val_domain" << endl ;
790 int kmin = 2*mlim + 2 ;
797 double fact_t, fact_r, fact_rt ;
814 assert ((baser==LEG_EVEN) || (baser==CHEB_EVEN)) ;
817 if ((k<kmin) && (lquant<=llim)) {
819 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
824 if ((i!=0) && (i!=
nbr_coefs(0)-rlim+1)) {
827 pos_gal_r.
set(0) = 0 ;
830 fact_r = - 2 * pow(-1, i) ;
833 fact_r = -double(4*i+1) ;
834 for (
int t=0 ; t<i ; t++)
835 fact_r *= -
double(2*t+1)/double(2*t+2) ;
839 cerr <<
"Strange base in Domain_nucleus:export_tau_inside" << endl ;
843 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
847 else if ((j!=0) && (i!=0) && (i!=
nbr_coefs(0)-rlim+1)) {
850 pos_gal_r.
set(0) = 0 ;
852 pos_gal_t.
set(1) = 0 ;
853 pos_gal_rt = pos_cf ;
854 pos_gal_rt.
set(0) = 0 ;
855 pos_gal_rt.
set(1) = 0 ;
858 fact_r = -2*pow(-1, i) ;
860 fact_rt = 4*pow(-1, i) ;
864 for (
int t=0 ; t<i ; t++)
865 l0 *= -
double(2*t+1)/double(2*t+2) ;
866 fact_r = - l0 * double(4*i+1) ;
868 fact_rt = 2*double(4*i+1)*l0 ;
872 cerr <<
"Strange base in Domain_nucleus:export_tau_inside" << endl ;
875 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
876 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
881 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
885 if ((k<kmin) && (lquant<=llim+1)) {
887 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
891 if ((k<kmin) && (i!=0)) {
894 pos_gal_r.
set(0) = 0 ;
897 fact_r = - (2*i+1) * pow(-1, i) ;
900 fact_r = -double(4*i+3)/3. ;
901 for (
int t=0 ; t<i ; t++)
902 fact_r *= -
double(2*t+3)/double(2*t+2) ;
906 cerr <<
"Strange base in Domain_nucleus:export_tau_inside" << endl ;
909 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
912 else if ((j!=0) && (i!=0)) {
915 pos_gal_r.
set(0) = 0 ;
917 pos_gal_t.
set(1) = 0 ;
918 pos_gal_rt = pos_cf ;
919 pos_gal_rt.
set(0) = 0 ;
920 pos_gal_rt.
set(1) = 0 ;
923 fact_r = -pow(-1, i)*(2*i+1) ;
925 fact_rt = pow(-1, i)*(2*i+1) ;
929 for (
int t=0 ; t<i ; t++)
930 l0 *= -
double(2*t+3)/double(2*t+2) ;
931 fact_r = - l0 * double(4*i+3)/3. ;
933 fact_rt = l0*double(4*i+3)/3. ;
937 cerr <<
"Strange base in Domain_nucleus:export_tau_inside" << endl ;
940 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
941 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
949 assert ((baser==CHEB_EVEN) || (baser==LEG_EVEN)) ;
951 if ((k<kmin+2) && (lquant<=llim)) {
953 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
957 if ((k<kmin+2) && (i!=0)) {
960 pos_gal_r.
set(0) = 0 ;
963 fact_r = - 2 * pow(-1, i) ;
966 fact_r = -double(4*i+1) ;
967 for (
int t=0 ; t<i ; t++)
968 fact_r *= -
double(2*t+1)/double(2*t+2) ;
972 cerr <<
"Strange base in Domain_nucleus::export_tau_val_domain" << endl ;
975 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
979 if ((j!=1) && (i!=0)) {
982 pos_gal_r.
set(0) = 0 ;
984 pos_gal_t.
set(1) = 1 ;
985 pos_gal_rt = pos_cf ;
986 pos_gal_rt.
set(0) = 0 ;
987 pos_gal_rt.
set(1) = 1 ;
990 fact_r = -pow(-1, i) ;
992 fact_rt = pow(-1, i)*j ;
996 for (
int t=0 ; t<i ; t++)
997 l0 *= -
double(2*t+1)/double(2*t+2) ;
1004 cerr <<
"Strange base in Domain_nucleus::affecte_tau_val_domain" << endl ;
1007 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
1008 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
1017 assert ((baser==CHEB_ODD) || (baser==LEG_ODD)) ;
1020 if ((k<kmin+2) && (lquant<=llim+1)) {
1022 sec.
set(pos_sec) = (*so.
cf)(pos_cf) ;
1026 if ((k<kmin+2) && (i!=0)) {
1028 pos_gal_r = pos_cf ;
1029 pos_gal_r.
set(0) = 0 ;
1032 fact_r = - (2*i+1) * pow(-1, i) ;
1035 fact_r = -double(4*i+3)/3. ;
1036 for (
int t=0 ; t<i ; t++)
1037 fact_r *= -
double(2*t+3)/double(2*t+2) ;
1041 cerr <<
"Strange base in Domain_nucleus::export_tau_val_domain" << endl ;
1044 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) ;
1047 else if ((j!=0) && (i!=0)) {
1049 pos_gal_r = pos_cf ;
1050 pos_gal_r.
set(0) = 0 ;
1051 pos_gal_t = pos_cf ;
1052 pos_gal_t.
set(1) = 0 ;
1053 pos_gal_rt = pos_cf ;
1054 pos_gal_rt.
set(0) = 0 ;
1055 pos_gal_rt.
set(1) = 0 ;
1058 fact_r = -pow(-1, i)*(2*i+1) ;
1060 fact_rt = pow(-1, i)*(2*i+1)*(2*j+1) ;
1064 for (
int t=0 ; t<i ; t++)
1065 l0 *= -
double(2*t+3)/double(2*t+2) ;
1066 fact_r = - l0 * double(4*i+3)/3. ;
1068 fact_rt = l0*double(4*i+3)/3.*(2*j+1) ;
1072 cerr <<
"Strange base in Domain_nucleus::export_tau_val_domain" << endl ;
1075 sec.
set(pos_sec) = (*so.
cf)(pos_cf) + fact_r*(*so.
cf)(pos_gal_r) +
1076 fact_t*(*so.
cf)(pos_gal_t) + fact_rt*(*so.
cf)(pos_gal_rt) ;
1083 cerr <<
"Unknow theta basis in Domain_nucleus::export_tau_inside" << endl ;
1105 bool found = false ;
1113 else for (
int i=0 ; i<n_cmp ; i++) {
1114 if ((*p_cmp[i])(0)==1)
1116 if ((*p_cmp[i])(0)==2)
1118 if ((*p_cmp[i])(0)==3)
1130 else for (
int i=0 ; i<n_cmp ; i++) {
1131 if ((*p_cmp[i])(0)==1)
1133 if ((*p_cmp[i])(0)==2)
1135 if ((*p_cmp[i])(0)==3)
1141 cerr <<
"Unknown type of vector Domain_nucleus::export_tau" << endl ;
1147 bool found = false ;
1158 else for (
int i=0 ; i<n_cmp ; i++) {
1159 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
1161 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
1163 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
1165 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
1167 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
1169 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
1187 else for (
int i=0 ; i<n_cmp ; i++) {
1188 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==1))
1190 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==2))
1192 if (((*p_cmp[i])(0)==1) && ((*p_cmp[i])(1)==3))
1194 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==1))
1196 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==2))
1198 if (((*p_cmp[i])(0)==2) && ((*p_cmp[i])(1)==3))
1200 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==1))
1202 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==2))
1204 if (((*p_cmp[i])(0)==3) && ((*p_cmp[i])(1)==3))
1210 cerr <<
"Unknown type of 2-tensor Domain_nucleus::export_tau" << endl ;
1216 cerr <<
"Valence " << val <<
" not implemented in Domain_nucleus::export_tau" << endl ;
reference set(const Index &pos)
Read/write of an element.
Bases_container bases_1d
Arrays containing the various basis of decomposition.
int get_basis(int nd) const
Read only the basis in a given domain.
void export_tau_val_domain(const Val_domain &eq, int mlim, int llim, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
void export_tau_val_domain_vr(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
void export_tau_val_domain_vt(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
void export_tau_val_domain_vp(const Val_domain &eq, int order, Array< double > &res, int &pos_res, int ncond) const
Exports a residual equation in the bulk.
virtual void export_tau(const Tensor &, int, int, Array< double > &, int &, const Array< int > &, int n_cmp=-1, Array< int > **p_cmp=0x0) const
Exports all the residual equations corresponding to a tensorial one in the bulk.
Dim_array nbr_coefs
Number of coefficients.
Class that gives the position inside a multi-dimensional Array.
int & set(int i)
Read/write of the position in a given dimension.
int get_m_order() const
Returns .
bool is_m_order_affected() const
Checks whether the additional parameter order is affected (not very used).
const Param_tensor & get_parameters() const
Returns a pointer on the possible additional parameter.
const Base_tensor & get_basis() const
Returns the vectorial basis (triad) on which the components are defined.
int get_n_comp() const
Returns the number of stored components.
int get_valence() const
Returns the valence.
Class for storing the basis of decompositions of a field and its values on both the configuration and...
bool check_if_zero() const
Check whether the logical state is zero or not.
Array< double > * cf
Pointer on the Array of the values in the coefficients space.
void coef() const
Computes the coefficients.
const Base_spectral & get_base() const
Returns the basis of decomposition.