Common scatter subroutine

All subroutines of scattering particle properties to the nodes of a
volume have been converged into one in moduleMesh.
This commit is contained in:
Jorge Gonzalez 2021-04-21 23:40:58 +02:00
commit 35bd61fda9
9 changed files with 39 additions and 408 deletions

View file

@ -18,7 +18,6 @@ MODULE moduleMesh0D
PROCEDURE, PASS:: getNodes => getNodes0D
PROCEDURE, PASS:: randPos => randPos0D
PROCEDURE, NOPASS:: fPsi => fPsi0D
PROCEDURE, PASS:: scatter => scatter0D
PROCEDURE, PASS:: gatherEF => gatherEF0D
PROCEDURE, PASS:: elemK => elemK0D
PROCEDURE, PASS:: elemF => elemF0D
@ -113,30 +112,6 @@ MODULE moduleMesh0D
END FUNCTION fPsi0D
SUBROUTINE scatter0D(self, part)
USE moduleMath
USE moduleSpecies
USE OMP_LIB
IMPLICIT NONE
CLASS(meshVol0D), INTENT(in):: self
CLASS(particle), INTENT(in):: part
REAL(8):: tensorS(1:3,1:3)
CLASS(meshNode), POINTER:: node
INTEGER:: sp
tensorS = outerProduct(part%v, part%v)
node => self%n1
sp = part%species%n
CALL OMP_SET_LOCK(node%lock)
node%output(sp)%den = node%output(sp)%den + part%weight
node%output(sp)%mom(:) = node%output(sp)%mom(:) + part%weight*part%v(:)
node%output(sp)%tensorS(:,:) = node%output(sp)%tensorS(:,:) + part%weight*tensorS
CALL OMP_UNSET_LOCK(node%lock)
END SUBROUTINE scatter0D
PURE FUNCTION gatherEF0D(self, xi) RESULT(EF)
IMPLICIT NONE