sutherland diffusivity

This commit is contained in:
Yeongdo Park 2020-10-23 19:24:01 -07:00
parent 698e0c5403
commit c5abbc2e3b

View file

@ -93,6 +93,8 @@
CALL solve_with_diffusivity (update_dm) CALL solve_with_diffusivity (update_dm)
ELSE IF (d_mode == 1) THEN ELSE IF (d_mode == 1) THEN
CALL solve_with_diffusivity (update_dm_cd) CALL solve_with_diffusivity (update_dm_cd)
ELSE IF (d_mode == 2) THEN
CALL solve_with_diffusivity (update_dm_sutherland)
ELSE ELSE
WRITE(*,*)'ERROR, UNSUPPORTED DIFFUSIVITY ', d_mode, '. STOPPING' WRITE(*,*)'ERROR, UNSUPPORTED DIFFUSIVITY ', d_mode, '. STOPPING'
STOP STOP
@ -567,6 +569,15 @@
ENDDO ENDDO
END SUBROUTINE update_dm_cd END SUBROUTINE update_dm_cd
SUBROUTINE update_dm_sutherland(r1)
REAL, INTENT(IN),DIMENSION(:,:) :: r1
INTEGER :: i
DO i=1,nx
dm(i) = diff * diffusivity_sutherland(r1(i,nsp)) + d_turb
ENDDO
END SUBROUTINE update_dm_sutherland
SUBROUTINE fonestep(r1,f) SUBROUTINE fonestep(r1,f)
REAL, INTENT(IN),DIMENSION(:,:) :: r1 REAL, INTENT(IN),DIMENSION(:,:) :: r1
REAL, INTENT(OUT),DIMENSION(:,:) :: f REAL, INTENT(OUT),DIMENSION(:,:) :: f
@ -656,4 +667,18 @@
END SUBROUTINE fns END SUBROUTINE fns
REAL FUNCTION diffusivity_sutherland(c)
REAL, INTENT(IN) :: c
REAL :: theta, As, Ts, T0, T1
T0 = 1.0
T1 = (1.0 + bc)
Ts = (rvis*T1 - (T1**(3./2.))) / (T1**(3./2.) - rvis)
As = (T0 + Ts)
theta = (1.0 + bc * c)
diffusivity_sutherland = As * sqrt(theta) / (1. + Ts/theta)
END FUNCTION diffusivity_sutherland
END MODULE ysolve END MODULE ysolve