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
|
|
@ -4,6 +4,7 @@
|
|||
! z == unused
|
||||
MODULE moduleMesh2DCart
|
||||
USE moduleMesh
|
||||
USE moduleMeshBoundary
|
||||
IMPLICIT NONE
|
||||
|
||||
!Values for Gauss integral
|
||||
|
|
@ -31,50 +32,11 @@ MODULE moduleMesh2DCart
|
|||
CONTAINS
|
||||
PROCEDURE, PASS:: init => initEdge2DCart
|
||||
PROCEDURE, PASS:: getNodes => getNodes2DCart
|
||||
PROCEDURE, PASS:: intersection => intersection2DCartEdge
|
||||
PROCEDURE, PASS:: randPos => randPosEdge
|
||||
|
||||
END TYPE meshEdge2DCart
|
||||
|
||||
!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 wallTemperature(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE wallTemperature
|
||||
|
||||
MODULE SUBROUTINE transparent(edge, part)
|
||||
USE moduleSpecies
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
|
||||
END SUBROUTINE transparent
|
||||
|
||||
END INTERFACE
|
||||
|
||||
TYPE, PUBLIC, ABSTRACT, EXTENDS(meshVol):: meshVol2DCart
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: detJac => detJ2DCart
|
||||
|
|
@ -295,6 +257,23 @@ MODULE moduleMesh2DCart
|
|||
|
||||
END FUNCTION getNodes2DCart
|
||||
|
||||
PURE FUNCTION intersection2DCartEdge(self, r0, v0) RESULT(r)
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge2DCart), INTENT(in):: self
|
||||
REAL(8), DIMENSION(1:3), INTENT(in):: r0, v0
|
||||
REAL(8), DIMENSION(1:3):: r
|
||||
REAL(8), DIMENSION(1:3):: rS !base point of surface
|
||||
REAL(8):: d
|
||||
|
||||
rS = (/ self%x(1), self%y(1), 0.D0 /)
|
||||
|
||||
d = DOT_PRODUCT((rS - r0), self%normal)/DOT_PRODUCT(v0, self%normal)
|
||||
|
||||
r = r0 + v0*d
|
||||
|
||||
END FUNCTION intersection2DCartEdge
|
||||
|
||||
!Calculates a random position in edge
|
||||
FUNCTION randPosEdge(self) RESULT(r)
|
||||
USE moduleRandom
|
||||
|
|
@ -365,7 +344,7 @@ MODULE moduleMesh2DCart
|
|||
self%arNodes = 0.D0
|
||||
!2D 1 point Gauss Quad Integral
|
||||
xi = 0.D0
|
||||
detJ = self%detJac(xi)*4.D0 !4*2*pi
|
||||
detJ = self%detJac(xi)*4.D0 !4
|
||||
fPsi = self%fPsi(xi)
|
||||
self%volume = detJ
|
||||
self%arNodes = fPsi*detJ
|
||||
|
|
@ -930,7 +909,6 @@ MODULE moduleMesh2DCart
|
|||
REAL(8):: dPsiR(1:2,1:3)!Derivative of shpae functions in global coordinates
|
||||
REAL(8):: invJ(1:2,1:2), detJ
|
||||
REAL(8):: phi(1:3)
|
||||
REAL(8):: dummy
|
||||
REAL(8):: EF(1:3)
|
||||
|
||||
phi = (/self%n1%emData%phi, &
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue