ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/UseTheForce/DarkSide/shapes.F90
(Generate patch)

Comparing trunk/OOPSE-3.0/src/UseTheForce/DarkSide/shapes.F90 (file contents):
Revision 1689 by chrisfen, Fri Oct 29 22:28:45 2004 UTC vs.
Revision 1698 by chrisfen, Tue Nov 2 15:28:25 2004 UTC

# Line 62 | Line 62 | module shapes
62    type(ShapeList), save :: ShapeMap
63  
64    integer :: lmax
65  real (kind=dp), allocatable, dimension(:,:) :: plm_i, dlm_i, plm_j, dlm_j
66  real (kind=dp), allocatable, dimension(:) :: tm_i, dtm_i, um_i, dum_i
67  real (kind=dp), allocatable, dimension(:) :: tm_j, dtm_j, um_j, dum_j
65  
66   contains  
67  
# Line 438 | Line 435 | contains  
435      real (kind=dp) :: fxji, fyji, fzji, fxjj, fyjj, fzjj
436      real (kind=dp) :: fxradial, fyradial, fzradial
437  
438 <    real (kind=dp) :: plm_i(LMAX,MMAX), dlm_i(LMAX,MMAX)
439 <    real (kind=dp) :: plm_j(LMAX,MMAX), dlm_j(LMAX,MMAX)
440 <    real (kind=dp) :: tm_i(MMAX), dtm_i(MMAX), um_i(MMAX), dum_i(MMAX)
441 <    real (kind=dp) :: tm_j(MMAX), dtm_j(MMAX), um_j(MMAX), dum_j(MMAX)
438 >    real (kind=dp) :: plm_i(0:LMAX,0:MMAX), dlm_i(0:LMAX,0:MMAX)
439 >    real (kind=dp) :: plm_j(0:LMAX,0:MMAX), dlm_j(0:LMAX,0:MMAX)
440 >    real (kind=dp) :: tm_i(0:MMAX), dtm_i(0:MMAX), um_i(0:MMAX), dum_i(0:MMAX)
441 >    real (kind=dp) :: tm_j(0:MMAX), dtm_j(0:MMAX), um_j(0:MMAX), dum_j(0:MMAX)
442  
443      if (.not.haveShapeMap) then
444         call handleError("calc_shape", "NO SHAPEMAP!!!!")
# Line 550 | Line 547 | contains  
547         dspiduy = xi * yi * zi / proji3
548         dspiduz = xi * (1.0d0 / proji - yi2 / proji3) + (xi * yi2 / proji3)
549  
550 <       call Associated_Legendre(cti, ShapeMap%Shapes(st1)%bigL, &
551 <            ShapeMap%Shapes(st1)%bigM, LMAX, &
550 >       call Associated_Legendre(cti, ShapeMap%Shapes(st1)%bigM, &
551 >            ShapeMap%Shapes(st1)%bigL, LMAX, &
552              plm_i, dlm_i)
553  
554         call Orthogonal_Polynomial(cpi, ShapeMap%Shapes(st1)%bigM, MMAX, &
# Line 588 | Line 585 | contains  
585            function_type = ShapeMap%Shapes(st1)%ContactFunctionType(lm)
586  
587            if ((function_type .eq. SH_COS).or.(m.eq.0)) then
591           !  write(*,*) tm_i(m), ' is tm_i'
588               Phunc = coeff * tm_i(m)
589               dPhuncdX = coeff * dtm_i(m) * dcpidx
590               dPhuncdY = coeff * dtm_i(m) * dcpidy
# Line 606 | Line 602 | contains  
602               dPhuncdUz = coeff*(spi * dum_i(m-1)*dcpiduz + dspiduz *um_i(m-1))
603            endif
604  
605 <          sigma_i = sigma_i + plm_i(l,m)*Phunc
606 <          write(*,*) plm_i(l,m), l, m
607 <          dsigmaidx = dsigmaidx + plm_i(l,m)*dPhuncdX + &
608 <               Phunc * dlm_i(l,m) * dctidx
609 <          dsigmaidy = dsigmaidy + plm_i(l,m)*dPhuncdY + &
610 <               Phunc * dlm_i(l,m) * dctidy
611 <          dsigmaidz = dsigmaidz + plm_i(l,m)*dPhuncdZ + &
612 <               Phunc * dlm_i(l,m) * dctidz
605 >          sigma_i = sigma_i + plm_i(m,l)*Phunc
606 >
607 >          dsigmaidx = dsigmaidx + plm_i(m,l)*dPhuncdX + &
608 >               Phunc * dlm_i(m,l) * dctidx
609 >          dsigmaidy = dsigmaidy + plm_i(m,l)*dPhuncdY + &
610 >               Phunc * dlm_i(m,l) * dctidy
611 >          dsigmaidz = dsigmaidz + plm_i(m,l)*dPhuncdZ + &
612 >               Phunc * dlm_i(m,l) * dctidz
613            
614 <          dsigmaidux = dsigmaidux + plm_i(l,m)* dPhuncdUx + &
615 <               Phunc * dlm_i(l,m) * dctidux
616 <          dsigmaiduy = dsigmaiduy + plm_i(l,m)* dPhuncdUy + &
617 <               Phunc * dlm_i(l,m) * dctiduy
618 <          dsigmaiduz = dsigmaiduz + plm_i(l,m)* dPhuncdUz + &
619 <               Phunc * dlm_i(l,m) * dctiduz
614 >          dsigmaidux = dsigmaidux + plm_i(m,l)* dPhuncdUx + &
615 >               Phunc * dlm_i(m,l) * dctidux
616 >          dsigmaiduy = dsigmaiduy + plm_i(m,l)* dPhuncdUy + &
617 >               Phunc * dlm_i(m,l) * dctiduy
618 >          dsigmaiduz = dsigmaiduz + plm_i(m,l)* dPhuncdUz + &
619 >               Phunc * dlm_i(m,l) * dctiduz
620  
621         end do
622  
# Line 648 | Line 644 | contains  
644               dPhuncdUz = coeff*(spi * dum_i(m-1)*dcpiduz + dspiduz *um_i(m-1))
645            endif
646  
647 <          s_i = s_i + plm_i(l,m)*Phunc
652 <          
653 <          dsidx = dsidx + plm_i(l,m)*dPhuncdX + &
654 <               Phunc * dlm_i(l,m) * dctidx
655 <          dsidy = dsidy + plm_i(l,m)*dPhuncdY + &
656 <               Phunc * dlm_i(l,m) * dctidy
657 <          dsidz = dsidz + plm_i(l,m)*dPhuncdZ + &
658 <               Phunc * dlm_i(l,m) * dctidz
647 >          s_i = s_i + plm_i(m,l)*Phunc
648            
649 <          dsidux = dsidux + plm_i(l,m)* dPhuncdUx + &
650 <               Phunc * dlm_i(l,m) * dctidux
651 <          dsiduy = dsiduy + plm_i(l,m)* dPhuncdUy + &
652 <               Phunc * dlm_i(l,m) * dctiduy
653 <          dsiduz = dsiduz + plm_i(l,m)* dPhuncdUz + &
654 <               Phunc * dlm_i(l,m) * dctiduz      
649 >          dsidx = dsidx + plm_i(m,l)*dPhuncdX + &
650 >               Phunc * dlm_i(m,l) * dctidx
651 >          dsidy = dsidy + plm_i(m,l)*dPhuncdY + &
652 >               Phunc * dlm_i(m,l) * dctidy
653 >          dsidz = dsidz + plm_i(m,l)*dPhuncdZ + &
654 >               Phunc * dlm_i(m,l) * dctidz
655 >          
656 >          dsidux = dsidux + plm_i(m,l)* dPhuncdUx + &
657 >               Phunc * dlm_i(m,l) * dctidux
658 >          dsiduy = dsiduy + plm_i(m,l)* dPhuncdUy + &
659 >               Phunc * dlm_i(m,l) * dctiduy
660 >          dsiduz = dsiduz + plm_i(m,l)* dPhuncdUz + &
661 >               Phunc * dlm_i(m,l) * dctiduz      
662  
663         end do
664                
# Line 689 | Line 685 | contains  
685               dPhuncdUy = coeff*(spi * dum_i(m-1)*dcpiduy + dspiduy *um_i(m-1))
686               dPhuncdUz = coeff*(spi * dum_i(m-1)*dcpiduz + dspiduz *um_i(m-1))
687            endif
688 <          !write(*,*) eps_i, plm_i(l,m), Phunc
689 <          eps_i = eps_i + plm_i(l,m)*Phunc
688 >
689 >          eps_i = eps_i + plm_i(m,l)*Phunc
690            
691 <          depsidx = depsidx + plm_i(l,m)*dPhuncdX + &
692 <               Phunc * dlm_i(l,m) * dctidx
693 <          depsidy = depsidy + plm_i(l,m)*dPhuncdY + &
694 <               Phunc * dlm_i(l,m) * dctidy
695 <          depsidz = depsidz + plm_i(l,m)*dPhuncdZ + &
696 <               Phunc * dlm_i(l,m) * dctidz
691 >          depsidx = depsidx + plm_i(m,l)*dPhuncdX + &
692 >               Phunc * dlm_i(m,l) * dctidx
693 >          depsidy = depsidy + plm_i(m,l)*dPhuncdY + &
694 >               Phunc * dlm_i(m,l) * dctidy
695 >          depsidz = depsidz + plm_i(m,l)*dPhuncdZ + &
696 >               Phunc * dlm_i(m,l) * dctidz
697            
698 <          depsidux = depsidux + plm_i(l,m)* dPhuncdUx + &
699 <               Phunc * dlm_i(l,m) * dctidux
700 <          depsiduy = depsiduy + plm_i(l,m)* dPhuncdUy + &
701 <               Phunc * dlm_i(l,m) * dctiduy
702 <          depsiduz = depsiduz + plm_i(l,m)* dPhuncdUz + &
703 <               Phunc * dlm_i(l,m) * dctiduz      
698 >          depsidux = depsidux + plm_i(m,l)* dPhuncdUx + &
699 >               Phunc * dlm_i(m,l) * dctidux
700 >          depsiduy = depsiduy + plm_i(m,l)* dPhuncdUy + &
701 >               Phunc * dlm_i(m,l) * dctiduy
702 >          depsiduz = depsiduz + plm_i(m,l)* dPhuncdUz + &
703 >               Phunc * dlm_i(m,l) * dctiduz      
704  
705         end do
706  
# Line 785 | Line 781 | contains  
781         dspjduy = xj * yj * zj / projj3
782         dspjduz = xj * (1.0d0 / projj - yi2 / projj3) + (xj * yj2 / projj3)
783        
784 <       call Associated_Legendre(ctj, ShapeMap%Shapes(st2)%bigL, &
785 <            ShapeMap%Shapes(st2)%bigM, LMAX, &
784 >       call Associated_Legendre(ctj, ShapeMap%Shapes(st2)%bigM, &
785 >            ShapeMap%Shapes(st2)%bigL, LMAX, &
786              plm_j, dlm_j)
787        
788         call Orthogonal_Polynomial(cpj, ShapeMap%Shapes(st2)%bigM, MMAX, &
# Line 840 | Line 836 | contains  
836               dPhuncdUz = coeff*(spj * dum_j(m-1)*dcpjduz + dspjduz *um_j(m-1))
837            endif
838  
839 <          sigma_j = sigma_j + plm_j(l,m)*Phunc
839 >          sigma_j = sigma_j + plm_j(m,l)*Phunc
840            
841 <          dsigmajdx = dsigmajdx + plm_j(l,m)*dPhuncdX + &
842 <               Phunc * dlm_j(l,m) * dctjdx
843 <          dsigmajdy = dsigmajdy + plm_j(l,m)*dPhuncdY + &
844 <               Phunc * dlm_j(l,m) * dctjdy
845 <          dsigmajdz = dsigmajdz + plm_j(l,m)*dPhuncdZ + &
846 <               Phunc * dlm_j(l,m) * dctjdz
841 >          dsigmajdx = dsigmajdx + plm_j(m,l)*dPhuncdX + &
842 >               Phunc * dlm_j(m,l) * dctjdx
843 >          dsigmajdy = dsigmajdy + plm_j(m,l)*dPhuncdY + &
844 >               Phunc * dlm_j(m,l) * dctjdy
845 >          dsigmajdz = dsigmajdz + plm_j(m,l)*dPhuncdZ + &
846 >               Phunc * dlm_j(m,l) * dctjdz
847            
848 <          dsigmajdux = dsigmajdux + plm_j(l,m)* dPhuncdUx + &
849 <               Phunc * dlm_j(l,m) * dctjdux
850 <          dsigmajduy = dsigmajduy + plm_j(l,m)* dPhuncdUy + &
851 <               Phunc * dlm_j(l,m) * dctjduy
852 <          dsigmajduz = dsigmajduz + plm_j(l,m)* dPhuncdUz + &
853 <               Phunc * dlm_j(l,m) * dctjduz
848 >          dsigmajdux = dsigmajdux + plm_j(m,l)* dPhuncdUx + &
849 >               Phunc * dlm_j(m,l) * dctjdux
850 >          dsigmajduy = dsigmajduy + plm_j(m,l)* dPhuncdUy + &
851 >               Phunc * dlm_j(m,l) * dctjduy
852 >          dsigmajduz = dsigmajduz + plm_j(m,l)* dPhuncdUz + &
853 >               Phunc * dlm_j(m,l) * dctjduz
854  
855         end do
856  
# Line 882 | Line 878 | contains  
878               dPhuncdUz = coeff*(spj * dum_j(m-1)*dcpjduz + dspjduz *um_j(m-1))
879            endif
880  
881 <          s_j = s_j + plm_j(l,m)*Phunc
881 >          s_j = s_j + plm_j(m,l)*Phunc
882            
883 <          dsjdx = dsjdx + plm_j(l,m)*dPhuncdX + &
884 <               Phunc * dlm_j(l,m) * dctjdx
885 <          dsjdy = dsjdy + plm_j(l,m)*dPhuncdY + &
886 <               Phunc * dlm_j(l,m) * dctjdy
887 <          dsjdz = dsjdz + plm_j(l,m)*dPhuncdZ + &
888 <               Phunc * dlm_j(l,m) * dctjdz
883 >          dsjdx = dsjdx + plm_j(m,l)*dPhuncdX + &
884 >               Phunc * dlm_j(m,l) * dctjdx
885 >          dsjdy = dsjdy + plm_j(m,l)*dPhuncdY + &
886 >               Phunc * dlm_j(m,l) * dctjdy
887 >          dsjdz = dsjdz + plm_j(m,l)*dPhuncdZ + &
888 >               Phunc * dlm_j(m,l) * dctjdz
889            
890 <          dsjdux = dsjdux + plm_j(l,m)* dPhuncdUx + &
891 <               Phunc * dlm_j(l,m) * dctjdux
892 <          dsjduy = dsjduy + plm_j(l,m)* dPhuncdUy + &
893 <               Phunc * dlm_j(l,m) * dctjduy
894 <          dsjduz = dsjduz + plm_j(l,m)* dPhuncdUz + &
895 <               Phunc * dlm_j(l,m) * dctjduz
890 >          dsjdux = dsjdux + plm_j(m,l)* dPhuncdUx + &
891 >               Phunc * dlm_j(m,l) * dctjdux
892 >          dsjduy = dsjduy + plm_j(m,l)* dPhuncdUy + &
893 >               Phunc * dlm_j(m,l) * dctjduy
894 >          dsjduz = dsjduz + plm_j(m,l)* dPhuncdUz + &
895 >               Phunc * dlm_j(m,l) * dctjduz
896  
897         end do
898  
# Line 924 | Line 920 | contains  
920               dPhuncdUz = coeff*(spj * dum_j(m-1)*dcpjduz + dspjduz *um_j(m-1))
921            endif
922  
923 <          eps_j = eps_j + plm_j(l,m)*Phunc
923 >          eps_j = eps_j + plm_j(m,l)*Phunc
924            
925 <          depsjdx = depsjdx + plm_j(l,m)*dPhuncdX + &
926 <               Phunc * dlm_j(l,m) * dctjdx
927 <          depsjdy = depsjdy + plm_j(l,m)*dPhuncdY + &
928 <               Phunc * dlm_j(l,m) * dctjdy
929 <          depsjdz = depsjdz + plm_j(l,m)*dPhuncdZ + &
930 <               Phunc * dlm_j(l,m) * dctjdz
925 >          depsjdx = depsjdx + plm_j(m,l)*dPhuncdX + &
926 >               Phunc * dlm_j(m,l) * dctjdx
927 >          depsjdy = depsjdy + plm_j(m,l)*dPhuncdY + &
928 >               Phunc * dlm_j(m,l) * dctjdy
929 >          depsjdz = depsjdz + plm_j(m,l)*dPhuncdZ + &
930 >               Phunc * dlm_j(m,l) * dctjdz
931            
932 <          depsjdux = depsjdux + plm_j(l,m)* dPhuncdUx + &
933 <               Phunc * dlm_j(l,m) * dctjdux
934 <          depsjduy = depsjduy + plm_j(l,m)* dPhuncdUy + &
935 <               Phunc * dlm_j(l,m) * dctjduy
936 <          depsjduz = depsjduz + plm_j(l,m)* dPhuncdUz + &
937 <               Phunc * dlm_j(l,m) * dctjduz
932 >          depsjdux = depsjdux + plm_j(m,l)* dPhuncdUx + &
933 >               Phunc * dlm_j(m,l) * dctjdux
934 >          depsjduy = depsjduy + plm_j(m,l)* dPhuncdUy + &
935 >               Phunc * dlm_j(m,l) * dctjduy
936 >          depsjduz = depsjduz + plm_j(m,l)* dPhuncdUz + &
937 >               Phunc * dlm_j(m,l) * dctjduz
938  
939         end do
940  
# Line 977 | Line 973 | contains  
973      dsduxj = 0.5*dsjdux
974      dsduyj = 0.5*dsjduy
975      dsduzj = 0.5*dsjduz
976 <    !write(*,*) eps_i, eps_j
976 >
977      eps = sqrt(eps_i * eps_j)
978  
979      depsdxi = eps_j * depsidx / (2.0d0 * eps)
# Line 1311 | Line 1307 | contains  
1307         DY0 = DY1
1308         DY1 = DYN
1309      end DO
1310 +
1311 +
1312      RETURN
1313      
1314    end subroutine Orthogonal_Polynomial

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines