Renaming the generic 'non-analogue' scheme for 'weighting' scheme.
This commit is contained in:
parent
37b0139b1f
commit
f151f3cd0e
5 changed files with 30 additions and 30 deletions
|
|
@ -16,10 +16,10 @@ MODULE moduleSolver
|
|||
TYPE, PUBLIC:: solverGeneric
|
||||
TYPE(pusherGeneric), ALLOCATABLE:: pusher(:)
|
||||
PROCEDURE(solveEM_interface), POINTER, NOPASS:: solveEM => NULL()
|
||||
PROCEDURE(nonAnalogue_interface), POINTER, NOPASS:: nonAnalogue => NULL()
|
||||
PROCEDURE(weightingScheme_interface), POINTER, NOPASS:: weightingScheme => NULL()
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: initEM
|
||||
PROCEDURE, PASS:: initNA
|
||||
PROCEDURE, PASS:: initWS
|
||||
PROCEDURE, PASS:: updateParticleCell
|
||||
PROCEDURE, PASS:: updatePushSpecies
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ MODULE moduleSolver
|
|||
END SUBROUTINE solveEM_interface
|
||||
|
||||
!Apply nonAnalogue scheme to a particle
|
||||
SUBROUTINE nonAnalogue_interface(part, volOld, volNew)
|
||||
SUBROUTINE weightingScheme_interface(part, volOld, volNew)
|
||||
USE moduleSpecies
|
||||
USE moduleMesh
|
||||
IMPLICIT NONE
|
||||
|
|
@ -49,7 +49,7 @@ MODULE moduleSolver
|
|||
CLASS(meshVol), POINTER, INTENT(in):: volOld
|
||||
CLASS(meshVol), POINTER, INTENT(inout):: volNew
|
||||
|
||||
END SUBROUTINE nonAnalogue_interface
|
||||
END SUBROUTINE weightingScheme_interface
|
||||
|
||||
END INTERFACE
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ MODULE moduleSolver
|
|||
END SUBROUTINE initEM
|
||||
|
||||
!Initialize the non-analogue scheme
|
||||
SUBROUTINE initNA(self, NAType)
|
||||
SUBROUTINE initWS(self, NAType)
|
||||
USE moduleMesh
|
||||
IMPLICIT NONE
|
||||
|
||||
|
|
@ -109,11 +109,11 @@ MODULE moduleSolver
|
|||
|
||||
SELECT CASE(NAType)
|
||||
CASE ('Volume')
|
||||
self%nonAnalogue => volumeNAScheme
|
||||
self%weightingScheme => volumeWScheme
|
||||
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE initNA
|
||||
END SUBROUTINE initWS
|
||||
|
||||
!Do all pushes for particles
|
||||
SUBROUTINE doPushes()
|
||||
|
|
@ -273,7 +273,7 @@ MODULE moduleSolver
|
|||
|
||||
INTEGER:: nn, n
|
||||
INTEGER, SAVE:: nPartNew
|
||||
INTEGER, SAVE:: nInjIn, nOldIn, nNAScheme
|
||||
INTEGER, SAVE:: nInjIn, nOldIn, nWScheme
|
||||
TYPE(particle), ALLOCATABLE, SAVE:: partTemp(:)
|
||||
TYPE(lNode), POINTER:: partCurr, partNext
|
||||
|
||||
|
|
@ -291,14 +291,14 @@ MODULE moduleSolver
|
|||
|
||||
END IF
|
||||
!$OMP SECTION
|
||||
nNAScheme = partNAScheme%amount
|
||||
nWScheme = partWScheme%amount
|
||||
!$OMP END SECTIONS
|
||||
|
||||
!$OMP BARRIER
|
||||
|
||||
!$OMP SINGLE
|
||||
CALL MOVE_ALLOC(partOld, partTemp)
|
||||
nPartNew = nInjIn + nOldIn + nNAScheme
|
||||
nPartNew = nInjIn + nOldIn + nWScheme
|
||||
ALLOCATE(partOld(1:nPartNew))
|
||||
!$OMP END SINGLE
|
||||
|
||||
|
|
@ -326,17 +326,17 @@ MODULE moduleSolver
|
|||
END DO
|
||||
!$OMP SECTION
|
||||
nn = nInjIn + nOldIn
|
||||
partCurr => partNAScheme%head
|
||||
DO n = 1, nNAScheme
|
||||
partCurr => partWScheme%head
|
||||
DO n = 1, nWScheme
|
||||
partNext => partCurr%next
|
||||
partOld(nn+n) = partCurr%part
|
||||
DEALLOCATE(partCurr)
|
||||
partCurr => partNext
|
||||
|
||||
END DO
|
||||
IF (ASSOCIATED(partNAScheme%head)) NULLIFY(partNAScheme%head)
|
||||
IF (ASSOCIATED(partNAScheme%tail)) NULLIFY(partNAScheme%tail)
|
||||
partNAScheme%amount = 0
|
||||
IF (ASSOCIATED(partWScheme%head)) NULLIFY(partWScheme%head)
|
||||
IF (ASSOCIATED(partWScheme%tail)) NULLIFY(partWScheme%tail)
|
||||
partWScheme%amount = 0
|
||||
|
||||
!$OMP END SECTIONS
|
||||
|
||||
|
|
@ -420,7 +420,7 @@ MODULE moduleSolver
|
|||
END SUBROUTINE solveElecField
|
||||
|
||||
!Modify particle weight as a function of cell volume and splits particle
|
||||
SUBROUTINE volumeNAScheme(part, volOld, volNew)
|
||||
SUBROUTINE volumeWScheme(part, volOld, volNew)
|
||||
USE moduleSpecies
|
||||
USE moduleMesh
|
||||
IMPLICIT NONE
|
||||
|
|
@ -431,7 +431,7 @@ MODULE moduleSolver
|
|||
REAL(8):: fractionVolume, fractionWeight
|
||||
INTEGER:: nSplit
|
||||
|
||||
!If particle has change cell, call nonAnalogue scheme
|
||||
!If particle has change cell, call Weighting scheme
|
||||
IF (volOld%n /= volNew%n) THEN
|
||||
fractionVolume = volOld%volume/volNew%volume
|
||||
|
||||
|
|
@ -451,7 +451,7 @@ MODULE moduleSolver
|
|||
|
||||
END IF
|
||||
|
||||
END SUBROUTINE volumeNAScheme
|
||||
END SUBROUTINE volumeWScheme
|
||||
|
||||
!Subroutine to split the particle 'part' into a number 'nSplit' of particles.
|
||||
!'nSplit-1' particles are added to the partNAScheme list
|
||||
|
|
@ -480,9 +480,9 @@ MODULE moduleSolver
|
|||
ALLOCATE(newPart)
|
||||
!Copy data from original particle
|
||||
newPart = part
|
||||
CALL OMP_SET_LOCK(lockNAScheme)
|
||||
CALL partNAScheme%add(newPart)
|
||||
CALL OMP_UNSET_LOCK(lockNASCheme)
|
||||
CALL OMP_SET_LOCK(lockWScheme)
|
||||
CALL partWScheme%add(newPart)
|
||||
CALL OMP_UNSET_LOCK(lockWScheme)
|
||||
!Add particle to cell list
|
||||
CALL OMP_SET_lock(vol%lock)
|
||||
CALL vol%listPart_in%add(newPart)
|
||||
|
|
@ -505,8 +505,8 @@ MODULE moduleSolver
|
|||
CALL volOld%findCell(part)
|
||||
volNew => mesh%vols(part%vol)%obj
|
||||
!Call the NA shcme
|
||||
IF (ASSOCIATED(self%nonAnalogue)) THEN
|
||||
CALL self%nonAnalogue(part, volOld, volNew)
|
||||
IF (ASSOCIATED(self%weightingScheme)) THEN
|
||||
CALL self%weightingScheme(part, volOld, volNew)
|
||||
|
||||
END IF
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue