Hamiltonian splitting
GEMPIC.HamiltonianSplitting
— TypeHamiltonianSplitting( maxwell_solver,
kernel_smoother_0, kernel_smoother_1,
particle_group, e_dofs, b_dofs)
Hamiltonian splitting type for Vlasov-Maxwell
- Integral over the spline function on each interval (order p+1)
- Integral over the spline function on each interval (order p)
e_dofs
describing the two components of the electric fieldb_dofs
describing the magnetic fieldj_dofs
for kernel representation of current density.
GEMPIC.lie_splitting!
— Methodlie_splitting( h, dt, number_steps)
Lie splitting
GEMPIC.lie_splitting_back!
— Methodlie_splitting_back(h, dt, number_steps)
Lie splitting (oposite ordering)
GEMPIC.operatorHB
— MethodoperatorHB(h, dt)
Push $H_B$: Equations to be solved $V_{new} = V_{old}$
\[\begin{aligned} \partial_t E_1 = 0 & \rightarrow & E_{1,new} = E_{1,old} \\ \partial_t E_2 = - \partial_{x_1} B & \rightarrow & E_{2,new} = E_{2,old}-dt*\partial_{x_1} B \\ \partial_t B = 0 & \rightarrow & B_{new} = B_{old} \\ \end{aligned}\]
GEMPIC.operatorHE
— MethodoperatorHE(h, dt)
Push $H_E$: Equations to be solved
\[\begin{aligned} \partial_t f + E_1 \partial_{v_1} f + E_2 \partial_{v_2} f = 0 &\rightarrow& V_{new} = V_{old} + dt * E \\ \partial_t E_1 = 0 &\rightarrow& E_{1,new} = E_{1,old} \\ \partial_t E_2 = 0 &\rightarrow& E_{2,new} = E_{2,old} \\ \partial_t B + \partial_{x_1} E_2 = 0 &\rightarrow& B_{new} = B_{old} - dt \partial_{x_1} E_2 \end{aligned}\]
GEMPIC.operatorHp1
— MethodoperatorHp1(h, dt)
\[\begin{aligned} \partial_t f + v_1 \partial_{x_1} f = 0 & \rightarrow X_{new} = X_{old} + dt V_1 \\ V_{new},2 = V_{old},2 + \int_0 h V_{old},1 B_{old} & \\ \partial_t E_1 = - \int v_1 f(t,x_1, v) dv & \rightarrow E_{1,new} = E_{1,old} - \int \int v_1 f(t,x_1+s v_1,v) dv ds & \\ \partial_t E_2 = 0 & \rightarrow E_{2,new} = E_{2,old} \\ \partial_t B = 0 & \rightarrow B_{new} = B_{old} \end{aligned}\]
Here we have to accumulate j and integrate over the time interval. At each $k=1,...,n_{grid}$, we have for $s \in [0,dt]: j_k(s) = \sum_{i=1,..,N_p} q_i N((x_k+sv_{1,k}-x_i)/h) v_k$, where $h$ is the grid spacing and $N$ the normalized B-spline In order to accumulate the integrated $j$, we normalize the values of $x$ to the grid spacing, calling them $y$, we have
\[ j_k(s) = \sum_{i=1,..,N_p} q_i N(y_k+\frac{s}{h} v_{1,k}-y_i) v_k.\]
Now, we want the integral
\[\int_{0..dt} j_k(s) d s = \sum_{i=1}^{N_p} q_i v_k \int_{0}{dt} N(y_k+\frac{s}{h} v_{1,k}-y_i) ds = \sum_{i=1}^{N_p} q_i v_k \int_{0}^{dt} N(y_k + w v_{1,k}-y_i) dw\]
For each particle compute the index of the first DoF on the grid it contributes to and its position (normalized to cell size one). Note: j_dofs
does not hold the values for j
itself but for the integrated j
.
Then update particle position: $X_{new} = X_{old} + dt * V$
GEMPIC.operatorHp2
— MethodoperatorHp2(h, dt)
Push Hp2: Equations to solve are
\[\begin{aligned} X_{new} = X_{old} & \\ V_{new,1} = V_{old,1} + \int_0 h V_{old,2} B_{old} & \\ \partial_t E_1 = 0 & \rightarrow E_{1,new} = E_{1,old} \\ \partial_t E_2 = - \int v_2 f(t,x_1, v) dv & \rightarrow E_{2,new} = E_{2,old} - \int \int v_2 f(t,x_1 + s v_1,v) dv ds\\ \partial_t B = 0 & => & B_{new} = B_{old} & \\ \end{aligned}\]
GEMPIC.strang_splitting!
— Methodstrang_splitting( h, dt, number_steps)
Strang splitting
- time splitting object
- time step
- number of time steps