Final implementation of ionization process by electron impact.
Possibility to input initial species distributions (density, velocity
and temperature) via an input file for each species.
New moduleRandom includes function to generate random numbers in
different ways (still uses) the implicit RANDOM_NUMBER().
This commit is contained in:
parent
e50cc3325b
commit
9e0d1a7cc7
16 changed files with 363 additions and 86 deletions
|
|
@ -23,7 +23,7 @@ MODULE moduleMesh1DCart
|
|||
CONTAINS
|
||||
PROCEDURE, PASS:: init => initEdge1DCart
|
||||
PROCEDURE, PASS:: getNodes => getNodes1DCart
|
||||
PROCEDURE, PASS:: randPos => randPos1DCart
|
||||
PROCEDURE, PASS:: randPos => randPosEdge
|
||||
|
||||
END TYPE meshEdge1DCart
|
||||
|
||||
|
|
@ -110,6 +110,7 @@ MODULE moduleMesh1DCart
|
|||
REAL(8):: arNodes(1:2)
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: init => initVol1DCartSegm
|
||||
PROCEDURE, PASS:: randPos => randPos1DCartSeg
|
||||
PROCEDURE, PASS:: area => areaSegm
|
||||
PROCEDURE, NOPASS:: fPsi => fPsiSegm
|
||||
PROCEDURE, NOPASS:: dPsi => dPsiSegm
|
||||
|
|
@ -226,13 +227,13 @@ MODULE moduleMesh1DCart
|
|||
END FUNCTION getNodes1DCart
|
||||
|
||||
!Calculates a 'random' position in edge
|
||||
FUNCTION randPos1DCart(self) RESULT(r)
|
||||
FUNCTION randPosEdge(self) RESULT(r)
|
||||
CLASS(meshEdge1DCart), INTENT(in):: self
|
||||
REAL(8):: r(1:3)
|
||||
|
||||
r = (/ self%x, 0.D0, 0.D0 /)
|
||||
|
||||
END FUNCTION randPos1DCart
|
||||
END FUNCTION randPosEdge
|
||||
|
||||
!VOLUME FUNCTIONS
|
||||
!SEGMENT FUNCTIONS
|
||||
|
|
@ -265,6 +266,24 @@ MODULE moduleMesh1DCart
|
|||
|
||||
END SUBROUTINE initVol1DCartSegm
|
||||
|
||||
!Calculates a random position in 1D volume
|
||||
FUNCTION randPos1DCartSeg(self) RESULT(r)
|
||||
USE moduleRandom
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshVol1DCartSegm), INTENT(in):: self
|
||||
REAL(8):: r(1:3)
|
||||
REAL(8):: xii(1:3)
|
||||
REAL(8), ALLOCATABLE:: fPsi(:)
|
||||
|
||||
xii(1) = random(-1.D0, 1.D0)
|
||||
xii(2:3) = 0.D0
|
||||
|
||||
fPsi = self%fPsi(xii)
|
||||
r(1) = DOT_PRODUCT(fPsi, self%x)
|
||||
|
||||
END FUNCTION randPos1DCartSeg
|
||||
|
||||
!Computes element area
|
||||
PURE SUBROUTINE areaSegm(self)
|
||||
IMPLICIT NONE
|
||||
|
|
@ -479,6 +498,7 @@ MODULE moduleMesh1DCart
|
|||
END SUBROUTINE nextElementSegm
|
||||
|
||||
!COMMON FUNCTIONS FOR 1D VOLUME ELEMENTS
|
||||
!Calculates a random position in 1D volume
|
||||
!Computes the element Jacobian determinant
|
||||
PURE FUNCTION detJ1DCart(self, xi, dPsi_in) RESULT(dJ)
|
||||
IMPLICIT NONE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue