@@ -582,4 +582,67 @@ namespace ntt {
582
582
// BorisUpdate(p, e_int_Cart, b_int_Cart);
583
583
// }
584
584
585
- #endif
585
+ // !HACK: hack for sync. radiation
586
+ // real_t ux1_init { m_particles.ux1(p) };
587
+ // real_t ux2_init { m_particles.ux2(p) };
588
+ // real_t ux3_init { m_particles.ux3(p) };
589
+ // real_t ex1 { e0[0] };
590
+ // real_t ex2 { e0[1] };
591
+ // real_t ex3 { e0[2] };
592
+ // real_t bx1 { b0[0] };
593
+ // real_t bx2 { b0[1] };
594
+ // real_t bx3 { b0[2] };
595
+
596
+ // {
597
+ // !HACK: radiation
598
+ // ux1_init = HALF * (ux1_init + u0[0]);
599
+ // ux2_init = HALF * (ux2_init + u0[1]);
600
+ // ux3_init = HALF * (ux3_init + u0[2]);
601
+ // real_t gamma = math::sqrt(ONE + SQR(ux1_init) + SQR(ux2_init) + SQR(ux3_init));
602
+ // if (gamma > 5.0) {
603
+ // real_t beta = math::sqrt(ONE - ONE / SQR(gamma));
604
+ // real_t e_bar_x1 = ex1 + (ux2_init * bx3 - ux3_init * bx2) / gamma;
605
+ // real_t e_bar_x2 = ex2 + (ux3_init * bx1 - ux1_init * bx3) / gamma;
606
+ // real_t e_bar_x3 = ex3 + (ux1_init * bx2 - ux2_init * bx1) / gamma;
607
+ // real_t e_bar_sq = SQR(e_bar_x1) + SQR(e_bar_x2) + SQR(e_bar_x3);
608
+ // real_t beta_dot_e = (ex1 * ux1_init + ex2 * ux2_init + ex3 * ux3_init) / gamma;
609
+ // real_t chiR_sq = math::abs(e_bar_sq - beta_dot_e * beta_dot_e);
610
+ // real_t kappaR_x1 = (bx3 * e_bar_x2 - bx2 * e_bar_x3) + ex1 * beta_dot_e;
611
+ // real_t kappaR_x2 = (bx1 * e_bar_x3 - bx3 * e_bar_x1) + ex2 * beta_dot_e;
612
+ // real_t kappaR_x3 = (bx2 * e_bar_x1 - bx1 * e_bar_x2) + ex3 * beta_dot_e;
613
+
614
+ // real_t dummy = TWO * COEFF * static_cast<real_t>(0.1) / SQR(static_cast<real_t>(1.0));
615
+ // u0[0] += dummy * (kappaR_x1 - chiR_sq * gamma * ux1_init);
616
+ // u0[1] += dummy * (kappaR_x2 - chiR_sq * gamma * ux2_init);
617
+ // u0[2] += dummy * (kappaR_x3 - chiR_sq * gamma * ux3_init);
618
+ // }
619
+ // !HACK: parallel + ExB velocity only
620
+ // real_t b_sq { SQR(bx1) + SQR(bx2) + SQR(bx3) };
621
+ // if (b_sq > 0.1) {
622
+ // real_t Gamma { math::sqrt(ONE + SQR(u0[0]) + SQR(u0[1]) + SQR(u0[2])) };
623
+ // real_t e_sq { SQR(ex1) + SQR(ex2) + SQR(ex3) };
624
+ // real_t e_dot_b { ex1 * bx1 + ex2 * bx2 + ex3 * bx3 };
625
+ // real_t e_prime_sq { TWO * SQR(e_dot_b)
626
+ // / ((b_sq - e_sq)
627
+ // + math::sqrt(SQR(b_sq - e_sq) + FOUR * SQR(e_dot_b))) };
628
+ // real_t beta0_x1 { (ex2 * bx3 - ex3 * bx2) / (b_sq + e_prime_sq) };
629
+ // real_t beta0_x2 { (ex3 * bx1 - ex1 * bx3) / (b_sq + e_prime_sq) };
630
+ // real_t beta0_x3 { (ex1 * bx2 - ex2 * bx1) / (b_sq + e_prime_sq) };
631
+ // real_t beta0_sq { SQR(beta0_x1) + SQR(beta0_x2) + SQR(beta0_x3) };
632
+ // real_t bprime_x1 { bx1 - (beta0_x2 * ex3 - beta0_x3 * ex2) };
633
+ // real_t bprime_x2 { bx2 - (beta0_x3 * ex1 - beta0_x1 * ex3) };
634
+ // real_t bprime_x3 { bx3 - (beta0_x1 * ex2 - beta0_x2 * ex1) };
635
+ // real_t bprime_sq { SQR(bprime_x1) + SQR(bprime_x2) + SQR(bprime_x3) };
636
+ // real_t u_dot_bprime { u0[0] * bprime_x1 + u0[1] * bprime_x2 + u0[2] * bprime_x3 };
637
+ // real_t uprime_x1 { u_dot_bprime * bprime_x1 / bprime_sq };
638
+ // real_t uprime_x2 { u_dot_bprime * bprime_x2 / bprime_sq };
639
+ // real_t uprime_x3 { u_dot_bprime * bprime_x3 / bprime_sq };
640
+ // real_t uprime_sq { SQR(uprime_x1) + SQR(uprime_x2) + SQR(uprime_x3) };
641
+ // Gamma = math::sqrt((ONE + uprime_sq) / (ONE - beta0_sq));
642
+ // u0[0] = beta0_x1 * Gamma + uprime_x1;
643
+ // u0[1] = beta0_x2 * Gamma + uprime_x2;
644
+ // u0[2] = beta0_x3 * Gamma + uprime_x3;
645
+ // }
646
+ // }
647
+
648
+ #endif
0 commit comments