Final adjustments, format of verbose corrected and minor modifications

to the input case cylFlow.
This commit is contained in:
Jorge Gonzalez 2020-10-18 00:21:13 +02:00
commit bf6caad56a
11 changed files with 189 additions and 117 deletions

View file

@ -23,6 +23,18 @@ MODULE moduleInject
TYPE(injectGeneric), ALLOCATABLE:: inject(:)
CONTAINS
!Injection of particles
SUBROUTINE doInjects()
IMPLICIT NONE
INTEGER:: i
DO i=1, nInject
CALL inject(i)%addParticles()
END DO
END SUBROUTINE doInjects
SUBROUTINE initInject(self, i, v, n, T, flow, pt, physicalSurface)
USE moduleMesh
USE moduleMeshCyl
@ -109,7 +121,7 @@ MODULE moduleInject
INTEGER:: n1 = 0, n2 = 0
!Edge nodes coordinates
REAL(8):: p1(1:3) = 0.D0, p2(1:3) = 0.D0
INTEGER:: nMin, nMax !Min and Max index in part_inj array
INTEGER:: nMin, nMax !Min and Max index in partInj array
INTEGER:: n
vVec = self%v * self%n
@ -120,10 +132,10 @@ MODULE moduleInject
nMin = 1
nMax = self%nParticles
!Assign particle type
part_inj(nMin:nMax)%pt = self%pt
partInj(nMin:nMax)%pt = self%pt
!Assign weight to particle.
part_inj(nMin:nMax)%weight = species(self%pt)%obj%weight
part_inj(nMin:nMax)%n_in = .TRUE.
partInj(nMin:nMax)%weight = species(self%pt)%obj%weight
partInj(nMin:nMax)%n_in = .TRUE.
DO n = nMin, nMax
!Select edge randomly from which inject particle
randomX = RAND()*self%sumWeight
@ -157,29 +169,29 @@ MODULE moduleInject
!Volume associated to the edge:
IF (DOT_PRODUCT(self%n, mesh%edges(randomEdge)%obj%normal) >= 0.D0) THEN
part_inj(n)%e_p = mesh%edges(randomEdge)%obj%e1%n
partInj(n)%e_p = mesh%edges(randomEdge)%obj%e1%n
ELSE
part_inj(n)%e_p = mesh%edges(randomEdge)%obj%e2%n
partInj(n)%e_p = mesh%edges(randomEdge)%obj%e2%n
END IF
part_inj(n)%v = (/ vBC(vVec(1), vTh(1)), &
partInj(n)%v = (/ vBC(vVec(1), vTh(1)), &
vBC(vVec(2), vTh(2)), &
vBC(vVec(3), vTh(3)) /)
!Random position in edge
!TODO: Use edge coordinates and transformations for this process
randomPos = RAND()
part_inj(n)%r(1) = p1(1) + randomPos*(p2(1) - p1(1))
part_inj(n)%r(2) = p1(2) + randomPos*(p2(2) - p1(2))
part_inj(n)%r(3) = p1(3) + randomPos*(p2(3) - p1(3))
partInj(n)%r(1) = p1(1) + randomPos*(p2(1) - p1(1))
partInj(n)%r(2) = p1(2) + randomPos*(p2(2) - p1(2))
partInj(n)%r(3) = p1(3) + randomPos*(p2(3) - p1(3))
!Push new particle
CALL push(part_inj(n))
CALL push(partInj(n))
!Assign cell to new particle
CALL mesh%vols(part_inj(n)%e_p)%obj%findCell(part_inj(n))
CALL mesh%vols(partInj(n)%e_p)%obj%findCell(partInj(n))
END DO