111 lines
3.6 KiB
Fortran
111 lines
3.6 KiB
Fortran
|
! Crystal Plasticity Input File Generator for Abaqus Standard
|
||
|
!
|
||
|
! 5/7/00 - Only valid for FCC structure
|
||
|
! Only Asaro hardening model implemented
|
||
|
! Only valid for isotropic elastic properties
|
||
|
! Latent hardening parameters (Q1, Q2) set to (1, 0)
|
||
|
! 30/08/11 - Modified by JGROGAN. Removed some seldom used choices
|
||
|
! and added new random generator due to potential
|
||
|
! problems with previous 'RANDU' type generator.(igen)
|
||
|
! Added gen plane strain option (igps)
|
||
|
!
|
||
|
! Use odd number as seed for random number generator
|
||
|
!
|
||
|
! NLGEOM flag automatically assumed
|
||
|
! Newton-raphson iteration scheme and default parameters inputted
|
||
|
!
|
||
|
! ******************************************************************
|
||
|
program matgen
|
||
|
integer ncrys,iseed
|
||
|
character(1) filename
|
||
|
character(len=256)input2(2)
|
||
|
integer seed(1)
|
||
|
real*8 E,mu,g0,ginf,h0,adot,n,thick
|
||
|
! ******************************************************************
|
||
|
ncrys=2000
|
||
|
nfiles=5
|
||
|
thick=0.1
|
||
|
E=193000.
|
||
|
mu=0.3
|
||
|
g0=140.
|
||
|
ginf=800.
|
||
|
h0=150.
|
||
|
adot=0.0106
|
||
|
n=50.
|
||
|
! iseed=22828385 !ori1
|
||
|
! iseed=5835828 !ori2
|
||
|
! iseed=369256 !ori3
|
||
|
! iseed=39935222 !ori4
|
||
|
! iseed=787678764 !ori5
|
||
|
! iseed=987565 !ori6
|
||
|
iseed=75336563 !ori7
|
||
|
! iseed=367222567 !ori8
|
||
|
! iseed=682268 !ori9
|
||
|
! iseed=68768553 !ori10
|
||
|
seed=iseed
|
||
|
call random_seed(put=seed)
|
||
|
igen=2
|
||
|
istan=0
|
||
|
igps=0
|
||
|
do i=1,nfiles
|
||
|
write(filename,'(i1)')i
|
||
|
open(unit=11,status='unknown',file='Tens500_100.inp')
|
||
|
open(unit=10,status='unknown',file='Tens500_100_'//trim(filename)//'.inp')
|
||
|
input2(1)='**'
|
||
|
do while (index(input2(1),'*End Assembly')==0)
|
||
|
read(11,'(a)')input2(2)
|
||
|
write(10,'(a)')input2(1)
|
||
|
input2(1)=input2(2)
|
||
|
enddo
|
||
|
write(10,'(a)')'*End Assembly'
|
||
|
! ******************************************************************
|
||
|
do icrys=1,ncrys
|
||
|
write(10,'(a)') '**'
|
||
|
write(10,'(a,i5)')'*MATERIAL, NAME=MAT',icrys
|
||
|
write(10,'(a)')'**'
|
||
|
write(10,'(a)')'*USER MATERIAL, CONSTANTS=160, UNSYMM'
|
||
|
write(10,'(f16.4,a,f6.4,a)')E,',',mu,','
|
||
|
write(10,'(f6.4,a)')0.,','
|
||
|
write(10,'(f6.4,a)')0.,','
|
||
|
write(10,'(f6.4,a)')1.,','
|
||
|
write(10,'(6(f6.4,a))')1.,',',1.,',',1.,',',1.,',',1.,',',0.,','
|
||
|
write(10,'(f6.4,a)')0.,','
|
||
|
write(10,'(f6.4,a)')0.,','
|
||
|
call random_number(rand1)
|
||
|
rand1=(rand1-0.5)*2.
|
||
|
call random_number(rand2)
|
||
|
rand2=(rand2-0.5)*2.
|
||
|
call random_number(rand3)
|
||
|
rand3=(rand3-0.5)*2.
|
||
|
call random_number(rand4)
|
||
|
rand4=(rand4-0.5)*2.
|
||
|
call random_number(rand5)
|
||
|
rand5=(rand5-0.5)*2.
|
||
|
write(10,'(3(f12.6,a),3(f6.4,a))')rand1,',',rand2,',',rand3,',',1.,',',0.,',',0.
|
||
|
rand6 = (rand1*rand4+rand2*rand5)/(-rand3)
|
||
|
write(10,'(3(f12.6,a),3(f6.4,a))')rand4,',',rand5,',',rand6,',',0.,',',0.,',',1.
|
||
|
write(10,'(2(f12.4,a))') n,',',adot,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(3(f12.4,a))') h0,',',ginf,',',g0,','
|
||
|
write(10,'(2(f6.4,a))') 1.,',',0.,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(f6.4,a)') 0.,','
|
||
|
write(10,'(2(f6.4,a))') 0.5,',',1.,','
|
||
|
write(10,'(2(f12.4,a))') 1.,',',10.,',1.e-5,'
|
||
|
write(10,'(a)') '*Depvar'
|
||
|
write(10,'(a)') '113'
|
||
|
write(10,'(a)') '**'
|
||
|
enddo
|
||
|
ierr=0
|
||
|
do while (ierr==0)
|
||
|
read(11,'(a)',iostat=ierr)input2(1)
|
||
|
if(ierr==0)write(10,'(a)')input2(1)
|
||
|
enddo
|
||
|
close(unit=10)
|
||
|
close(unit=11)
|
||
|
enddo
|
||
|
end program matgen
|