Huge improvement in reset (by increasing a little bit push time) using
OMP locks to assign particles to cells in the pushing step. Trying to combine push+reset and collision+scatter did not work.
This commit is contained in:
parent
1686da7694
commit
fd42e0f3f9
7 changed files with 101 additions and 92 deletions
|
|
@ -1,7 +1,6 @@
|
|||
MODULE moduleSolver
|
||||
|
||||
CONTAINS
|
||||
|
||||
SUBROUTINE scatterGrid(meshIn, partArray)
|
||||
USE moduleSpecies
|
||||
USE moduleMesh
|
||||
|
|
@ -53,15 +52,14 @@ MODULE moduleSolver
|
|||
part_temp%v(3) = -sin_alpha*v_p_oh_star(2)+cos_alpha*v_p_oh_star(3)
|
||||
part_temp%pt = part%pt
|
||||
part_temp%e_p = part%e_p
|
||||
!Assign cell to particle
|
||||
!Copy temporal particle to particle
|
||||
part=part_temp
|
||||
|
||||
END SUBROUTINE push
|
||||
|
||||
SUBROUTINE resetParticles(partInj, partOld)
|
||||
USE moduleSpecies
|
||||
USE moduleList
|
||||
USE moduleMesh
|
||||
USE moduleSpecies, ONLY: particle, &
|
||||
n_part_old, n_part_new, nPartInj
|
||||
IMPLICIT NONE
|
||||
|
||||
TYPE(particle), INTENT(in), ALLOCATABLE:: partInj(:)
|
||||
|
|
@ -88,16 +86,15 @@ MODULE moduleSolver
|
|||
!$OMP BARRIER
|
||||
|
||||
!$OMP SINGLE
|
||||
CALL MOVE_ALLOC(part_old, partTemp)
|
||||
CALL MOVE_ALLOC(partOld, partTemp)
|
||||
n_part_new = n_inj_in + n_old_in
|
||||
ALLOCATE(partOld(1:n_part_new))
|
||||
|
||||
nn = 0
|
||||
DO n = 1, nPartInj
|
||||
IF (part_inj(n)%n_in) THEN
|
||||
IF (partInj(n)%n_in) THEN
|
||||
nn = nn + 1
|
||||
part_old(nn) = part_inj(n)
|
||||
CALL mesh%vols(part_old(nn)%e_p)%obj%listPart_in%add(part_old(nn))
|
||||
partOld(nn) = partInj(n)
|
||||
|
||||
END IF
|
||||
|
||||
|
|
@ -107,7 +104,6 @@ MODULE moduleSolver
|
|||
IF (partTemp(n)%n_in) THEN
|
||||
nn = nn + 1
|
||||
partOld(nn) = partTemp(n)
|
||||
CALL mesh%vols(partOld(nn)%e_p)%obj%listPart_in%add(partOld(nn))
|
||||
|
||||
END IF
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue