Dislocation Density-Dislocation System of hcp structure Ti6AL4V

397 views
Skip to first unread message

Zelda Grey

unread,
Oct 22, 2018, 12:07:02 PM10/22/18
to MTEX
Please be as detailed as possible, explain what you want to do, what kind of data you are using. Attaching simplified code and data is always useful. Click the the button { } to inline code and finally remove these lines before posting :)
Hello,
Iam calculating dislocation density and plotting its map. The sample it T6AL4V and basal plane is dominant in term of slip system and dislocation density. Therefore i begin the calculation with only basal plane but I have a problem with defining dislocation system. Since hcp is not  int he mtex databa (there is no default value for dS = dislocationSystem.hcp(ebsd.CS)) I start from scratch to define it. As I understand
  • 1st: I need to define crystal system
  • 2nd burger vector and normal vector
  • 3rd Slip system
  • 4th dislocation system
Here is the code

CS = crystalSymmetry('6/mmm',[2.920,2.920,4.670],'x||a','mineral','Alpha-Ti64', 'color', 'pink')
b
=Miller(2,-1,-1,0,CS,'uvtw')
n
=Miller(0,1,-1,0,CS,'hkil')
l
=Miller(-2,-1,3,0,CS,'uvtw')
sSBasal
= slipSystem(b,n)
sSBasal
= slipSystem.basal(CS)
dS
= dislocationSystem(sSBasal)

When I runt he code I get around 3.10^14 m^-2 dislocation density and the map looks like at the attachment.
The another slip system tutorial, I need to symmetrise slip system But if I do that, I get a very huge number 5.10^24 m^-2 etc. 
ss=symmetrise(sSBasal)
dS
= dislocationSystem(ss)

The question
1. How can I properly define hcp dislocation system apparently I have a problem with that and it effects my results
2. Why my map is all white. Yellow is indication of higher dislocation density, so after coloring with yellow why it does not color the rest with red or what ever color is necessary. I am forgetting to do something?
3.  Why am I getting very huge number of dislocation density when I symmetrise slip system
Thank you so much in advance. 
Zelda

Here is the whole code if you wanna check that. I follow the dislocation density tutorial of mtex 

%Load file-plot ebsd
f
=fullfile('C:\Users\zgrey\Desktop\Mtex','Ti64.ctf');
ebsd
= loadEBSD(f,'convertEuler2SpatialReferenceFrame');
plotx2east
%% it turn the map rectangle 90degree
plot
(ebsd)
ea
=ebsd('Alpha-Ti64');%% define phases individually otherwise it gives phase list error
eb
=ebsd('beta');
% define the color key
ipfKey
= ipfHSVKey(ea);
ipfKey
.inversePoleFigureDirection = zvector; %%% Produce IPFX IPFY IPFZ with changing xvector etc.
% and plot the orientation data
plot
(ea,ipfKey.orientation2color(ea.orientations),'micronBar','off','figSize','medium')


%Remove all grains with less then 5 pixels and smooth the grain boundaries
% reconstruct grains
[grains,ea.grainId] = calcGrains(ea,'angle',5*degree);
% remove small grains
ea
(grains(grains.grainSize<=5)) = [];
% redo grain reconstruction
[grains,ea.grainId] = calcGrains(ea,'angle',2.5*degree);
% smooth grain boundaries
grains
= smooth(grains,5);
hold on
plot
(grains.boundary,'linewidth',0.1)
hold off


%Data cleaning
% a key the colorizes according to misorientation angle and axis
ipfKey
= axisAngleColorKey(ea);
% set the grain mean orientations as reference orinetations
ipfKey
.oriRef = grains(ea('indexed').grainId).meanOrientation;
% plot the data
plot
(ea,ipfKey.orientation2color(ea('indexed').orientations),'micronBar','off','figSize','medium')
hold on
plot
(grains.boundary,'linewidth',0.1)
hold off


%Denoise Data-SMOOTH the orientation data (It takes a while to run it)
F
= halfQuadraticFilter;
F
.threshold = 1.5*degree;
F
.eps = 1e-2;
F
.alpha = 0.01;
ebsd
= smooth(ea('indexed'),F,'fill',grains);
% plot the denoised data
figure
(2)
ipfKey
.oriRef = grains(ebsd('indexed').grainId).meanOrientation
plot
(ebsd('indexed'),ipfKey.orientation2color(ebsd('indexed').orientations),'micronBar','off','figSize','medium')
hold on
plot
(grains.boundary,'linewidth',0.1)
hold off


%The incomplete curvature tensor-consider only the Ti64(alpha) phase
ebsd
= ebsd('indexed').gridify
% compute the curvature tensor
kappa
= ebsd.curvature
% one can index the curvature tensors in the same way as the EBSD data.
% E.g. the curvature in pixel (2,3) is
kappa
(2,3)
%%%We can access the different components of the curvature tensor with
kappa12
= kappa{1,2};
size
(kappa12)
%Visualize the different components of the curvature tensor
mtexFig
= newMtexFigure('nrows',3,'ncols',3,'figSize','huge');


plot
(ebsd,kappa{1,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{1,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{1,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{2,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{2,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{2,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{3,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{3,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


nextAxis
plot
(ebsd,kappa{3,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off


% unify the color rage  - you may also use setColoRange equal
setColorRange
([-0.005,0.005])
drawNow
(gcm,'figSize','large')


%DISLOCATION SYSTEM
CS
= crystalSymmetry('6/mmm',[2.920,2.920,4.670],'x||a','mineral','Alpha-Ti64', 'color', 'pink')
b
=Miller(2,-1,-1,0,CS,'uvtw')
n
=Miller(0,1,-1,0,CS,'hkil')
l
=Miller(-2,-1,3,0,CS,'uvtw')
sSBasal
= slipSystem(b,n)
sSBasal
= slipSystem.basal(CS)
sSBasalSym
= sSBasal.symmetrise('antipodal')
dS
= dislocationSystem(sSBasal)
%ss=symmetrise(sS)
%dS = dislocationSystem(ss)


%The norm of the BURGER VECTOR
% size of the unit cell
a
= norm(ea.CS.aAxis)
% for edge dislocations in hcp the norm of the burgers vector is sqrt(6)/3 * a


[norm(dS(1).b), sqrt(6)/3 * a]
% for screw dislocations in hcP the norm of the burgers vector is sqrt(6)/3 * a?? is it same??????????????
[norm(dS(end).b), sqrt(6)/3 * a]
%%Note that the energy of each dislocation system can be stored in the property u
% energy of the edge dislocations
dS
(dS.isEdge).u = 1;
% energy of the screw dislocations
dS
(dS.isScrew).u = 1 - 0.3;
% Question to everbody: what is the best way to set the enegry? I found
% different formula
%
% E = 1 - poisson ratio
% E = c * G * |b|^2,  - G - Schubmodul / Shear Modulus Energy per (unit length)^2
dS
(1).tensor
dSRot
= ebsd.orientations * dS
ebsd
[rho,factor] = fitDislocationSystems(kappa,dSRot); %% It fits the data takes a while
% the restored dislocation density tensors
alpha
= sum(dSRot.tensor .* rho,2);
% we have to set the unit manualy since it is not stored in rho
alpha
.opt.unit = '1/um';
% the restored dislocation density tensor for pixel 2
alpha
(2)
% the dislocation density dervied from the curvature in pixel 2
kappa
(2).dislocationDensity
kappa
= alpha.curvature
mtexFig
= newMtexFigure('nrows',3,'ncols',3,'figSize','huge');
plot
(ebsd,kappa{1,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',0.1); hold off
nextAxis
plot
(ebsd,kappa{1,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{1,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{2,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{2,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{2,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{3,1},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{3,2},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
nextAxis
plot
(ebsd,kappa{3,3},'micronBar','off')
hold on
; plot(grains.boundary,'linewidth',2); hold off
drawNow
(gcm,'figSize','large')
setColorRange
([-0.005,0.005])
factor
close all
plot
(ebsd,factor*sum(abs(rho .* dSRot.u),2),'micronbar','off')
mtexColorMap
('hot')
mtexColorbar
set(gca,'ColorScale','log'); % this works only starting with Matlab 2018a
set(gca,'CLim',[1e11 5e14]);
hold on
plot
(grains.boundary,'linewidth',0.1)
hold off
gnd
= factor*sum(abs(rho .* dSRot.u),2)
meanGND
= nanmean(gnd)


DsilcoationDensityMap.JPG

ruediger Kilian

unread,
Oct 23, 2018, 10:36:58 AM10/23/18
to mtex...@googlegroups.com
Hi Zelda,

> 1. How can I properly define hcp dislocation system apparently I have a problem with that and it effects my results

So for example, this would be:

CS = crystalSymmetry('6/mmm',[2.920,2.920,4.670],'x||a','mineral','Alpha-Ti64', 'color', 'pink')
b=Miller(2,-1,-1,0,CS,'uvtw')
n=Miller(0,0,0,1,CS)
sSBasal= symmetrise(slipSystem(b,n))
dS = dislocationSystem(sSBasal)

Note that the energy is rather fantasy.

> 2. Why my map is all white. Yellow is indication of higher dislocation density, so after coloring with yellow why it does not color the rest with red or what ever color is necessary. I am forgetting to do something?

Probably because you have only one edge and one screw dislocation defined, hence it might take quite "a lot" of those to fit an arbitrary curvature.

> 3. Why am I getting very huge number of dislocation density when I symmetrise slip system
> Thank you so much in advance.
> Zelda

Is it realistic to assume to have only slip in the basal plane?

Cheers,
Rüdiger
Reply all
Reply to author
Forward
0 new messages