diff --git a/src/makefile b/src/makefile index 75795c8..3a6d68a 100644 --- a/src/makefile +++ b/src/makefile @@ -5,11 +5,14 @@ OBJECTS = $(OBJDIR)/moduleMesh.o $(OBJDIR)/moduleMeshBoundary.o $(OBJDIR)/module $(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \ $(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \ $(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \ + $(OBJDIR)/moduleMeshInput0D.o $(OBJDIR)/moduleMeshOutput0D.o \ $(OBJDIR)/moduleMesh3DCart.o \ $(OBJDIR)/moduleMesh2DCyl.o \ $(OBJDIR)/moduleMesh2DCart.o \ $(OBJDIR)/moduleMesh1DRad.o \ - $(OBJDIR)/moduleMesh1DCart.o + $(OBJDIR)/moduleMesh1DCart.o \ + $(OBJDIR)/moduleMesh0D.o + all: $(OUTPUT) diff --git a/src/modules/mesh/0D/moduleMesh0D.f90 b/src/modules/mesh/0D/moduleMesh0D.f90 index 3b84448..bc86719 100644 --- a/src/modules/mesh/0D/moduleMesh0D.f90 +++ b/src/modules/mesh/0D/moduleMesh0D.f90 @@ -31,6 +31,7 @@ MODULE moduleMesh0D !NODE FUNCTIONS !Init node SUBROUTINE initNode0D(self, n, r) + USE moduleSpecies IMPLICIT NONE CLASS(meshNode0D), INTENT(out):: self @@ -39,6 +40,8 @@ MODULE moduleMesh0D self%n = n + ALLOCATE(self%output(1:nSpecies)) + END SUBROUTINE initNode0D !Get node coordinates @@ -81,6 +84,10 @@ MODULE moduleMesh0D CLASS(meshVol0D), INTENT(in):: self INTEGER, ALLOCATABLE:: n(:) + ALLOCATE(n(1:1)) + + n = self%n1%n + END FUNCTION getNodes0D FUNCTION randPos0D(self) RESULT(r) diff --git a/src/modules/moduleInput.f90 b/src/modules/moduleInput.f90 index 46c4421..5272206 100644 --- a/src/modules/moduleInput.f90 +++ b/src/modules/moduleInput.f90 @@ -714,6 +714,7 @@ MODULE moduleInput SUBROUTINE readGeometry(config) USE moduleMesh USE moduleMeshInputGmsh2, ONLY: initGmsh2 + USE moduleMeshInput0D, ONLY: init0D USE moduleMesh3DCart, ONLY: connectMesh3DCart USE moduleMesh2DCyl, ONLY: connectMesh2DCyl USE moduleMesh2DCart, ONLY: connectMesh2DCart @@ -744,6 +745,9 @@ MODULE moduleInput CALL initGmsh2(mesh) IF (doubleMesh) CALL initGmsh2(meshColl) + CASE ("0D") + CALL init0D(mesh) + CASE DEFAULT CALL criticalError("Mesh format " // meshFormat // " not recogniced", "readGeometry") diff --git a/src/modules/moduleSolver.f90 b/src/modules/moduleSolver.f90 index 089ae71..84fa4e2 100644 --- a/src/modules/moduleSolver.f90 +++ b/src/modules/moduleSolver.f90 @@ -102,6 +102,9 @@ MODULE moduleSolver CASE('1DRadCharged') self%pushParticle => push1DRadCharged + CASE('0D') + self%pushParticle => push0D + CASE DEFAULT CALL criticalError('Pusher ' // pusherType // ' not found','initPusher') @@ -483,6 +486,17 @@ MODULE moduleSolver 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() USE moduleSpecies USE moduleMesh