Final adjustments, format of verbose corrected and minor modifications
to the input case cylFlow.
This commit is contained in:
parent
fd42e0f3f9
commit
bf6caad56a
11 changed files with 189 additions and 117 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue