Closed pcosme closed 4 years ago
Comparison between Strang and Godunov splitting. Strang splitting seems to ceases to converge at a given time
At commit e7d1d4869cd0d589c510f2072fffd1e57ec206bf I've introduced a FTCS (Forward Time Centred Space) scheme to compare with the semi-analytical method previously implemented. I found similar results, Godunov splitting still works and Strang diverges after some time. This may be related more with the boundary conditions that with the methods themselves.
I've opted for a FTCS for the parabolic operator since the CFL condition for the Richtmyer should be more than enough to ensure stability of that explicit scheme. It can of course be updated in future to a more computationally heavy Crank Nicholson
At commit e7d1d48 I've introduced a FTCS (Forward Time Centred Space) scheme to compare with the semi-analytical method previously implemented. I found similar results, Godunov splitting still works and Strang diverges after some time. This may be related more with the boundary conditions that with the methods themselves.
I've opted for a FTCS for the parabolic operator since the CFL condition for the Richtmyer should be more than enough to ensure stability of that explicit scheme. It can of course be updated in future to a more computationally heavy Crank Nicholson
[SOLVED] at commit 16d1eeef40eb670a8bbb6c1a4ab9061b15cdae18 it seems that the problem really were the boundary condi tions. However, no significant difference from Godunov (less expensive) was found at least for the tested parameters.
🚨 Atention
The adimensional parameter for the cyclotron frequency Ω is given by
Ω = ωc/ ω0 = (e B0 /m0) / (v0/L)
Ω = L / rL
or using an adimensional Larmor radius
Ω = 1 / RL
Therefore, one has to be careful when selecting the values for Ω since high values correspond to extremely short gyroradius that in the absence of, for instance, a density gradient to force the current will divert the imposed flow and potentially induce the transition to turbulence. On the other hand, small Ω (large RL) would correspond to a physical situation where the fluid wouldn't be sensible to the presence of the magnetic field. I suggest that we limit ourselves to 0.2 ≲ Ω ≲5
:rotating_light: Atention
For the magnetic simulation to work the y boundary conditions must remain open, with BoundaryCondition::DyakonovShur::YFree(GrapheneFluid2D& fluid_class)
With commit 66dc71d572da168b8945ecccbe72dbea8f0c7e0b the value of Ω=ωc/ω0 can now be entered by arguments of main or promped from the user
First attempt in commit 39bcccc76494e79031bcc3aa823bd21929914ad0
With Magnetic field the system has now a source term
∂tu + ∂xf(u) + ∂yg(u) = Q(u)
The first idea is to split this equation in the usual homogeneous fluid problem∂tu + ∂xf(u) + ∂yg(u) = 0
and then a time evolution due to the sources∂tu = Q(u)
the approximate solution can then be found solving this two problems at each time step (either with Strang or Godunov splitting, for now only Godunov was implemented)since Q(u)=(0 , -Ωpy(t)n(t)-1/2 , Ωpx(t)n(t)-1/2) the inhomogenous part has analytical solution
n(t) = ni
px(t) = pxi Cos(Ωtni-1/2) - pyi Sin(Ωtni-1/2)
py(t) = pxi Sin(Ωtni-1/2) + pyi Cos(Ωtni-1/2)
the inhomogeneous system can be exactly evolved for each cell point without any numerical method !