Reducing overhead when no collisions are present
Particles are added to lists only if there are MCC collisions. Hopefully this will reduce overhead when OpenMP is used and no collisions are active.
This commit is contained in:
parent
1c5b887a6d
commit
7ce1b7a4dd
13 changed files with 142 additions and 114 deletions
|
|
@ -23,7 +23,7 @@ MODULE modulePusher
|
|||
REAL(8):: qmEFt(1:3)
|
||||
|
||||
!Get the electric field at particle position
|
||||
qmEFT = mesh%cells(part%vol)%obj%gatherElectricField(part%Xi)
|
||||
qmEFT = mesh%cells(part%cell)%obj%gatherElectricField(part%Xi)
|
||||
qmEFt = qmEFt*part%species%qm*tauMin
|
||||
|
||||
!Update velocity
|
||||
|
|
@ -50,14 +50,14 @@ MODULE modulePusher
|
|||
|
||||
tauInHalf = tauIn *0.5D0
|
||||
!Half of the force o f the electric field
|
||||
qmEFT = mesh%cells(part%vol)%obj%gatherElectricField(part%Xi)
|
||||
qmEFT = mesh%cells(part%cell)%obj%gatherElectricField(part%Xi)
|
||||
qmEFt = qmEFt*part%species%qm*tauInHalf
|
||||
|
||||
!Half step for electrostatic
|
||||
v_minus = part%v + qmEFt
|
||||
|
||||
!Full step rotation
|
||||
B = mesh%cells(part%vol)%obj%gatherMagneticField(part%Xi)
|
||||
B = mesh%cells(part%cell)%obj%gatherMagneticField(part%Xi)
|
||||
BNorm = NORM2(B)
|
||||
IF (BNorm > 0.D0) THEN
|
||||
fn = DTAN(part%species%qm * tauInHalf*BNorm) / BNorm
|
||||
|
|
@ -126,7 +126,7 @@ MODULE modulePusher
|
|||
|
||||
part_temp = part
|
||||
!Get electric field at particle position
|
||||
qmEFT = mesh%cells(part_temp%vol)%obj%gatherElectricField(part_temp%Xi)
|
||||
qmEFT = mesh%cells(part_temp%cell)%obj%gatherElectricField(part_temp%Xi)
|
||||
qmEFt = qmEFt*part_temp%species%qm*tauMin
|
||||
!z
|
||||
part_temp%v(1) = part%v(1) + qmEFt(1)
|
||||
|
|
@ -202,7 +202,7 @@ MODULE modulePusher
|
|||
|
||||
part_temp = part
|
||||
!Get electric field at particle position
|
||||
qmEFT = mesh%cells(part_temp%vol)%obj%gatherElectricField(part_temp%Xi)
|
||||
qmEFT = mesh%cells(part_temp%cell)%obj%gatherElectricField(part_temp%Xi)
|
||||
qmEFt = qmEFt*part_temp%species%qm*tauMin
|
||||
!r,theta
|
||||
v_p_oh_star(1) = part%v(1) + qmEFt(1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue