Skip to content

Commit 169218a

Browse files
committed
Remove the time-implicit part in MHD
1 parent d6571fa commit 169218a

File tree

1 file changed

+29
-69
lines changed

1 file changed

+29
-69
lines changed

src/mhd.f90

+29-69
Original file line numberDiff line numberDiff line change
@@ -716,83 +716,43 @@ subroutine mhd_rhs_eq(dB,B,B0,ux1,uy1,uz1)
716716

717717

718718
!DIFFUSIVE TERMS IN Y
719-
if (iimplicit.le.0) then
720-
!-->for ux
721-
call deryy (td2,cx2,di2,sy,sfyp,ssyp,swyp,ysize(1),ysize(2),ysize(3),1,ubcx)
722-
if (istret.ne.0) then
723-
call dery (te2,bx2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcx)
724-
do k = 1,ysize(3)
725-
do j = 1,ysize(2)
726-
do i = 1,ysize(1)
727-
td2(i,j,k) = td2(i,j,k)*pp2y(j)-pp4y(j)*te2(i,j,k)
728-
enddo
719+
!-->for ux
720+
call deryy (td2,cx2,di2,sy,sfyp,ssyp,swyp,ysize(1),ysize(2),ysize(3),1,ubcx)
721+
if (istret.ne.0) then
722+
call dery (te2,bx2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcx)
723+
do k = 1,ysize(3)
724+
do j = 1,ysize(2)
725+
do i = 1,ysize(1)
726+
td2(i,j,k) = td2(i,j,k)*pp2y(j)-pp4y(j)*te2(i,j,k)
729727
enddo
730728
enddo
731-
endif
729+
enddo
730+
endif
732731

733-
!-->for uy
734-
call deryy (te2,cy2,di2,sy,sfy,ssy,swy,ysize(1),ysize(2),ysize(3),0,ubcy)
735-
if (istret.ne.0) then
736-
call dery (tf2,by2,di2,sy,ffy,fsy,fwy,ppy,ysize(1),ysize(2),ysize(3),0,ubcy)
737-
do k = 1,ysize(3)
738-
do j = 1,ysize(2)
739-
do i = 1,ysize(1)
740-
te2(i,j,k) = te2(i,j,k)*pp2y(j)-pp4y(j)*tf2(i,j,k)
741-
enddo
732+
!-->for uy
733+
call deryy (te2,cy2,di2,sy,sfy,ssy,swy,ysize(1),ysize(2),ysize(3),0,ubcy)
734+
if (istret.ne.0) then
735+
call dery (tf2,by2,di2,sy,ffy,fsy,fwy,ppy,ysize(1),ysize(2),ysize(3),0,ubcy)
736+
do k = 1,ysize(3)
737+
do j = 1,ysize(2)
738+
do i = 1,ysize(1)
739+
te2(i,j,k) = te2(i,j,k)*pp2y(j)-pp4y(j)*tf2(i,j,k)
742740
enddo
743741
enddo
744-
endif
742+
enddo
743+
endif
745744

746-
!-->for uz
747-
call deryy (tf2,cz2,di2,sy,sfyp,ssyp,swyp,ysize(1),ysize(2),ysize(3),1,ubcz)
748-
if (istret.ne.0) then
749-
call dery (tj2,bz2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcz)
750-
do k = 1,ysize(3)
751-
do j = 1,ysize(2)
752-
do i = 1,ysize(1)
753-
tf2(i,j,k) = tf2(i,j,k)*pp2y(j)-pp4y(j)*tj2(i,j,k)
754-
enddo
755-
enddo
756-
enddo
757-
endif
758-
else ! (semi)implicit Y diffusion
759-
if (istret.ne.0) then
760-
761-
!-->for ux
762-
call dery (te2,bx2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcx)
763-
do k=1,ysize(3)
764-
do j=1,ysize(2)
765-
do i=1,ysize(1)
766-
td2(i,j,k)=-pp4y(j)*te2(i,j,k)
767-
enddo
745+
!-->for uz
746+
call deryy (tf2,cz2,di2,sy,sfyp,ssyp,swyp,ysize(1),ysize(2),ysize(3),1,ubcz)
747+
if (istret.ne.0) then
748+
call dery (tj2,bz2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcz)
749+
do k = 1,ysize(3)
750+
do j = 1,ysize(2)
751+
do i = 1,ysize(1)
752+
tf2(i,j,k) = tf2(i,j,k)*pp2y(j)-pp4y(j)*tj2(i,j,k)
768753
enddo
769754
enddo
770-
!-->for uy
771-
call dery (tf2,by2,di2,sy,ffy,fsy,fwy,ppy,ysize(1),ysize(2),ysize(3),0,ubcy)
772-
do k=1,ysize(3)
773-
do j=1,ysize(2)
774-
do i=1,ysize(1)
775-
te2(i,j,k)=-pp4y(j)*tf2(i,j,k)
776-
enddo
777-
enddo
778-
enddo
779-
!-->for uz
780-
call dery (tj2,bz2,di2,sy,ffyp,fsyp,fwyp,ppy,ysize(1),ysize(2),ysize(3),1,ubcz)
781-
do k=1,ysize(3)
782-
do j=1,ysize(2)
783-
do i=1,ysize(1)
784-
tf2(i,j,k)=-pp4y(j)*tj2(i,j,k)
785-
enddo
786-
enddo
787-
enddo
788-
789-
else
790-
791-
td2(:,:,:) = zero
792-
te2(:,:,:) = zero
793-
tf2(:,:,:) = zero
794-
795-
endif
755+
enddo
796756
endif
797757

798758
! Add diffusive terms of y-pencil to convective and diffusive terms of y- and z-pencil

0 commit comments

Comments
 (0)