Structure for 3D Cartesian Grid created.
Unification of boundary conditions into one file. Some changes to input file for reference cases. This should have been done in another branch but I wanto to commit to save progress and I don't want to deal with tswitching branches right now, I'm very busy watching Futurama.
This commit is contained in:
parent
eb6b045734
commit
ac2965621a
29 changed files with 1549 additions and 40455 deletions
|
|
@ -1,11 +1,8 @@
|
|||
all: moduleMesh1DRad.o moduleMesh1DRadBoundary.o moduleMesh1DRadRead.o
|
||||
all: moduleMesh1DRad.o moduleMesh1DRadRead.o
|
||||
|
||||
moduleMesh1DRad.o: moduleMesh1DRad.f90
|
||||
$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
|
||||
|
||||
moduleMesh1DRadBoundary.o: moduleMesh1DRad.o moduleMesh1DRadBoundary.f90
|
||||
$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
|
||||
|
||||
moduleMesh1DRadRead.o: moduleMesh1DRad.o moduleMesh1DRadBoundary.o moduleMesh1DRadRead.f90
|
||||
moduleMesh1DRadRead.o: moduleMesh1DRad.o moduleMesh1DRadRead.f90
|
||||
$(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
! z == unused
|
||||
MODULE moduleMesh1DRad
|
||||
USE moduleMesh
|
||||
USE moduleMeshBoundary
|
||||
IMPLICIT NONE
|
||||
|
||||
TYPE, PUBLIC, EXTENDS(meshNode):: meshNode1DRad
|
||||
|
|
@ -21,52 +22,13 @@ MODULE moduleMesh1DRad
|
|||
!Connectivity to nodes
|
||||
CLASS(meshNode), POINTER:: n1 => NULL()
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: init => initEdge1DRad
|
||||
PROCEDURE, PASS:: getNodes => getNodes1DRad
|
||||
PROCEDURE, PASS:: randPos => randPos1DRad
|
||||
PROCEDURE, PASS:: init => initEdge1DRad
|
||||
PROCEDURE, PASS:: getNodes => getNodes1DRad
|
||||
PROCEDURE, PASS:: intersection => intersection1DRad
|
||||
PROCEDURE, PASS:: randPos => randPos1DRad
|
||||
|
||||
END TYPE meshEdge1DRad
|
||||
|
||||
!Boundary functions defined in the submodule Boundary
|
||||
INTERFACE
|
||||
MODULE SUBROUTINE reflection(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE reflection
|
||||
|
||||
MODULE SUBROUTINE absorption(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE absorption
|
||||
|
||||
MODULE SUBROUTINE transparent(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE transparent
|
||||
|
||||
MODULE SUBROUTINE wallTemperature(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE wallTemperature
|
||||
|
||||
END INTERFACE
|
||||
|
||||
TYPE, PUBLIC, ABSTRACT, EXTENDS(meshVol):: meshVol1DRad
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: detJac => detJ1DRad
|
||||
|
|
@ -227,6 +189,17 @@ MODULE moduleMesh1DRad
|
|||
|
||||
END FUNCTION getNodes1DRad
|
||||
|
||||
PURE FUNCTION intersection1DRad(self, r0, v0) RESULT(r)
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge1DRad), INTENT(in):: self
|
||||
REAL(8), DIMENSION(1:3), INTENT(in):: r0, v0
|
||||
REAL(8), DIMENSION(1:3):: r
|
||||
|
||||
r = (/ self%r, 0.D0, 0.D0 /)
|
||||
|
||||
END FUNCTION intersection1DRad
|
||||
|
||||
!Calculates a 'random' position in edge
|
||||
FUNCTION randPos1DRad(self) RESULT(r)
|
||||
CLASS(meshEdge1DRad), INTENT(in):: self
|
||||
|
|
|
|||
|
|
@ -1,93 +0,0 @@
|
|||
SUBMODULE (moduleMesh1DRad) moduleMesh1DRadBoundary
|
||||
USE moduleMesh1DRad
|
||||
|
||||
CONTAINS
|
||||
SUBROUTINE reflection(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
SELECT TYPE(edge)
|
||||
TYPE IS(meshEdge1DRad)
|
||||
part%v(1) = -part%v(1)
|
||||
part%r(1) = 2.D0*edge%r - part%r(1)
|
||||
|
||||
END SELECT
|
||||
|
||||
part%n_in = .TRUE.
|
||||
|
||||
END SUBROUTINE reflection
|
||||
|
||||
SUBROUTINE absorption(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
REAL(8):: rEdge(1) !Position of particle in the edge
|
||||
REAL(8):: d !Distance from particle to edge
|
||||
|
||||
SELECT TYPE(edge)
|
||||
TYPE IS(meshEdge1DRad)
|
||||
rEdge(1) = edge%r
|
||||
d = DABS(part%r(1) - rEdge(1))
|
||||
|
||||
IF (d > 0.D0) THEN
|
||||
part%weight = part%weight / d
|
||||
part%r(1) = rEdge(1)
|
||||
|
||||
END IF
|
||||
|
||||
IF (ASSOCIATED(edge%e1)) THEN
|
||||
CALL edge%e1%scatter(part)
|
||||
|
||||
ELSE
|
||||
CALL edge%e2%scatter(part)
|
||||
|
||||
END IF
|
||||
|
||||
END SELECT
|
||||
|
||||
part%n_in = .FALSE.
|
||||
|
||||
END SUBROUTINE absorption
|
||||
|
||||
SUBROUTINE transparent(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
part%n_in = .FALSE.
|
||||
|
||||
END SUBROUTINE transparent
|
||||
|
||||
SUBROUTINE wallTemperature(edge, part)
|
||||
USE moduleSpecies
|
||||
USE moduleBoundary
|
||||
USE moduleRandom
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
!Modifies particle velocity according to wall temperature
|
||||
SELECT TYPE(bound => edge%boundary%bTypes(part%sp)%obj)
|
||||
TYPE IS(boundaryWallTemperature)
|
||||
part%v(1) = part%v(1) + bound%vTh*randomMaxwellian()
|
||||
|
||||
END SELECT
|
||||
|
||||
SELECT TYPE(edge)
|
||||
TYPE IS(meshEdge1DRad)
|
||||
part%v(1) = -part%v(1)
|
||||
part%r(1) = 2.D0*edge%r - part%r(1)
|
||||
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE wallTemperature
|
||||
|
||||
END SUBMODULE moduleMesh1DRadBoundary
|
||||
Loading…
Add table
Add a link
Reference in a new issue