-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1b25c70
commit e6842c6
Showing
11 changed files
with
221 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
!``````````````````````````````````````````````````````````````````````````````````````````` | ||
! Copyright (c) 2018 Shahram Yalameha <[email protected]> , <[email protected]>, ` | ||
! Please report bugs or suggestions to: [email protected] ` | ||
! ` | ||
!``````````````````````````````````````````````````````````````````````````````````````````` | ||
! SUBROUTINE: fOR 2D MATERIAL , CALCULATED shear modulus. | ||
|
||
SUBROUTINE adv_2D(phi,phi_pro,l,pro,method,Max_pro, Min_pro) | ||
implicit none | ||
CHARACTER(len=5) :: pro | ||
CHARACTER(len=3) :: method ! 1 = o 2 = r 3 = q | ||
DOUBLE PRECISION :: Max_pro, Min_pro, phi, val_pro, sai_G, r_G, o_G, G0, G,G_inver, E_inver, poi_inver | ||
DOUBLE PRECISION, DIMENSION(201) :: phi_pro,pro_max_phi | ||
DOUBLE PRECISION, DIMENSION(3,3) :: C,S | ||
Integer :: n,i,j,l | ||
n=3 | ||
|
||
OPEN(58,FILE="Cij-2D.dat",STATUS='OLD',ACTION='READ') | ||
DO i=1,n | ||
READ(58,*) (C(i,j),j=1,n) | ||
ENDDO | ||
close(58) | ||
n=3 | ||
OPEN(51,FILE="Sij-2D.dat",STATUS='OLD',ACTION='READ') | ||
DO i=1,n | ||
READ(51,*) (S(i,j),j=1,n) | ||
ENDDO | ||
close(51) | ||
|
||
IF(method == 'adv' .and. pro == "shear" ) THEN | ||
G_inver = S(1,1) * ( COS(phi)*COS(phi)*SIN(phi)*SIN(phi) ) +& | ||
S(1,2) *-2.D0*( COS(phi)*SIN(phi)*SIN(phi)*COS(phi) ) +& | ||
S(2,2) * ( SIN(phi)*SIN(phi)*COS(phi)*COS(phi) ) +& | ||
S(1,3) * ( SIN(phi)*SIN(phi)*COS(phi)*SIN(phi) - SIN(phi)*COS(phi)*COS(phi)*COS(phi) )+& | ||
S(2,3) * ( COS(phi)*COS(phi)*COS(phi)*SIN(phi) - SIN(phi)*COS(phi)*SIN(phi)*SIN(phi) )+& | ||
S(3,3) * ( COS(phi)*COS(phi)*COS(phi)*COS(phi) - 2.D0*COS(phi)*SIN(phi)*SIN(phi)*COS(phi) + SIN(phi)*SIN(phi)*SIN(phi)*SIN(phi) ) * (1.d0/4.d0) | ||
phi_pro(l) = 1.D0/(4.D0*G_inver) | ||
|
||
ENDIF | ||
!=============================================== | ||
IF(method == 'adv' .and. pro == "young" ) THEN | ||
E_inver = S(1,1) * ( COS(phi)*COS(phi)*COS(phi)*COS(phi) ) +& | ||
S(1,2) *2.d0*( SIN(phi)*COS(phi)*SIN(phi)*COS(phi) ) +& | ||
S(2,2) * ( SIN(phi)*SIN(phi)*SIN(phi)*SIN(phi) ) +& | ||
S(3,3) * ( SIN(phi)*COS(phi)*SIN(phi)*COS(phi) ) +& | ||
S(1,3) *2.d0*( COS(phi)*SIN(phi)*SIN(phi)*SIN(phi) ) +& | ||
S(2,3) *2.d0*( SIN(phi)*COS(phi)*COS(phi)*COS(phi) ) | ||
phi_pro(l) = 1.D0 / E_inver | ||
|
||
endif | ||
IF(method == 'adv' .and. pro == "poi" ) THEN | ||
E_inver = S(1,1) * ( COS(phi)*COS(phi)*COS(phi)*COS(phi) ) +& | ||
S(1,2) *2.d0*( SIN(phi)*COS(phi)*SIN(phi)*COS(phi) ) +& | ||
S(2,2) * ( SIN(phi)*SIN(phi)*SIN(phi)*SIN(phi) ) +& | ||
S(3,3) * ( SIN(phi)*COS(phi)*SIN(phi)*COS(phi) ) +& | ||
S(1,3) *2.d0*( COS(phi)*SIN(phi)*SIN(phi)*SIN(phi) ) +& | ||
S(2,3) *2.d0*( SIN(phi)*COS(phi)*COS(phi)*COS(phi) ) | ||
|
||
poi_inver = S(1,1) * ( SIN(phi)*SIN(phi)*COS(phi)*COS(phi) ) +& | ||
S(1,2) * ( SIN(phi)*SIN(phi)*SIN(phi)*SIN(phi) + COS(phi)*COS(phi)*COS(phi)*COS(phi) )+& | ||
S(2,2) * ( SIN(phi)*SIN(phi)*COS(phi)*COS(phi) ) +& | ||
S(1,3) * ( SIN(phi)*SIN(phi)*COS(phi)*SIN(phi) - SIN(phi)*COS(phi)*COS(phi)*COS(phi) )+& | ||
S(2,3) * ( COS(phi)*COS(phi)*COS(phi)*SIN(phi) - SIN(phi)*COS(phi)*SIN(phi)*SIN(phi) )+& | ||
S(3,3) * ( SIN(phi)*COS(phi)*COS(phi)*SIN(phi) * -1.D0 ) | ||
phi_pro(l) = -(poi_inver / E_inver) | ||
!WRITE(*,*) phi*(180D0/3.1415),phi_pro(l) ,l | ||
IF (l.EQ.0) THEN | ||
Max_pro=phi_pro(l); Min_pro=phi_pro(l); | ||
ELSE | ||
IF (phi_pro(l).GE.Max_pro) THEN | ||
Max_pro=phi_pro(l) | ||
!WRITE(*,*) phi*(180D0/3.1415),Max_pro | ||
END IF | ||
IF (phi_pro(l).LE.Min_pro) THEN | ||
Min_pro=phi_pro(l) | ||
END IF | ||
END IF | ||
ENDIF | ||
!=============================================== | ||
|
||
END SUBROUTINE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,7 +3,7 @@ | |
! Please report bugs or suggestions to: [email protected] ` | ||
! ` | ||
!``````````````````````````````````````````````````````````````````````````````````````````` | ||
! SUBROUTINE: fOR 3D MATERIAL , CALCULATED poiison's retio. | ||
! SUBROUTINE: fOR 2D MATERIAL , CALCULATED poiison's retio. | ||
SUBROUTINE poisson_2D(vv11,vv22,vv33,phi,phi_poisson,MaxPratio,MinPratio,l) | ||
implicit none | ||
DOUBLE PRECISION :: vv11,vv22,vv33,Y1,Y2,A,B,T,Y3,MaxPratio,MinPratio,phi,Pe,E | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,19 +3,19 @@ | |
! Please report bugs or suggestions to: [email protected] ` | ||
! ` | ||
!``````````````````````````````````````````````````````````````````````````````````````````` | ||
! SUBROUTINE: fOR 2D MATERIAL , CALCULATE vectors and (theta, pihi) in the (001) plane | ||
! SUBROUTINE: fOR 2D MATERIAL , CALCULATE vectors and (theta, pih) in the (001) plane | ||
|
||
SUBROUTINE twoD_calc(vv11,vv12,vv13,vv22,vv23,vv33,mmx,kky,llz,smkl,i,phi,theta,vec) | ||
IMPLICIT NONE | ||
DOUBLE PRECISION :: smkl,smkl2,& | ||
twoDTheta=0D0,& | ||
DOUBLE PRECISION :: smkl,smkl2,& | ||
twoDTheta=0D0,& | ||
mmx, & | ||
kky, & | ||
llz, & | ||
vv11,& | ||
vv11,& | ||
vv12,& | ||
vv13,& | ||
vv22,& | ||
vv22,& | ||
vv23,& | ||
vv33,theta,phi | ||
DOUBLE PRECISION, DIMENSION(3) :: vec | ||
|
@@ -52,7 +52,7 @@ SUBROUTINE twoD_calc(vv11,vv12,vv13,vv22,vv23,vv33,mmx,kky,llz,smkl,i,phi,theta, | |
ENDIF | ||
vv11 = vec(1)*vec(1) ; vv12 = vec(1)*vec(2) | ||
vv13 = vec(1)*vec(3) ; vv22 = vec(2)*vec(2) | ||
vv23 = vec(2)*vec(3) ; vv33 = vec(3)*vec(3) | ||
vv23 = vec(2)*vec(3) ; vv33 = vec(3)*vec(3) | ||
!write(*,*)vv11,vv13,vv23,vv12,vv22,vv33 | ||
|
||
END SUBROUTINE | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.