Skip to content

Commit

Permalink
Merge branch 'update.PBO.volume.emission' into 'master.dev'
Browse files Browse the repository at this point in the history
For specific volume-emitted particles, the particle properties have been...

See merge request piclas/piclas!701
  • Loading branch information
pnizenkov committed Oct 7, 2022
2 parents 2eecfb9 + 5993b63 commit 61680a3
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/particles/dsmc/dsmc_chemical_reactions.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1726,22 +1726,25 @@ SUBROUTINE PhotoIonization_InsertProducts(iPair, iReac, iInit, InitSpec, iLineOp
IF(SpecDSMC(iSpec)%InterID.EQ.4) THEN
PartState(4:6,iPart) = VeloCOM(1:3) + SQRT(CRela2_Electron) * DiceUnitVector()
! Change the direction of its velocity vector (randomly) to be perpendicular to the photon's path
ASSOCIATE( b1 => Species(InitSpec)%Init(iInit)%NormalVector1IC(1:3) ,&
b2 => Species(InitSpec)%Init(iInit)%NormalVector2IC(1:3) )
ASSOCIATE( b1 => Species(InitSpec)%Init(iInit)%NormalVector1IC(1:3) ,&
b2 => Species(InitSpec)%Init(iInit)%NormalVector2IC(1:3) ,&
normal => Species(InitSpec)%Init(iInit)%NormalIC ,&
PartBCIndex => Species(InitSpec)%Init(iInit)%PartBCIndex)
! Get random vector b3 in b1-b2-plane
CALL RANDOM_NUMBER(RandVal)
PartState(4:6,iPart) = GetRandomVectorInPlane(b1,b2,PartState(4:6,iPart),RandVal)
! Rotate the resulting vector in the b3-NormalIC-plane
PartState(4:6,iPart) = GetRotatedVector(PartState(4:6,iPart),Species(InitSpec)%Init(iInit)%NormalIC)
PartState(4:6,iPart) = GetRotatedVector(PartState(4:6,iPart),normal)
! Store the particle information in PartStateBoundary.h5
IF(DoBoundaryParticleOutputHDF5) THEN
IF(usevMPF)THEN
MPF = Species(InitSpec)%Init(iInit)%MacroParticleFactor ! Use emission-specific MPF
ELSE
MPF = Species(InitSpec)%MacroParticleFactor ! Use species MPF
END IF ! usevMPF
CALL StoreBoundaryParticleProperties(iPart,iSpec,PartState(1:3,iPart),UNITVECTOR(PartState(4:6,iPart)),&
Species(InitSpec)%Init(iInit)%NormalIC,iBC=Species(InitSpec)%Init(iInit)%PartBCIndex,mode=2,MPF_optIN=MPF)
! Only store volume-emitted particle data in PartStateBoundary.h5 if the PartBCIndex is greater/equal zero
IF(PartBCIndex.GE.0) CALL StoreBoundaryParticleProperties(iPart,iSpec,PartState(1:3,iPart),&
UNITVECTOR(PartState(4:6,iPart)),normal,iBC=PartBCIndex,mode=2,MPF_optIN=MPF)
END IF ! DoBoundaryParticleOutputHDF5
END ASSOCIATE
END IF
Expand Down

0 comments on commit 61680a3

Please sign in to comment.