Final implementation of a specific mesh for MCC, added a case for

cylFlow that used two meshes and the User Manual has been updated.
This commit is contained in:
Jorge Gonzalez 2021-04-05 09:45:57 +02:00
commit cbcefb06c8
13 changed files with 10451 additions and 2017 deletions

View file

@ -400,6 +400,33 @@ MODULE moduleMesh
END INTERFACE
CONTAINS
!Constructs the global K matrix
SUBROUTINE constructGlobalK(self)
IMPLICIT NONE
CLASS(meshParticles), INTENT(inout):: self
INTEGER:: e
INTEGER, ALLOCATABLE:: n(:)
REAL(8), ALLOCATABLE:: localK(:,:)
INTEGER:: nNodes, i, j
DO e = 1, self%numVols
n = self%vols(e)%obj%getNodes()
localK = self%vols(e)%obj%elemK()
nNodes = SIZE(n)
DO i = 1, nNodes
DO j = 1, nNodes
self%K(n(i), n(j)) = self%K(n(i), n(j)) + localK(i, j)
END DO
END DO
END DO
END SUBROUTINE constructGlobalK
!Reset the output of node
PURE SUBROUTINE resetOutput(self)
USE moduleSpecies
@ -627,31 +654,11 @@ MODULE moduleMesh
END SUBROUTINE doCollisions
!Constructs the global K matrix
SUBROUTINE constructGlobalK(self)
IMPLICIT NONE
SUBROUTINE doCoulomb(self)
IMPORT meshParticles
CLASS(meshParticles), INTENT(inout):: self
INTEGER:: e
INTEGER, ALLOCATABLE:: n(:)
REAL(8), ALLOCATABLE:: localK(:,:)
INTEGER:: nNodes, i, j
DO e = 1, self%numVols
n = self%vols(e)%obj%getNodes()
localK = self%vols(e)%obj%elemK()
nNodes = SIZE(n)
DO i = 1, nNodes
DO j = 1, nNodes
self%K(n(i), n(j)) = self%K(n(i), n(j)) + localK(i, j)
END DO
END DO
END DO
END SUBROUTINE constructGlobalK
END SUBROUTINE doCoulomb
END MODULE moduleMesh