Skip to content
Snippets Groups Projects
Commit b5d796ce authored by Laura Nervo's avatar Laura Nervo
Browse files

gtCrystCalculateSymmetryOperators / gtCrystCalculateReflections : added...

gtCrystCalculateSymmetryOperators / gtCrystCalculateReflections : added argument 'phaseid' to simplify use of the function. It will read spacegroup and crystal system from parameters.cryst(phaseid).

Signed-off-by: default avatarLaura Nervo <laura.nervo@esrf.fr>
parent 2cb6af69
No related branches found
No related tags found
No related merge requests found
function list = gtCrystCalculateReflections(latticepar, mintheta, maxtheta, sg, filename) function list = gtCrystCalculateReflections(phaseid, latticepar, sg, mintheta, maxtheta, filename)
% GTCRYSTCALCULATEREFLECTIONS Calculate the reflections list using python % GTCRYSTCALCULATEREFLECTIONS Calculate the reflections list using python
% from xfab library in fable % from xfab library in fable
% list = gtCrystCalculateReflections(latticepar, mintheta, maxtheta, sg, filename) % list = gtCrystCalculateReflections(phaseid, [latticepar], [sg], [mintheta], [maxtheta], filename)
% -------------------------------------------------------------------------------- % -------------------------------------------------------------------------------------------------
% %
% INPUT: % INPUT:
% phaseid = phase number {1}
% latticepar = lattice parameters <double 1x6> % latticepar = lattice parameters <double 1x6>
% sg = spacegroup number <int>
% mintheta = minimum sin(theta)/lambda allowed <double> {0.0001} % mintheta = minimum sin(theta)/lambda allowed <double> {0.0001}
% maxtheta = maximum sin(theta)/lambda allowed <double> % maxtheta = maximum sin(theta)/lambda allowed <double>
% sg = spacegroup number <int>
% filename = filename for reflections list <string> {'reflections_*.txt'} % filename = filename for reflections list <string> {'reflections_*.txt'}
% %
% OUTPUT: % OUTPUT:
...@@ -27,35 +28,37 @@ function list = gtCrystCalculateReflections(latticepar, mintheta, maxtheta, sg, ...@@ -27,35 +28,37 @@ function list = gtCrystCalculateReflections(latticepar, mintheta, maxtheta, sg,
% %
% Version 001 03-12-2012 by LNervo % Version 001 03-12-2012 by LNervo
if ~exist('phaseid','var') || isempty(phaseid)
phaseid = 1;
end
parameters = [];
load('parameters.mat');
energy = parameters.acq.energy;
if ~exist('latticepar','var') || isempty(latticepar) if ~exist('latticepar','var') || isempty(latticepar)
parameters = []; latticepar = parameters.cryst(phaseid).latticepar;
load parameters; end
latticepar = parameters.cryst(1).latticepar; if ~exist('sg','var') || isempty(sg)
sg = parameters.cryst(phaseid).spacegroup;
end end
if ~exist('mintheta','var') || isempty(mintheta) if ~exist('mintheta','var') || isempty(mintheta)
mintheta = 0.0001; tmp = parameters.labgeo.detanglemin/2;
mintheta = sind(tmp)/gtConvEnergyToWavelength(energy);
end end
if ~exist('maxtheta','var') || isempty(maxtheta) if ~exist('maxtheta','var') || isempty(maxtheta)
load parameters; tmp = parameters.labgeo.detanglemax/2;
tmp = parameters.labgeo.detanglemax; maxtheta = sind(tmp)/gtConvEnergyToWavelength(energy);
maxtheta = sind(tmp)/gtConvEnergyToWavelength(parameters.acq.energy);
clear tmp; clear tmp;
end end
if ~exist('sg','var') || isempty(sg)
load parameters;
sg = parameters.cryst(1).spacegroup;
end
if ~exist('filename','var') || isempty(filename) if ~exist('filename','var') || isempty(filename)
filename = 'reflections_'; filename = 'reflections_';
end end
parameters = [];
load('parameters.mat');
energy = parameters.acq.energy;
latticepar_str = sprintf('%f ',latticepar); latticepar_str = sprintf('%f ',latticepar);
latticepar_str = strtrim(latticepar_st); latticepar_str = strtrim(latticepar_str);
% python script to be used % python script to be used
global GT_MATLAB_HOME; global GT_MATLAB_HOME;
script_file = fullfile(GT_MATLAB_HOME, 'zUtil_Python', 'reflections_list.py'); script_file = fullfile(GT_MATLAB_HOME, 'zUtil_Python', 'reflections_list.py');
...@@ -108,10 +111,13 @@ end ...@@ -108,10 +111,13 @@ end
list.latticepar = latticepar; list.latticepar = latticepar;
list.spacegroup = sg; list.spacegroup = sg;
list.energy = energy; list.energy = energy;
list.hkl = hkl'; if strcmp(parameters.cryst(phaseid).crystal_system, 'hexagonal')
list.hklsp = hklsp'; list.hkl = hkil';
list.hkil = hkil'; list.hklsp = hkilsp';
list.hkilsp = hkilsp'; else
list.hkl = hkl';
list.hklsp = hklsp';
end
list.theta = theta'; list.theta = theta';
list.thetasp = thetasp'; list.thetasp = thetasp';
list.thetatype = thetatype'; list.thetatype = thetatype';
......
function [symm, opsym] = gtCrystCalculateSymmetryOperators(sg, crystal_system) function [symm, opsym] = gtCrystCalculateSymmetryOperators(phaseid, sg, crystal_system)
% GTCRYSTCALCULATEREFLECTIONS Calculate the symmetry operators list using python % GTCRYSTCALCULATEREFLECTIONS Calculate the symmetry operators list using python
% from xfab library in fable (sg.py) % from xfab library in fable (sg.py)
% [symm, opsym] = gtCrystCalculateSymmetryOperators(sg, crystal_system) % [symm, opsym] = gtCrystCalculateSymmetryOperators(phaseid, [sg], [crystal_system])
% --------------------------------------------------------------------- % ----------------------------------------------------------------------------------
% If spacegroup and crystal_system are not provided, they are read from
% parameters.mat.
% %
% INPUT: % INPUT:
% sg = spacegroup number <int> % phaseid = <double> phase number {1}
% crystal_system = crystal system <string> % sg = <double> spacegroup number
% crystal_system = <string> crystal system
% %
% OUTPUT: % OUTPUT:
% symm = <struct 1xN> contains : % symm = <struct 1xN> contains :
...@@ -15,19 +18,24 @@ function [symm, opsym] = gtCrystCalculateSymmetryOperators(sg, crystal_system) ...@@ -15,19 +18,24 @@ function [symm, opsym] = gtCrystCalculateSymmetryOperators(sg, crystal_system)
% indistinguishable lattice permutations <double 3x3> % indistinguishable lattice permutations <double 3x3>
% opsym = <struct 1xM> contains : % opsym = <struct 1xM> contains :
% .sg_rot = rotations (complete list using symmetry operators) <double 3x3> % .sg_rot = rotations (complete list using symmetry operators) <double 3x3>
% .sg_trans = transition values from symmetry operators <double 1x3> % .sg_trans = translation values from symmetry operators <double 1x3>
% %
% %
% Version 001 10-12-2012 by LNervo % Version 001 10-12-2012 by LNervo
if ~exist('phaseid','var') || isempty(phaseid)
phaseid = 1;
end
if ~exist('sg','var') || isempty(sg) if ~exist('sg','var') || isempty(sg)
load parameters; parameters = [];
sg = parameters.cryst(1).spacegroup; load('parameters.mat');
end sg = parameters.cryst(phaseid).spacegroup;
if ~exist('crystal_system','var') || isempty(crystal_system)
load parameters; if ~exist('crystal_system','var') || isempty(crystal_system)
crystal_system = parameters.cryst(1).crystal_system; crystal_system = parameters.cryst(1).crystal_system;
end
end end
global GT_MATLAB_HOME; global GT_MATLAB_HOME;
......
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