New boundary condition 'wallTemperature' that simulates a reflecting
wall with constant temperature and specific heat.
This commit is contained in:
parent
ef0b4ae832
commit
baf25c1157
8 changed files with 194 additions and 0 deletions
|
|
@ -63,4 +63,38 @@ SUBMODULE (moduleMesh1DCart) moduleMesh1DCartBoundary
|
|||
|
||||
END SUBROUTINE transparent
|
||||
|
||||
SUBROUTINE wallTemperature(edge, part)
|
||||
USE moduleSpecies
|
||||
USE moduleBoundary
|
||||
USE moduleConstParam, ONLY: PI
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshEdge), INTENT(inout):: edge
|
||||
CLASS(particle), INTENT(inout):: part
|
||||
REAL(8):: x, y
|
||||
|
||||
!Modifies particle velocity according to wall temperature
|
||||
SELECT TYPE(bound => edge%boundary%bTypes(part%sp)%obj)
|
||||
TYPE IS(boundaryWallTemperature)
|
||||
x = 0.D0
|
||||
DO WHILE (x == 0.D0)
|
||||
CALL RANDOM_NUMBER(x)
|
||||
|
||||
END DO
|
||||
|
||||
CALL RANDOM_NUMBER(y)
|
||||
|
||||
part%v(1) = part%v(1) + bound%vTh*DSQRT(-2.D0*DLOG(x))*DCOS(2.D0*PI*y)
|
||||
|
||||
END SELECT
|
||||
|
||||
SELECT TYPE(edge)
|
||||
TYPE IS(meshEdge1DCart)
|
||||
part%v(1) = -part%v(1)
|
||||
part%r(1) = 2.D0*edge%x - part%r(1)
|
||||
|
||||
END SELECT
|
||||
|
||||
END SUBROUTINE wallTemperature
|
||||
|
||||
END SUBMODULE moduleMesh1DCartBoundary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue