HW1 Script 2

From EVOCD
Jump to: navigation, search

Script 2

Potential_Space_Evaluatin.m

%% Coarse potential space evaluation

clear all
fID_Progress = fopen('Progress_Script', 'a');
fprintf(fID_Progress, 'Potential_Space_Evaluation_Begin\n');
tic
diary on
%Expermental data
Ec = 3.43;
%DFT data - Data from your calculations of E-V curves
a0 = 4.05;
B = 82/160.21765;
V0 = a0^3/4;

%calculate alpha
alpha = sqrt(9*B*V0/Ec);

%Modify goal values according to your groups DFT results
goal(1) = 3.43;    % Cohesive energy
goal(2) = 4.05;    % Lattice parameter
goal(3) = 16.61;  % Volume
goal(4) = 107;    % c11
goal(5) = 61;    % c12
goal(6) = 28;    % c44
goal(7) = 82;       % Bulk modulus
goal(8) = 890;      % Surface energy of 100
goal(9) = 960;      % Surface energy of 110
goal(10) = 780;     % Surface energy of 111
goal(11) = 133;     % Intrinsic generalized stacking fault energy
goal(12) = 133;     % Extrinsic generalized stacking fault energy
goal(13) = 0.5;     % Vacancy formation energy
goal(14) = 2.8;     % Octahedral interstitial energy
goal(15) = 3.68;       % Tetrahedral interstitial energy

save('goal.mat', 'goal'); %Saves the goal values so they can be used later

%Specify initial potential and bounds for parameters
%X(1:12)    = [alpha,    asub,  b0 ,  b1 ,  b2 , b3  , t0 ,   t1 ,  t2  , t3  , cmax, cmin]
default     = [alpha,    1.07, 2.21, 2.20,  6.0, 2.2 , 1.0, -1.78, -2.21, 8.01,  2.8,  2.0];
low         = [alpha*.8 , 0.8,  0.0,  0.0,  0.0, 0.0 , -10,  -10 ,   -10,  -10,  2.0,  0.0];
high        = [alpha*1.2, 1.2,   10,   10,   10,  10 ,  10,   10 ,   110,   10,  2.8,  2.0];

%Define no. of points
N = 10;
%Calculate interval
incr = (high-low)/N;

%Construct the potential database
clear X
count = 0;
for i = 1:length(low)
    for j = low(i):incr(i):high(i)
        count = count + 1;
        X(count,:) = default;
        X(count,i) = j;
    end
end
    

% Specify initial starting parameters

clear parameter

parameter.elt       = 'Al';
parameter.lat       = 'fcc';
parameter.z         = 12.0;
parameter.ielement  = 13.0;
parameter.atwt      = 26.9815;
parameter.rozero    = 1.0;
parameter.ibar      = 0;
parameter.rcut      = 5.0;
parameter.alat      = a0;
parameter.esub      = Ec;

parameter.alpha     = default(1);
parameter.asub      = default(2);
parameter.b0        = default(3);
parameter.b1        = default(4);
parameter.b2        = default(5);
parameter.b3        = default(6);
parameter.t0        = default(7);
parameter.t1        = default(8);
parameter.t2        = default(9);
parameter.t3        = default(10);
parameter.cmax      = default(11);
parameter.cmin      = default(12);

save('parameter.mat','parameter');

%Write out initial potential files
init_filename_lib = 'library.meam.init';
init_filename_alloy = 'Al.meam.init';

write_lmpmeam(init_filename_lib,init_filename_alloy, parameter);
%% Run Lammps for each potential and obtain responses

%Intialize database to store responses
N_res = 15; % No. of responses per calculation (No. of target properties)
Y = zeros([size(X,1),N_res]);

%These two file names must be same with the pair_coeff command in the bb_script.py
filename_lib = 'library.meam';
filename_alloy = 'Al.meam';

fprintf(fID_Progress, '\t%f\n', toc);
fprintf(fID_Progress, 'Begin_Loop\n');
'1' 
toc
for i = 1:2

    p = parameter;

    % Make changes
    
    p.alpha     = X(i,1);
    p.asub      = X(i,2);
    p.b0        = X(i,3);
    p.b1        = X(i,4);
    p.b2        = X(i,5);
    p.b3        = X(i,6);
    p.t0        = X(i,7);
    p.t1        = X(i,8);
    p.t2        = X(i,9);
    p.t3        = X(i,10);
    p.cmax      = X(i,11);
    p.cmin      = X(i,12);

    write_lmpmeam(filename_lib,filename_alloy,parameter);
'2'
toc        
    system('./bb_script.py');
'3'
toc
    p_Ec        = find_energy('responses.txt', 'E_coh');
    p_a0        = find_energy('responses.txt', 'a_0');
    p_V0        = find_energy('responses.txt', 'V_0');
    p_c11       = find_energy('responses.txt', 'C11');
    p_c12       = find_energy('responses.txt', 'C12');    
    p_c44       = find_energy('responses.txt', 'C44');
    p_B         = find_energy('responses.txt', 'B');
    p_E_100     = find_energy('responses.txt', 'E_100');
    p_E_110     = find_energy('responses.txt', 'E_110');
    p_E_111     = find_energy('responses.txt', 'E_111');
    p_GSFE_I    = find_energy('responses.txt', 'GSFE_I');
    p_GSFE_E    = find_energy('responses.txt', 'GSFE_E');
    p_Evac      = find_energy('responses.txt', 'E_vac');
    p_Eoct      = find_energy('responses.txt', 'E_Oct');
    p_Etet      = find_energy('responses.txt', 'E_Tetra');
'4'
toc
    Y(i,:) = [p_Ec, p_a0, p_V0, p_c11, p_c12, p_c44, p_B, p_E_100, p_E_110,... 
              p_E_111, p_GSFE_I, p_GSFE_E, p_Evac, p_Eoct, p_Etet];
    
    fprintf(fID_Progress, '%d\t%f\n', i, toc);
    
end
'5'
toc
save('Al_coarse_pot_eval_data.mat','X','Y','default','low','high','incr')

%% Generate files for plots

clear all
load ('Al_coarse_pot_eval_data.mat')
N = 10; %No. of points defined at the beginning
fID_Progress = fopen('Progress_Script', 'a');
%Goal values must be assigned at the beginning of the file
load('goal.mat'); %Load the saved goal values

pname = {'alpha', 'a_sub', 'b0', 'b1', 'b2', 'b3', 't0', 't1', 't2', ...
        't3', 'cmax', 'cmin'};
    

index = 1;
for i = 1:length(low)
    fname = strcat(pname(i), '_para.txt');
    fid = fopen(cell2mat(fname),'wt');
    count = 1;
    while count <= (N+1)
        fprintf(fid,'%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n',X(index,i), ...
            Y(index,1)-goal(1),Y(index,2)-goal(2),Y(index,3)-goal(3),Y(index,4)-goal(4),Y(index,5)-goal(5),...
            Y(index,6)-goal(6),Y(index,7)-goal(8),Y(index,9)-goal(9),Y(index,10)-goal(10),Y(index,11)-goal(11),...
            Y(index,12)-goal(12),Y(index,13)-goal(13),Y(index,14)-goal(14),Y(index,15)-goal(15));
        
        count = count+1;
        index = index + 1;  
    end
    fclose(fid);
    
end

fprintf(fID_Progress, '\t%f\n', toc);
fprintf(fID_Progress, 'Potential_Space_Evaluation_End\n');

fclose('all');

Personal tools
Namespaces

Variants
Actions
home
Materials
Material Models
Design
Resources
Projects
Education
Toolbox