326 double m_b_si = 1.66E-27;
335 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
336 cerr <<
"Problem in opening the EOS file!" << endl ;
337 cerr <<
"While trying to open " <<
tablename << endl ;
338 cerr <<
"Aborting..." << endl ;
342 fich.ignore(1000,
'\n') ;
346 for (
int i=0; i<5; i++) {
347 fich.ignore(1000,
'\n') ;
351 fich >> nbp ; fich.ignore(1000,
'\n') ;
354 int n_delta, n_mu1, n_mu2;
355 fich >> n_delta; fich.ignore(1000,
'\n') ;
356 fich >> n_mu1; fich.ignore(1000,
'\n') ;
357 fich >> n_mu2; fich.ignore(1000,
'\n') ;
363 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
364 cerr <<
"Wrong value for the number of lines!" << endl ;
365 cerr <<
"nbp = " << nbp << endl ;
366 cerr <<
"Aborting..." << endl ;
370 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
371 cerr <<
"Wrong value for the number of values of delta_car!" << endl ;
372 cerr <<
"n_delta = " << n_delta << endl ;
373 cerr <<
"Aborting..." << endl ;
377 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
378 cerr <<
"Wrong value for the number of values of mu_n!" << endl ;
379 cerr <<
"n_mu1 = " << n_mu1 << endl ;
380 cerr <<
"Aborting..." << endl ;
384 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
385 cerr <<
"Wrong value for the number of values of mu_p!" << endl ;
386 cerr <<
"n_mu2 = " << n_mu2 << endl ;
387 cerr <<
"Aborting..." << endl ;
390 if (n_mu2*n_mu1*n_delta != nbp ) {
391 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
392 cerr <<
"Wrong value for the number of lines!" << endl ;
393 cerr <<
"Aborting..." << endl ;
397 for (
int i=0; i<3; i++) {
398 fich.ignore(1000,
'\n') ;
404 logp =
new Tbl(n_delta, n_mu1, n_mu2) ;
433 double mu1_MeV, mu2_MeV, n1_fm3, n2_fm3;
434 double Knp_Mev_2, press_MeV_fm3;
435 double d2press_dmu1dmu2_MeV_fm3, dn1_ddelta_car_fm3, dn2_ddelta_car_fm3;
438 double delta_car_adim, mu1_adim, mu2_adim, n1_01fm3, n2_01fm3, Knp_adim ;
439 double press_adim, dpress_ddelta_car_adim, dn1_ddelta_car_adim, dn2_ddelta_car_adim ;
440 double d2press_dmu1dmu2_adim;
441 double hbarc = 197.33 ;
442 double hbarc3 = hbarc * hbarc * hbarc ;
445 for (
int j=0 ; j < n_delta ; j++) {
446 for (
int k=0 ; k < n_mu1 ; k++) {
447 for (
int l=0 ; l < n_mu2 ; l++) {
449 fich >> delta_car_adim ;
451 mu1_adim = mu1_MeV * mev_si / (m_b_si * v_unit * v_unit ) ;
453 mu2_adim = mu2_MeV * mev_si / (m_b_si * v_unit * v_unit ) ;
455 n1_01fm3 = 10. * n1_fm3 ;
457 n2_01fm3 = 10. * n2_fm3 ;
459 Knp_adim = Knp_Mev_2 / ( m_b_si * v_unit * v_unit *10. )
460 * (mev_si *hbarc3 ) ;
461 dpress_ddelta_car_adim = - Knp_adim * n1_01fm3 * n2_01fm3
462 *
pow( 1.-delta_car_adim, -1.5) / 2. ;
464 fich >> press_MeV_fm3 ;
465 press_adim = press_MeV_fm3 * mevpfm3 ;
466 fich >> d2press_dmu1dmu2_MeV_fm3 ;
467 d2press_dmu1dmu2_adim = d2press_dmu1dmu2_MeV_fm3
468 * (10. * m_b_si * v_unit * v_unit ) / mev_si ;
469 fich >> dn1_ddelta_car_fm3 ;
470 dn1_ddelta_car_adim = dn1_ddelta_car_fm3 * 10. ;
471 fich >> dn2_ddelta_car_fm3 ;
472 dn2_ddelta_car_adim = dn2_ddelta_car_fm3 * 10. ;
477 fich.ignore(1000,
'\n') ;
505 if (press_adim<=0) {press_adim = 0. ;}
506 logp->
set(j,k,l) = press_adim ;
512 if ((n1_01fm3 < 1e-16) && (n2_01fm3 <1e-16 )) {
513 d2press_dmu1dmu2_adim = 0. ;
514 dpress_ddelta_car_adim = 0. ;
515 dn1_ddelta_car_adim =0. ;
516 dn2_ddelta_car_adim = 0. ;
526 fich.ignore(1000,
'\n') ;
530 fich.ignore(1000,
'\n') ;
552 ent1_max = (*logent1)(0, n_mu1-1, 0) ;
554 ent2_max = (*logent2)(0, 0, n_mu2-1);
577 fichN.open(
"eos_bf_test_1_fluide_N.d") ;
580 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
581 cerr <<
"Problem in opening the EOS file!" << endl ;
582 cerr <<
"While trying to open " <<
tablename << endl ;
583 cerr <<
"Aborting..." << endl ;
587 fichN.ignore(1000,
'\n') ;
589 fichN.ignore(1000,
'\n') ;
591 for (
int i=0; i<5; i++) {
592 fichN.ignore(1000,
'\n') ;
596 fichN >> nbp_N ; fichN.ignore(1000,
'\n') ;
597 cout<<
"nbp_N = " << nbp_N ;
599 fichN >> n_mu1_N;fichN.ignore(1000,
'\n') ;
604 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
605 cerr <<
"Wrong value for the number of lines!" << endl ;
606 cerr <<
"nbp = " << nbp << endl ;
607 cerr <<
"Aborting..." << endl ;
611 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
612 cerr <<
"Wrong value for the number of values of mu_n!" << endl ;
613 cerr <<
"n_mu1 = " << n_mu1 << endl ;
614 cerr <<
"Aborting..." << endl ;
617 for (
int i=0; i<3; i++) {
618 fichN.ignore(1000,
'\n') ;
621 mu1_N =
new Tbl(n_mu1_N) ;
622 n_n_N =
new Tbl(n_mu1_N) ;
623 press_N =
new Tbl(n_mu1_N) ;
630 double mu1_MeV_N, n1_fm3_N,press_MeV_fm3_N;
633 double mu1_adimN, n1_01fm3N,press_adimN;
635 for (
int k=0 ; k < n_mu1_N ; k++) {
638 mu1_adimN = mu1_MeV_N * mev_si / (m_b_si * v_unit * v_unit ) ;
640 n1_01fm3N = 10. * n1_fm3_N ;
641 fichN >> press_MeV_fm3_N;
642 press_adimN = press_MeV_fm3_N * mevpfm3 ;
643 fichN.ignore(1000,
'\n') ;
647 if ( (n1_01fm3N<0) || (press_adimN < 0)){
648 cout <<
"Eos_tabul::read_table(): " << endl ;
649 cout <<
"Negative value in table!" << endl ;
650 cout <<
"n_neutrons = " << n1_01fm3N <<
651 ", p = " << press_adimN <<
", "<< endl ;
652 cout <<
"Aborting..." << endl ;
656 mu1_N ->
set(k) = mu1_adimN ;
657 n_n_N->
set(k) = n1_01fm3N ;
658 press_N ->
set(k) = press_adimN ;
680 fichP.open(
"eos_bf_test_1_fluide_P.d") ;
683 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
684 cerr <<
"Problem in opening the EOS file!" << endl ;
685 cerr <<
"While trying to open " <<
tablename << endl ;
686 cerr <<
"Aborting..." << endl ;
690 fichP.ignore(1000,
'\n') ;
692 fichP.ignore(1000,
'\n') ;
694 for (
int i=0; i<5; i++) {
695 fichP.ignore(1000,
'\n') ;
699 fichP >> nbp_P ; fichP.ignore(1000,
'\n') ;
702 fichP >> n_mu2_P;fichP.ignore(1000,
'\n') ;
705 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
706 cerr <<
"Wrong value for the number of lines!" << endl ;
707 cerr <<
"nbp = " << nbp << endl ;
708 cerr <<
"Aborting..." << endl ;
712 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
713 cerr <<
"Wrong value for the number of values of mu_p!" << endl ;
714 cerr <<
"n_mu2 = " << n_mu2 << endl ;
715 cerr <<
"Aborting..." << endl ;
719 for (
int i=0; i<3; i++) {
720 fichP.ignore(1000,
'\n') ;
723 mu2_P =
new Tbl(n_mu2_P) ;
724 n_p_P =
new Tbl(n_mu2_P) ;
725 press_P =
new Tbl(n_mu2_P) ;
732 double mu2_MeV_P, n2_fm3_P,press_MeV_fm3_P;
735 double mu2_adimP, n2_01fm3P, press_adimP;
737 for (
int l=0 ; l < n_mu2_P ; l++) {
740 mu2_adimP = mu2_MeV_P * mev_si / (m_b_si * v_unit * v_unit ) ;
742 n2_01fm3P = 10. * n2_fm3_P ;
743 fichP >> press_MeV_fm3_P;
744 press_adimP = press_MeV_fm3_P * mevpfm3 ;
748 fichP.ignore(1000,
'\n') ;
749 if ( (n2_01fm3P<0) || (press_adimP < 0)){
750 cout <<
"Eos_tabul::read_table(): " << endl ;
751 cout <<
"Pegative value in table!" << endl ;
752 cout <<
", n_protons " << n2_01fm3P <<
753 ", p = " << press_adimP <<
", "<< endl ;
754 cout <<
"Aborting..." << endl ;
758 mu2_P ->
set(l) = mu2_adimP ;
759 n_p_P->
set(l) = n2_01fm3P ;
760 press_P ->
set(l) = press_adimP ;
772 fich1.open(
"np=0.dat") ;
775 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
776 cerr <<
"Problem in opening the EOS file!" << endl ;
777 cerr <<
"While trying to open " <<
tablename << endl ;
778 cerr <<
"Aborting..." << endl ;
781 int n_delta_n0, n_mu1_n0;
782 fich1 >> n_delta_n0;fich1.ignore(1000,
'\n') ;
783 fich1 >> n_mu1_n0;fich1.ignore(1000,
'\n') ;
784 fich1.ignore(1000,
'\n') ;
786 delta_car_n0 =
new Tbl(n_delta_n0, n_mu1_n0) ;
787 mu1_n0 =
new Tbl(n_delta_n0, n_mu1_n0) ;
788 mu2_n0 =
new Tbl(n_delta_n0, n_mu1_n0) ;
794 double delta_car_nn0, mu1_MeV_nn0, mu2_MeV_nn0;
796 for (
int o = 0; o < n_delta_n0 ; o++ ) {
797 for (
int p = 0 ; p < n_mu1_n0 ; p++) {
799 fich1 >> delta_car_nn0 ;
800 fich1 >> mu1_MeV_nn0 ;
801 fich1 >> mu2_MeV_nn0 ;
803 fich1.ignore(1000,
'\n') ;
805 delta_car_n0 ->
set(o,p) = delta_car_nn0;
806 mu1_n0 ->
set(o,p) = mu1_MeV_nn0 * mev_si / (m_b_si * v_unit * v_unit ) ;
807 mu2_n0 ->
set(o,p) = mu2_MeV_nn0 * mev_si / (m_b_si * v_unit * v_unit ) ;
810 fich1.ignore(1000,
'\n') ;
820 fich2.open(
"nn=0.dat") ;
824 cerr <<
"Eos_bf_tabul::read_table(): " << endl ;
825 cerr <<
"Problem in opening the EOS file!" << endl ;
826 cerr <<
"While trying to open " <<
tablename << endl ;
827 cerr <<
"Aborting..." << endl ;
830 int n_delta_p0, n_mu2_p0;
831 fich2 >> n_delta_p0;fich2.ignore(1000,
'\n') ;
832 fich2 >> n_mu2_p0;fich2.ignore(1000,
'\n') ;
833 fich2.ignore(1000,
'\n') ;
835 delta_car_p0 =
new Tbl(n_delta_p0, n_mu2_p0) ;
836 mu1_p0 =
new Tbl(n_delta_p0, n_mu2_p0) ;
837 mu2_p0 =
new Tbl(n_delta_p0, n_mu2_p0) ;
843 double delta_car_np0, mu1_MeV_np0, mu2_MeV_np0;
845 for (
int o = 0; o < n_delta_p0 ; o++ ) {
846 for (
int p = 0 ; p < n_mu2_p0 ; p++) {
848 fich2 >> delta_car_np0 ;
849 fich2 >> mu1_MeV_np0 ;
850 fich2 >> mu2_MeV_np0 ;
852 fich2.ignore(1000,
'\n') ;
854 delta_car_p0 ->
set(o,p) = delta_car_np0;
855 mu1_p0 ->
set(o,p) = mu1_MeV_np0 * mev_si / (m_b_si * v_unit * v_unit ) ;
856 mu2_p0 ->
set(o,p) = mu2_MeV_np0 * mev_si / (m_b_si * v_unit * v_unit ) ;
860 fich2.ignore(1000,
'\n') ;