Probes were not working properly #44

Merged
JorgeGonz merged 2 commits from improve/probes into development 2023-02-23 13:45:39 +01:00
5 changed files with 18 additions and 8 deletions
Showing only changes of commit 386ddd82dd - Show all commits

Probes in 0 iteration

Probes are now written at the 0 iteration.

Additionally, and this shouldn't be done, some small changes to the quad
elements. This should be done in a separate commit, but I'm lazy.
Jorge Gonzalez 2023-02-23 13:36:31 +01:00

View file

@ -314,6 +314,7 @@ MODULE moduleInput
USE moduleOutput USE moduleOutput
USE moduleRefParam USE moduleRefParam
USE moduleRandom USE moduleRandom
USE moduleProbe
USE json_module USE json_module
IMPLICIT NONE IMPLICIT NONE
@ -420,6 +421,9 @@ MODULE moduleInput
END IF END IF
!Assign particles to probes
CALL doProbes(partNew)
END DO END DO
DEALLOCATE(sourceScalar, sourceArray) DEALLOCATE(sourceScalar, sourceArray)
@ -1089,6 +1093,8 @@ MODULE moduleInput
END DO END DO
CALL resetProbes(tInitial)
END SUBROUTINE readProbes END SUBROUTINE readProbes
SUBROUTINE readEMBoundary(config) SUBROUTINE readEMBoundary(config)

View file

@ -508,7 +508,7 @@ MODULE moduleMesh2DCart
conv = 1.D0 conv = 1.D0
XiO = 0.D0 XiO = 0.D0
DO WHILE(conv > 1.D-2) DO WHILE(conv > 1.D-4)
dPsi = self%dPsi(XiO, 4) dPsi = self%dPsi(XiO, 4)
pDer = self%partialDer(4, dPsi) pDer = self%partialDer(4, dPsi)
detJ = self%detJac(pDer) detJ = self%detJac(pDer)
@ -516,8 +516,7 @@ MODULE moduleMesh2DCart
fPsi = self%fPsi(XiO, 4) fPsi = self%fPsi(XiO, 4)
f = (/ DOT_PRODUCT(fPsi,self%x), & f = (/ DOT_PRODUCT(fPsi,self%x), &
DOT_PRODUCT(fPsi,self%y), & DOT_PRODUCT(fPsi,self%y), &
0.D0 /) 0.D0 /) - r
f = f - r
Xi = XiO - MATMUL(invJ, f)/detJ Xi = XiO - MATMUL(invJ, f)/detJ
conv = MAXVAL(DABS(Xi-XiO),1) conv = MAXVAL(DABS(Xi-XiO),1)
XiO = Xi XiO = Xi

View file

@ -532,8 +532,7 @@ MODULE moduleMesh2DCyl
fPsi = self%fPsi(XiO, 4) fPsi = self%fPsi(XiO, 4)
f = (/ DOT_PRODUCT(fPsi,self%z), & f = (/ DOT_PRODUCT(fPsi,self%z), &
DOT_PRODUCT(fPsi,self%r), & DOT_PRODUCT(fPsi,self%r), &
0.D0 /) 0.D0 /) - r
f = f - r
Xi = XiO - MATMUL(invJ, f)/detJ Xi = XiO - MATMUL(invJ, f)/detJ
conv = MAXVAL(DABS(Xi-XiO),1) conv = MAXVAL(DABS(Xi-XiO),1)
XiO = Xi XiO = Xi

View file

@ -872,7 +872,7 @@ MODULE moduleMesh
!If particles do not belong to the species, skip collision !If particles do not belong to the species, skip collision
!This can happen, for example, if particle has been previously ionized or removed !This can happen, for example, if particle has been previously ionized or removed
!TODO: Try to find a way to no lose these collisions. Maybe check new 'k' and use that for the collision, maybe? !TODO: Try to find a way to not lose these collisions. Maybe check new 'k' and use that for the collision?
IF (part_i%species%n /= i .OR. & IF (part_i%species%n /= i .OR. &
part_j%species%n /= j) THEN part_j%species%n /= j) THEN
CYCLE CYCLE

View file

@ -91,7 +91,13 @@ MODULE moduleProbe
1:self%nv(3))) 1:self%nv(3)))
!Number of iterations between output !Number of iterations between output
self%every = NINT(timeStep/ tauMin / ti_ref) IF (timeStep == 0.D0) THEN
self%every = 1
ELSE
self%every = NINT(timeStep/ tauMin / ti_ref)
END IF
!Maximum radius !Maximum radius
!TODO: Make this an input parameter !TODO: Make this an input parameter
@ -270,7 +276,7 @@ MODULE moduleProbe
DO i = 1, nProbes DO i = 1, nProbes
probe(i)%f = 0.D0 probe(i)%f = 0.D0
probe(i)%update = MOD(t, probe(i)%every) == 0 .OR. t == tFinal .OR. t == tInitial probe(i)%update = t == tFinal .OR. t == tInitial .OR. MOD(t, probe(i)%every) == 0
END DO END DO