Skip to content
Snippets Groups Projects
Commit 34255af6 authored by Zheheng Liu's avatar Zheheng Liu
Browse files

some change for TRD recognition to accelerate the computations


Signed-off-by: default avatarZheheng Liu <zheheng.liu@esrf.fr>
parent 5914c74b
No related branches found
No related tags found
No related merge requests found
......@@ -229,9 +229,17 @@ classdef GtTwinRelatedDomainRecognition < handle
% Find the twins among the neighboring grains
% calculate the disorientations between the current
% grain and its neighboring grains.
[mis_ang, mis_ax] = gtDisorientation(...
Quaternions(:, gr_id_iter) * ones(1, nof_neighboring_grains), ...
Quaternions(:, Neighboring_Grain_IDs), symm, 'input', 'quat', 'constrain_to_sst', false, 'sort', 'descend', 'mode', 'passive');
if strcmpi(conf.mode, 'active')
[mis_ang, mis_ax] = gtDisorientation(...
Quaternions(:, gr_id_iter) * ones(1, nof_neighboring_grains), ...
Quaternions(:, Neighboring_Grain_IDs), symm, 'input', 'quat', 'constrain_to_sst', false, 'mode', conf.mode);
mis_ax = mis_ax * gtMathsQuat2OriMat(Quaternions(:, gr_id_iter))';
mis_ax = sort(abs(mis_ax), 2, 'descend');
else
[mis_ang, mis_ax] = gtDisorientation(...
Quaternions(:, gr_id_iter) * ones(1, nof_neighboring_grains), ...
Quaternions(:, Neighboring_Grain_IDs), symm, 'input', 'quat', 'constrain_to_sst', false, 'mode', conf.mode, 'sort', 'descend');
end
% transform the rotation angles and axes of disorientations into quaternions
mis_quat = [cosd(mis_ang(:)/2), bsxfun(@times, sind(mis_ang(:)/2), mis_ax)]';
[tmp_dup_indxs.twins, tmp_dup_indxs.neighbors] = self.sfDuplicateIndices(size(misorient_sigma, 2), nof_neighboring_grains);
......
......@@ -103,7 +103,7 @@ function [sigma3n_twin_variants, twin_variants_label, disorient_and_indcs_struct
nof_TwinVar = size(sigma3n_twin_variants, 2);
[dis_ang_TwinVar, dis_axis_TwinVar] = gtDisorientation(...
[ones(1, nof_TwinVar); zeros(3, nof_TwinVar)], ...
sigma3n_twin_variants, symm, 'input', 'quat', 'constrain_to_sst', 'true', 'sort', 'descend', 'mode', 'passive');
sigma3n_twin_variants, symm, 'input', 'quat', 'constrain_to_sst', 'true', 'sort', 'descend', 'mode', 'active');
disorient_quat = [cosd(dis_ang_TwinVar(:)'/2); bsxfun(@times, sind(dis_ang_TwinVar(:)'/2), dis_axis_TwinVar')];
tol = 1e-2;
indcs_TwinVar = 1:nof_TwinVar;
......@@ -115,7 +115,7 @@ function [sigma3n_twin_variants, twin_variants_label, disorient_and_indcs_struct
if numel(indcs_TwinVar) > 1
dev_ori = gtDisorientation(...
disorient_quat(:, indcs_TwinVar(1)) * ones(1, numel(indcs_TwinVar) - 1), ...
disorient_quat(:, indcs_TwinVar(2:end)), symm, 'input', 'quat');
disorient_quat(:, indcs_TwinVar(2:end)), symm, 'input', 'quat', 'mode', 'active');
tmp_indcs = [true; abs(dev_ori) < tol];
else
tmp_indcs = true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment