Rework of injection of particles with a special focus in 2DCyl to ensure an homogeneous distribution. #51

Merged
JorgeGonz merged 22 commits from issue/injection2DCyl into development 2024-07-11 18:51:43 +02:00
Showing only changes of commit d710cc5e66 - Show all commits

Probes fixed!

This should've been commited in another branch, but I am taking
advantage of this to clean up the code a bit.
Jorge Gonzalez 2024-07-11 15:52:13 +02:00

View file

@ -101,7 +101,7 @@ MODULE moduleProbe
!Maximum radius
!TODO: Make this an input parameter
self%maxR = 1.D0
self%maxR = 1.D-2/L_ref
!Init the probe lock
CALL OMP_INIT_LOCK(self%lock)
@ -148,7 +148,7 @@ MODULE moduleProbe
deltaR = NORM2(self%r - part%r)
!Only include particle if it is inside the maximum radius
IF (deltaR < self%maxR) THEN
! IF (deltaR < self%maxR) THEN
!find lower index for all dimensions
CALL self%findLowerIndex(part%v, i, j, k, inside)
@ -162,28 +162,28 @@ MODULE moduleProbe
fk = self%vk(k+1) - part%v(3)
fk1 = part%v(3) - self%vk(k)
! weight = part%weight * DEXP(deltaR/self%maxR)
weight = part%weight
weight = part%weight * DEXP(-deltaR/self%maxR)
! weight = part%weight
!Lock the probe
CALL OMP_SET_LOCK(self%lock)
!Assign particle weight to distribution function
self%f(i , j , k ) = fi * fj * fk * weight
self%f(i+1, j , k ) = fi1 * fj * fk * weight
self%f(i , j+1, k ) = fi * fj1 * fk * weight
self%f(i+1, j+1, k ) = fi1 * fj1 * fk * weight
self%f(i , j , k+1) = fi * fj * fk1 * weight
self%f(i+1, j , k+1) = fi1 * fj * fk1 * weight
self%f(i , j+1, k+1) = fi * fj1 * fk1 * weight
self%f(i+1, j+1, k+1) = fi1 * fj1 * fk1 * weight
self%f(i , j , k ) = self%f(i , j , k ) + fi * fj * fk * weight
self%f(i+1, j , k ) = self%f(i+1, j , k ) + fi1 * fj * fk * weight
self%f(i , j+1, k ) = self%f(i , j+1, k ) + fi * fj1 * fk * weight
self%f(i+1, j+1, k ) = self%f(i+1, j+1, k ) + fi1 * fj1 * fk * weight
self%f(i , j , k+1) = self%f(i , j , k+1) + fi * fj * fk1 * weight
self%f(i+1, j , k+1) = self%f(i+1, j , k+1) + fi1 * fj * fk1 * weight
self%f(i , j+1, k+1) = self%f(i , j+1, k+1) + fi * fj1 * fk1 * weight
self%f(i+1, j+1, k+1) = self%f(i+1, j+1, k+1) + fi1 * fj1 * fk1 * weight
!Unlock the probe
CALL OMP_UNSET_LOCK(self%lock)
END IF
END IF
! END IF
END IF