Skip to content
Snippets Groups Projects
Commit 6b6f3c77 authored by jtra's avatar jtra
Browse files

included freespace solution to the poisson equation

included spectral curl - but ONLY for the periodic case
cleanup, maybe small bugs



git-svn-id: https://ppm.inf.ethz.ch/svn/ppmnumerics/branches/ngtopo/libppmnumerics@1024 7c7fe9aa-52eb-4d9e-b0a8-ba7d787348e9
parent 367dada9
No related branches found
No related tags found
No related merge requests found
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Subroutine : ppm_poisson_init_predef.f90 ! Subroutine : ppm_poisson_init.f90
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Copyright (c) 2010 CSE Lab (ETH Zurich), MOSAIC Group (ETH Zurich), ! Copyright (c) 2010 CSE Lab (ETH Zurich), MOSAIC Group (ETH Zurich),
! Center for Fluid Dynamics (DTU) ! Center for Fluid Dynamics (DTU)
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
INTEGER, INTENT(IN) :: green INTEGER, INTENT(IN) :: green
!!!flag to select build-in Greens functions: !!!flag to select build-in Greens functions:
!!!ppm_poisson_grn_pois_per - Poisson equation, periodic boundaries !!!ppm_poisson_grn_pois_per - Poisson equation, periodic boundaries
!!!ppm_poisson_grn_pois_fre - Poisson equation, freespace boundaries (not implemented) !!!ppm_poisson_grn_pois_fre - Poisson equation, freespace boundaries
!!!ppm_poisson_grn_reprojec - Do vorticity reprojection to kill divergence !!!ppm_poisson_grn_reprojec - Do vorticity reprojection to kill divergence
!!! !!!
!!!Eventually this should also accept custom Greens function !!!Eventually this should also accept custom Greens function
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
!!!flag to toggle various derivatives of the solution (not to be used with !!!flag to toggle various derivatives of the solution (not to be used with
!!!green=ppm_poisson_grn_reprojec): !!!green=ppm_poisson_grn_reprojec):
!!! * ppm_poisson_drv_none !!! * ppm_poisson_drv_none
!!! * ppm_poisson_drv_curl_sp (not fully implemented) !!! * ppm_poisson_drv_curl_sp (only for periodic BC)
!!! * ppm_poisson_drv_grad_sp (not implemented) !!! * ppm_poisson_drv_grad_sp (not implemented)
!!! * ppm_poisson_drv_lapl_sp (not implemented) !!! * ppm_poisson_drv_lapl_sp (not implemented)
!!! * ppm_poisson_drv_div_sp (not implemented) !!! * ppm_poisson_drv_div_sp (not implemented)
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Initialise routine ! Initialise routine
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
CALL substart('ppm_poisson_init_predef',t0,info) CALL substart('ppm_poisson_init',t0,info)
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Investigate optional arguments, setup routine accordingly ! Investigate optional arguments, setup routine accordingly
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
CALL ppm_topo_get(topoid,topology,info) CALL ppm_topo_get(topoid,topology,info)
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get topology.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to get topology.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
!nsubs = topology%nsublist !nsubs = topology%nsublist
...@@ -173,10 +173,6 @@ ...@@ -173,10 +173,6 @@
dx = (topology%max_physd(1)-topology%min_physd(1))/(mesh%nm(1)-1) dx = (topology%max_physd(1)-topology%min_physd(1))/(mesh%nm(1)-1)
dy = (topology%max_physd(2)-topology%min_physd(2))/(mesh%nm(2)-1) dy = (topology%max_physd(2)-topology%min_physd(2))/(mesh%nm(2)-1)
dz = (topology%max_physd(3)-topology%min_physd(3))/(mesh%nm(3)-1) dz = (topology%max_physd(3)-topology%min_physd(3))/(mesh%nm(3)-1)
!maybe they should look like this: - no I think not for declaring the Greens function - after all the above dx is the value we have
!dx = (topology%max_physd(1)-topology%min_physd(1))/(mesh%nm(1))
!dy = (topology%max_physd(2)-topology%min_physd(2))/(mesh%nm(2))
!dz = (topology%max_physd(3)-topology%min_physd(3))/(mesh%nm(3))
ENDIF ENDIF
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
...@@ -192,33 +188,29 @@ ...@@ -192,33 +188,29 @@
& LBOUND(fieldout,3):UBOUND(fieldout,3),& & LBOUND(fieldout,3):UBOUND(fieldout,3),&
& LBOUND(fieldout,4):UBOUND(fieldout,4),& & LBOUND(fieldout,4):UBOUND(fieldout,4),&
& LBOUND(fieldout,5):UBOUND(fieldout,5))) & LBOUND(fieldout,5):UBOUND(fieldout,5)))
!IF (( derive .EQ. ppm_poisson_drv_curl_fd2 &
!& .OR. derive .EQ. ppm_poisson_drv_curl_fd4) &
!& .AND. ppmpoisson%case .EQ. ppm_poisson_grn_pois_per) THEN
!ppmpoisson%derivatives = derive
!ALLOCATE(ppmpoisson%drv_vr(LBOUND(fieldout,1):UBOUND(fieldout,1),&
!& LBOUND(fieldout,2):UBOUND(fieldout,2),&
!& LBOUND(fieldout,3):UBOUND(fieldout,3),&
!& LBOUND(fieldout,4):UBOUND(fieldout,4),&
!& LBOUND(fieldout,5):UBOUND(fieldout,5)))
!ELSE IF (( derive .EQ. ppm_poisson_drv_curl_fd2 &
!& .OR. derive .EQ. ppm_poisson_drv_curl_fd4) &
!& .AND. ppmpoisson%case .EQ. ppm_poisson_grn_pois_fre) THEN
!ppmpoisson%derivatives = derive
!ALLOCATE(ppmpoisson%drv_vr(LBOUND(fieldout,1):UBOUND(fieldout,1),&
!& LBOUND(fieldout,2):UBOUND(fieldout,2),&
!& LBOUND(fieldout,3):UBOUND(fieldout,3),&
!& LBOUND(fieldout,4):UBOUND(fieldout,4),&
!& LBOUND(fieldout,5):UBOUND(fieldout,5)))
ELSE IF (derive .EQ. ppm_poisson_drv_curl_sp) THEN ELSE IF (derive .EQ. ppm_poisson_drv_curl_sp) THEN
ppmpoisson%normkx = 2*PI/(topology%max_physd(1)-topology%min_physd(1))
ppmpoisson%normky = 2*PI/(topology%max_physd(2)-topology%min_physd(2))
ppmpoisson%normkz = 2*PI/(topology%max_physd(3)-topology%min_physd(3))
ppmpoisson%derivatives = ppm_poisson_drv_curl_sp ppmpoisson%derivatives = ppm_poisson_drv_curl_sp
IF (ppmpoisson%case .EQ. ppm_poisson_grn_pois_per) THEN
ppmpoisson%normkx = &
& 2.0_MK*PI/(topology%max_physd(1)-topology%min_physd(1))
ppmpoisson%normky = &
& 2.0_MK*PI/(topology%max_physd(2)-topology%min_physd(2))
ppmpoisson%normkz = &
& 2.0_MK*PI/(topology%max_physd(3)-topology%min_physd(3))
ELSE IF (ppmpoisson%case .EQ. ppm_poisson_grn_pois_fre) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init', &
& 'WARNING: Spectral curl is not fully implemented in Freespace.',isub)
ppmpoisson%normkx = &
& 2.0_MK*PI/((topology%max_physd(1)-topology%min_physd(1))*2.0_MK)
ppmpoisson%normky = &
& 2.0_MK*PI/((topology%max_physd(2)-topology%min_physd(2))*2.0_MK)
ppmpoisson%normkz = &
& 2.0_MK*PI/((topology%max_physd(3)-topology%min_physd(3))*2.0_MK)
ENDIF
ELSE IF (derive .EQ. ppm_poisson_drv_none) THEN ELSE IF (derive .EQ. ppm_poisson_drv_none) THEN
ppmpoisson%derivatives = ppm_poisson_drv_none ppmpoisson%derivatives = ppm_poisson_drv_none
ELSE ELSE
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Undefined derivation input.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Undefined derivation input.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
ELSE ELSE
...@@ -228,7 +220,7 @@ ...@@ -228,7 +220,7 @@
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Create new slab topology !@sofar periodic ! Create new slab topology
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
ttopoid = 0 ttopoid = 0
tmeshid = -1 tmeshid = -1
...@@ -241,8 +233,6 @@ ...@@ -241,8 +233,6 @@
ENDIF ENDIF
tmpmin = topology%min_physd tmpmin = topology%min_physd
tmpmax = topology%max_physd tmpmax = topology%max_physd
!!tmpmin2 = topology%min_physd
!!tmpmax2 = topology%max_physd
CALL ppm_mktopo(ttopoid,tmeshid,xp,0,& CALL ppm_mktopo(ttopoid,tmeshid,xp,0,&
& decomposition,assigning,& & decomposition,assigning,&
...@@ -251,7 +241,7 @@ ...@@ -251,7 +241,7 @@
& __ZEROSI,ppmpoisson%costxy,ppmpoisson%istartxy,ppmpoisson%ndataxy,& & __ZEROSI,ppmpoisson%costxy,ppmpoisson%istartxy,ppmpoisson%ndataxy,&
& ppmpoisson%nmxy,info) & ppmpoisson%nmxy,info)
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to create xy-topology.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to create xy-topology.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
ppmpoisson%topoidxy = ttopoid ppmpoisson%topoidxy = ttopoid
...@@ -266,16 +256,14 @@ ...@@ -266,16 +256,14 @@
CALL ppm_mesh_define(ttopoid,tmeshid,& CALL ppm_mesh_define(ttopoid,tmeshid,&
& ppmpoisson%nmxy,ppmpoisson%istartxyc,ppmpoisson%ndataxyc,info) !@nmxyC & ppmpoisson%nmxy,ppmpoisson%istartxyc,ppmpoisson%ndataxyc,info) !@nmxyC
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to create complex xy mesh definition.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to create complex xy mesh definition.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
ppmpoisson%meshidxyc = tmeshid ppmpoisson%meshidxyc = tmeshid
!write(*,*) ppmpoisson%meshidxy,tmeshid,ttopoid,ppmpoisson%meshidxyc
!!write(*,*) ppmpoisson%istartxyc,ppmpoisson%ndataxyc
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Create new pencil topology !@sofar periodic ! Create new pencil topology
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
ttopoid = 0 ttopoid = 0
tmeshid = -1 tmeshid = -1
...@@ -286,17 +274,14 @@ ...@@ -286,17 +274,14 @@
ENDIF ENDIF
assigning = ppm_param_assign_internal assigning = ppm_param_assign_internal
decomposition = ppm_param_decomp_zpencil decomposition = ppm_param_decomp_zpencil
!tmpmin = topology%min_physd
!tmpmax = topology%max_physd
CALL ppm_mktopo(ttopoid,tmeshid,xp,0,& CALL ppm_mktopo(ttopoid,tmeshid,xp,0,&
& decomposition,assigning,& & decomposition,assigning,&
!& topology%min_physd,topology%max_physd,bcdef,&
& tmpmin,tmpmax,bcdef,& & tmpmin,tmpmax,bcdef,&
& __ZEROSI,ppmpoisson%costz,ppmpoisson%istartz,ppmpoisson%ndataz,& & __ZEROSI,ppmpoisson%costz,ppmpoisson%istartz,ppmpoisson%ndataz,&
& ppmpoisson%nmz,info) & ppmpoisson%nmz,info)
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to create z-topology.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to create z-topology.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
ppmpoisson%topoidz = ttopoid ppmpoisson%topoidz = ttopoid
...@@ -307,19 +292,19 @@ ...@@ -307,19 +292,19 @@
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
CALL ppm_topo_get(ppmpoisson%topoidxy,topologyxy,info) CALL ppm_topo_get(ppmpoisson%topoidxy,topologyxy,info)
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get xy topology.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to get xy topology.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
!!CALL ppm_topo_get(ppmpoisson%topoidxyc,topologyxyc,info) !!CALL ppm_topo_get(ppmpoisson%topoidxyc,topologyxyc,info)
!!IF (info .NE. 0) THEN !!IF (info .NE. 0) THEN
!!CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get complex xy topology.',isub) !!CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to get complex xy topology.',isub)
!!GOTO 9999 !!GOTO 9999
!!ENDIF !!ENDIF
CALL ppm_topo_get(ppmpoisson%topoidz,topologyz,info) CALL ppm_topo_get(ppmpoisson%topoidz,topologyz,info)
IF (info .NE. 0) THEN IF (info .NE. 0) THEN
CALL ppm_write(ppm_rank,'ppm_poisson_init_predef','Failed to get z topology.',isub) CALL ppm_write(ppm_rank,'ppm_poisson_init','Failed to get z topology.',isub)
GOTO 9999 GOTO 9999
ENDIF ENDIF
...@@ -389,12 +374,8 @@ ...@@ -389,12 +374,8 @@
ENDDO ENDDO
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Allocate real and complex xy slabs ! Allocate complex xy slabs
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
!!ALLOCATE(ppmpoisson%fldxyr(__DIM,&
!!& indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),&
!!& 1:ppmpoisson%nsublistxy),stat=info)
!!
ALLOCATE(ppmpoisson%fldxyc(__DIM,& ALLOCATE(ppmpoisson%fldxyc(__DIM,&
& indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),& & indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),&
& 1:ppmpoisson%nsublistxy),stat=info) & 1:ppmpoisson%nsublistxy),stat=info)
...@@ -434,11 +415,6 @@ ...@@ -434,11 +415,6 @@
& indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),& & indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),&
& 1:ppmpoisson%nsublistz),stat=info) & 1:ppmpoisson%nsublistz),stat=info)
ELSE IF (green .EQ. ppm_poisson_grn_pois_fre) THEN ELSE IF (green .EQ. ppm_poisson_grn_pois_fre) THEN
!!!The z-dimension is defined to full extent for the real temporary
!!!Greens function array
!!ALLOCATE(ppmpoisson%fldgrnr(&
!!& indl(1):indu(1),indl(2):indu(2),indl(3):((indu(3)-1)*2),&
!!& 1:ppmpoisson%nsublistz),stat=info)
ALLOCATE(ppmpoisson%fldgrnc(& ALLOCATE(ppmpoisson%fldgrnc(&
& indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),& & indl(1):indu(1),indl(2):indu(2),indl(3):indu(3),&
& 1:ppmpoisson%nsublistz),stat=info) & 1:ppmpoisson%nsublistz),stat=info)
...@@ -474,10 +450,13 @@ ...@@ -474,10 +450,13 @@
! PSI = 1/(4*pi2)*1/(kx2 + ky2 + kz2)OMEGA ! PSI = 1/(4*pi2)*1/(kx2 + ky2 + kz2)OMEGA
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
IF (green .EQ. ppm_poisson_grn_pois_per) THEN IF (green .EQ. ppm_poisson_grn_pois_per) THEN
! Scaling the spectral coefficients... one minus is due to (i*k)^2 ... how about one due to Poisson? ! Scaling the spectral coefficients...
! one minus due to (i*k)^2 and another due to the Poisson equation
normfac = 1.0_MK/(4.0_MK*PI*PI * & normfac = 1.0_MK/(4.0_MK*PI*PI * &
!and normalisation of FFTs !and normalisation of FFTs
& REAL((ppmpoisson%nmz(1)-1)*(ppmpoisson%nmz(2)-1)*(ppmpoisson%nmz(3)-1),MK)) & REAL((ppmpoisson%nmz(1)-1)* &
& (ppmpoisson%nmz(2)-1)* &
& (ppmpoisson%nmz(3)-1),MK))
DO isub=1,ppmpoisson%nsublistz DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub) isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl) DO k=1,ppmpoisson%ndataz(3,isubl)
...@@ -524,18 +503,11 @@ ...@@ -524,18 +503,11 @@
! First initialise the real Greens function ! First initialise the real Greens function
!@alternatively this could come from as input !@alternatively this could come from as input
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
!@write(*,*) 'what the fuck?' !there should NOT be a minus here since THIS Greens function takes
!there should NOT be a minus here since this Greens function takes
!the minus of the Poisson equation into account !the minus of the Poisson equation into account
normfac = 1.0_MK/(4.0_MK*PI* & normfac = 1.0_MK/(4.0_MK*PI* &
!remembering FFT normalization of ALL points: !vertex !remembering FFT normalization of ALL points: !vertex
& REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3)),MK))*dx*dy*dz & REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3)),MK))*dx*dy*dz
!& REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3)),MK)& !this is the correct normalization to bring one field back and forth.
!remembering FFT normalization of ALL points: !vertex
!!& REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3)),MK)& !this should be correct normalization. When back and forth transforming the greens function is correct
!!& *REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3))/8,MK)) !this line is probably not necessary
!!!& *REAL((ppmpoisson%nmxy(1))*(ppmpoisson%nmxy(2))*(ppmpoisson%nmxy(3)),MK)) !this line is probably not necessary
!@write(*,*) ppmpoisson%nmxy, 'johannes'
DO isub=1,ppmpoisson%nsublistxy DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub) isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl) DO k=1,ppmpoisson%ndataxy(3,isubl)
...@@ -638,13 +610,11 @@ ...@@ -638,13 +610,11 @@
DO k=1,ppmpoisson%ndataz(3,isubl) DO k=1,ppmpoisson%ndataz(3,isubl)
DO j=1,ppmpoisson%ndataz(2,isubl) DO j=1,ppmpoisson%ndataz(2,isubl)
DO i=1,ppmpoisson%ndataz(1,isubl) DO i=1,ppmpoisson%ndataz(1,isubl)
ppmpoisson%fldgrnc(i,j,k,isub) = ppmpoisson%fldzc2(1,i,j,k,isub)!+1.0_MK ppmpoisson%fldgrnc(i,j,k,isub) = ppmpoisson%fldzc2(1,i,j,k,isub)
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
!@Deallocate field green r NOPE!
END IF END IF
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
...@@ -659,7 +629,7 @@ ...@@ -659,7 +629,7 @@
! Return ! Return
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
9999 CONTINUE 9999 CONTINUE
CALL substop('ppm_poisson_init_predef',t0,info) CALL substop('ppm_poisson_init',t0,info)
RETURN RETURN
END SUBROUTINE __ROUTINE END SUBROUTINE __ROUTINE
......
...@@ -54,16 +54,13 @@ ...@@ -54,16 +54,13 @@
INTEGER :: i,j,k INTEGER :: i,j,k
INTEGER :: info2 INTEGER :: info2
INTEGER :: presentcase INTEGER :: presentcase
REAL(__PREC) :: wdotk REAL(__PREC) :: wdotgreenr
COMPLEX(__PREC) :: wdotgreenc
INTEGER :: gi,gj,gk INTEGER :: gi,gj,gk
REAL(__PREC) :: kx,ky,kz COMPLEX(__PREC) :: kx,ky,kz
REAL(__PREC) :: phix,phiy,phiz COMPLEX(__PREC) :: phix,phiy,phiz
REAL(__PREC) :: normfac REAL(__PREC) :: normfac
#ifndef __NOPE
INTEGER :: trank !@
trank =0
#endif
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
! Initialise routine ! Initialise routine
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
...@@ -144,94 +141,6 @@ trank =0 ...@@ -144,94 +141,6 @@ trank =0
& ppmpoisson%fldxyr, ppmpoisson%fldxyc, & & ppmpoisson%fldxyr, ppmpoisson%fldxyc, &
& info) & info)
#ifdef __NOPE
if (ppm_rank .EQ. trank) THEN
write(*,*) 'Rfftx12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,A,$)') ' (',ppmpoisson%fldxyr(1,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'Rffty12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,A,$)') ' (',ppmpoisson%fldxyr(2,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'Rfftz12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,A,$)') ' (',ppmpoisson%fldxyr(3,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
ENDIF
#endif
#ifdef __NOPE
if (ppm_rank .EQ. trank) THEN
write(*,*) 'fftx12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldxyc(1,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'ffty12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldxyc(2,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'fftz12', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldxyc(3,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
ENDIF
#endif
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Map to the pencils (Z) ! Map to the pencils (Z)
...@@ -283,67 +192,6 @@ trank =0 ...@@ -283,67 +192,6 @@ trank =0
& ppmpoisson%fldzc1, ppmpoisson%fldzc2, & & ppmpoisson%fldzc1, ppmpoisson%fldzc2, &
& info) & info)
#ifdef __NOPE
if (ppm_rank .EQ. trank) THEN
write(*,*)
write(*,*) !ppmpoisson%fldzc1 = 0.0_MK
write(*,*) 'fftx123', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc2(1,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'ffty123', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc2(2,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'fftz123', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc2(3,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*)
write(*,*)
write(*,*) 'green', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(E12.4,$)') REAL(ppmpoisson%fldgrnr(i,j,k,isub))
END DO
write(*,*)
END DO
END DO
END DO
ENDIF
#endif
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Apply the periodic Greens function ! Apply the periodic Greens function
...@@ -384,90 +232,109 @@ trank =0 ...@@ -384,90 +232,109 @@ trank =0
ENDDO ENDDO
ENDDO ENDDO
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Spectral derivatives ! Vorticity re-projection
! normkx, etc contains 2pi/Lx
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_sp .AND.& ELSE IF (presentcase .EQ. ppm_poisson_grn_reprojec) THEN
& (presentcase .EQ. ppm_poisson_grn_pois_per .OR. &
presentcase .EQ. ppm_poisson_grn_pois_fre)) THEN
write(*,*) 'curl fft style! not working yet though!'
!remembering to normalize the FFT !remembering to normalize the FFT
normfac = 1.0_MK/ REAL((ppmpoisson%nmz(1)-1)* & !vertex !normfac = 1.0_MK/ REAL((ppmpoisson%nmz(1)-1)* & !vertex
& (ppmpoisson%nmz(2)-1)* & !& (ppmpoisson%nmz(2)-1)* &
& (ppmpoisson%nmz(3)-1),MK) !& (ppmpoisson%nmz(3)-1),MK)
DO isub=1,ppmpoisson%nsublistz DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub) isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl) DO k=1,ppmpoisson%ndataz(3,isubl)
gk = k - 1 + (ppmpoisson%istartz(3,isubl)-1) gk = k - 1 + (ppmpoisson%istartz(3,isubl)-1)
IF (gk .GT. (ppmpoisson%nmz(3)-1)/2) gk = gk-(ppmpoisson%nmz(3)-1) IF (gk .GT. (ppmpoisson%nmz(3)-1)/2) gk = gk-(ppmpoisson%nmz(3)-1)
kz = CMPLX(0.0_MK,gk*ppmpoisson%normkz,MK) kz = REAL(gk,MK)
DO j=1,ppmpoisson%ndataz(2,isubl) DO j=1,ppmpoisson%ndataz(2,isubl)
gj = j - 1 + (ppmpoisson%istartz(2,isubl)-1) gj = j - 1 + (ppmpoisson%istartz(2,isubl)-1)
IF (gj .GT. (ppmpoisson%nmz(2)-1)/2) gj = gj-(ppmpoisson%nmz(2)-1) IF (gj .GT. (ppmpoisson%nmz(2)-1)/2) gj = gj-(ppmpoisson%nmz(2)-1)
ky = CMPLX(0.0_MK,gj*ppmpoisson%normky,MK) ky = REAL(gj,MK)
DO i=1,ppmpoisson%ndataz(1,isubl) DO i=1,ppmpoisson%ndataz(1,isubl)
gi = i - 1 + (ppmpoisson%istartz(1,isubl)-1) gi = i - 1 + (ppmpoisson%istartz(1,isubl)-1)
IF (gi .GT. (ppmpoisson%nmz(1)-1)/2) gi = gi-(ppmpoisson%nmz(1)-1) IF (gi .GT. (ppmpoisson%nmz(1)-1)/2) gi = gi-(ppmpoisson%nmz(1)-1)
kx = CMPLX(0.0_MK,gi*ppmpoisson%normkx,MK) kx = REAL(gi,MK)
phix = ppmpoisson%fldzc2(1,i,j,k,isub) !IF (gi .EQ. 0 .AND. gj .EQ. 0 .AND. gk .EQ. 0) THEN
phiy = ppmpoisson%fldzc2(2,i,j,k,isub) !wdotk = 0.0_mk
phiz = ppmpoisson%fldzc2(3,i,j,k,isub) !ELSE
!wdotk = (ppmpoisson%fldzc2(1,i,j,k,isub) * kx + &
!& ppmpoisson%fldzc2(2,i,j,k,isub) * ky + &
!& ppmpoisson%fldzc2(3,i,j,k,isub) * kz) / &
!& (kx*kx+ky*ky+kz*kz)
!ENDIF
!ppmpoisson%fldzc2(1,i,j,k,isub) = &
!& (ppmpoisson%fldzc2(1,i,j,k,isub) - wdotk*kx)*normfac
!ppmpoisson%fldzc2(2,i,j,k,isub) = &
!& (ppmpoisson%fldzc2(2,i,j,k,isub) - wdotk*ky)*normfac
!ppmpoisson%fldzc2(3,i,j,k,isub) = &
!& (ppmpoisson%fldzc2(3,i,j,k,isub) - wdotk*kz)*normfac
IF (ppmpoisson%case .EQ. ppm_poisson_grn_pois_fre) THEN
wdotgreenc = (ppmpoisson%fldzc2(1,i,j,k,isub) * kx + &
& ppmpoisson%fldzc2(2,i,j,k,isub) * ky + &
& ppmpoisson%fldzc2(3,i,j,k,isub) * kz) * &
& ppmpoisson%fldgrnc( i,j,k,isub)
ppmpoisson%fldzc2(1,i,j,k,isub) = &
& (ppmpoisson%fldzc2(1,i,j,k,isub) - wdotgreenc*kx)
ppmpoisson%fldzc2(2,i,j,k,isub) = &
& (ppmpoisson%fldzc2(2,i,j,k,isub) - wdotgreenc*ky)
ppmpoisson%fldzc2(3,i,j,k,isub) = &
& (ppmpoisson%fldzc2(3,i,j,k,isub) - wdotgreenc*kz)
ELSE IF (ppmpoisson%case .EQ. ppm_poisson_grn_pois_per) THEN
wdotgreenr = (ppmpoisson%fldzc2(1,i,j,k,isub) * kx + &
& ppmpoisson%fldzc2(2,i,j,k,isub) * ky + &
& ppmpoisson%fldzc2(3,i,j,k,isub) * kz) * &
& ppmpoisson%fldgrnr( i,j,k,isub)
ppmpoisson%fldzc2(1,i,j,k,isub) = &
& (ppmpoisson%fldzc2(1,i,j,k,isub) - wdotgreenr*kx)
ppmpoisson%fldzc2(2,i,j,k,isub) = &
& (ppmpoisson%fldzc2(2,i,j,k,isub) - wdotgreenr*ky)
ppmpoisson%fldzc2(3,i,j,k,isub) = &
& (ppmpoisson%fldzc2(3,i,j,k,isub) - wdotgreenr*kz)
ENDIF
!maybe normfac on kx,ky,kz?
ppmpoisson%fldzc2(1,i,j,k,isub) = normfac*(ky*phiz-kz*phiy)
ppmpoisson%fldzc2(2,i,j,k,isub) = normfac*(kz*phix-kx*phiz)
ppmpoisson%fldzc2(3,i,j,k,isub) = normfac*(kx*phiy-ky*phix)
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
ENDIF ENDIF
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Vorticity re-projection ! Spectral derivatives
! normkx, etc contains 2pi/Lx
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
ELSE IF (presentcase .EQ. ppm_poisson_grn_reprojec) THEN IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_sp .AND.&
!remembering to normalize the FFT & (presentcase .EQ. ppm_poisson_grn_pois_per .OR. &
normfac = 1.0_MK/ REAL((ppmpoisson%nmz(1)-1)* & !vertex presentcase .EQ. ppm_poisson_grn_pois_fre)) THEN
& (ppmpoisson%nmz(2)-1)* &
& (ppmpoisson%nmz(3)-1),MK)
DO isub=1,ppmpoisson%nsublistz DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub) isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl) DO k=1,ppmpoisson%ndataz(3,isubl)
gk = k - 1 + (ppmpoisson%istartz(3,isubl)-1) gk = k - 1 + (ppmpoisson%istartz(3,isubl)-1)
IF (gk .GT. (ppmpoisson%nmz(3)-1)/2) gk = gk-(ppmpoisson%nmz(3)-1) IF (gk .GT. (ppmpoisson%nmz(3)-1)/2) gk = gk-(ppmpoisson%nmz(3)-1)
kz = REAL(gk,MK) kz = CMPLX(0.0_MK,gk*ppmpoisson%normkz,MK)
DO j=1,ppmpoisson%ndataz(2,isubl) DO j=1,ppmpoisson%ndataz(2,isubl)
gj = j - 1 + (ppmpoisson%istartz(2,isubl)-1) gj = j - 1 + (ppmpoisson%istartz(2,isubl)-1)
IF (gj .GT. (ppmpoisson%nmz(2)-1)/2) gj = gj-(ppmpoisson%nmz(2)-1) IF (gj .GT. (ppmpoisson%nmz(2)-1)/2) gj = gj-(ppmpoisson%nmz(2)-1)
ky = REAL(gj,MK) ky = CMPLX(0.0_MK,gj*ppmpoisson%normky,MK)
DO i=1,ppmpoisson%ndataz(1,isubl) DO i=1,ppmpoisson%ndataz(1,isubl)
gi = i - 1 + (ppmpoisson%istartz(1,isubl)-1) gi = i - 1 + (ppmpoisson%istartz(1,isubl)-1)
IF (gi .GT. (ppmpoisson%nmz(1)-1)/2) gi = gi-(ppmpoisson%nmz(1)-1) IF (gi .GT. (ppmpoisson%nmz(1)-1)/2) gi = gi-(ppmpoisson%nmz(1)-1)
kx = REAL(gi,MK) kx = CMPLX(0.0_MK,gi*ppmpoisson%normkx,MK)
IF (gi .EQ. 0 .AND. gj .EQ. 0 .AND. gk .EQ. 0) THEN phix = ppmpoisson%fldzc2(1,i,j,k,isub)
wdotk = 0.0_mk phiy = ppmpoisson%fldzc2(2,i,j,k,isub)
ELSE phiz = ppmpoisson%fldzc2(3,i,j,k,isub)
wdotk = (ppmpoisson%fldzc2(1,i,j,k,isub) * kx + &
& ppmpoisson%fldzc2(2,i,j,k,isub) * ky + &
& ppmpoisson%fldzc2(3,i,j,k,isub) * kz) / &
& (kx*kx+ky*ky+kz*kz)
ENDIF
ppmpoisson%fldzc2(1,i,j,k,isub) = & ppmpoisson%fldzc2(1,i,j,k,isub) = (ky*phiz-kz*phiy)
& (ppmpoisson%fldzc2(1,i,j,k,isub) - wdotk*kx)*normfac ppmpoisson%fldzc2(2,i,j,k,isub) = (kz*phix-kx*phiz)
ppmpoisson%fldzc2(2,i,j,k,isub) = & ppmpoisson%fldzc2(3,i,j,k,isub) = (kx*phiy-ky*phix)
& (ppmpoisson%fldzc2(2,i,j,k,isub) - wdotk*ky)*normfac
ppmpoisson%fldzc2(3,i,j,k,isub) = &
& (ppmpoisson%fldzc2(3,i,j,k,isub) - wdotk*kz)*normfac
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
ENDDO ENDDO
ENDIF ENDIF
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! IFFT pencil (Z) ! IFFT pencil (Z)
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
...@@ -476,51 +343,6 @@ trank =0 ...@@ -476,51 +343,6 @@ trank =0
& ppmpoisson%fldzc2, ppmpoisson%fldzc1, & & ppmpoisson%fldzc2, ppmpoisson%fldzc1, &
& info) & info)
#ifdef __NOPE
if (ppm_rank .EQ. trank) THEN
write(*,*)
write(*,*)
write(*,*) 'ifftx12', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc1(1,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'iffty12', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc1(2,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'ifftz12', ppm_rank
DO isub=1,ppmpoisson%nsublistz
isubl=ppmpoisson%isublistz(isub)
DO k=1,ppmpoisson%ndataz(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataz(1,isubl)-1
DO j=1,ppmpoisson%ndataz(2,isubl)-1
write(*,'(A,E12.4,E12.4,A,$)') ' (',ppmpoisson%fldzc1(3,i,j,k,isub),')'
END DO
write(*,*)
END DO
END DO
END DO
ENDIF
#endif
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Map back to slabs (XY) ! Map back to slabs (XY)
...@@ -570,51 +392,6 @@ trank =0 ...@@ -570,51 +392,6 @@ trank =0
& ppmpoisson%fldxyc, ppmpoisson%fldxyr, & & ppmpoisson%fldxyc, ppmpoisson%fldxyr, &
& info) & info)
#ifdef __NOPE
if (ppm_rank .EQ. trank) THEN
write(*,*)
write(*,*)
write(*,*) 'ifftx', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(E12.4,$)') ppmpoisson%fldxyr(1,i,j,k,isub)
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'iffty', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(E12.4,$)') ppmpoisson%fldxyr(2,i,j,k,isub)
END DO
write(*,*)
END DO
END DO
END DO
write(*,*) 'ifftz', ppm_rank
DO isub=1,ppmpoisson%nsublistxy
isubl=ppmpoisson%isublistxy(isub)
DO k=1,ppmpoisson%ndataxy(3,isubl)-1
write(*,*) 'z',k
DO i=1,ppmpoisson%ndataxy(1,isubl)-1
DO j=1,ppmpoisson%ndataxy(2,isubl)-1
write(*,'(E12.4,$)') ppmpoisson%fldxyr(3,i,j,k,isub)
END DO
write(*,*)
END DO
END DO
END DO
ENDIF
#endif
!----------------------------------------------------------------------- !-----------------------------------------------------------------------
! Map back to standard topology (XYZ) ! Map back to standard topology (XYZ)
...@@ -718,15 +495,11 @@ trank =0 ...@@ -718,15 +495,11 @@ trank =0
! Perhaps make ppm_poisson_fd take _none as argument. Then maybe no ! Perhaps make ppm_poisson_fd take _none as argument. Then maybe no
! if-statement is required ! if-statement is required
!------------------------------------------------------------------------- !-------------------------------------------------------------------------
IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_fd2 .AND.& IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_fd2) THEN
& (presentcase .EQ. ppm_poisson_grn_pois_per .OR. & !@these may be unnecessary - perhaps just the derive value
presentcase .EQ. ppm_poisson_grn_pois_fre)) THEN
CALL ppm_poisson_fd(topoid,meshid,ppmpoisson%drv_vr,fieldout,& CALL ppm_poisson_fd(topoid,meshid,ppmpoisson%drv_vr,fieldout,&
& ppm_poisson_drv_curl_fd2,info) & ppm_poisson_drv_curl_fd2,info)
ENDIF ENDIF
IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_fd4 .AND.& IF (ppmpoisson%derivatives .EQ. ppm_poisson_drv_curl_fd4) THEN
& (presentcase .EQ. ppm_poisson_grn_pois_per .OR. & !@these may be unnecessary - perhaps just the derive value
presentcase .EQ. ppm_poisson_grn_pois_fre)) THEN
CALL ppm_poisson_fd(topoid,meshid,ppmpoisson%drv_vr,fieldout,& CALL ppm_poisson_fd(topoid,meshid,ppmpoisson%drv_vr,fieldout,&
& ppm_poisson_drv_curl_fd4,info) & ppm_poisson_drv_curl_fd4,info)
ENDIF ENDIF
......
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
INTEGER,PARAMETER :: ppm_poisson_grn_reprojec =3 INTEGER,PARAMETER :: ppm_poisson_grn_reprojec =3
INTERFACE ppm_poisson_init INTERFACE ppm_poisson_init
MODULE PROCEDURE ppm_poisson_init_predef MODULE PROCEDURE ppm_poisson_init
END INTERFACE END INTERFACE
INTERFACE ppm_poisson_solve INTERFACE ppm_poisson_solve
...@@ -199,8 +199,8 @@ ...@@ -199,8 +199,8 @@
#define __DIM 3 #define __DIM 3
#define __ZEROSI (/0,0,0/) #define __ZEROSI (/0,0,0/)
#define __NCOM 3 #define __NCOM 3
#define __ROUTINE ppm_poisson_init_predef #define __ROUTINE ppm_poisson_init
#include "poisson/ppm_poisson_init_predef.f" #include "poisson/ppm_poisson_init.f"
#undef __ROUTINE #undef __ROUTINE
#define __ROUTINE ppm_poisson_solve #define __ROUTINE ppm_poisson_solve
#include "poisson/ppm_poisson_solve.f" #include "poisson/ppm_poisson_solve.f"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment