Skip to content

Commit 28f680c

Browse files
committed
🎉 cooling + quasi GCA (commented out)
1 parent 9f6a0bf commit 28f680c

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

src/pic/particles/particle_pusher.hpp

+64-1
Original file line numberDiff line numberDiff line change
@@ -582,4 +582,67 @@ namespace ntt {
582582
// BorisUpdate(p, e_int_Cart, b_int_Cart);
583583
// }
584584

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

Comments
 (0)