11 Subroutine forminitialguess(snes,X,ierr)
13 Use f90moduleinterfaces
18 #include <finclude/petscsys.h> 19 #include <finclude/petscvec.h> 20 #include <finclude/petscvec.h90> 21 #include <finclude/petscdmda.h> 22 #include <finclude/petscdmda.h90> 23 #include <finclude/petscis.h> 24 #include <finclude/petscsnes.h> 25 #include <finclude/petscsnes.h90> 35 petscscalar,
pointer :: lx_v(:,:)
39 call snesgetdm(snes,da,ierr)
43 call dmgetlocalvector(da,localx,ierr)
45 call dmdavecgetarrayf90(da,localx,lx_v,ierr)
50 call initialguesslocal(puser,lx_v,ierr)
54 call dmdavecrestorearrayf90(da,localx,lx_v,ierr)
58 call dmlocaltoglobalbegin(da,localx,insert_values,x,ierr)
59 call dmlocaltoglobalend(da,localx,insert_values,x,ierr)
60 call dmrestorelocalvector(da,localx,ierr)
62 End Subroutine forminitialguess
71 Subroutine initialguesslocal(user,rhop,ierr)
78 Use vle_var
, Only: rhob,tc
80 Use mod_dft
, Only: box,zp,dzp
86 #include <finclude/petscsys.h> 87 #include <finclude/petscvec.h> 88 #include <finclude/petscdmda.h> 89 #include <finclude/petscis.h> 90 #include <finclude/petscmat.h> 91 #include <finclude/petscksp.h> 92 #include <finclude/petscpc.h> 93 #include <finclude/petscsnes.h> 97 petscscalar :: rhop(ncomp,user%gxs:user%gxe)
98 petscerrorcode :: ierr
113 call petscoptionsgetint(petsc_null_character,
'-init_pert',pert,flg,ierr)
116 zp_middle = (ngrid/2)*dzp
117 tanhfac = -2.3625*t/tc + 2.4728
123 IF(user%num_procs == 1)
THEN 126 Do i=user%gxs,user%gxe
128 rhop(k,i) = ( tanh(-(zp_i -zp_middle) / parame(k,2) *tanhfac) + 1.0 ) * rhob(1,k)/2.0 &
129 - ( tanh(-(zp_i - zp_middle) / parame(k,2) *tanhfac) - 1.0 ) * rhob(2,k)/2.0
132 If(rhop(k,i) == 0.0) rhop(k,i) = rhop(k,i-1)
142 IF(user%rank == 0)
THEN 145 Do i=user%gxs,user%xe
150 rhop(k,i) = rhob(1,k)
152 If(rhop(k,i) == 0.0) rhop(k,i) = rhop(k,i-1)
157 ELSE IF(user%rank == user%num_procs-1)
THEN 160 Do i=user%gxs,user%gxe
165 rhop(k,i) = rhob(1,k)
167 If(rhop(k,i) == 0.0) rhop(k,i) = rhop(k,i-1)
180 rhop(k,i) = rhob(1,k)
182 If(rhop(k,i) == 0.0) rhop(k,i) = rhop(k,i-1)
241 End Subroutine initialguesslocal
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains constant...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
This module contains variables associated with the PETSc solver.
In this module, the application context is defined.
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...