into account (as in 1D Cartesian case). The 1D Cathode example case has been modified, having now 2 input files: - inputCart.json: Used for Cartesian coordinates - inputRad.json: Used for Radial coordinates Pusher is a Boris pusher but without z direction.
40 lines
931 B
Fortran
40 lines
931 B
Fortran
MODULE moduleMesh1DCartBoundary
|
|
USE moduleMesh1DCart
|
|
|
|
TYPE, PUBLIC, EXTENDS(meshEdge1DCart):: meshEdge1DCartRef
|
|
CONTAINS
|
|
PROCEDURE, PASS:: fBoundary => reflection
|
|
|
|
END TYPE meshEdge1DCartRef
|
|
|
|
TYPE, PUBLIC, EXTENDS(meshEdge1DCart):: meshEdge1DCartAbs
|
|
CONTAINS
|
|
PROCEDURE, PASS:: fBoundary => absorption
|
|
|
|
END TYPE meshEdge1DCartAbs
|
|
|
|
CONTAINS
|
|
SUBROUTINE reflection(self, part)
|
|
USE moduleSpecies
|
|
IMPLICIT NONE
|
|
|
|
CLASS(meshEdge1DCartRef), INTENT(inout):: self
|
|
CLASS(particle), INTENT(inout):: part
|
|
|
|
part%v(1) = -part%v(1)
|
|
part%r(1) = 2.D0*self%x - part%r(1)
|
|
|
|
END SUBROUTINE reflection
|
|
|
|
SUBROUTINE absorption(self, part)
|
|
USE moduleSpecies
|
|
IMPLICIT NONE
|
|
|
|
CLASS(meshEdge1DCartAbs), INTENT(inout):: self
|
|
CLASS(particle), INTENT(inout):: part
|
|
|
|
part%n_in = .FALSE.
|
|
|
|
END SUBROUTINE absorption
|
|
|
|
END MODULE moduleMesh1DCartBoundary
|