Implementation of 0D grid for analysis of collisional operators. #15
4 changed files with 29 additions and 1 deletions
Implementation of 0D dummy pusher and modifications to input parameters
to allow 0D runs.
commit
f1d74d954c
|
|
@ -5,11 +5,14 @@ OBJECTS = $(OBJDIR)/moduleMesh.o $(OBJDIR)/moduleMeshBoundary.o $(OBJDIR)/module
|
||||||
$(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \
|
$(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \
|
||||||
$(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \
|
$(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \
|
||||||
$(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \
|
$(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \
|
||||||
|
$(OBJDIR)/moduleMeshInput0D.o $(OBJDIR)/moduleMeshOutput0D.o \
|
||||||
$(OBJDIR)/moduleMesh3DCart.o \
|
$(OBJDIR)/moduleMesh3DCart.o \
|
||||||
$(OBJDIR)/moduleMesh2DCyl.o \
|
$(OBJDIR)/moduleMesh2DCyl.o \
|
||||||
$(OBJDIR)/moduleMesh2DCart.o \
|
$(OBJDIR)/moduleMesh2DCart.o \
|
||||||
$(OBJDIR)/moduleMesh1DRad.o \
|
$(OBJDIR)/moduleMesh1DRad.o \
|
||||||
$(OBJDIR)/moduleMesh1DCart.o
|
$(OBJDIR)/moduleMesh1DCart.o \
|
||||||
|
$(OBJDIR)/moduleMesh0D.o
|
||||||
|
|
||||||
|
|
||||||
all: $(OUTPUT)
|
all: $(OUTPUT)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ MODULE moduleMesh0D
|
||||||
!NODE FUNCTIONS
|
!NODE FUNCTIONS
|
||||||
!Init node
|
!Init node
|
||||||
SUBROUTINE initNode0D(self, n, r)
|
SUBROUTINE initNode0D(self, n, r)
|
||||||
|
USE moduleSpecies
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
|
|
||||||
CLASS(meshNode0D), INTENT(out):: self
|
CLASS(meshNode0D), INTENT(out):: self
|
||||||
|
|
@ -39,6 +40,8 @@ MODULE moduleMesh0D
|
||||||
|
|
||||||
self%n = n
|
self%n = n
|
||||||
|
|
||||||
|
ALLOCATE(self%output(1:nSpecies))
|
||||||
|
|
||||||
END SUBROUTINE initNode0D
|
END SUBROUTINE initNode0D
|
||||||
|
|
||||||
!Get node coordinates
|
!Get node coordinates
|
||||||
|
|
@ -81,6 +84,10 @@ MODULE moduleMesh0D
|
||||||
CLASS(meshVol0D), INTENT(in):: self
|
CLASS(meshVol0D), INTENT(in):: self
|
||||||
INTEGER, ALLOCATABLE:: n(:)
|
INTEGER, ALLOCATABLE:: n(:)
|
||||||
|
|
||||||
|
ALLOCATE(n(1:1))
|
||||||
|
|
||||||
|
n = self%n1%n
|
||||||
|
|
||||||
END FUNCTION getNodes0D
|
END FUNCTION getNodes0D
|
||||||
|
|
||||||
FUNCTION randPos0D(self) RESULT(r)
|
FUNCTION randPos0D(self) RESULT(r)
|
||||||
|
|
|
||||||
|
|
@ -714,6 +714,7 @@ MODULE moduleInput
|
||||||
SUBROUTINE readGeometry(config)
|
SUBROUTINE readGeometry(config)
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
USE moduleMeshInputGmsh2, ONLY: initGmsh2
|
USE moduleMeshInputGmsh2, ONLY: initGmsh2
|
||||||
|
USE moduleMeshInput0D, ONLY: init0D
|
||||||
USE moduleMesh3DCart, ONLY: connectMesh3DCart
|
USE moduleMesh3DCart, ONLY: connectMesh3DCart
|
||||||
USE moduleMesh2DCyl, ONLY: connectMesh2DCyl
|
USE moduleMesh2DCyl, ONLY: connectMesh2DCyl
|
||||||
USE moduleMesh2DCart, ONLY: connectMesh2DCart
|
USE moduleMesh2DCart, ONLY: connectMesh2DCart
|
||||||
|
|
@ -744,6 +745,9 @@ MODULE moduleInput
|
||||||
CALL initGmsh2(mesh)
|
CALL initGmsh2(mesh)
|
||||||
IF (doubleMesh) CALL initGmsh2(meshColl)
|
IF (doubleMesh) CALL initGmsh2(meshColl)
|
||||||
|
|
||||||
|
CASE ("0D")
|
||||||
|
CALL init0D(mesh)
|
||||||
|
|
||||||
CASE DEFAULT
|
CASE DEFAULT
|
||||||
CALL criticalError("Mesh format " // meshFormat // " not recogniced", "readGeometry")
|
CALL criticalError("Mesh format " // meshFormat // " not recogniced", "readGeometry")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,9 @@ MODULE moduleSolver
|
||||||
CASE('1DRadCharged')
|
CASE('1DRadCharged')
|
||||||
self%pushParticle => push1DRadCharged
|
self%pushParticle => push1DRadCharged
|
||||||
|
|
||||||
|
CASE('0D')
|
||||||
|
self%pushParticle => push0D
|
||||||
|
|
||||||
CASE DEFAULT
|
CASE DEFAULT
|
||||||
CALL criticalError('Pusher ' // pusherType // ' not found','initPusher')
|
CALL criticalError('Pusher ' // pusherType // ' not found','initPusher')
|
||||||
|
|
||||||
|
|
@ -483,6 +486,17 @@ MODULE moduleSolver
|
||||||
|
|
||||||
END SUBROUTINE push1DRadCharged
|
END SUBROUTINE push1DRadCharged
|
||||||
|
|
||||||
|
!Dummy pusher for 0D geometry
|
||||||
|
PURE SUBROUTINE push0D(part, tauIn)
|
||||||
|
USE moduleSpecies
|
||||||
|
USE moduleEM
|
||||||
|
IMPLICIT NONE
|
||||||
|
|
||||||
|
TYPE(particle), INTENT(inout):: part
|
||||||
|
REAL(8), INTENT(in):: tauIn
|
||||||
|
|
||||||
|
END SUBROUTINE push0D
|
||||||
|
|
||||||
SUBROUTINE doReset()
|
SUBROUTINE doReset()
|
||||||
USE moduleSpecies
|
USE moduleSpecies
|
||||||
USE moduleMesh
|
USE moduleMesh
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue