Renaming the generic 'non-analogue' scheme for 'weighting' scheme.

This commit is contained in:
Jorge Gonzalez 2020-12-13 17:04:52 +01:00
commit f151f3cd0e
5 changed files with 30 additions and 30 deletions

View file

@ -114,7 +114,7 @@ MODULE moduleInput
LOGICAL:: found
CHARACTER(:), ALLOCATABLE:: object
REAL(8):: time !simulation time in [t]
CHARACTER(:), ALLOCATABLE:: pusherType, EMType, NAType
CHARACTER(:), ALLOCATABLE:: pusherType, EMType, WSType
INTEGER:: nTau, nSolver
INTEGER:: i
CHARACTER(2):: iString
@ -168,8 +168,8 @@ MODULE moduleInput
END SELECT
!Gest the non-analogue scheme
CALL config%get(object // '.NAScheme', NAType, found)
CALL solver%initNA(NAType)
CALL config%get(object // '.WeightingScheme', WSType, found)
CALL solver%initWS(WSType)
!Makes tau non-dimensional
@ -278,7 +278,7 @@ MODULE moduleInput
nPartOld = 0
!Initialize the lock for the non-analogue (NA) list of particles
CALL OMP_INIT_LOCK(lockNAScheme)
CALL OMP_INIT_LOCK(lockWScheme)
END SUBROUTINE readSpecies

View file

@ -20,7 +20,7 @@ MODULE moduleList
END TYPE listNode
TYPE(listNode):: partNAScheme !Particles comming from the nonAnalogue scheme
TYPE(listNode):: partWScheme !Particles comming from the nonAnalogue scheme
TYPE pointerArray
TYPE(particle), POINTER:: part

View file

@ -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

View file

@ -45,7 +45,7 @@ MODULE moduleSpecies
!Arrays that contain the particles
TYPE(particle), ALLOCATABLE, DIMENSION(:), TARGET:: partOld !array of particles from previous iteration
TYPE(particle), ALLOCATABLE, DIMENSION(:), TARGET:: partInj !array of inject particles
INTEGER(KIND=OMP_LOCK_KIND):: lockNAScheme !Lock for the NA list of particles
INTEGER(KIND=OMP_LOCK_KIND):: lockWScheme !Lock for the NA list of particles
CONTAINS
FUNCTION speciesName2Index(speciesName) RESULT(sp)