Newer
Older
Laura Nervo
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function [perm, rot, sg_rot, sg_trans] = gtCrystCalculateSymmetryOperators(sg, crystal_system)
% GTCRYSTCALCULATEREFLECTIONS Calculate the symmetry operators list using python
% from xfab library in fable (sg.py)
% [perm, rot, sg_rot, sg_trans] = gtCrystCalculateSymmetryOperators(sg, crystal_system)
% -------------------------------------------------------------------------------------
%
% INPUT:
% sg = spacegroup number <int>
% crystal_system = crystal system <string>
%
% OUTPUT:
% perm = set of indistinguishable lattice permutations
% rot = set of unitary rotation matrices corresponding to the indistinguishable lattice permutations
% sg_rot = rotations (complete list using symmetry operators)
% sg_trans = transition values from symmetry operators
%
%
% Version 001 10-12-2012 by LNervo
if ~exist('sg','var') || isempty(sg)
load parameters;
sg = parameters.cryst(1).spacegroup;
end
if ~exist('crystal_system','var') || isempty(crystal_system)
load parameters;
crystal_system = parameters.cryst(1).crystal_system;
end
script_file = fullfile('/users/',getenv('USER'),'matlabDCT','zUtil_Python','symmetry_operators_list.py');
cmd = sprintf('python26 %s %d',script_file,sg);
[~,msg]=unix(cmd);
disp(msg)
% read produced files
perm = gtReadTextFile(['perm_' crystal_system '.txt'],'%f %f %f',' ','#',[3 3]);
rotN = gtReadTextFile(['rot_' crystal_system '.txt'],'%f %f %f',' ','#',[3 3]);
sg_rotN = gtReadTextFile(['sg_rot_' crystal_system '.txt'],'%f %f %f',' ','#',[3 3]);
sg_transN = gtReadTextFile(['sg_trans_' crystal_system '.txt'],'%f %f %f',' ','#',[1 3]);
if nargout > 1
rot = rotN;
if nargout > 2
sg_rot = sg_rotN;
if nargout > 3
sg_trans = sg_transN;
end
end
end
end % end of function