Trying to fix weighting scheme

Now particles can be split to increase statistics when they enter a
smaller cell. However, this only has an effect for collisions.

Still, I have to rethink a lot about this feature.
This commit is contained in:
Jorge Gonzalez 2022-12-29 19:32:38 +01:00
commit 905d3f94a5
3 changed files with 6 additions and 4 deletions

Binary file not shown.

View file

@ -177,9 +177,10 @@
\section{Variable Weighting Scheme\label{sec:weightingScheme}}
One of the issues in particle simulations, specially for axial-symmetrical cases, is that due to the disparate volume of cells, specially close to the axis, the statistics in some cells is usually poor.
To try to fix that, the possibility to include a Variable Weighting Scheme in the simulations is available in \Gls{fpakc}.
These schemes detect when a particle change cells and modify its weight accordingly.
To avoid particles having a larger weight than the rest, particle can be split in multiple particles if weight become too large.
These schemes detect when a particle change cells and split it if necessary to improve statistics.
The use of a Variable Weighting Scheme is defined by the user in the input file.
Beware that this can increase the number of particles in the simulation and increase computational time.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Interaction between species}\label{ssec:collisions}

View file

@ -388,11 +388,12 @@ MODULE moduleSolver
REAL(8):: fractionVolume, pSplit
!If particle changes volume to smaller cell
IF (volOld%volume > volNew%volume) THEN
IF (volOld%volume > volNew%volume .AND. &
part%weight >= part%species%weight*1.0D-1) THEN
fractionVolume = volOld%volume/volNew%volume
!Calculate probability of splitting particle
pSplit = 1.D0 - DEXP(-fractionVolume)
pSplit = 1.D0 - DEXP(-fractionVolume*1.0D-1)
IF (random() < pSplit) THEN
!Split particle in two