Commit e7893b3c authored by Caneses Marin, Juan Francisco's avatar Caneses Marin, Juan Francisco
Browse files

Removed the padding on zp, kep and xip, since this did not help with speedup

parent 7cab1a8f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ in%Nsteps = 5000,
in%dt     = 0.5E-7,                                                             ! Time step in [s]
in%zmax = +5.0,
in%zmin = -5.0,
in%padding = 4,

in%iSave = .true.,
in%iPush = .true.,                                                             ! Enable RK4 particle pusher
+20 −20
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ CALL InitSplineTest(spline_Test,in%nz)

! Allocate memory to main simulation variables:
! ==============================================================================
ALLOCATE(zp(in%Nparts,in%padding), kep(in%Nparts,in%padding), xip(in%Nparts,in%padding))
ALLOCATE(zp(in%Nparts), kep(in%Nparts), xip(in%Nparts))
ALLOCATE(pcount1(in%Nsteps),pcount2(in%Nsteps),pcount3(in%Nsteps),pcount4(in%Nsteps))
ALLOCATE(ecount1(in%Nsteps),ecount2(in%Nsteps),ecount3(in%Nsteps),ecount4(in%Nsteps))

@@ -223,7 +223,7 @@ kep = 0.; xip = 0.; zp = 0.;
WRITE(*,*) "Initializing PDF..."
!$OMP PARALLEL DO
DO i = 1,in%Nparts
  CALL loadParticles(zp(i,1),kep(i,1),xip(i,1),in)
  CALL loadParticles(zp(i),kep(i),xip(i),in)
END DO
!$OMP END PARALLEL DO
WRITE(*,*) "Initialization complete"
@@ -233,7 +233,7 @@ WRITE(*,*) "Initialization complete"
fileName = "LoadParticles.dat"
OPEN(unit=8,file=fileName,form="formatted",status="unknown")
do i = 1,in%Nparts
    WRITE(8,*) zp(i,1), kep(i,1), xip(i,1)
    WRITE(8,*) zp(i), kep(i), xip(i)
end do
CLOSE(unit=8)

@@ -287,17 +287,17 @@ TimeStepping: do j = 1,in%Nsteps

                ! Calculate Cyclotron resonance number:
                ! ------------------------------------------------------------------------
                if (in%iHeat) CALL CyclotronResonanceNumber(zp(i,1),kep(i,1),xip(i,1),fcurr(i),in,spline_Bz)
                if (in%iHeat) CALL CyclotronResonanceNumber(zp(i),kep(i),xip(i),fcurr(i),in,spline_Bz)
                ! fcurr and fnew could be declared private

                ! Push particles adiabatically:
                ! ------------------------------------------------------------------------
		if (in%iPush) CALL MoveParticle(zp(i,1),kep(i,1),xip(i,1),in,spline_Bz,spline_Phi)
		            if (in%iPush) CALL MoveParticle(zp(i),kep(i),xip(i),in,spline_Bz,spline_Phi)

                ! Re-inject particles:
                ! ------------------------------------------------------------------------
                if (zp(i,1) .GE. in%zmax) CALL ReinjectParticles(zp(i,1),kep(i,1),xip(i,1),in,ecnt2,pcnt2)
                if (zp(i,1) .LE. in%zmin) CALL ReinjectParticles(zp(i,1),kep(i,1),xip(i,1),in,ecnt1,pcnt1)
                if (zp(i) .GE. in%zmax) CALL ReinjectParticles(zp(i),kep(i),xip(i),in,ecnt2,pcnt2)
                if (zp(i) .LE. in%zmin) CALL ReinjectParticles(zp(i),kep(i),xip(i),in,ecnt1,pcnt1)

                ! Apply Coulomb collision operator:
                ! ------------------------------------------------------------------------
@@ -305,18 +305,18 @@ TimeStepping: do j = 1,in%Nsteps
                    ! "in" needs to be private to avoid race condition. This can be
                    ! fixed by looping over species inside the subroutine "collisionOperator"
                    in%species_b = 1
                    CALL collisionOperator(zp(i,1),kep(i,1),xip(i,1),ecnt4,pcnt4,in)
                    CALL collisionOperator(zp(i),kep(i),xip(i),ecnt4,pcnt4,in)
                    in%species_b = 2
                    CALL collisionOperator(zp(i,1),kep(i,1),xip(i,1),ecnt4,pcnt4,in)
                    CALL collisionOperator(zp(i),kep(i),xip(i),ecnt4,pcnt4,in)
                end if

                ! Apply RF heating operator:
                ! ------------------------------------------------------------------------
                if (in%iHeat) then
                  CALL CyclotronResonanceNumber(zp(i,1),kep(i,1),xip(i,1),fnew(i),in,spline_Bz)
                  CALL CyclotronResonanceNumber(zp(i),kep(i),xip(i),fnew(i),in,spline_Bz)
                  df = dsign(1.d0,fcurr(i)*fnew(i))
                  if (df .LT. 0 .AND. zp(i,1) .GT. in%zRes1 .AND. zp(i,1) .LT. in%zRes2)  then
                    CALL RFHeatingOperator(zp(i,1),kep(i,1),xip(i,1),ecnt3,pcnt3,in,spline_Bz,spline_ddBz,spline_Phi)
                  if (df .LT. 0 .AND. zp(i) .GT. in%zRes1 .AND. zp(i) .LT. in%zRes2)  then
                    CALL RFHeatingOperator(zp(i),kep(i),xip(i),ecnt3,pcnt3,in,spline_Bz,spline_ddBz,spline_Phi)
                  end if
                end if

@@ -350,11 +350,11 @@ TimeStepping: do j = 1,in%Nsteps
                    !$OMP PARALLEL DO PRIVATE(i)
                    do i = 1,in%Nparts
                            ! Record "ith" particle position at "kth" time
                            zp_hist(i,k) = zp(i,1)
                            zp_hist(i,k) = zp(i)
                            ! Record "ith" particle KE at "kth" time
                            kep_hist(i,k) = kep(i,1)
                            kep_hist(i,k) = kep(i)
                            ! Record "ith" particle pitch angle at "kth" time
                            xip_hist(i,k) = xip(i,1)
                            xip_hist(i,k) = xip(i)
                    end do
                   !$OMP END PARALLEL DO
            endif
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ TYPE inTYP
  REAL(r8) :: Aion, Zeff, Zion
  INTEGER(i4) :: Nparts, Nsteps, nz, species_a, species_b
  INTEGER(i4) :: jstart, jend, jincr
  INTEGER(i4) :: padding, threads_given, particleBC
  INTEGER(i4) :: threads_given, particleBC
  LOGICAL:: iDrag, iPotential, iSave, iPush, iHeat, iColl
  INTEGER(i4) :: zp_InitType
  REAL(r8) :: zp_init, Ep_init, xip_init, zp_init_std, Tp_init