Minor improvement in mesh structure to allow different imput formats.

Organization of meshes per geometry type.
This commit is contained in:
Jorge Gonzalez 2020-12-08 18:28:24 +01:00
commit 3b125d0952
14 changed files with 158 additions and 100 deletions

View file

@ -95,9 +95,6 @@ MODULE moduleSolver
CASE('Electrostatic')
self%solveEM => solveElecField
CASE DEFAULT
self%solveEM => noEMField
END SELECT
END SUBROUTINE initEM
@ -114,9 +111,6 @@ MODULE moduleSolver
CASE ('Volume')
self%nonAnalogue => volumeNAScheme
CASE DEFAULT
self%nonAnalogue => noNAScheme
END SELECT
END SUBROUTINE initNA
@ -356,6 +350,7 @@ MODULE moduleSolver
SUBROUTINE doScatter
USE moduleSpecies
USE moduleMesh
IMPLICIT NONE
INTEGER:: n
@ -372,7 +367,10 @@ MODULE moduleSolver
SUBROUTINE doEMField()
IMPLICIT NONE
CALL solver%solveEM()
IF (ASSOCIATED(solver%solveEM)) THEN
CALL solver%solveEM()
END IF
END SUBROUTINE doEMField
@ -421,12 +419,6 @@ MODULE moduleSolver
END SUBROUTINE solveElecField
!Empty procedure that does no computation of EM field for neutral cases
SUBROUTINE noEMField()
IMPLICIT NONE
END SUBROUTINE noEMField
!Modify particle weight as a function of cell volume and splits particle
SUBROUTINE volumeNAScheme(part, volOld, volNew)
USE moduleSpecies
@ -500,18 +492,6 @@ MODULE moduleSolver
END SUBROUTINE splitParticle
!Empty procedure that does no computation of EM field for neutral cases
SUBROUTINE noNAScheme(part, volOld, volNew)
USE moduleSpecies
USE moduleMesh
IMPLICIT NONE
TYPE(particle), INTENT(inout):: part
CLASS(meshVol), POINTER, INTENT(in):: volOld
CLASS(meshVol), POINTER, INTENT(inout):: volNew
END SUBROUTINE noNAScheme
SUBROUTINE updateParticleCell(self, part)
USE moduleSpecies
USE moduleMesh
@ -525,7 +505,10 @@ MODULE moduleSolver
CALL volOld%findCell(part)
volNew => mesh%vols(part%vol)%obj
!Call the NA shcme
CALL self%nonAnalogue(part, volOld, volNew)
IF (ASSOCIATED(self%nonAnalogue)) THEN
CALL self%nonAnalogue(part, volOld, volNew)
END IF
END SUBROUTINE updateParticleCell