Pillar compression, strain control
2D strain controlled pillar compression example can be downloaded from:https://drive.google.com/file/d/0B0bdwsoc2sM-VnI4ZzFOYmJkUjQ/view?usp=sharing
The program needs to be compiled by fortran. (either intel fortran or gfortran)
If using gfortran, please comment line 22 and use line 24 in Makefile in the directory of
2D-pillar-compression-straincontrol/
In order to compile the program, following these steps:
1, make clean. (remove compiled files)
2, ifort -c module.f90 (compile modules that are used, if using gfortran, gfortran -c module.f90)
3, make ssasp (compile the main program named pillar-compression)
4, make gendisl-bulk (compile generator of dislocation sources/obstacles, the complied exe file is named gendisl)
Copy gendisl and pillar-compression to the folder called DATA where an input file named in.1234 is there.
0 0. /Xmin, Ymin
sinshape
2 /parameters
2.0
1.98
16 50 /icase,nprnt
0 1 0.0 0.0 12 0.1 0.2 /h1,h2,amp,amp_r,w_l,Cinit,shift
1 /NInd
0.25 /w
1 /IML -----------------first IND
r
80 /nlx
320 /nly
-1.0d4 0.d0 /Udot,Uini
7.0d-2 0.33 0 /e,nu(xtal1),alfacg(xtal1)
7.0d-2 0.33 0 /e,nu(xtal2),alfacg(xtal2)
0.25D-3 1.0d-16 1.5d-3 2.0d7 /blen,B,xLe,vcutoff
0.5d-4 1.0d-8 3.0d-4 0.1d-4 /tau_FR,tnuc,tau_obs,sdev_FR
disl.in
5d-10 16.d-2 7.5d-2 /tincr,epsx,epss
1 10000 1.0d4 1 1000 1 /incr1,incr2,Tdot,nrppd,nrdsl,nsub
Important information related to pillar is in red.
1 is the height of the pillar
0.25 is the width of the pillar.
-1.0d4 is the loading velocity, it corresponds to strain rate 1d4.
0.5d-4 is the average source strength, 3.0d-4 is the average obstacle strength, 0.1d-4 (20% of 0.5d-4)is the sdv of source strength distribution. By default, the program has 20% SDV for obstacle strength distribution.
10000 is the total simulation increment, 1000 is the frequency of writing restart files.
Before doing simulation, we need to generate initial dislocation source/obstacles.
run program by command: ./gendisl <a.in
a.in contains: (only number in color are relevant and explained)
in.1234
0.25
0.125
1
1
2 56
3
0
60
10
0
15
8
gendisl needs to know the input file (in.1234), the model geometry (width 0.25, center position 0.125, model heigth 1, model top coordinate 1)
2 56 are two given random numbers, different numbers gives will generate different initial structures.
10 is slip spacing, means 10b where b is the magnitude of Burgers vector.
15 is the total number of dislocation sources, calculated by w*h*rho, in this example, rho is 60, so the total number of sources is 0.25*1*60=15
8 means obstacle density is 8 times of source density.
After running ./gendisl<a.in, you will get disl.in file.
then run the main program ./pillar-compression <in.1234>out.log
The main result file generated by the program is the PPD file.
For this example, in PPD file, columns that are relevant are:
1 simulation total time, unit is second
2 compression displacement, unit is micron meter
3 horizontal total force, unit is newton
4 vertical total force, unit is newton
7 total number of mobile dislocations
8 total number of dislocations.
plotting stress-strain curve needs 2nd and 4th column.
The unit of length in the program is um, the force has unit of N. 2D plane strain model has thickness 1um.
strain (absolute value) is calculated by -(displacement/h), which is -2nd column/h
Stress has unit N/um^2 which is 1d^12Pa=1e6 MPa. So stress is calculated -4th column/w*1e6 with unit of MPa.
Dislocation density is calculated as 8th column/w/h, the unit is 1/um^2
After running the program, you should be able to get following plots (stress-strain curves, and dislocation density v.s. strain):
The data file from the test run Hengxu did and python script (pillar-script.py) for generating above two figures are the folder DATA-example. Running pythong script needs PPD file, and by command
python pillar-script.py 0.25, where 0.25 is the input (pillar width).
Pillar unload reload example.
The program can be download from:https://drive.google.com/file/d/0B368IX1wxUuLUWlOb0ZpdUQ1WDQ/view?usp=sharing
To compile the program, following: (example with ifort, gfortran also works)
rm *.o
rm *. mod
ifort -c module.f90
make ssasp
then you will get executable named unload-reload.
Unload-reload is based on a pillar that we have compressed. In the download file, in folder named loaded sample, we have loaded a pillar of width w=1um to 10% strain. Stress strain curve is like this:
For unload reload, the only difference compared to pillar compression example above is the last line of the input file.
In the original pillar compression simulation, incr1=1, incr2=20000.
1 20000 1.0d4 1 200 1 /incr1,incr2,Tdot,nrppd,nrdsl,nsub
The simulation starts from increment 1 to increment 20000.
so for unload-reload simulation, the input file should be changed to
20001 2000 1.0d4 1 200 1 /incr1,incr2,Tdot,nrppd,nrdsl,nsub
20001 means, we start from loaded sample, continue to run. 2000 means, when we unload to zero stress state, from there, we run 2000 increments which corresponds to 1% strain.
The stress strain curve for unload-reload looks like:
https://drive.google.com/file/d/0B368IX1wxUuLdnNXOUYxay1FRWM/view?usp=sharing
The only difference with original pillar compression problem is in the input file:
5d-10 16.d-2 7.5d-2 /tincr,epsx,epss
changes to be
5d-10 16.d-2 7.5d-2 1e-7 /tincr,epsx,epss, tage
The last parameter is the obstacle aging time, here we use 100ns.
The obstacle aging means obstacle strength changes with time once there is a dislocation pinned at obstacle. The strength follows:
tau_aging=tau_ini+0.5tau_ini*(1-e^(-pin_time/tage))
Difference between no aging and aging (with aging time 100ns) are shown here (example with pillar size w=0.25um):
1 20000 1.0d4 1 200 1 /incr1,incr2,Tdot,nrppd,nrdsl,nsub
The simulation starts from increment 1 to increment 20000.
so for unload-reload simulation, the input file should be changed to
20001 2000 1.0d4 1 200 1 /incr1,incr2,Tdot,nrppd,nrdsl,nsub
20001 means, we start from loaded sample, continue to run. 2000 means, when we unload to zero stress state, from there, we run 2000 increments which corresponds to 1% strain.
The stress strain curve for unload-reload looks like:
Pillar compression problem with obstacle aging.
The problem can be found here:https://drive.google.com/file/d/0B368IX1wxUuLdnNXOUYxay1FRWM/view?usp=sharing
The only difference with original pillar compression problem is in the input file:
5d-10 16.d-2 7.5d-2 /tincr,epsx,epss
changes to be
5d-10 16.d-2 7.5d-2 1e-7 /tincr,epsx,epss, tage
The last parameter is the obstacle aging time, here we use 100ns.
The obstacle aging means obstacle strength changes with time once there is a dislocation pinned at obstacle. The strength follows:
tau_aging=tau_ini+0.5tau_ini*(1-e^(-pin_time/tage))
Difference between no aging and aging (with aging time 100ns) are shown here (example with pillar size w=0.25um):
Stress control pillar compression.
Program can be downloaded fromhttps://drive.google.com/file/d/0B368IX1wxUuLaVFCZ0hMRVlMTWs/view?usp=sharing
Input is exactly the same with strain control pillar compression.
The stress rate is calculated by E*strain rate.
strain rate is compression velocity/sample height/
An example of w=0.5um, stress control compression is shown as:
No comments:
Post a Comment