Merge branch 'feature/weighting' into 'development'

Trying to fix weighting scheme

See merge request JorgeGonz/fpakc!31
This commit is contained in:
Jorge Gonzalez 2022-12-29 18:35:02 +00:00
commit 061dcafafe
3 changed files with 6 additions and 4 deletions

Binary file not shown.

View file

@ -177,10 +177,11 @@
\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}
For each cell, interaction among the particles in it are carried out.

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