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,10 +177,11 @@
\section{Variable Weighting Scheme\label{sec:weightingScheme}} \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. 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}. 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. These schemes detect when a particle change cells and split it if necessary to improve statistics.
To avoid particles having a larger weight than the rest, particle can be split in multiple particles if weight become too large.
The use of a Variable Weighting Scheme is defined by the user in the input file. 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} \section{Interaction between species}\label{ssec:collisions}
For each cell, interaction among the particles in it are carried out. For each cell, interaction among the particles in it are carried out.

View file

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