Impliementation of a collision mesh which is independent for the mesh
used to scatter particles and compute the EM field.
This commit is contained in:
parent
16b86542d4
commit
a2631f6b78
19 changed files with 636 additions and 368 deletions
|
|
@ -483,21 +483,6 @@ MODULE moduleSolver
|
|||
|
||||
END SUBROUTINE push1DRadCharged
|
||||
|
||||
!Do the collisions in all the cells
|
||||
SUBROUTINE doCollisions()
|
||||
USE moduleMesh
|
||||
IMPLICIT NONE
|
||||
|
||||
INTEGER:: e
|
||||
|
||||
!$OMP DO SCHEDULE(DYNAMIC)
|
||||
DO e=1, mesh%numVols
|
||||
CALL mesh%vols(e)%obj%collision()
|
||||
END DO
|
||||
!$OMP END DO
|
||||
|
||||
END SUBROUTINE doCollisions
|
||||
|
||||
SUBROUTINE doReset()
|
||||
USE moduleSpecies
|
||||
USE moduleMesh
|
||||
|
|
@ -623,6 +608,14 @@ MODULE moduleSolver
|
|||
|
||||
END DO
|
||||
|
||||
!$OMP SECTION
|
||||
!Erase the list of particles inside the cell in coll mesh
|
||||
DO e = 1, meshColl%numVols
|
||||
meshColl%vols(e)%obj%totalWeight = 0.D0
|
||||
CALL meshColl%vols(e)%obj%listPart_in%erase()
|
||||
|
||||
END DO
|
||||
|
||||
!$OMP END SECTIONS
|
||||
|
||||
!$OMP SINGLE
|
||||
|
|
@ -788,6 +781,7 @@ MODULE moduleSolver
|
|||
|
||||
volOld => mesh%vols(part%vol)%obj
|
||||
CALL volOld%findCell(part)
|
||||
CALL findCellColl(part)
|
||||
volNew => mesh%vols(part%vol)%obj
|
||||
!Call the NA shcme
|
||||
IF (ASSOCIATED(self%weightingScheme)) THEN
|
||||
|
|
@ -831,7 +825,7 @@ MODULE moduleSolver
|
|||
counterOutput=0
|
||||
|
||||
CALL mesh%printOutput(t)
|
||||
CALL mesh%printColl(t)
|
||||
IF (ASSOCIATED(meshForMCC)) CALL meshForMCC%printColl(t)
|
||||
CALL mesh%printEM(t)
|
||||
WRITE(*, "(5X,A21,I10,A1,I10)") "t/tmax: ", t, "/", tmax
|
||||
WRITE(*, "(5X,A21,I10)") "Particles: ", nPartOld
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue