44 f00_implicitorexplicit(2),
51 restart_time(10000.0),
56 o_Ex(0), o_Ey(0), o_Ez(0), o_Bx(0), o_By(0), o_Bz(0), o_x1x2(0), o_pth(0), o_p2p1x1(0), o_p1p2p3(0),
57 o_G(0), o_Px(0), o_PxPx(0), o_Py(0), o_PxPy(0), o_PyPy(0), o_Pz(0), o_PxPz(0), o_PyPz(0), o_PzPz(0),
58 o_Vx(0), o_VxVx(0), o_Vy(0), o_VxVy(0), o_VyVy(0), o_VxVz(0), o_VyVz(0), o_VzVz(0),
59 o_Vsq(0), o_Qx(0), o_Qy(0), o_Qz(0),
60 o_vNx(0), o_vNy(0), o_vNz(0),
61 o_Jx(0), o_Jy(0), o_Jz(0),
62 o_Pressure(0), o_Temperature(0), o_ND(0), o_Nu(0), o_p1x1(0), o_f0x1(0), o_f10x1(0), o_f11x1(0), o_f20x1(0), o_fl0x1(0),
63 o_Ux(0), o_Uy(0), o_Uz(0), o_Z(0), o_ni(0), o_Ti(0),
65 numpx(96), nump1(96), nump2(96), nump3(96),
72 RB_D_tolerance(1e-12),
80 hydromass(100), hydrocharge(79),
81 polarization_direction(0),
84 super_gaussian_m(2.0),
89 hydro_dens_profile_str(
"cst{0.0}"),
90 hydro_temp_profile_str(
"cst{0.0}"),
91 hydro_vel_profile_str(
"cst{0.0}"),
92 hydro_Z_profile_str(
"cst{0.0}"),
98 ext_fields(0),trav_wave(0),num_waves(0),
100 I_0(0.0), lambda_0(0.351),
102 intensity_profile_str(
"cst{0.0}"),
103 intensity_time_profile_str(
"cst{0.0}"),
104 ex_time_profile_str(
"cst{0.0}"),
105 ey_time_profile_str(
"cst{0.0}"),
106 ez_time_profile_str(
"cst{0.0}"),
107 bx_time_profile_str(
"cst{0.0}"),
108 by_time_profile_str(
"cst{0.0}"),
109 bz_time_profile_str(
"cst{0.0}"),
110 ex_profile_str(
"cst{0.0}"),
111 ey_profile_str(
"cst{0.0}"),
112 ez_profile_str(
"cst{0.0}"),
113 bx_profile_str(
"cst{0.0}"),
114 by_profile_str(
"cst{0.0}"),
115 bz_profile_str(
"cst{0.0}")
163 std::ifstream deckfile(
"inputdeck");
164 std::string deckstring, deckequalssign, deckstringbool;
169 if (deckfile.is_open()) {
171 while (deckfile >> deckstring) {
173 if (deckstring ==
"if_restart") {
174 deckfile >> deckequalssign;
175 if(deckequalssign !=
"=") {
176 std::cout <<
"Error reading " << deckstring << std::endl;
179 deckfile >> deckstringbool;
180 isthisarestart = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
183 if (deckstring ==
"n_restarts") {
184 deckfile >> deckequalssign;
185 if(deckequalssign !=
"=") {
186 std::cout <<
"Error reading " << deckstring << std::endl;
192 if (deckstring ==
"restart_time") {
193 deckfile >> deckequalssign;
194 if(deckequalssign !=
"=") {
195 std::cout <<
"Error reading " << deckstring << std::endl;
201 if (deckstring ==
"NnodesX") {
202 deckfile >> deckequalssign;
203 if(deckequalssign !=
"=") {
204 std::cout <<
"Error reading " << deckstring << std::endl;
210 if (deckstring ==
"numsp") {
211 deckfile >> deckequalssign;
212 if(deckequalssign !=
"=") {
213 std::cout <<
"Error reading " << deckstring << std::endl;
218 if (deckstring ==
"l0") {
219 deckfile >> deckequalssign;
220 if(deckequalssign !=
"=") {
221 std::cout <<
"Error reading " << deckstring << std::endl;
224 for (
size_t s(0);s<
numsp;++s)
227 ls.push_back(tempint);
231 if (deckstring ==
"m0") {
232 deckfile >> deckequalssign;
233 if(deckequalssign !=
"=") {
234 std::cout <<
"Error reading " << deckstring << std::endl;
237 for (
size_t s(0);s<
numsp;++s)
240 ms.push_back(tempint);
244 if (deckstring ==
"nump") {
245 deckfile >> deckequalssign;
246 if(deckequalssign !=
"=") {
247 std::cout <<
"Error reading " << deckstring << std::endl;
250 for (
size_t s(0);s<
numsp;++s)
253 ps.push_back(tempint);
254 Npx.push_back(2*tempint+1);
255 Npy.push_back(2*tempint+1);
256 Npz.push_back(2*tempint+1);
260 if (deckstring ==
"pmax") {
261 deckfile >> deckequalssign;
262 if(deckequalssign !=
"=") {
263 std::cout <<
"Error reading " << deckstring << std::endl;
268 for (
size_t s(0);s<
numsp;++s)
270 deckfile >> deckreal;
271 pmax.push_back(deckreal);
275 if (deckstring ==
"charge") {
276 deckfile >> deckequalssign;
277 if(deckequalssign !=
"=") {
278 std::cout <<
"Error reading " << deckstring << std::endl;
281 for (
size_t s(0);s<
numsp;++s)
283 deckfile >> deckreal;
284 qs.push_back(-1.0*deckreal);
288 if (deckstring ==
"mass") {
289 deckfile >> deckequalssign;
290 if(deckequalssign !=
"=") {
291 std::cout <<
"Error reading " << deckstring << std::endl;
294 for (
size_t s(0);s<
numsp;++s)
296 deckfile >> deckreal;
297 mass.push_back(deckreal);
301 if (deckstring ==
"Nx") {
302 deckfile >> deckequalssign;
303 if(deckequalssign !=
"=") {
304 std::cout <<
"Error reading " << deckstring << std::endl;
311 if (deckstring ==
"xmin") {
312 deckfile >> deckequalssign;
313 if(deckequalssign !=
"=") {
314 std::cout <<
"Error reading " << deckstring << std::endl;
320 if (deckstring ==
"xmax") {
321 deckfile >> deckequalssign;
322 if(deckequalssign !=
"=") {
323 std::cout <<
"Error reading " << deckstring << std::endl;
329 if (deckstring ==
"clf_dp") {
330 deckfile >> deckequalssign;
331 if(deckequalssign !=
"=") {
332 std::cout <<
"Error reading " << deckstring << std::endl;
337 if (deckstring ==
"hydro") {
338 deckfile >> deckequalssign;
339 if(deckequalssign !=
"=") {
340 std::cout <<
"Error reading " << deckstring << std::endl;
343 deckfile >> deckstringbool;
344 hydromotion = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
347 if (deckstring ==
"hydroatomicmass") {
348 deckfile >> deckequalssign;
349 if(deckequalssign !=
"=") {
350 std::cout <<
"Error reading " << deckstring << std::endl;
356 if (deckstring ==
"hydrocharge") {
357 deckfile >> deckequalssign;
358 if(deckequalssign !=
"=") {
359 std::cout <<
"Error reading " << deckstring << std::endl;
364 if (deckstring ==
"ext_fields") {
365 deckfile >> deckequalssign;
366 if(deckequalssign !=
"=") {
367 std::cout <<
"Error reading " << deckstring << std::endl;
370 deckfile >> deckstringbool;
371 ext_fields = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
374 if (deckstring ==
"traveling_wave") {
375 deckfile >> deckequalssign;
376 if(deckequalssign !=
"=") {
377 std::cout <<
"Error reading " << deckstring << std::endl;
380 deckfile >> deckstringbool;
381 trav_wave = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
383 if (deckstring ==
"num_waves") {
384 deckfile >> deckequalssign;
385 if(deckequalssign !=
"=") {
386 std::cout <<
"Error reading " << deckstring << std::endl;
391 if (deckstring ==
"small_dt") {
392 deckfile >> deckequalssign;
393 if(deckequalssign !=
"=") {
394 std::cout <<
"Error reading " << deckstring << std::endl;
399 if (deckstring ==
"smaller_dt") {
400 deckfile >> deckequalssign;
401 if(deckequalssign !=
"=") {
402 std::cout <<
"Error reading " << deckstring << std::endl;
407 if (deckstring ==
"Rosenbluth_D_tolerance") {
408 deckfile >> deckequalssign;
409 if(deckequalssign !=
"=") {
410 std::cout <<
"Error reading " << deckstring << std::endl;
415 if (deckstring ==
"Rosenbluth_D_maximum_iterations") {
416 deckfile >> deckequalssign;
417 if(deckequalssign !=
"=") {
418 std::cout <<
"Error reading " << deckstring << std::endl;
423 if (deckstring ==
"NB_algorithms") {
424 deckfile >> deckequalssign;
425 if(deckequalssign !=
"=") {
426 std::cout <<
"Error reading " << deckstring << std::endl;
431 if (deckstring ==
"assume_tridiagonal_flm_collisions") {
432 deckfile >> deckequalssign;
433 if(deckequalssign !=
"=") {
434 std::cout <<
"Error reading " << deckstring << std::endl;
437 deckfile >> deckstringbool;
438 if_tridiagonal = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
440 if (deckstring ==
"implicit_E") {
441 deckfile >> deckequalssign;
442 if(deckequalssign !=
"=") {
443 std::cout <<
"Error reading " << deckstring << std::endl;
446 deckfile >> deckstringbool;
447 implicit_E = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
449 if (deckstring ==
"implicit_B_push") {
450 deckfile >> deckequalssign;
451 if(deckequalssign !=
"=") {
452 std::cout <<
"Error reading " << deckstring << std::endl;
455 deckfile >> deckstringbool;
456 implicit_B = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
458 if (deckstring ==
"collisions_switch") {
459 deckfile >> deckequalssign;
460 if(deckequalssign !=
"=") {
461 std::cout <<
"Error reading " << deckstring << std::endl;
464 deckfile >> deckstringbool;
465 collisions = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
467 if (deckstring ==
"f00_collisions") {
468 deckfile >> deckequalssign;
469 if(deckequalssign !=
"=") {
470 std::cout <<
"Error reading " << deckstring << std::endl;
473 deckfile >> deckstringbool;
474 if (deckstringbool[0] ==
'i' || deckstringbool[0] ==
'I'){
477 else if (deckstringbool[0] ==
'e' || deckstringbool[0] ==
'E'){
480 if (deckstringbool[0] ==
'f' || deckstringbool[0] ==
'F'){
484 if (deckstring ==
"flm_collisions") {
485 deckfile >> deckequalssign;
486 if(deckequalssign !=
"=") {
487 std::cout <<
"Error reading " << deckstring << std::endl;
490 deckfile >> deckstringbool;
491 flm_collisions = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
493 if (deckstring ==
"MX_cooling") {
494 deckfile >> deckequalssign;
495 if(deckequalssign !=
"=") {
496 std::cout <<
"Error reading " << deckstring << std::endl;
499 deckfile >> deckstringbool;
500 MX_cooling = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
505 if (deckstring ==
"t_stop") {
506 deckfile >> deckequalssign;
507 if(deckequalssign !=
"=") {
508 std::cout <<
"Error reading " << deckstring << std::endl;
513 if (deckstring ==
"n_outsteps") {
514 deckfile >> deckequalssign;
515 if(deckequalssign !=
"=") {
516 std::cout <<
"Error reading " << deckstring << std::endl;
526 if (deckstring ==
"n_distoutsteps") {
527 deckfile >> deckequalssign;
528 if(deckequalssign !=
"=") {
529 std::cout <<
"Error reading " << deckstring << std::endl;
539 if (deckstring ==
"bndX") {
540 deckfile >> deckequalssign;
541 if(deckequalssign !=
"=") {
542 std::cout <<
"Error reading " << deckstring << std::endl;
547 if (deckstring ==
"o_EHist") {
548 deckfile >> deckequalssign;
549 if(deckequalssign !=
"=") {
550 std::cout <<
"Error reading " << deckstring << std::endl;
553 deckfile >> deckstringbool;
554 o_EHist = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
556 if (deckstring ==
"o_Ex") {
557 deckfile >> deckequalssign;
558 if(deckequalssign !=
"=") {
559 std::cout <<
"Error reading " << deckstring << std::endl;
562 deckfile >> deckstringbool;
563 o_Ex = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
565 if (deckstring ==
"o_Ey") {
566 deckfile >> deckequalssign;
567 if(deckequalssign !=
"=") {
568 std::cout <<
"Error reading " << deckstring << std::endl;
571 deckfile >> deckstringbool;
572 o_Ey = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
574 if (deckstring ==
"o_Ez") {
575 deckfile >> deckequalssign;
576 if(deckequalssign !=
"=") {
577 std::cout <<
"Error reading " << deckstring << std::endl;
580 deckfile >> deckstringbool;
581 o_Ez = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
583 if (deckstring ==
"o_Bx") {
584 deckfile >> deckequalssign;
585 if(deckequalssign !=
"=") {
586 std::cout <<
"Error reading " << deckstring << std::endl;
589 deckfile >> deckstringbool;
590 o_Bx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
592 if (deckstring ==
"o_By") {
593 deckfile >> deckequalssign;
594 if(deckequalssign !=
"=") {
595 std::cout <<
"Error reading " << deckstring << std::endl;
598 deckfile >> deckstringbool;
599 o_By = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
601 if (deckstring ==
"o_Bz") {
602 deckfile >> deckequalssign;
603 if(deckequalssign !=
"=") {
604 std::cout <<
"Error reading " << deckstring << std::endl;
607 deckfile >> deckstringbool;
608 o_Bz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
610 if (deckstring ==
"o_x1x2") {
611 deckfile >> deckequalssign;
612 if(deckequalssign !=
"=") {
613 std::cout <<
"Error reading " << deckstring << std::endl;
616 deckfile >> deckstringbool;
617 o_x1x2 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
619 if (deckstring ==
"o_pth") {
620 deckfile >> deckequalssign;
621 if(deckequalssign !=
"=") {
622 std::cout <<
"Error reading " << deckstring << std::endl;
625 deckfile >> deckstringbool;
626 o_pth = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
628 if (deckstring ==
"o_G") {
629 deckfile >> deckequalssign;
630 if(deckequalssign !=
"=") {
631 std::cout <<
"Error reading " << deckstring << std::endl;
634 deckfile >> deckstringbool;
635 o_G = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
637 if (deckstring ==
"o_Px") {
638 deckfile >> deckequalssign;
639 if(deckequalssign !=
"=") {
640 std::cout <<
"Error reading " << deckstring << std::endl;
643 deckfile >> deckstringbool;
644 o_Px = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
646 if (deckstring ==
"o_PxPx") {
647 deckfile >> deckequalssign;
648 if(deckequalssign !=
"=") {
649 std::cout <<
"Error reading " << deckstring << std::endl;
652 deckfile >> deckstringbool;
653 o_PxPx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
655 if (deckstring ==
"o_Py") {
656 deckfile >> deckequalssign;
657 if(deckequalssign !=
"=") {
658 std::cout <<
"Error reading " << deckstring << std::endl;
661 deckfile >> deckstringbool;
662 o_Py = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
664 if (deckstring ==
"o_PxPy") {
665 deckfile >> deckequalssign;
666 if(deckequalssign !=
"=") {
667 std::cout <<
"Error reading " << deckstring << std::endl;
670 deckfile >> deckstringbool;
671 o_PxPy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
673 if (deckstring ==
"o_PyPy") {
674 deckfile >> deckequalssign;
675 if(deckequalssign !=
"=") {
676 std::cout <<
"Error reading " << deckstring << std::endl;
679 deckfile >> deckstringbool;
680 o_PyPy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
682 if (deckstring ==
"o_Pz") {
683 deckfile >> deckequalssign;
684 if(deckequalssign !=
"=") {
685 std::cout <<
"Error reading " << deckstring << std::endl;
688 deckfile >> deckstringbool;
689 o_Pz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
691 if (deckstring ==
"o_PxPz") {
692 deckfile >> deckequalssign;
693 if(deckequalssign !=
"=") {
694 std::cout <<
"Error reading " << deckstring << std::endl;
697 deckfile >> deckstringbool;
698 o_PxPz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
700 if (deckstring ==
"o_PyPz") {
701 deckfile >> deckequalssign;
702 if(deckequalssign !=
"=") {
703 std::cout <<
"Error reading " << deckstring << std::endl;
706 deckfile >> deckstringbool;
707 o_PyPz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
709 if (deckstring ==
"o_PzPz") {
710 deckfile >> deckequalssign;
711 if(deckequalssign !=
"=") {
712 std::cout <<
"Error reading " << deckstring << std::endl;
715 deckfile >> deckstringbool;
716 o_PzPz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
718 if (deckstring ==
"o_Jx") {
719 deckfile >> deckequalssign;
720 if(deckequalssign !=
"=") {
721 std::cout <<
"Error reading " << deckstring << std::endl;
724 deckfile >> deckstringbool;
725 o_Jx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
727 if (deckstring ==
"o_Jy") {
728 deckfile >> deckequalssign;
729 if(deckequalssign !=
"=") {
730 std::cout <<
"Error reading " << deckstring << std::endl;
733 deckfile >> deckstringbool;
734 o_Jy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
736 if (deckstring ==
"o_Jz") {
737 deckfile >> deckequalssign;
738 if(deckequalssign !=
"=") {
739 std::cout <<
"Error reading " << deckstring << std::endl;
742 deckfile >> deckstringbool;
743 o_Jz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
745 if (deckstring ==
"o_vNx") {
746 deckfile >> deckequalssign;
747 if(deckequalssign !=
"=") {
748 std::cout <<
"Error reading " << deckstring << std::endl;
751 deckfile >> deckstringbool;
752 o_vNx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
754 if (deckstring ==
"o_vNy") {
755 deckfile >> deckequalssign;
756 if(deckequalssign !=
"=") {
757 std::cout <<
"Error reading " << deckstring << std::endl;
760 deckfile >> deckstringbool;
761 o_vNy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
763 if (deckstring ==
"o_vNz") {
764 deckfile >> deckequalssign;
765 if(deckequalssign !=
"=") {
766 std::cout <<
"Error reading " << deckstring << std::endl;
769 deckfile >> deckstringbool;
770 o_vNz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
772 if (deckstring ==
"o_Vx") {
773 deckfile >> deckequalssign;
774 if(deckequalssign !=
"=") {
775 std::cout <<
"Error reading " << deckstring << std::endl;
778 deckfile >> deckstringbool;
779 o_Vx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
781 if (deckstring ==
"o_VxVx") {
782 deckfile >> deckequalssign;
783 if(deckequalssign !=
"=") {
784 std::cout <<
"Error reading " << deckstring << std::endl;
787 deckfile >> deckstringbool;
788 o_VxVx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
790 if (deckstring ==
"o_Vy") {
791 deckfile >> deckequalssign;
792 if(deckequalssign !=
"=") {
793 std::cout <<
"Error reading " << deckstring << std::endl;
796 deckfile >> deckstringbool;
797 o_Vy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
799 if (deckstring ==
"o_VxVy") {
800 deckfile >> deckequalssign;
801 if(deckequalssign !=
"=") {
802 std::cout <<
"Error reading " << deckstring << std::endl;
805 deckfile >> deckstringbool;
806 o_VxVy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
808 if (deckstring ==
"o_VyVy") {
809 deckfile >> deckequalssign;
810 if(deckequalssign !=
"=") {
811 std::cout <<
"Error reading " << deckstring << std::endl;
814 deckfile >> deckstringbool;
815 o_VyVy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
817 if (deckstring ==
"o_VxVz") {
818 deckfile >> deckequalssign;
819 if(deckequalssign !=
"=") {
820 std::cout <<
"Error reading " << deckstring << std::endl;
823 deckfile >> deckstringbool;
824 o_VxVz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
826 if (deckstring ==
"o_VyVz") {
827 deckfile >> deckequalssign;
828 if(deckequalssign !=
"=") {
829 std::cout <<
"Error reading " << deckstring << std::endl;
832 deckfile >> deckstringbool;
833 o_VyVz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
835 if (deckstring ==
"o_VzVz") {
836 deckfile >> deckequalssign;
837 if(deckequalssign !=
"=") {
838 std::cout <<
"Error reading " << deckstring << std::endl;
841 deckfile >> deckstringbool;
842 o_VzVz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
844 if (deckstring ==
"o_Vsq") {
845 deckfile >> deckequalssign;
846 if(deckequalssign !=
"=") {
847 std::cout <<
"Error reading " << deckstring << std::endl;
850 deckfile >> deckstringbool;
851 o_Vsq = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
853 if (deckstring ==
"o_Qx") {
854 deckfile >> deckequalssign;
855 if(deckequalssign !=
"=") {
856 std::cout <<
"Error reading " << deckstring << std::endl;
859 deckfile >> deckstringbool;
860 o_Qx = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
862 if (deckstring ==
"o_Qy") {
863 deckfile >> deckequalssign;
864 if(deckequalssign !=
"=") {
865 std::cout <<
"Error reading " << deckstring << std::endl;
868 deckfile >> deckstringbool;
869 o_Qy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
871 if (deckstring ==
"o_Qz") {
872 deckfile >> deckequalssign;
873 if(deckequalssign !=
"=") {
874 std::cout <<
"Error reading " << deckstring << std::endl;
877 deckfile >> deckstringbool;
878 o_Qz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
880 if (deckstring ==
"o_Temperature") {
881 deckfile >> deckequalssign;
882 if(deckequalssign !=
"=") {
883 std::cout <<
"Error reading " << deckstring << std::endl;
886 deckfile >> deckstringbool;
887 o_Temperature = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
889 if (deckstring ==
"o_Pressure") {
890 deckfile >> deckequalssign;
891 if(deckequalssign !=
"=") {
892 std::cout <<
"Error reading " << deckstring << std::endl;
895 deckfile >> deckstringbool;
896 o_Pressure = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
898 if (deckstring ==
"o_ND") {
899 deckfile >> deckequalssign;
900 if(deckequalssign !=
"=") {
901 std::cout <<
"Error reading " << deckstring << std::endl;
904 deckfile >> deckstringbool;
905 o_ND = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
907 if (deckstring ==
"o_Nu") {
908 deckfile >> deckequalssign;
909 if(deckequalssign !=
"=") {
910 std::cout <<
"Error reading " << deckstring << std::endl;
913 deckfile >> deckstringbool;
914 o_Nu = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
916 if (deckstring ==
"o_p1x1") {
917 deckfile >> deckequalssign;
918 if(deckequalssign !=
"=") {
919 std::cout <<
"Error reading " << deckstring << std::endl;
922 deckfile >> deckstringbool;
923 o_p1x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
925 if (deckstring ==
"o_f0x1") {
926 deckfile >> deckequalssign;
927 if(deckequalssign !=
"=") {
928 std::cout <<
"Error reading " << deckstring << std::endl;
931 deckfile >> deckstringbool;
932 o_f0x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
934 if (deckstring ==
"o_f10x1") {
935 deckfile >> deckequalssign;
936 if(deckequalssign !=
"=") {
937 std::cout <<
"Error reading " << deckstring << std::endl;
940 deckfile >> deckstringbool;
941 o_f10x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
943 if (deckstring ==
"o_f11x1") {
944 deckfile >> deckequalssign;
945 if(deckequalssign !=
"=") {
946 std::cout <<
"Error reading " << deckstring << std::endl;
949 deckfile >> deckstringbool;
950 o_f11x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
952 if (deckstring ==
"o_f20x1") {
953 deckfile >> deckequalssign;
954 if(deckequalssign !=
"=") {
955 std::cout <<
"Error reading " << deckstring << std::endl;
958 deckfile >> deckstringbool;
959 o_f20x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
961 if (deckstring ==
"o_fl0x1") {
962 deckfile >> deckequalssign;
963 if(deckequalssign !=
"=") {
964 std::cout <<
"Error reading " << deckstring << std::endl;
967 deckfile >> deckstringbool;
968 o_fl0x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
970 if (deckstring ==
"o_p2p1x1") {
971 deckfile >> deckequalssign;
972 if(deckequalssign !=
"=") {
973 std::cout <<
"Error reading " << deckstring << std::endl;
976 deckfile >> deckstringbool;
977 o_p2p1x1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
979 if (deckstring ==
"o_p1p2p3") {
980 deckfile >> deckequalssign;
981 if(deckequalssign !=
"=") {
982 std::cout <<
"Error reading " << deckstring << std::endl;
985 deckfile >> deckstringbool;
986 o_p1p2p3 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
988 if (deckstring ==
"o_Ux") {
989 deckfile >> deckequalssign;
990 if(deckequalssign !=
"=") {
991 std::cout <<
"Error reading " << deckstring << std::endl;
994 deckfile >> deckstringbool;
995 o_Ux = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
997 if (deckstring ==
"o_Uy") {
998 deckfile >> deckequalssign;
999 if(deckequalssign !=
"=") {
1000 std::cout <<
"Error reading " << deckstring << std::endl;
1003 deckfile >> deckstringbool;
1004 o_Uy = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1006 if (deckstring ==
"o_Uz") {
1007 deckfile >> deckequalssign;
1008 if(deckequalssign !=
"=") {
1009 std::cout <<
"Error reading " << deckstring << std::endl;
1012 deckfile >> deckstringbool;
1013 o_Uz = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1015 if (deckstring ==
"o_Z") {
1016 deckfile >> deckequalssign;
1017 if(deckequalssign !=
"=") {
1018 std::cout <<
"Error reading " << deckstring << std::endl;
1021 deckfile >> deckstringbool;
1022 o_Z = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1024 if (deckstring ==
"o_ni") {
1025 deckfile >> deckequalssign;
1026 if(deckequalssign !=
"=") {
1027 std::cout <<
"Error reading " << deckstring << std::endl;
1030 deckfile >> deckstringbool;
1031 o_ni = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1033 if (deckstring ==
"o_Ti") {
1034 deckfile >> deckequalssign;
1035 if(deckequalssign !=
"=") {
1036 std::cout <<
"Error reading " << deckstring << std::endl;
1039 deckfile >> deckstringbool;
1040 o_Ti = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1042 if (deckstring ==
"nump1") {
1043 deckfile >> deckequalssign;
1044 if(deckequalssign !=
"=") {
1045 std::cout <<
"Error reading " << deckstring << std::endl;
1052 if (deckstring ==
"nump2") {
1053 deckfile >> deckequalssign;
1054 if(deckequalssign !=
"=") {
1055 std::cout <<
"Error reading " << deckstring << std::endl;
1062 if (deckstring ==
"nump3") {
1063 deckfile >> deckequalssign;
1064 if(deckequalssign !=
"=") {
1065 std::cout <<
"Error reading " << deckstring << std::endl;
1070 if (deckstring ==
"numpx") {
1071 deckfile >> deckequalssign;
1072 if(deckequalssign !=
"=") {
1073 std::cout <<
"Error reading " << deckstring << std::endl;
1078 if (deckstring ==
"only_output") {
1079 deckfile >> deckequalssign;
1080 if(deckequalssign !=
"=") {
1081 std::cout <<
"Error reading " << deckstring << std::endl;
1084 deckfile >> deckstringbool;
1085 only_output = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1087 if (deckstring ==
"lnLambda") {
1088 deckfile >> deckequalssign;
1089 if(deckequalssign !=
"=") {
1090 std::cout <<
"Error reading " << deckstring << std::endl;
1103 if (deckstring ==
"density_np") {
1104 deckfile >> deckequalssign;
1105 if(deckequalssign !=
"=") {
1106 std::cout <<
"Error reading " << deckstring << std::endl;
1111 if (deckstring ==
"super_gaussian_distribution") {
1112 deckfile >> deckequalssign;
1113 if(deckequalssign !=
"=") {
1114 std::cout <<
"Error reading " << deckstring << std::endl;
1119 if (deckstring ==
"init_f1") {
1120 deckfile >> deckequalssign;
1121 if(deckequalssign !=
"=") {
1122 std::cout <<
"Error reading " << deckstring << std::endl;
1125 deckfile >> deckstringbool;
1126 init_f1 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1128 if (deckstring ==
"init_f2") {
1129 deckfile >> deckequalssign;
1130 if(deckequalssign !=
"=") {
1131 std::cout <<
"Error reading " << deckstring << std::endl;
1134 deckfile >> deckstringbool;
1135 init_f2 = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1137 if (deckstring ==
"polarization_direction") {
1138 deckfile >> deckequalssign;
1139 if(deckequalssign !=
"=") {
1140 std::cout <<
"Error reading " << deckstring << std::endl;
1145 if (deckstring ==
"inverse_bremsstrahlung") {
1146 deckfile >> deckequalssign;
1147 if(deckequalssign !=
"=") {
1148 std::cout <<
"Error reading " << deckstring << std::endl;
1151 deckfile >> deckstringbool;
1152 IB_heating = (deckstringbool[0] ==
't' || deckstringbool[0] ==
'T');
1154 if (deckstring ==
"I_0") {
1155 deckfile >> deckequalssign;
1156 if(deckequalssign !=
"=") {
1157 std::cout <<
"Error reading " << deckstring << std::endl;
1162 if (deckstring ==
"lambda_0") {
1163 deckfile >> deckequalssign;
1164 if(deckequalssign !=
"=") {
1165 std::cout <<
"Error reading " << deckstring << std::endl;
1170 if (deckstring ==
"pth_ref") {
1171 deckfile >> deckequalssign;
1172 if(deckequalssign !=
"=") {
1173 std::cout <<
"Error reading " << deckstring << std::endl;
1178 if (deckstring ==
"n(x)") {
1179 deckfile >> deckequalssign;
1180 if(deckequalssign !=
"=") {
1181 std::cout <<
"Error reading " << deckstring << std::endl;
1184 for (
size_t s(0);s<
numsp;++s)
1186 deckfile >> deckstring;
1190 if (deckstring ==
"T(x)") {
1191 deckfile >> deckequalssign;
1192 if(deckequalssign !=
"=") {
1193 std::cout <<
"Error reading " << deckstring << std::endl;
1196 for (
size_t s(0);s<
numsp;++s)
1198 deckfile >> deckstring;
1202 if (deckstring ==
"f_pedestal") {
1203 deckfile >> deckequalssign;
1204 if(deckequalssign !=
"=") {
1205 std::cout <<
"Error reading " << deckstring << std::endl;
1208 for (
size_t s(0);s<
numsp;++s)
1210 deckfile >> deckstring;
1214 if (deckstring ==
"multiplier-f10(x)") {
1215 deckfile >> deckequalssign;
1216 if(deckequalssign !=
"=") {
1217 std::cout <<
"Error reading " << deckstring << std::endl;
1220 for (
size_t s(0);s<
numsp;++s)
1222 deckfile >> deckstring;
1226 if (deckstring ==
"multiplier-f20(x)") {
1227 deckfile >> deckequalssign;
1228 if(deckequalssign !=
"=") {
1229 std::cout <<
"Error reading " << deckstring << std::endl;
1232 for (
size_t s(0);s<
numsp;++s)
1234 deckfile >> deckstring;
1238 if (deckstring ==
"ni(x)") {
1239 deckfile >> deckequalssign;
1240 if(deckequalssign !=
"=") {
1241 std::cout <<
"Error reading " << deckstring << std::endl;
1244 deckfile >> deckstring;
1247 if (deckstring ==
"Ti(x)") {
1248 deckfile >> deckequalssign;
1249 if(deckequalssign !=
"=") {
1250 std::cout <<
"Error reading " << deckstring << std::endl;
1253 deckfile >> deckstring;
1256 if (deckstring ==
"Ux(x)") {
1257 deckfile >> deckequalssign;
1258 if(deckequalssign !=
"=") {
1259 std::cout <<
"Error reading " << deckstring << std::endl;
1262 deckfile >> deckstring;
1265 if (deckstring ==
"Z(x)") {
1266 deckfile >> deckequalssign;
1267 if(deckequalssign !=
"=") {
1268 std::cout <<
"Error reading " << deckstring << std::endl;
1271 deckfile >> deckstring;
1274 if (deckstring ==
"I(x)") {
1275 deckfile >> deckequalssign;
1276 if(deckequalssign !=
"=") {
1277 std::cout <<
"Error reading " << deckstring << std::endl;
1280 deckfile >> deckstring;
1283 if (deckstring ==
"I(t)") {
1284 deckfile >> deckequalssign;
1285 if(deckequalssign !=
"=") {
1286 std::cout <<
"Error reading " << deckstring << std::endl;
1289 deckfile >> deckstring;
1292 if (deckstring ==
"Ex(x)") {
1293 deckfile >> deckequalssign;
1294 if(deckequalssign !=
"=") {
1295 std::cout <<
"Error reading " << deckstring << std::endl;
1298 deckfile >> deckstring;
1301 if (deckstring ==
"Ey(x)") {
1302 deckfile >> deckequalssign;
1303 if(deckequalssign !=
"=") {
1304 std::cout <<
"Error reading " << deckstring << std::endl;
1307 deckfile >> deckstring;
1310 if (deckstring ==
"Ez(x)") {
1311 deckfile >> deckequalssign;
1312 if(deckequalssign !=
"=") {
1313 std::cout <<
"Error reading " << deckstring << std::endl;
1316 deckfile >> deckstring;
1319 if (deckstring ==
"Bx(x)") {
1320 deckfile >> deckequalssign;
1321 if(deckequalssign !=
"=") {
1322 std::cout <<
"Error reading " << deckstring << std::endl;
1325 deckfile >> deckstring;
1328 if (deckstring ==
"By(x)") {
1329 deckfile >> deckequalssign;
1330 if(deckequalssign !=
"=") {
1331 std::cout <<
"Error reading " << deckstring << std::endl;
1334 deckfile >> deckstring;
1337 if (deckstring ==
"Bz(x)") {
1338 deckfile >> deckequalssign;
1339 if(deckequalssign !=
"=") {
1340 std::cout <<
"Error reading " << deckstring << std::endl;
1343 deckfile >> deckstring;
1346 if (deckstring ==
"Ex(t)") {
1347 deckfile >> deckequalssign;
1348 if(deckequalssign !=
"=") {
1349 std::cout <<
"Error reading " << deckstring << std::endl;
1352 deckfile >> deckstring;
1355 if (deckstring ==
"Ey(t)") {
1356 deckfile >> deckequalssign;
1357 if(deckequalssign !=
"=") {
1358 std::cout <<
"Error reading " << deckstring << std::endl;
1361 deckfile >> deckstring;
1364 if (deckstring ==
"Ez(t)") {
1365 deckfile >> deckequalssign;
1366 if(deckequalssign !=
"=") {
1367 std::cout <<
"Error reading " << deckstring << std::endl;
1370 deckfile >> deckstring;
1373 if (deckstring ==
"Bx(t)") {
1374 deckfile >> deckequalssign;
1375 if(deckequalssign !=
"=") {
1376 std::cout <<
"Error reading " << deckstring << std::endl;
1379 deckfile >> deckstring;
1382 if (deckstring ==
"By(t)") {
1383 deckfile >> deckequalssign;
1384 if(deckequalssign !=
"=") {
1385 std::cout <<
"Error reading " << deckstring << std::endl;
1388 deckfile >> deckstring;
1391 if (deckstring ==
"Bz(t)") {
1392 deckfile >> deckequalssign;
1393 if(deckequalssign !=
"=") {
1394 std::cout <<
"Error reading " << deckstring << std::endl;
1397 deckfile >> deckstring;
1400 if (deckstring ==
"Ex(x,t)") {
1401 deckfile >> deckequalssign;
1402 if(deckequalssign !=
"=") {
1403 std::cout <<
"Error reading " << deckstring << std::endl;
1408 deckfile >> deckstring;
1412 if (deckstring ==
"Ey(x,t)") {
1413 deckfile >> deckequalssign;
1414 if(deckequalssign !=
"=") {
1415 std::cout <<
"Error reading " << deckstring << std::endl;
1420 deckfile >> deckstring;
1424 if (deckstring ==
"Ez(x,t)") {
1425 deckfile >> deckequalssign;
1426 if(deckequalssign !=
"=") {
1427 std::cout <<
"Error reading " << deckstring << std::endl;
1432 deckfile >> deckstring;
1436 if (deckstring ==
"Bx(x,t)") {
1437 deckfile >> deckequalssign;
1438 if(deckequalssign !=
"=") {
1439 std::cout <<
"Error reading " << deckstring << std::endl;
1444 deckfile >> deckstring;
1448 if (deckstring ==
"By(x,t)") {
1449 deckfile >> deckequalssign;
1450 if(deckequalssign !=
"=") {
1451 std::cout <<
"Error reading " << deckstring << std::endl;
1456 deckfile >> deckstring;
1460 if (deckstring ==
"Bz(x,t)") {
1461 deckfile >> deckequalssign;
1462 if(deckequalssign !=
"=") {
1463 std::cout <<
"Error reading " << deckstring << std::endl;
1468 deckfile >> deckstring;
1472 if (deckstring ==
"envelope(t)") {
1473 deckfile >> deckequalssign;
1474 if(deckequalssign !=
"=") {
1475 std::cout <<
"Error reading " << deckstring << std::endl;
1480 deckfile >> deckstring;
1485 if (deckstring ==
"rise_flat_fall_center") {
1486 deckfile >> deckequalssign;
1487 if(deckequalssign !=
"=") {
1488 std::cout <<
"Error reading " << deckstring << std::endl;
1493 deckfile >> deckreal;
1497 deckfile >> deckreal;
1501 deckfile >> deckreal;
1504 deckfile >> deckreal;
1516 std::cout <<
"The number of nodes " <<
NnodesX<<
" is not even" << std::endl;
1524 oTags.push_back(
"Time");
1525 oTags.push_back(
"Space");
1526 oTags.push_back(
"px-x");
1528 oTags.push_back(
"f0-x");
1529 oTags.push_back(
"f10-x");
1530 oTags.push_back(
"f11-x");
1531 oTags.push_back(
"f20-x");
1532 oTags.push_back(
"fl0-x");
1533 oTags.push_back(
"pxpy-x");
1534 oTags.push_back(
"Ex");
1535 oTags.push_back(
"Ey");
1536 oTags.push_back(
"Ez");
1537 oTags.push_back(
"Bx");
1538 oTags.push_back(
"By");
1539 oTags.push_back(
"Bz");
1540 oTags.push_back(
"n");
1541 oTags.push_back(
"T_eV");
1542 oTags.push_back(
"T");
1543 oTags.push_back(
"Jx");
1544 oTags.push_back(
"Jy");
1545 oTags.push_back(
"Jz");
1546 oTags.push_back(
"Qx");
1547 oTags.push_back(
"Qy");
1548 oTags.push_back(
"Qz");
1549 oTags.push_back(
"vNx");
1550 oTags.push_back(
"vNy");
1551 oTags.push_back(
"vNz");
1552 oTags.push_back(
"Ux");
1553 oTags.push_back(
"Uy");
1554 oTags.push_back(
"Uz");
1555 oTags.push_back(
"Z");
1556 oTags.push_back(
"ni");
1557 oTags.push_back(
"Ti");
1565 for (
size_t i(0); i <
xminGlobal.size(); ++i){
1574 std::cout <<
"Unable to open inputdeck" << std::endl;
void init_f1(size_t s, SHarmonic1D &h, const valarray< double > &p, const valarray< double > &x, valarray< double > &density, valarray< double > &temperature, valarray< double > &f10x, const SHarmonic1D &f0, const double mass)
void init_f2(size_t s, SHarmonic1D &h, const valarray< double > &p, const valarray< double > &x, valarray< double > &density, valarray< double > &temperature, valarray< double > &f20x, const double mass)