Coulomb Scattering fully conservative

Coulomb scattering is now fully conservative thanks to the method in
lemos2009small.

The trick was to conserve the momentum and energy of ALL particles
involved in the scattering in each cell.

The substeps in Coulomb collisions have been removed as they are no
longer necessary.

Still some issues with e-i, but I don't know right now.
This commit is contained in:
Jorge Gonzalez 2023-07-16 14:28:07 +02:00
commit e05c0d4635
3 changed files with 175 additions and 115 deletions

View file

@ -14,8 +14,6 @@ MODULE moduleCoulomb
REAL(8):: A_j
REAL(8):: l2_j
REAL(8):: l2_i
REAL(8):: tauSub
INTEGER:: nSubSteps
CONTAINS
PROCEDURE, PASS:: init => initInteractionCoulomb
@ -48,7 +46,7 @@ MODULE moduleCoulomb
END FUNCTION H
SUBROUTINE initInteractionCoulomb(self, i, j, subSteps)
SUBROUTINE initInteractionCoulomb(self, i, j)
USE moduleSpecies
USE moduleErrors
USE moduleConstParam
@ -56,14 +54,10 @@ MODULE moduleCoulomb
IMPLICIT NONE
CLASS(interactionsCoulomb), INTENT(out):: self
INTEGER, INTENT(in):: subSteps
INTEGER, INTENT(in):: i, j
REAL(8):: Z_i, Z_j
REAL(8):: scaleFactor
self%nSubSteps = subSteps
self%tauSub = tauMin / REAL(self%nSubSteps)
self%sp_i => species(i)%obj
self%sp_j => species(j)%obj