Message by Arnaud THOUAND:
Hello and thank for your time,
I am simulating a spacecraft charging over time in a GEO environment, a DMSP combined spectra environment and a Cold single Maxwelliand and Fontheim Electrons environments.
However, I encounter problems.
During my different simulations, it happens that during one time step incrementation, the time is lower than usual and all average surface potential of node 1 to 8 aremultiplicate by 2.
For node 1, if the incrementation for one time step is 2V, and the jump happens when the node 1 is at 20 V, then the new node 1 voltage will be 20*2+2=42V after the time step incrementation.
Is there any reason it should happen?
Message by Arnaud THOUAND:
Message by Sébastien Hess:
Is it always a factor of 2? What can happen is a problem with the current predictors of SPIS. SPIS tries to adapt its time steps to prevent the numerical noise on current from introducing large changes on the potential (that is why the time steps may be small at some time). However, given the complexity of plasma physics, it is sometimes hard to make the difference between “real” currents and noise, which leads to localized (in time) jumps of the potential. This happens in particular close to convergence when the currents from the main populations cancel leaving space for the more noisy secondary current to perturb the potential.
Could you tell us the version of SPIS you use?
Message by Christian Imhof:
this problem is also occuring in a lot of my simulations and it is very annoying, since in very long simulations it ruins the complete run. Additionally, the effect is occuring rather stochastically so up to now I have not found any special setting in the globals which definitely can prevent this from happening.
Like described by Arnaud below the automatic time stepping scheme seems to cause this trouble. In my cases the simulation time step is not getting very small but simply 0.0 s, which then means that the same time step is calculated twice, which could be the reason why the potential is doubled. It is simply calculated twice and then added up. Can this not be prevented somehow by the software that a time step of 0 is used?
Please find below an excerpt of the SPIS num LOG where the corresponding effect can be seen. If you need the full LOG file let me know then I can send it via mail.
Time: 1.17023, Dt = 0.01 s
Conjugate Gradient (generic, for matrix inversion) reached convergence at iteration 268
Conjugate Gradient (generic, for matrix inversion) reached convergence at iteration 263
after SC integration TIME: 1.18023, dt = 0.01
In this time interval: COLLECTED current: -0.0039083427 A total,
-7.0991815E-4 A on node0, -8.8945037E-4 A on node1, -4.2134846E-4 A on node2, -2.6120899E-5 A on node3, -7.1075756E-6 A on node4, -1.7443166E-5 A on node5, -2.7365952E-5 A on node6, -6.8569716E-5 A on node7, -2.130205E-5 A on node8, -7.3570467E-4 A on node9, -9.840117E-4 A on node10, EMITTED current: -0.0036566549 A total,
-3.13402E-4 A on node0, -4.1931533E-4 A on node1, -2.6646678E-4 A on node2, -1.6497726E-5 A on node3, -9.004953E-6 A on node4, -1.7906239E-5 A on node5, -1.7723987E-5 A on node6, -8.466906E-5 A on node7, -2.1988424E-5 A on node8, -4.965981E-4 A on node9, -0.001993082 A on node10,
Time 1.18023 s => POTENTIALS: -151.20932 V on SC ground (node0), -151.20932 V on node1 ground, -151.20932 V on node2 ground, -151.20932 V on node3 ground, -151.20932 V on node4 ground, -151.20932 V on node5 ground, -151.20932 V on node6 ground, -151.20932 V on node7 ground, -151.20932 V on node8 ground, -151.20932 V on node9 ground, -151.20932 V on node10 ground, -151.209 V on top of node0, -186.78665 V on top of node1, -244.2463 V on top of node2, -336.59933 V on top of node3, -148.99747 V on top of node4, -146.82043 V on top of node5, -151.2093 V on top of node6, -151.20949 V on top of node7, -146.15118 V on top of node8, -171.61624 V on top of node9, 1.2741406 V on top of node10, -151.20932 Vmin onTopOfNode0, -190.18503 Vmin onTopOfNode1, -247.05367 Vmin onTopOfNode2, -340.62714 Vmin onTopOfNode3, -149.01672 Vmin onTopOfNode4, -146.94528 Vmin onTopOfNode5, -151.20932 Vmin onTopOfNode6, -151.20932 Vmin onTopOfNode7, -146.41377 Vmin onTopOfNode8, -174.69879 Vmin onTopOfNode9, 0.93685395 Vmin onTopOfNode10, -151.20932 Vmax onTopOfNode0, -184.5954 Vmax onTopOfNode1, -241.8632 Vmax onTopOfNode2, -329.93106 Vmax onTopOfNode3, -148.97543 Vmax onTopOfNode4, -146.60088 Vmax onTopOfNode5, -151.20932 Vmax onTopOfNode6, -151.20932 Vmax onTopOfNode7, -145.87372 Vmax onTopOfNode8, -170.03754 Vmax onTopOfNode9, 1.6559162 Vmax onTopOfNode10,
Monitoring numerics of simulation at time 1.18023
PICVolDistrib ions1: 11319742 particles, last numerical time step used = 1.0311761E-5 s (fixed by user)
WARNING: GlobalMaxwellBoltzmannVolDistrib elec1 may be inaccurate due to a locally positive potential, of maximum 1.5598732V (to be compared to temperature 0.2eV)
=> at positive potential locations, current and density are proportional to (1+e.pot/k.Te), which is an OML approximation for current and simply wrong for density
histogram of potential: number per interval between min = -337.51312 and max = 1.5598732 (unit V): 100.0, 11.0, 1348.0, 862.0, 5316.0, 6740.0, 3544.0, 3338.0, 3866.0, 39923.0 Last local volume potential change: 0.498497V maximum change, and 0.045822307V average change (last plasma time step = 1.0E-5s)
SC local surface potential change: 2.9145813V maximum change, and 1.4794073V average change
SC capacitance = 2.0E-6F, last time step = 0.01s
Simulation time step control : dt is 0.01 s
Time: 1.18023, Dt = 0.01 s
Conjugate Gradient (generic, for matrix inversion) reached convergence at iteration 266
after SC integration TIME: 1.18023, dt = 0.0
In this time interval: COLLECTED current: -0.0039084586 A total,
-7.095514E-4 A on node0, -8.892801E-4 A on node1, -4.2196698E-4 A on node2, -2.6342785E-5 A on node3, -7.123512E-6 A on node4, -1.7535684E-5 A on node5, -2.7275331E-5 A on node6, -6.854262E-5 A on node7, -2.1158368E-5 A on node8, -7.347428E-4 A on node9, -9.849394E-4 A on node10, EMITTED current: -0.0036572167 A total,
-3.133671E-4 A on node0, -4.1925683E-4 A on node1, -2.6641748E-4 A on node2, -1.6493574E-5 A on node3, -9.003946E-6 A on node4, -1.7904264E-5 A on node5, -1.7721955E-5 A on node6, -8.465934E-5 A on node7, -2.1986012E-5 A on node8, -4.96534E-4 A on node9, -0.0019938725 A on node10,
Time 1.18023 s => POTENTIALS: -302.41864 V on SC ground (node0), -302.41864 V on node1 ground, -302.41864 V on node2 ground, -302.41864 V on node3 ground, -302.41864 V on node4 ground, -302.41864 V on node5 ground, -302.41864 V on node6 ground, -302.41864 V on node7 ground, -302.41864 V on node8 ground, -302.41864 V on node9 ground, -302.41864 V on node10 ground, -302.418 V on top of node0, -373.57693 V on top of node1, -488.50156 V on top of node2, -673.22394 V on top of node3, -297.9947 V on top of node4, -293.64053 V on top of node5, -302.4186 V on top of node6, -302.41898 V on top of node7, -292.30206 V on top of node8, -343.2617 V on top of node9, 2.558431 V on top of node10, -302.41864 Vmin onTopOfNode0, -380.1598 Vmin onTopOfNode1, -493.98465 Vmin onTopOfNode2, -680.9462 Vmin onTopOfNode3, -298.03214 Vmin onTopOfNode4, -293.878 Vmin onTopOfNode5, -302.41864 Vmin onTopOfNode6, -302.41864 Vmin onTopOfNode7, -292.81854 Vmin onTopOfNode8, -349.32114 Vmin onTopOfNode9, 2.003844 Vmin onTopOfNode10, -302.41864 Vmax onTopOfNode0, -369.25208 Vmax onTopOfNode1, -483.8275 Vmax onTopOfNode2, -660.28815 Vmax onTopOfNode3, -297.9528 Vmax onTopOfNode4, -293.25186 Vmax onTopOfNode5, -302.41864 Vmax onTopOfNode6, -302.41864 Vmax onTopOfNode7, -291.81982 Vmax onTopOfNode8, -340.08994 Vmax onTopOfNode9, 3.2220402 Vmax onTopOfNode10,