From ffd4fb7977268ece97588eaf370fd38d708c6bed Mon Sep 17 00:00:00 2001 From: Thomas Hiller Date: Fri, 15 May 2020 19:33:10 +0200 Subject: [PATCH] initial commit --- .gitignore | 1 + BLOCHUS/BLOCHUS.m | 95 + BLOCHUS/BLOCHUS_createGUI.m | 177 + BLOCHUS/BLOCHUS_createGridPlots.m | 190 + BLOCHUS/BLOCHUS_createMenus.m | 114 + BLOCHUS/BLOCHUS_createPanelBasic.m | 246 ++ BLOCHUS/BLOCHUS_createPanelControl.m | 90 + BLOCHUS/BLOCHUS_createPanelPrePol.m | 291 ++ BLOCHUS/BLOCHUS_createPanelPulse.m | 455 +++ BLOCHUS/BLOCHUS_createStatusbar.m | 104 + BLOCHUS/BLOCHUS_loadDefaults.m | 196 + BLOCHUS/BLOCHUS_setPositionOnScreen.m | 82 + LICENSE | 674 ++++ README.md | 68 + callbacks/checkbox/onCheckPrePolPulse.m | 295 ++ callbacks/checkbox/onCheckPulseQ.m | 84 + callbacks/checkbox/onCheckRDP.m | 78 + callbacks/edits/onEditValue.m | 419 ++ callbacks/menus/onMenuExport.m | 100 + callbacks/menus/onMenuHelp.m | 146 + callbacks/menus/onMenuImport.m | 164 + callbacks/menus/onMenuRestartQuit.m | 71 + callbacks/menus/onMenuViewFigure.m | 194 + callbacks/menus/onMenuViewShow.m | 98 + callbacks/popup/onPopupNucleus.m | 128 + callbacks/popup/onPopupPrePolRamp.m | 223 ++ callbacks/popup/onPopupPulseAxis.m | 91 + callbacks/popup/onPopupPulseDFmode.m | 114 + callbacks/popup/onPopupPulseImode.m | 116 + callbacks/popup/onPopupPulsePolarization.m | 89 + callbacks/popup/onPopupPulseType.m | 258 ++ callbacks/push/onPushAnimate.m | 264 ++ callbacks/push/onPushAxView.m | 91 + callbacks/push/onPushGrid.m | 66 + callbacks/push/onPushRun.m | 611 +++ doc/blochus/BLOCHUS/BLOCHUS.html | 170 + doc/blochus/BLOCHUS/BLOCHUS_createGUI.html | 249 ++ .../BLOCHUS/BLOCHUS_createGridPlots.html | 264 ++ doc/blochus/BLOCHUS/BLOCHUS_createMenus.html | 186 + .../BLOCHUS/BLOCHUS_createPanelBasic.html | 321 ++ .../BLOCHUS/BLOCHUS_createPanelControl.html | 164 + .../BLOCHUS/BLOCHUS_createPanelPrePol.html | 366 ++ .../BLOCHUS/BLOCHUS_createPanelPulse.html | 530 +++ .../BLOCHUS/BLOCHUS_createStatusbar.html | 178 + doc/blochus/BLOCHUS/BLOCHUS_loadDefaults.html | 270 ++ .../BLOCHUS/BLOCHUS_setPositionOnScreen.html | 154 + doc/blochus/BLOCHUS/menu.html | 29 + doc/blochus/callbacks/checkbox/menu.html | 29 + .../checkbox/onCheckPrePolPulse.html | 369 ++ .../callbacks/checkbox/onCheckPulseQ.html | 156 + .../callbacks/checkbox/onCheckRDP.html | 151 + doc/blochus/callbacks/edits/menu.html | 29 + doc/blochus/callbacks/edits/onEditValue.html | 499 +++ doc/blochus/callbacks/menus/menu.html | 29 + doc/blochus/callbacks/menus/onMenuExport.html | 173 + doc/blochus/callbacks/menus/onMenuHelp.html | 218 ++ doc/blochus/callbacks/menus/onMenuImport.html | 237 ++ .../callbacks/menus/onMenuRestartQuit.html | 143 + .../callbacks/menus/onMenuViewFigure.html | 266 ++ .../callbacks/menus/onMenuViewShow.html | 171 + doc/blochus/callbacks/popup/menu.html | 29 + .../callbacks/popup/onPopupNucleus.html | 202 + .../callbacks/popup/onPopupPrePolRamp.html | 296 ++ .../callbacks/popup/onPopupPulseAxis.html | 164 + .../callbacks/popup/onPopupPulseDFmode.html | 187 + .../callbacks/popup/onPopupPulseImode.html | 189 + .../popup/onPopupPulsePolarization.html | 162 + .../callbacks/popup/onPopupPulseType.html | 331 ++ doc/blochus/callbacks/push/menu.html | 29 + doc/blochus/callbacks/push/onPushAnimate.html | 310 ++ doc/blochus/callbacks/push/onPushAxView.html | 163 + doc/blochus/callbacks/push/onPushGrid.html | 138 + doc/blochus/callbacks/push/onPushRun.html | 689 ++++ .../functions/blochsim/fcn_BLOCHUS_ode.html | 234 ++ doc/blochus/functions/blochsim/getB0.html | 133 + doc/blochus/functions/blochsim/getFFT.html | 160 + .../functions/blochsim/getGyroRatio.html | 170 + .../functions/blochsim/getMIDI_Tx.html | 374 ++ doc/blochus/functions/blochsim/getMrot.html | 141 + doc/blochus/functions/blochsim/getOmega0.html | 133 + .../functions/blochsim/getPulseAxisPhase.html | 136 + .../functions/blochsim/getPulsePhase.html | 234 ++ .../blochsim/getPulseTimeSeries.html | 268 ++ .../functions/blochsim/getRampAmplitude.html | 216 ++ .../functions/blochsim/getReferencePhase.html | 136 + .../getRotationMatrixFromAngleandAxis.html | 153 + .../getRotationMatrixFromVectors.html | 158 + doc/blochus/functions/blochsim/menu.html | 29 + .../functions/blochsim/modulatePulse.html | 201 + .../functions/interface/clearSingleAxis.html | 162 + .../functions/interface/findParentOfType.html | 151 + .../interface/getAngleBetweenVectors.html | 152 + .../interface/getPulseParameters.html | 347 ++ .../interface/getRampParameters.html | 202 + doc/blochus/functions/interface/menu.html | 31 + .../functions/interface/minimizePanel.html | 186 + .../interface/onFigureSizeChange.html | 144 + .../functions/interface/plotBSphere.html | 174 + .../functions/interface/plotBpulse.html | 186 + doc/blochus/functions/interface/plotRamp.html | 204 + .../functions/interface/plotResults.html | 404 ++ .../functions/interface/switchToolTips.html | 161 + .../interface/updateStatusInformation.html | 164 + doc/down.png | Bin 0 -> 133 bytes doc/index.html | 22 + doc/left.png | Bin 0 -> 136 bytes doc/m2html.css | 90 + doc/matlabicon.gif | Bin 0 -> 574 bytes doc/menu.html | 23 + doc/right.png | Bin 0 -> 136 bytes doc/up.png | Bin 0 -> 162 bytes .../GUI Layout Toolbox 2.3.4.mltbx | Bin 0 -> 860775 bytes externals/findjobj/findjobj.m | 3437 +++++++++++++++++ externals/findjobj/license.txt | 24 + functions/blochsim/fcn_BLOCHUS_ode.m | 148 + functions/blochsim/getB0.m | 59 + functions/blochsim/getFFT.m | 86 + functions/blochsim/getGyroRatio.m | 97 + functions/blochsim/getMIDI_Tx.m | 300 ++ functions/blochsim/getMrot.m | 66 + functions/blochsim/getOmega0.m | 59 + functions/blochsim/getPulseAxisPhase.m | 64 + functions/blochsim/getPulsePhase.m | 144 + functions/blochsim/getPulseTimeSeries.m | 175 + functions/blochsim/getRampAmplitude.m | 131 + functions/blochsim/getReferencePhase.m | 63 + .../getRotationMatrixFromAngleandAxis.m | 75 + .../blochsim/getRotationMatrixFromVectors.m | 81 + functions/blochsim/modulatePulse.m | 120 + functions/interface/BLOCHUS_logo.mat | Bin 0 -> 113225 bytes functions/interface/clearSingleAxis.m | 90 + functions/interface/findParentOfType.m | 74 + functions/interface/getAngleBetweenVectors.m | 78 + functions/interface/getPulseParameters.m | 273 ++ functions/interface/getRampParameters.m | 128 + functions/interface/minimizePanel.m | 114 + functions/interface/onFigureSizeChange.m | 68 + functions/interface/plotBSphere.m | 97 + functions/interface/plotBpulse.m | 114 + functions/interface/plotRamp.m | 132 + functions/interface/plotResults.m | 328 ++ functions/interface/switchToolTips.m | 88 + functions/interface/updateStatusInformation.m | 92 + scripts/example1.m | 271 ++ scripts/example1a_ref.png | Bin 0 -> 182939 bytes scripts/example1b_ref.png | Bin 0 -> 172137 bytes scripts/example1c_ref.png | Bin 0 -> 399894 bytes scripts/example2.m | 377 ++ scripts/example2a_ref.png | Bin 0 -> 251004 bytes scripts/example2b_ref.png | Bin 0 -> 259920 bytes scripts/example2c_ref.png | Bin 0 -> 157090 bytes scripts/example2d_ref.png | Bin 0 -> 294355 bytes scripts/example3.m | 315 ++ scripts/example3a_ref.png | Bin 0 -> 183369 bytes scripts/example3b_ref.png | Bin 0 -> 114612 bytes startBLOCHUS.m | 65 + 156 files changed, 28235 insertions(+) create mode 100644 .gitignore create mode 100644 BLOCHUS/BLOCHUS.m create mode 100644 BLOCHUS/BLOCHUS_createGUI.m create mode 100644 BLOCHUS/BLOCHUS_createGridPlots.m create mode 100644 BLOCHUS/BLOCHUS_createMenus.m create mode 100644 BLOCHUS/BLOCHUS_createPanelBasic.m create mode 100644 BLOCHUS/BLOCHUS_createPanelControl.m create mode 100644 BLOCHUS/BLOCHUS_createPanelPrePol.m create mode 100644 BLOCHUS/BLOCHUS_createPanelPulse.m create mode 100644 BLOCHUS/BLOCHUS_createStatusbar.m create mode 100644 BLOCHUS/BLOCHUS_loadDefaults.m create mode 100644 BLOCHUS/BLOCHUS_setPositionOnScreen.m create mode 100644 LICENSE create mode 100644 README.md create mode 100644 callbacks/checkbox/onCheckPrePolPulse.m create mode 100644 callbacks/checkbox/onCheckPulseQ.m create mode 100644 callbacks/checkbox/onCheckRDP.m create mode 100644 callbacks/edits/onEditValue.m create mode 100644 callbacks/menus/onMenuExport.m create mode 100644 callbacks/menus/onMenuHelp.m create mode 100644 callbacks/menus/onMenuImport.m create mode 100644 callbacks/menus/onMenuRestartQuit.m create mode 100644 callbacks/menus/onMenuViewFigure.m create mode 100644 callbacks/menus/onMenuViewShow.m create mode 100644 callbacks/popup/onPopupNucleus.m create mode 100644 callbacks/popup/onPopupPrePolRamp.m create mode 100644 callbacks/popup/onPopupPulseAxis.m create mode 100644 callbacks/popup/onPopupPulseDFmode.m create mode 100644 callbacks/popup/onPopupPulseImode.m create mode 100644 callbacks/popup/onPopupPulsePolarization.m create mode 100644 callbacks/popup/onPopupPulseType.m create mode 100644 callbacks/push/onPushAnimate.m create mode 100644 callbacks/push/onPushAxView.m create mode 100644 callbacks/push/onPushGrid.m create mode 100644 callbacks/push/onPushRun.m create mode 100644 doc/blochus/BLOCHUS/BLOCHUS.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createGUI.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createGridPlots.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createMenus.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createPanelBasic.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createPanelControl.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createPanelPrePol.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createPanelPulse.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_createStatusbar.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_loadDefaults.html create mode 100644 doc/blochus/BLOCHUS/BLOCHUS_setPositionOnScreen.html create mode 100644 doc/blochus/BLOCHUS/menu.html create mode 100644 doc/blochus/callbacks/checkbox/menu.html create mode 100644 doc/blochus/callbacks/checkbox/onCheckPrePolPulse.html create mode 100644 doc/blochus/callbacks/checkbox/onCheckPulseQ.html create mode 100644 doc/blochus/callbacks/checkbox/onCheckRDP.html create mode 100644 doc/blochus/callbacks/edits/menu.html create mode 100644 doc/blochus/callbacks/edits/onEditValue.html create mode 100644 doc/blochus/callbacks/menus/menu.html create mode 100644 doc/blochus/callbacks/menus/onMenuExport.html create mode 100644 doc/blochus/callbacks/menus/onMenuHelp.html create mode 100644 doc/blochus/callbacks/menus/onMenuImport.html create mode 100644 doc/blochus/callbacks/menus/onMenuRestartQuit.html create mode 100644 doc/blochus/callbacks/menus/onMenuViewFigure.html create mode 100644 doc/blochus/callbacks/menus/onMenuViewShow.html create mode 100644 doc/blochus/callbacks/popup/menu.html create mode 100644 doc/blochus/callbacks/popup/onPopupNucleus.html create mode 100644 doc/blochus/callbacks/popup/onPopupPrePolRamp.html create mode 100644 doc/blochus/callbacks/popup/onPopupPulseAxis.html create mode 100644 doc/blochus/callbacks/popup/onPopupPulseDFmode.html create mode 100644 doc/blochus/callbacks/popup/onPopupPulseImode.html create mode 100644 doc/blochus/callbacks/popup/onPopupPulsePolarization.html create mode 100644 doc/blochus/callbacks/popup/onPopupPulseType.html create mode 100644 doc/blochus/callbacks/push/menu.html create mode 100644 doc/blochus/callbacks/push/onPushAnimate.html create mode 100644 doc/blochus/callbacks/push/onPushAxView.html create mode 100644 doc/blochus/callbacks/push/onPushGrid.html create mode 100644 doc/blochus/callbacks/push/onPushRun.html create mode 100644 doc/blochus/functions/blochsim/fcn_BLOCHUS_ode.html create mode 100644 doc/blochus/functions/blochsim/getB0.html create mode 100644 doc/blochus/functions/blochsim/getFFT.html create mode 100644 doc/blochus/functions/blochsim/getGyroRatio.html create mode 100644 doc/blochus/functions/blochsim/getMIDI_Tx.html create mode 100644 doc/blochus/functions/blochsim/getMrot.html create mode 100644 doc/blochus/functions/blochsim/getOmega0.html create mode 100644 doc/blochus/functions/blochsim/getPulseAxisPhase.html create mode 100644 doc/blochus/functions/blochsim/getPulsePhase.html create mode 100644 doc/blochus/functions/blochsim/getPulseTimeSeries.html create mode 100644 doc/blochus/functions/blochsim/getRampAmplitude.html create mode 100644 doc/blochus/functions/blochsim/getReferencePhase.html create mode 100644 doc/blochus/functions/blochsim/getRotationMatrixFromAngleandAxis.html create mode 100644 doc/blochus/functions/blochsim/getRotationMatrixFromVectors.html create mode 100644 doc/blochus/functions/blochsim/menu.html create mode 100644 doc/blochus/functions/blochsim/modulatePulse.html create mode 100644 doc/blochus/functions/interface/clearSingleAxis.html create mode 100644 doc/blochus/functions/interface/findParentOfType.html create mode 100644 doc/blochus/functions/interface/getAngleBetweenVectors.html create mode 100644 doc/blochus/functions/interface/getPulseParameters.html create mode 100644 doc/blochus/functions/interface/getRampParameters.html create mode 100644 doc/blochus/functions/interface/menu.html create mode 100644 doc/blochus/functions/interface/minimizePanel.html create mode 100644 doc/blochus/functions/interface/onFigureSizeChange.html create mode 100644 doc/blochus/functions/interface/plotBSphere.html create mode 100644 doc/blochus/functions/interface/plotBpulse.html create mode 100644 doc/blochus/functions/interface/plotRamp.html create mode 100644 doc/blochus/functions/interface/plotResults.html create mode 100644 doc/blochus/functions/interface/switchToolTips.html create mode 100644 doc/blochus/functions/interface/updateStatusInformation.html create mode 100644 doc/down.png create mode 100644 doc/index.html create mode 100644 doc/left.png create mode 100644 doc/m2html.css create mode 100644 doc/matlabicon.gif create mode 100644 doc/menu.html create mode 100644 doc/right.png create mode 100644 doc/up.png create mode 100644 externals/GUI_Layout_Toolbox/GUI Layout Toolbox 2.3.4.mltbx create mode 100644 externals/findjobj/findjobj.m create mode 100644 externals/findjobj/license.txt create mode 100644 functions/blochsim/fcn_BLOCHUS_ode.m create mode 100644 functions/blochsim/getB0.m create mode 100644 functions/blochsim/getFFT.m create mode 100644 functions/blochsim/getGyroRatio.m create mode 100644 functions/blochsim/getMIDI_Tx.m create mode 100644 functions/blochsim/getMrot.m create mode 100644 functions/blochsim/getOmega0.m create mode 100644 functions/blochsim/getPulseAxisPhase.m create mode 100644 functions/blochsim/getPulsePhase.m create mode 100644 functions/blochsim/getPulseTimeSeries.m create mode 100644 functions/blochsim/getRampAmplitude.m create mode 100644 functions/blochsim/getReferencePhase.m create mode 100644 functions/blochsim/getRotationMatrixFromAngleandAxis.m create mode 100644 functions/blochsim/getRotationMatrixFromVectors.m create mode 100644 functions/blochsim/modulatePulse.m create mode 100644 functions/interface/BLOCHUS_logo.mat create mode 100644 functions/interface/clearSingleAxis.m create mode 100644 functions/interface/findParentOfType.m create mode 100644 functions/interface/getAngleBetweenVectors.m create mode 100644 functions/interface/getPulseParameters.m create mode 100644 functions/interface/getRampParameters.m create mode 100644 functions/interface/minimizePanel.m create mode 100644 functions/interface/onFigureSizeChange.m create mode 100644 functions/interface/plotBSphere.m create mode 100644 functions/interface/plotBpulse.m create mode 100644 functions/interface/plotRamp.m create mode 100644 functions/interface/plotResults.m create mode 100644 functions/interface/switchToolTips.m create mode 100644 functions/interface/updateStatusInformation.m create mode 100644 scripts/example1.m create mode 100644 scripts/example1a_ref.png create mode 100644 scripts/example1b_ref.png create mode 100644 scripts/example1c_ref.png create mode 100644 scripts/example2.m create mode 100644 scripts/example2a_ref.png create mode 100644 scripts/example2b_ref.png create mode 100644 scripts/example2c_ref.png create mode 100644 scripts/example2d_ref.png create mode 100644 scripts/example3.m create mode 100644 scripts/example3a_ref.png create mode 100644 scripts/example3b_ref.png create mode 100644 startBLOCHUS.m diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e3461a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.asv diff --git a/BLOCHUS/BLOCHUS.m b/BLOCHUS/BLOCHUS.m new file mode 100644 index 0000000..8dac6e1 --- /dev/null +++ b/BLOCHUS/BLOCHUS.m @@ -0,0 +1,95 @@ +function BLOCHUS +%BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics +%based on the Bloch equations +% +% Syntax: +% BLOCHUS +% +% Inputs: +% none +% +% Outputs: +% none +% +% Example: +% BLOCHUS +% +% Other m-files required: +% BLOCHUS_createGUI.m +% BLOCHUS_loadDefaults.m +% calculateGuiOnMonitorPosition.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% GUI 'header' info and default GUI settings +myui.version = '0.1.0'; +myui.date = '15.05.2020'; +myui.author = 'Thomas Hiller'; +myui.email = 'thomas.hiller[at]leibniz-liag.de'; + +myui.fontsize = 9; +myui.axfontsize = 11; +myui.linewidth = 2; +myui.color.basic = [143 188 143]./255; +myui.color.prepol = [222 184 135]./255; +myui.color.prepolB = [0.635 0.078 0.184]; +myui.color.wait = [240 128 128]./255; +myui.color.pulse = [100 149 237]./255; + +%% Default data settings +data = BLOCHUS_loadDefaults; + +%% GUI initialization +gui.figh = figure('Name','BLOCHUS - BLOCHUniversalSimulator',... + 'NumberTitle','off','Tag','BLOCHUS','ToolBar','none','MenuBar','none',... + 'SizeChangedFcn',@onFigureSizeChange); + +% position on screen +pos = BLOCHUS_setPositionOnScreen; +set(gui.figh,'Position',pos); + +%% GUI data +gui.myui = myui; + +% save the data struct within the GUI +setappdata(gui.figh,'data',data); +setappdata(gui.figh,'gui',gui); + +%% Create GUI elements +BLOCHUS_createGUI(gui.figh,true); +% update status bar +updateStatusInformation(gui.figh); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/BLOCHUS/BLOCHUS_createGUI.m b/BLOCHUS/BLOCHUS_createGUI.m new file mode 100644 index 0000000..7c5d72c --- /dev/null +++ b/BLOCHUS/BLOCHUS_createGUI.m @@ -0,0 +1,177 @@ +function BLOCHUS_createGUI(h,wbon) +%BLOCHUS_createGUI controls the creation of all GUI elements +% +% Syntax: +% BLOCHUS_createGUI(h) +% +% Inputs: +% h - figure handle +% wbon - show waitbar (yes=true, no=false) +% +% Outputs: +% none +% +% Example: +% BLOCHUS_createGUI(h,true) +% +% Other m-files required: +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% get GUI data +data = getappdata(h,'data'); +gui = getappdata(h,'gui'); +myui = gui.myui; + +%% initialize wait bar +if wbon + hwb = waitbar(0,'loading ...','Name','BLOCHUS initialization','Visible','off'); + steps = 6; + if ~isempty(h) + posf = get(h,'Position'); + set(hwb,'Units','Pixel') + posw = get(hwb,'Position'); + set(hwb,'Position',[posf(1)+posf(3)/2-posw(3)/2 posf(2)+posf(4)/2-posw(4)/2 posw(3:4)]); + end + set(hwb,'Visible','on'); +end + + + +%% uimenus +if wbon + waitbar(1/steps,hwb,'loading GUI elements - menus'); +end +gui = BLOCHUS_createMenus(gui); + +%% MAIN GUI "BOX" +gui.main = uix.VBox('Parent',gui.figh,'Visible','off'); + +% top part for settings and plots +gui.top = uix.HBox('Parent',gui.main); +% bottom part for the status bar +gui.bottom = uix.HBox('Parent',gui.main); +set(gui.main,'Heights',[-1 20]); + +% top left contains the three main panels plus the control panel +gui.leftTop = uix.VBox('Parent',gui.top); +% all plots in a flexible grid on the right side +gui.right = uix.GridFlex('Parent',gui.top,'Spacing',7); +set(gui.top,'Widths',[330 -1]); +set(gui.top,'MinimumWidths',[330 200]); + +% the three main panels are inside a vertically scrollable panel +gui.left = uix.ScrollingPanel('Parent',gui.leftTop); +% but the control panel is fixed to the bottom +gui.panels.Control.main = uix.BoxPanel('Parent',gui.leftTop,'Title','Control',... + 'TitleColor',[164 164 164]./255,'ForegroundColor','k'); +set(gui.leftTop,'Heights',[-1 53]); + +%% A. settings column +gui.panels.main = uix.VBox('Parent',gui.left); +gui.panels.Basic.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Basics',... + 'TitleColor',myui.color.basic,'ForegroundColor','k','MinimizeFcn',@minimizePanel); +gui.panels.PrePol.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Pre-polarization switch-off',... + 'TitleColor',myui.color.prepol,'ForegroundColor','k','MinimizeFcn',@minimizePanel); +gui.panels.Pulse.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Pulse',... + 'TitleColor',myui.color.pulse,'ForegroundColor','k','MinimizeFcn',@minimizePanel); +uix.Empty('Parent',gui.panels.main); + +% adjust the heights of all left-column-panels +% edit and popup elements are 24 +edith = 24; +% panel header is always 22 high +headerh = 22; +% spacing is set to 3 +spacing = 3; +% maximal height of each panel +basic_max = 7*edith+8*spacing+headerh; +prepol_max = 9*edith+10*spacing+headerh; +pulse_max = 13*edith+14*spacing+headerh; +% save the heights information (needed for minimizing the panels) +myui.heights = [22 22 22 -1; basic_max prepol_max pulse_max -1]; +set(gui.panels.main,'Heights',myui.heights(2,:),... + 'MinimumHeights',[22 22 22 0]); +% the 'MinimumHeights' guarantees that the three panels fit into the +% ScrollingPanel when the GUI becomes smaller +set(gui.left,'Heights',-1,'MinimumHeights',basic_max+prepol_max+pulse_max); + +if wbon + waitbar(2/steps,hwb,'loading GUI elements - Basic panel'); +end +[gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui); + +if wbon + waitbar(2/steps,hwb,'loading GUI elements - PrePol panel'); +end +[gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui); + +if wbon + waitbar(3/steps,hwb,'loading GUI elements - Pulse panel'); +end +[gui,myui] = BLOCHUS_createPanelPulse(data,gui,myui); + +if wbon + waitbar(5/steps,hwb,'loading GUI elements - Control panel'); +end +[gui,myui] = BLOCHUS_createPanelControl(gui,myui); + +if wbon + waitbar(6/steps,hwb,'loading GUI elements - Plot panel'); +end +[gui,myui] = BLOCHUS_createGridPlots(gui,myui); + +% delete wait bar +if wbon + delete(hwb); +end + +[gui,myui] = BLOCHUS_createStatusbar(gui,myui); + +% make the main GUI visible +set(gui.main,'Visible','on'); + +%% enable all menus +set(gui.menu.file,'Enable','on'); +set(gui.menu.view,'Enable','on'); +set(gui.menu.help,'Enable','on'); + +%% update the GUI data +gui.myui = myui; +setappdata(gui.figh,'gui',gui); +setappdata(gui.figh,'data',data); +set(gui.text_handles.Status,'String','BLOCHUS successfully started'); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/BLOCHUS/BLOCHUS_createGridPlots.m b/BLOCHUS/BLOCHUS_createGridPlots.m new file mode 100644 index 0000000..cdb326c --- /dev/null +++ b/BLOCHUS/BLOCHUS_createGridPlots.m @@ -0,0 +1,190 @@ +function [gui,myui] = BLOCHUS_createGridPlots(gui,myui) +%BLOCHUS_createGridPlots creates the "Plots" grid panel +% +% Syntax: +% [gui,myui] = BLOCHUS_createGridPlots(gui,myui) +% +% Inputs: +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createGridPlots(gui,myui) +% +% Other m-files required: +% findjobj.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% first create the individual tab panels +%(1,1) magnetization +gui.panels.Plot.Mag = uix.TabPanel('Parent',gui.right,... + 'BackgroundColor',myui.color.basic); +%(2,1) pre-polarization settings +gui.panels.Plot.PrePol = uix.TabPanel('Parent',gui.right,... + 'BackgroundColor',myui.color.prepol); +%(1,2) bloch sphere +gui.panels.Plot.Sphere = uix.TabPanel('Parent',gui.right,... + 'BackgroundColor',myui.color.basic); +%(2,2) pulse settings +gui.panels.Plot.Pulse = uix.TabPanel('Parent',gui.right,... + 'BackgroundColor',myui.color.pulse); + +%% magnetization +% because Matlab is buggy when resizing, put uicontainer inside the panels +plotXYZL = uicontainer('Parent',gui.panels.Plot.Mag); +plotXYZR = uicontainer('Parent',gui.panels.Plot.Mag); +plotXYZFFT = uicontainer('Parent',gui.panels.Plot.Mag); +gui.panels.Plot.Mag.TabTitles = {'Lab frame','Rot frame','FFT'}; +gui.panels.Plot.Mag.TabWidth = 75; + +gui.axes_handles.MagL = axes('Parent',plotXYZL,'Box','on'); +gui.axes_handles.MagR = axes('Parent',plotXYZR,'Box','on'); +gui.axes_handles.MagFFT = axes('Parent',plotXYZFFT,'Box','on'); +clearSingleAxis(gui.axes_handles.MagL); +clearSingleAxis(gui.axes_handles.MagR); +clearSingleAxis(gui.axes_handles.MagFFT); + +%% PrePol tab panel +plotBpre = uicontainer('Parent',gui.panels.Plot.PrePol); +plotalpha = uicontainer('Parent',gui.panels.Plot.PrePol); +plotdadt = uicontainer('Parent',gui.panels.Plot.PrePol); +plotwda = uicontainer('Parent',gui.panels.Plot.PrePol); +gui.panels.Plot.PrePol.TabTitles = {'Bp ramp',... + [char(hex2dec('3B1')),'=',char(hex2dec('2221')),'B0 B',],... + ['d',char(hex2dec('3B1')),' / dt'],... + 'adiab. cond.'}; +gui.panels.Plot.PrePol.TabWidth = 75; + +gui.axes_handles.Bpre = axes('Parent',plotBpre,'Box','on'); +gui.axes_handles.alpha = axes('Parent',plotalpha,'Box','on'); +gui.axes_handles.dadt = axes('Parent',plotdadt,'Box','on'); +gui.axes_handles.wda = axes('Parent',plotwda,'Box','on'); +clearSingleAxis(gui.axes_handles.Bpre); +clearSingleAxis(gui.axes_handles.alpha); +clearSingleAxis(gui.axes_handles.dadt); +clearSingleAxis(gui.axes_handles.wda); + +%% 3D Bloch Sphere + +% lab frame (L) and rot frame (R) +SphereBoxL = uix.VBox('Parent',gui.panels.Plot.Sphere,'Spacing',3,'Padding',3); +SphereBoxR = uix.VBox('Parent',gui.panels.Plot.Sphere,'Spacing',3,'Padding',3); +gui.panels.Plot.Sphere.TabTitles = {'Lab frame','Rot frame'}; +gui.panels.Plot.Sphere.TabWidth = 75; + +% add view buttons and axes to the panel +plotSphereL = uicontainer('Parent',SphereBoxL); +SphereButtonsL = uix.HButtonBox('Parent',SphereBoxL); +gui.push_handles.XZL = uicontrol('Parent',SphereButtonsL,... + 'String','XZ',... + 'Tag','XZ',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.YZL = uicontrol('Parent',SphereButtonsL,... + 'String','YZ',... + 'Tag','YZ',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.XYL = uicontrol('Parent',SphereButtonsL,... + 'String','XY',... + 'Tag','XY',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.DL = uicontrol('Parent',SphereButtonsL,... + 'String','3D',... + 'Tag','3D',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +set(SphereBoxL,'Heights',[-1 30]); +gui.axes_handles.SphereL = axes('Parent',plotSphereL,'Box','on'); +view(3); axis equal; +clearSingleAxis(gui.axes_handles.SphereL); + +% add view buttons and axes to the panel +plotSphereR = uicontainer('Parent',SphereBoxR); +SphereButtonsR = uix.HButtonBox('Parent',SphereBoxR); +gui.push_handles.XZR = uicontrol('Parent',SphereButtonsR,... + 'String','XZ',... + 'Tag','XZ',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.YZR = uicontrol('Parent',SphereButtonsR,... + 'String','YZ',... + 'Tag','YZ',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.XYR = uicontrol('Parent',SphereButtonsR,... + 'String','XY',... + 'Tag','XY',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +gui.push_handles.DR = uicontrol('Parent',SphereButtonsR,... + 'String','3D',... + 'Tag','3D',... + 'FontSize',myui.fontsize,... + 'Callback',@onPushAxView); +set(SphereBoxR,'Heights',[-1 30]); +gui.axes_handles.SphereR = axes('Parent',plotSphereR,'Box','on'); +view(3); axis equal; +clearSingleAxis(gui.axes_handles.SphereR); + +%% Pulse tab panel +plotPulseSetup = uix.HBox('Parent',gui.panels.Plot.Pulse); +plotPulseB = uicontainer('Parent',gui.panels.Plot.Pulse); +plotPulseFFT = uicontainer('Parent', gui.panels.Plot.Pulse); +gui.panels.Plot.Pulse.TabTitles = {'Pulse setup','Pulse','FFT'}; +gui.panels.Plot.Pulse.TabWidth = 75; + +plotPulseSetupF = uicontainer('Parent',plotPulseSetup); +plotPulseSetupI = uicontainer('Parent',plotPulseSetup); +gui.axes_handles.PulseSetupF = axes('Parent',plotPulseSetupF,'Box','on'); +gui.axes_handles.PulseSetupI = axes('Parent',plotPulseSetupI,'Box','on'); + +gui.axes_handles.PulseB = axes('Parent',plotPulseB,'Box','on'); +gui.axes_handles.PulseFFT = axes('Parent',plotPulseFFT,'Box','on'); +clearSingleAxis(gui.axes_handles.PulseSetupF); +clearSingleAxis(gui.axes_handles.PulseSetupI); +clearSingleAxis(gui.axes_handles.PulseB); +clearSingleAxis(gui.axes_handles.PulseFFT); + +% arrange the panels in a 2x2 grid +set(gui.right,'Widths',[-1 -1],'Heights',[-1 -1]); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/BLOCHUS/BLOCHUS_createMenus.m b/BLOCHUS/BLOCHUS_createMenus.m new file mode 100644 index 0000000..a11b74c --- /dev/null +++ b/BLOCHUS/BLOCHUS_createMenus.m @@ -0,0 +1,114 @@ +function gui = BLOCHUS_createMenus(gui) +%BLOCHUS_createMenus creates all GUI menus +% +% Syntax: +% gui = NUCLEUSinv_createMenus(gui) +% +% Inputs: +% gui - figure gui elements structure +% +% Outputs: +% gui +% +% Example: +% gui = BLOCHUS_createMenus(gui) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% 1. File +gui.menu.file = uimenu(gui.figh,... + 'Label','File','Enable','off'); + +% 1.1 Import +gui.menu.file_import = uimenu(gui.menu.file,... + 'Label','Import','Enable','on'); + +% 1.1.1 BLOCHUS session file +gui.menu.file_import_session = uimenu(gui.menu.file_import,... + 'Label','Session file','Callback',@onMenuImport); + +% 1.2 Export +gui.menu.file_export = uimenu(gui.menu.file,... + 'Label','Export'); + +% 1.2.1 BLOCHUS session file +gui.menu.file_export_session = uimenu(gui.menu.file_export,... + 'Label','Session file','Callback',@onMenuExport); + +% 1.3 Restart +gui.menu.file_restart = uimenu(gui.menu.file,... + 'Label','Restart','Separator','on','Callback',@onMenuRestartQuit); + +% 1.4 Quit +gui.menu.file_quit = uimenu(gui.menu.file,... + 'Label','Quit','Separator','on','Callback',@onMenuRestartQuit); + +%% 2. Extras +gui.menu.view = uimenu(gui.figh,... + 'Label','View','Enable','off'); +% 2.1 Tooltips (on/off) +gui.menu.view_tooltips = uimenu(gui.menu.view,... + 'Label','Tooltips','Checked','on','Callback',@onMenuViewShow); +% 2.2 Figure Toolbar +gui.menu.view_toolbar = uimenu(gui.menu.view,... + 'Label','Figure Toolbar','Callback',@onMenuViewShow); +% 2.3.1 Tigures +gui.menu.view_figures = uimenu(gui.menu.view,... + 'Label','Figures','Separator','on'); +% 2.3.1.1 current +gui.menu.view_figures_current = uimenu(gui.menu.view_figures,... + 'Label','Current View','Callback',@onMenuViewFigure); +% 2.3.1.2 only magnetization +gui.menu.view_figures_mag = uimenu(gui.menu.view_figures,... + 'Label','Magnetization','Callback',@onMenuViewFigure); +% 2.3.1.3 only ramp +gui.menu.view_figures_ramp = uimenu(gui.menu.view_figures,... + 'Label','Switch-off Ramp','Enable','off','Callback',@onMenuViewFigure); +% 2.3.1.4 only pulse +gui.menu.view_figures_pulse = uimenu(gui.menu.view_figures,... + 'Label','Pulse','Enable','off','Callback',@onMenuViewFigure); + +%% 3. Help +gui.menu.help = uimenu(gui.figh,... + 'Label','Help','Enable','off'); + +% 3.1 About +gui.menu.help_about = uimenu(gui.menu.help,... + 'Label','About','Callback',@onMenuHelp); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/BLOCHUS/BLOCHUS_createPanelBasic.m b/BLOCHUS/BLOCHUS_createPanelBasic.m new file mode 100644 index 0000000..08994be --- /dev/null +++ b/BLOCHUS/BLOCHUS_createPanelBasic.m @@ -0,0 +1,246 @@ +function [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui) +%BLOCHUS_createPanelBasic creates "Basic" settings panel +% +% Syntax: +% [gui,myui] = BLOCHUS_createPanelBasic(gui,myui,data) +% +% Inputs: +% data - figure data structure +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui) +% +% Other m-files required: +% findjobj.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% create all boxes +gui.panels.Basic.VBox = uix.VBox('Parent', gui.panels.Basic.main,... + 'Spacing',3,'Padding',3); + +setNuc = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setB0 = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setT1relax = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setT2relax = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setTsim = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setM0 = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); +setMinit = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3); + +%% Nucleus & gyromagnetic ratio +gui.text_handles.Nuc = uicontrol('Style','Text',... + 'Parent',setNuc,... + 'String',['Nucleus | ',char(hex2dec('3B3')),' [rad/s/T]'],... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setNuc); +tstr = 'Proton for spin simulation.'; +gui.popup_handles.Nuc = uicontrol('Style', 'Popup',... + 'Parent',setNuc,... + 'String',{'1H','2H','3He','7Li','13C','14N','15N','17O','19F',... + '23Na','27Al','29Si','31P','57Fe','63Cu','67Zn','129Xe'},... + 'Tag','Nuc',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Callback',@onPopupNucleus); +gui.edit_handles.Gyro = uicontrol('Style','Edit',... + 'Parent',setNuc,... + 'String',sprintf('%5.4e',data.basic.gamma),... + 'Tag','Gyro',... + 'FontSize',myui.fontsize,... + 'Enable','off'); +set(setNuc,'Widths',[120 30 -1 -1]); + +%% B0 & omega0 +gui.text_handles.B0 = uicontrol('Style','Text',... + 'Parent',setB0,... + 'String',['B0 [T] | ',char(hex2dec('3C9')),'0 [Hz]'],... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setB0); +tstr = 'B0 field strength in [T].
'; +gui.edit_handles.B0 = uicontrol('Style','Edit',... + 'Parent', setB0,... + 'String',num2str(data.init.B0(1)),... + 'Tag','basic_B0',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.B0),... + 'Callback',@onEditValue); +tstr = 'Omega0 frequency in [Hz].
'; +gui.edit_handles.Omega0 = uicontrol('Style','Edit',... + 'Parent',setB0,... + 'String',sprintf('%7.2f',data.init.Omega0(1)),... + 'Tag','basic_Omega0',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.Omega0),... + 'Callback',@onEditValue); +set(setB0,'Widths',[120 30 -1 -1]); + +%% T1 relaxation time +gui.text_handles.T1relax = uicontrol('Style','Text',... + 'Parent',setT1relax,... + 'String','T1 [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setT1relax); +tstr = 'Longitudinal relaxation time T1 in [ms].
'; +gui.edit_handles.T1relax = uicontrol('Style','Edit',... + 'Parent',setT1relax,... + 'String',num2str(data.init.T1relax(1)),... + 'Tag','basic_T1relax',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.T1relax),... + 'Callback',@onEditValue); +set(setT1relax,'Widths',[120 30 -1]); + +%% T2 relaxation time +gui.text_handles.T2relax = uicontrol('Style','Text',... + 'Parent',setT2relax,... + 'String','T2 [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setT2relax); +tstr = 'Transversal relaxation time T2 in [ms].
'; +gui.edit_handles.T2relax = uicontrol('Style','Edit',... + 'Parent',setT2relax,... + 'String',num2str(data.init.T2relax(1)),... + 'Tag','basic_T2relax',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.T2relax),... + 'Callback',@onEditValue); +set(setT2relax,'Widths',[120 30 -1]); + +%% maximum simulation time +gui.text_handles.Tsim = uicontrol('Style','Text',... + 'Parent',setTsim,... + 'String','T sim. [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setTsim); +tstr = 'Total simulation time Tsim in [ms].
'; +gui.edit_handles.Tsim = uicontrol('Style','Edit',... + 'Parent',setTsim,... + 'String',num2str(data.init.Tsim(1)),... + 'Tag','basic_Tsim',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.Tsim),... + 'Callback',@onEditValue); +set(setTsim,'Widths',[120 30 -1]); + +%% equilibrium magnetization M0 +gui.text_handles.M0 = uicontrol('Style','Text',... + 'Parent',setM0,... + 'String','M0 [A/m]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setM0); +gui.edit_handles.M0x = uicontrol('Style','Edit',... + 'Parent',setM0,... + 'String',num2str(data.basic.M0(1)),... + 'Tag','basic_M0x',... + 'FontSize',myui.fontsize,.... + 'Enable','off'); +gui.edit_handles.M0y = uicontrol('Style','Edit',... + 'Parent',setM0,... + 'String',num2str(data.basic.M0(2)),... + 'Tag','basic_M0y',... + 'FontSize',myui.fontsize,... + 'Enable','off'); +gui.edit_handles.M0z = uicontrol('Style','Edit',... + 'Parent',setM0,... + 'String',num2str(data.basic.M0(3)),... + 'Tag','basic_M0z',... + 'FontSize',myui.fontsize,... + 'Enable','off'); +set(setM0,'Widths',[120 30 -1 -1 -1]); + +%% initial magnetization Minit +gui.text_handles.Minit = uicontrol('Style','Text',... + 'Parent',setMinit,... + 'String','Minit [A/m]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setMinit); +tstr = 'X-comp. of initial magnetization M in [A/m]'; +gui.edit_handles.Minitx = uicontrol('Style','Edit',... + 'Parent',setMinit,... + 'String',num2str(data.basic.Minit(1)),... + 'Tag','basic_Minitx',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(1) -1e6 1e6]),... + 'Callback',@onEditValue); +tstr = 'Y-comp. of initial magnetization M in [A/m]'; +gui.edit_handles.Minity = uicontrol('Style','Edit',... + 'Parent',setMinit,... + 'String',num2str(data.basic.Minit(2)),... + 'Tag','basic_Minity',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(2) -1e6 1e6]),... + 'Callback',@onEditValue); +tstr = 'Z-comp. of initial magnetization M in [A/m]'; +gui.edit_handles.Minitz = uicontrol('Style','Edit',... + 'Parent',setMinit,... + 'String',num2str(data.basic.Minit(3)),... + 'Tag','basic_Minitz',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(3) -1e6 1e6]),... + 'Callback',@onEditValue); +set(setMinit,'Widths',[120 30 -1 -1 -1]); + +% Java Hack to adjust the text fields vertical alignment +jh = findjobj(gui.text_handles.Nuc); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.B0); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.T1relax); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.T2relax); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.Tsim); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.M0); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.Minit); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/BLOCHUS/BLOCHUS_createPanelControl.m b/BLOCHUS/BLOCHUS_createPanelControl.m new file mode 100644 index 0000000..746b224 --- /dev/null +++ b/BLOCHUS/BLOCHUS_createPanelControl.m @@ -0,0 +1,90 @@ +function [gui,myui] = BLOCHUS_createPanelControl(gui,myui) +%BLOCHUS_createPanelControl creates "Control" panel +% +% Syntax: +% [gui,myui] = BLOCHUS_createPanelControl(gui,myui) +% +% Inputs: +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createPanelControl(gui,myui) +% +% Other m-files required: +% findjobj.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +gui.panels.Control.HBox = uix.HBox('Parent', gui.panels.Control.main,... + 'Spacing',3,'Padding',3); + +tstr = 'Start calculation.'; +gui.push_handles.Run = uicontrol('Style','pushbutton',... + 'Parent',gui.panels.Control.HBox,... + 'String','RUN',... + 'Tag','RUN',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'BackGroundColor','g',... + 'UserData',struct('Tooltipstr',tstr),... + 'Callback',@onPushRun); + +tstr = 'Show animation of the last result.'; +gui.push_handles.Animate = uicontrol('Style','pushbutton',... + 'Parent',gui.panels.Control.HBox,... + 'String','ANIMATE',... + 'Tag','ANIMATE',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPushAnimate); + +tstr = 'Reset axes grid to equally spaced 2x2.'; +gui.push_handles.Grid = uicontrol('Style','pushbutton',... + 'Parent',gui.panels.Control.HBox,... + 'String','RESET GRID',... + 'Tag','GRID',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Callback',@onPushGrid); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/BLOCHUS/BLOCHUS_createPanelPrePol.m b/BLOCHUS/BLOCHUS_createPanelPrePol.m new file mode 100644 index 0000000..66e5876 --- /dev/null +++ b/BLOCHUS/BLOCHUS_createPanelPrePol.m @@ -0,0 +1,291 @@ +function [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui) +%BLOCHUS_createPanelPrePol creates "Pre-polarization" settings panel +% +% Syntax: +% [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui) +% +% Inputs: +% data - figure data structure +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui) +% +% Other m-files required: +% findjobj.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% create all boxes +gui.panels.PrePol.VBox = uix.VBox('Parent', gui.panels.PrePol.main,... + 'Spacing',3,'Padding',3); + +setCheck = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolRDS = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolRamp = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolFactor = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolTheta = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolPhi = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolSwitchFactor = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolTramp = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3); +setPrePolTslope = uix.HBox( 'Parent', gui.panels.PrePol.VBox,'Spacing',3); + +%% +uix.Empty('Parent',setCheck); +tstr = 'Activate pre-polarization switch-off ramp settings.'; +gui.check_handles.PrePol = uicontrol('Style','Checkbox',... + 'Parent',setCheck,... + 'String','Use Pre-polarization switch-off',... + 'Value',0,... + 'Tag','checkPrePol',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Callback',@onCheckPrePolPulse); +uix.Empty('Parent',setCheck); +set(setCheck,'Widths',[-1 200 -1]); + +%% relaxation during switch-off RDS switch +gui.text_handles.PrePolRDS = uicontrol('Style','Text',... + 'Parent',setPrePolRDS,... + 'String','Relax. during switch-off',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPrePolRDS); +tstr = 'Switch on/off relaxation during switch-off - RDS.
'; +gui.check_handles.PrePolRDS = uicontrol('Style','Checkbox',... + 'Parent',setPrePolRDS,... + 'String','RDS',... + 'Tag','PrePolRDS',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onCheckRDP); +set(setPrePolRDS,'Widths',[140 10 -1]); + +%% prepolarization switch-off ramp +gui.text_handles.PrePolRamp = uicontrol('Style','Text',... + 'Parent',setPrePolRamp,... + 'String','Ramp type',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolRamp); +tstr = ['Choose between different switch-off ramps.

',... + 'Available options:
',... + 'exp. Pure exponential.
',... + 'linear & exp. Lin + exp parts as introduced by Conradi et al. (2017).
',... + 'half cos 1+cos type ramp.
',... + 'linear Pure linear.
',... + 'melton1995 Linear using switch-off rates after Melton et al. (1995).
',... + 'MIDI 1+cos type ramp with NMR Midi settings.

',... + 'Depending on the chosen method some edit fields have different meanings.

',... + 'Default value:
',... + 'exp
']; +gui.popup_handles.PrePolRamp = uicontrol('Style','Popup',... + 'Parent',setPrePolRamp,... + 'String',{'exp.','linear & exp.','half cos','linear','melton1995','MIDI'},... + 'Value',1,... + 'Tag','Ramp',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPrePolRamp); +set(setPrePolRamp,'Widths',[140 10 -1]); + +%% pre-polarization factor +gui.text_handles.PrePolFactor = uicontrol('Style','Text',... + 'Parent',setPrePolFactor,... + 'String','PrePol. factor [B0]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolFactor); +tstr = 'Pre-polarization factor in units of B0.
'; +gui.edit_handles.PrePolFactor = uicontrol('Style','Edit',... + 'Parent',setPrePolFactor,... + 'String',num2str(data.init.PrePolFactor(1)),... + 'Tag','prepol_Factor',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolFactor),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolFactor,'Widths',[140 10 -1]); + +%% angle theta between B0 and Bpre +gui.text_handles.PrePolTheta = uicontrol('Style','Text',... + 'Parent',setPrePolTheta,... + 'String','Theta [deg]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolTheta); +tstr = ['Polar orientation of Bp in [deg].
',... + 'Rotation is around the y-axis [0 1 0].']; +gui.edit_handles.PrePolTheta = uicontrol('Style','Edit',... + 'Parent',setPrePolTheta,... + 'String',num2str(data.init.PrePolTheta(1)),... + 'Tag','prepol_Theta',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTheta),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolTheta,'Widths',[140 10 -1]); + +%% angle phi (azimuthal angle) +gui.text_handles.PrePolPhi = uicontrol('Style','Text',... + 'Parent',setPrePolPhi,... + 'String','Phi [deg]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolPhi); +tstr = ['Azimuthal orientation of Bp in [deg].
',... + 'Rotation is around the z-axis [0 0 1].']; +gui.edit_handles.PrePolPhi = uicontrol('Style','Edit',... + 'Parent',setPrePolPhi,... + 'String',num2str(data.init.PrePolPhi(1)),... + 'Tag','prepol_Phi',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolPhi),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolPhi,'Widths',[140 10 -1]); + +%% pre-polarization switch factor for the 'linexp' and 'exp' ramps +gui.text_handles.PrePolSwitchFactor = uicontrol('Style','Text',... + 'Parent',setPrePolSwitchFactor,... + 'String','Switch factor [B0]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolSwitchFactor); +tstr = ['This field has different meanings depending on the chosen',... + ' shut-off ramp:

',... + 'exp:
',... + 'Switch factor B* in units of [B0] as part of the',... + ' exponential decay exp(-t Bmax / B* / Tslope)'... + '.

',... + 'linear & exp:
',... + 'Switch factor B* in units of [B0] where the ramp',... + ' changes from linear to exp.
',... + 'half cos:
',... + 'Not needed.

',... + 'linear:
',... + 'Not needed.

',... + 'melton1995:
',... + 'Cutoff rate k / Γ, with k the pre-polarization factor and Γ=&omega',... + '0 / Tramp

',... + 'MIDI:
',... + 'Not needed.']; +gui.edit_handles.PrePolSwitchFactor = uicontrol('Style','Edit',... + 'Parent',setPrePolSwitchFactor,... + 'String',num2str(data.init.PrePolSwitchFactor(1)),... + 'Tag','prepol_SwitchFactor',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolSwitchFactor),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolSwitchFactor,'Widths',[140 10 -1]); + +%% pre-polarization Tramp time +gui.text_handles.PrePolTramp = uicontrol('Style','Text',... + 'Parent',setPrePolTramp,... + 'String','T ramp [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolTramp); +tstr = 'Switch-off ramp time Tramp in [ms]'; +gui.edit_handles.PrePolTramp = uicontrol('Style','Edit',... + 'Parent',setPrePolTramp,... + 'String',num2str(data.init.PrePolTramp(1)),... + 'Tag','prepol_Tramp',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTramp),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolTramp, 'Widths', [140 10 -1]); + +%% pre-polarization Tslope parameter for e.g. the 'linexp' ramp +gui.text_handles.PrePolTslope = uicontrol('Style','Text',... + 'Parent',setPrePolTslope,... + 'String','T slope [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent', setPrePolTslope); +tstr = ['This field has different meanings depending on the chosen',... + ' switch-off ramp:

',... + 'exp:
',... + 'Tslope in [ms] as part of the exponential decay exp(-t B',... + 'max / B* / Tslope).

',... + 'linear & exp:
',... + 'Slope Tslope in [ms] of the linear part of the switch-off ramp.
',... + 'half cos:
',... + 'Not needed.

',... + 'linear:
',... + 'Not needed.

',... + 'melton1995:
',... + 'Not needed.

',... + 'MIDI:
',... + 'Not needed.']; +gui.edit_handles.PrePolTslope = uicontrol('Style','Edit',... + 'Parent',setPrePolTslope,... + 'String',num2str(data.init.PrePolTslope(1)),... + 'Tag','prepol_Tslope',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTslope),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPrePolTslope,'Widths',[140 10 -1]); + +%% Java Hack to adjust the text fields vertical alignment +jh = findjobj(gui.text_handles.PrePolRDS); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolRamp); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolFactor); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolTheta); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolPhi); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolSwitchFactor); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolTramp); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PrePolTslope); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/BLOCHUS/BLOCHUS_createPanelPulse.m b/BLOCHUS/BLOCHUS_createPanelPulse.m new file mode 100644 index 0000000..405b09d --- /dev/null +++ b/BLOCHUS/BLOCHUS_createPanelPulse.m @@ -0,0 +1,455 @@ +function [gui,myui] = BLOCHUS_createPanelPulse(data,gui,myui) +%BLOCHUS_createPanelPulse creates "Pulse" settings panel +% +% Syntax: +% [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui) +% +% Inputs: +% data - figure data structure +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui) +% +% Other m-files required: +% findjobj.m +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% create all boxes +gui.panels.Pulse.VBox = uix.VBox('Parent', gui.panels.Pulse.main,... + 'Spacing',3,'Padding',3); + +setCheck2 = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseRDP = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseType = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseAxis = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulsePolarization = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseB1Factor = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseTtau = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseDFmode = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseDF = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseImode = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseI = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseQ = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); +setPulseTwait = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3); + +%% +uix.Empty('Parent',setCheck2); +tstr = 'Activate pulse settings.'; +gui.check_handles.Pulse = uicontrol('Style','Checkbox',... + 'Parent',setCheck2,... + 'String','Use Pulse',... + 'Value',0,... + 'Tag','checkPulse',... + 'ToolTipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Callback',@onCheckPrePolPulse); +uix.Empty('Parent',setCheck2); +set(setCheck2,'Widths',[-1 100 -1]); + +%% relaxation during pulse RDP switch +gui.text_handles.PulseRDP = uicontrol('Style','Text',... + 'Parent',setPulseRDP,... + 'String','Relax. during pulse',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseRDP); +tstr = 'Switch on/off relaxation during pulse - RDP.
'; +gui.check_handles.PulseRDP = uicontrol('Style','checkbox',... + 'Parent',setPulseRDP,... + 'String','RDP',... + 'Tag','PulseRDP',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onCheckRDP); +set(setPulseRDP,'Widths',[140 10 -1]); + +%% pulse type +gui.text_handles.PulseType = uicontrol('Style','Text',... + 'Parent',setPulseType,... + 'String','Pulse type',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseType); +tstr = ['Choose between different pulse types.

',... + 'Available options:
',... + '',char(hex2dec('3C0')),'/2 ',char(hex2dec('3C0')),... + '/2 excitation pulse. B1 or ',char(hex2dec('3C4')),' get adjusted.
',... + '',char(hex2dec('3C0')),' ',char(hex2dec('3C0')),... + ' excitation pulse. B1 or ',char(hex2dec('3C4')),' get adjusted.
',... + 'free freely adjustable excitation pulse.
',... + 'adiabatic HP adiabatic half passage pulse.
',... + 'MIDI OR MIDI style (discrete) on-resonant pulse.
',... + 'MDID AP MIDI style (discrete) adiabatic pulse.

',... + 'Default value:
',... + '',char(hex2dec('3C0')),'/2
']; +gui.popup_handles.PulseType = uicontrol('Style','Popup',... + 'Parent',setPulseType,... + 'String',{[char(hex2dec('3C0')),'/2'],char(hex2dec('3C0')),'free',... + 'AHP','MIDI OR','MIDI AHP'},... + 'Value',1,... + 'Tag','PulseType',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPulseType); +set(setPulseType,'Widths',[140 10 -1]); + +%% pulse axis +gui.text_handles.PulseAxis = uicontrol('Style','Text',... + 'Parent',setPulseAxis,... + 'String','Pulse axis',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseAxis); +tstr = ['Choose between different pulse axis.
',... + 'Note that in the rotating frame of reference, M flips',... + ' according to the right-hand-rule.

',... + 'Available options:
',... + '+x - Lab standard (OR pulse is flipped into the -Im part (-y))
',... + '-x
',... + '+y - MRS standard (OR pulse is flipped into the Re part (+x))
',... + '-y

',... + 'Default value:
',... + '+x
']; +gui.popup_handles.PulseAxis = uicontrol('Style','Popup',... + 'Parent',setPulseAxis,... + 'String',{'+x (Lab std)','-x','+y (MRS std)','-y'},... + 'Value',1,... + 'Tag','PulseAxis',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPulseAxis); +set(setPulseAxis,'Widths',[140 10 -1]); + +%% pulse polarization +gui.text_handles.PulsePolarization = uicontrol('Style','Text',... + 'Parent',setPulsePolarization,... + 'String','Pulse polarization',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulsePolarization); +tstr = ['Choose between different pulse polarization.

',... + 'Available options:
',... + 'circular x and y components.
',... + 'linear only x component.

',... + 'Default value:
',... + 'circular
']; +gui.popup_handles.PulsePolarization = uicontrol('Style','Popup',... + 'Parent',setPulsePolarization,... + 'String',{'circular','linear'},... + 'Value',1,... + 'Tag','PulsePolarization',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPulsePolarization); +set(setPulsePolarization,'Widths',[140 10 -1]); + +%% pulse amplitude B1 factor in units of B0 +gui.text_handles.PulseB1Factor = uicontrol('Style','Text',... + 'Parent',setPulseB1Factor,... + 'String','B1 factor [B0]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseB1Factor); +tstr = 'Pulse amplitude factor B1 in units of B0.
'; +gui.edit_handles.PulseB1Factor = uicontrol('Style','Edit',... + 'Parent',setPulseB1Factor,... + 'String',num2str(data.init.PulseB1Factor(1)),... + 'Tag','pulse_B1Factor',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseB1Factor),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseB1Factor,'Widths',[140 10 -1]); + +%% pulse time T_tau +gui.text_handles.PulseTtau = uicontrol('Style','Text',.... + 'Parent',setPulseTtau,... + 'String',['Pulse length ',char(hex2dec('3C4')),' [ms]'],... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseTtau); +tstr = 'Pulse length &tau in [ms].
'; +gui.edit_handles.PulseTtau = uicontrol('Style','Edit',... + 'Parent',setPulseTtau,... + 'String',num2str(data.init.PulseTtau(1)),... + 'Tag','pulse_Ttau',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseTtau),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseTtau,'Widths',[140 10 -1]); + +%% frequency modulation +gui.text_handles.PulseDFmode = uicontrol('Style','Text',... + 'Parent',setPulseDFmode,... + 'String',['Frequency modulation ',char(hex2dec('394')),'f'],... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseDFmode); +tstr = ['Choose between different pulse types.

',... + 'Available options:
',... + 'linear linear sweep from start freq. to end freq.
',... + 'tanh MIDI tanh sweep from start freq. to end freq. (shape can be adjusted).
',... + 'tanh GMR tanh sweep from start freq. to end freq..
',... + 'exp exp sweep from start freq. to end freq..

',... + 'Default value:
',... + 'linear
']; +gui.popup_handles.PulseDFmode = uicontrol('Style','Popup',... + 'Parent',setPulseDFmode,... + 'String',{'linear','tanh MIDI','tanh GMR','exp'},... + 'Value',1,... + 'Tag','PulseDFmode',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPulseDFmode); +set(setPulseDFmode,'Widths',[140 10 -1]); + +%% off resonance frequency settings +gui.text_handles.PulseDF = uicontrol('Style','Text',... + 'Parent',setPulseDF,... + 'String','start [Hz] end [Hz] A B',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseDF); +tstr = ['Start of frequency offset ',char(hex2dec('394')),'f in [Hz].']; +gui.edit_handles.PulseDFstart = uicontrol('Style','Edit',... + 'Parent',setPulseDF,... + 'String',num2str(data.init.PulseDFstart(1)),... + 'Tag','pulse_DFstart',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFstart),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = ['End of frequency offset ',char(hex2dec('394')),'f in [Hz].']; +gui.edit_handles.PulseDFend = uicontrol('Style','Edit',... + 'Parent',setPulseDF,.... + 'String',num2str(data.init.PulseDFend(1)),... + 'Tag','pulse_DFend',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFend),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'Slope parameter A of tanh curve.'; +gui.edit_handles.PulseDFA = uicontrol('Style','Edit',... + 'Parent',setPulseDF,... + 'String',num2str(data.init.PulseDFA(1)),... + 'Tag','pulse_DFA',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFA),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'Upsetting parameter B of tanh curve.'; +gui.edit_handles.PulseDFB = uicontrol('Style','Edit',... + 'Parent',setPulseDF,... + 'String',num2str(data.init.PulseDFB(1)),... + 'Tag','pulse_DFB',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFB),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseDF,'Widths',[140 10 -1.5 -1.5 -1 -1]); + +%% current modulation +gui.text_handles.PulseImode = uicontrol('Style','Text',... + 'Parent',setPulseImode,... + 'String','Current modulation I',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseImode); +tstr = ['Choose between different pulse types.

',... + 'Available options:
',... + 'linear linear sweep from start I to end I.
',... + 'tanh MIDI tanh sweep from start I to end I (shape can be adjusted).
',... + 'tanh GMR tanh sweep from start I to end I.
',... + 'exp tanh sweep from start I to end I.

',... + 'Default value:
',... + 'linear
']; +gui.popup_handles.PulseImode = uicontrol('Style','Popup',... + 'Parent',setPulseImode,... + 'String',{'linear','tanh MIDI','tanh GMR','exp'},... + 'Value',1,... + 'Tag','PulseDFmode',.... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onPopupPulseImode); +set(setPulseImode,'Widths',[140 10 -1]); + +%% current settings +gui.text_handles.PulseI = uicontrol('Style','Text',... + 'Parent',setPulseI,... + 'String','start [A] end [A] A B',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseI); +tstr = 'Start of current sweep in [A].'; +gui.edit_handles.PulseIstart = uicontrol('Style','Edit',... + 'Parent',setPulseI,... + 'String',num2str(data.init.PulseIstart(1)),... + 'Tag','pulse_Istart',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIstart),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'End of current sweep in [A].'; +gui.edit_handles.PulseIend = uicontrol('Style','Edit',... + 'Parent',setPulseI,... + 'String',num2str(data.init.PulseIend(1)),... + 'Tag','pulse_Iend',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIend),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'Slope parameter A of tanh curve.'; +gui.edit_handles.PulseIA = uicontrol('Style','Edit',... + 'Parent',setPulseI,... + 'String',num2str(data.init.PulseIA(1)),... + 'Tag','pulse_IA',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIA),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'Upsetting parameter B of tanh curve.'; +gui.edit_handles.PulseIB = uicontrol('Style','Edit',... + 'Parent',setPulseI,... + 'String',num2str(data.init.PulseIB(1)),... + 'Tag','pulse_IB',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIB),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseI,'Widths',[140 10 -1.5 -1.5 -1 -1]); + +%% quality factor tuning +gui.text_handles.PulseQ = uicontrol('Style','Text',... + 'Parent',setPulseQ,... + 'String','quality factor tuning Q | df',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseQ); +tstr = 'Activate coil tuning via quality factor.'; +gui.check_handles.PulseQ = uicontrol('Style','checkbox',... + 'Parent',setPulseQ,... + 'String','on / off',... + 'Tag','PulseQ',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr),... + 'Enable','off',... + 'Callback',@onCheckPulseQ); +tstr = 'Quality factor Q.'; +gui.edit_handles.PulseQ = uicontrol('Style','Edit',... + 'Parent',setPulseQ,... + 'String',num2str(data.init.PulseQ(1)),... + 'Tag','pulse_Q',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseQ),... + 'Enable','off',... + 'Callback',@onEditValue); +tstr = 'Quality factor offset [Hz]'; +gui.edit_handles.PulseQdf = uicontrol('Style','Edit',... + 'Parent',setPulseQ,... + 'String',num2str(data.init.PulseQdf(1)),... + 'Tag','pulse_Qdf',... + 'TooltipString',tstr,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseQdf),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseQ,'Widths',[140 10 -1.5 -1 -1]); + +%% wait time T_wait between end of PrePol and Pulse +gui.text_handles.PulseTwait = uicontrol('Style','Text',... + 'Parent',setPulseTwait,... + 'String','Wait time [ms]',... + 'FontSize',myui.fontsize); +uix.Empty('Parent',setPulseTwait); +tstr = 'Wait time in [ms] between end of pre-polarization switch off and start of pulse.'; +gui.edit_handles.PulseTwait = uicontrol('Style','Edit',... + 'Parent',setPulseTwait,... + 'String',num2str(data.init.PulseTwait(1)),... + 'Tag','pulse_Twait',... + 'TooltipString',tstr,... + 'BackgroundColor',myui.color.wait,... + 'FontSize',myui.fontsize,... + 'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseTwait),... + 'Enable','off',... + 'Callback',@onEditValue); +set(setPulseTwait,'Widths',[140 10 -1]); + +%% Java Hack to adjust the text fields vertical alignment +jh = findjobj(gui.text_handles.PulseRDP); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseType); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseAxis); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseB1Factor); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseTtau); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseImode); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseI); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseDFmode); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseDF); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseQ); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) +jh = findjobj(gui.text_handles.PulseTwait); +jh.setVerticalAlignment(javax.swing.JLabel.CENTER) + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/BLOCHUS/BLOCHUS_createStatusbar.m b/BLOCHUS/BLOCHUS_createStatusbar.m new file mode 100644 index 0000000..bfef873 --- /dev/null +++ b/BLOCHUS/BLOCHUS_createStatusbar.m @@ -0,0 +1,104 @@ +function [gui,myui] = BLOCHUS_createStatusbar(gui,myui) +%BLOCHUS_createStatusbar creates the bottom status bar +% +% Syntax: +% [gui,myui] = BLOCHUS_createStatusbar(gui,myui) +% +% Inputs: +% gui - figure gui elements structure +% myui - individual GUI settings structure +% +% Outputs: +% gui +% myui +% +% Example: +% [gui,myui] = BLOCHUS_createStatusbar(gui,myui) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% create panels inside the bottom hbox to show persistent status +% information +gui.panels.status.main = uix.Panel('Parent',gui.bottom); +gui.panels.status.Timer = uix.Panel('Parent',gui.bottom); +gui.panels.status.PrePol = uix.Panel('Parent',gui.bottom); +gui.panels.status.Pulse = uix.Panel('Parent',gui.bottom); +gui.panels.status.MIDI = uix.Panel('Parent',gui.bottom); +gui.panels.status.Tooltips = uix.Panel('Parent',gui.bottom); +gui.panels.status.Version = uix.Panel('Parent',gui.bottom); + +% adjust the panel widths +set(gui.bottom,'Widths',[330 -1 -1 -1 -1 -1 -1]); + +gui.text_handles.Status = uicontrol('Style','Text',... + 'Parent',gui.panels.status.main,... + 'String','',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.TimerStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.Timer,... + 'String','Calc. Time: 0 s',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.PrePolStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.PrePol,... + 'String','Pre-Polarization: OFF',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.PulseStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.Pulse,... + 'String','Pulse: OFF',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.MIDIStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.MIDI,... + 'String','Discrete Pulse: OFF',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.TooltipsStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.Tooltips,... + 'String','Tooltips: ON',... + 'HorizontalAlignment','left',... + 'FontSize',8); +gui.text_handles.VersionStat = uicontrol('Style','Text',... + 'Parent',gui.panels.status.Version,... + 'String','Version: ',... + 'HorizontalAlignment','left',... + 'FontSize',8); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/BLOCHUS/BLOCHUS_loadDefaults.m b/BLOCHUS/BLOCHUS_loadDefaults.m new file mode 100644 index 0000000..d7e96b0 --- /dev/null +++ b/BLOCHUS/BLOCHUS_loadDefaults.m @@ -0,0 +1,196 @@ +function data = BLOCHUS_loadDefaults +%BLOCHUS_loadDefaults loads default GUI data values +% +% Syntax: +% BLOCHUS_loadDefaults +% +% Inputs: +% none +% +% Outputs: +% out - default data structure +% +% Example: +% out = BLOCHUS_loadDefaults +% +% Other m-files required: +% none +% +% Subfunctions: +% getInitData +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% aux data +data.info.ToolTips = 1; +data.info.Timer = 0; + +% get init data +% Note to user: use the "getInitData" function to adjust default +% settings and parameter range +init = getInitData; +data.init = init; + +% basic data +data.basic.nucleus = init.nucleus; +data.basic.gamma = init.gamma; +data.basic.type = init.type; +data.basic.M0 = init.M0; +data.basic.Minit = init.Minit; +data.basic.B0 = init.B0(1); +data.basic.Omega0 = init.Omega0(1); +data.basic.T1relax = init.T1relax(1); +data.basic.T2relax = init.T2relax(1); +data.basic.Tsim = init.Tsim(1); + +% pre-polarization data +data.prepol.Ramp = init.PrePolRamp; +data.prepol.RDS = init.PrePolRDS; +data.prepol.Factor = init.PrePolFactor(1); +data.prepol.Theta = init.PrePolTheta(1); +data.prepol.Phi = init.PrePolPhi(1); +data.prepol.SwitchFactor = init.PrePolSwitchFactor(1); +data.prepol.Tramp = init.PrePolTramp(1); +data.prepol.Tslope = init.PrePolTslope(1); + +% pulse data +data.pulse.Type = init.PulseType; +data.pulse.Axis = init.PulseAxis; +data.pulse.Polarization = init.PulsePolarization; +data.pulse.RDP = init.PulseRDP; +data.pulse.Ttau = init.PulseTtau(1); +data.pulse.B1Factor = init.PulseB1Factor(1); +data.pulse.DFmode = init.PulseDFmode; +data.pulse.DFstart = init.PulseDFstart(1); +data.pulse.DFend = init.PulseDFend(1); +data.pulse.DFA = init.PulseDFA(1); +data.pulse.DFB = init.PulseDFB(1); +data.pulse.Imode = init.PulseImode; +data.pulse.Istart = init.PulseIstart(1); +data.pulse.Iend = init.PulseIend(1); +data.pulse.IA = init.PulseIA(1); +data.pulse.IB = init.PulseIB(1); +data.pulse.Q = init.PulseQ(1); +data.pulse.Qdf = init.PulseQdf(1); +data.pulse.Twait = init.PulseTwait(1); +data.pulse.MIDINP = init.PulseMIDINP; +data.pulse.MIDIsf = init.PulseMIDIsf; + +end + +% define init values and range +function init = getInitData +% --- BASIC --- +% proton [string] +init.nucleus = '1H'; +% gyromagnetic ratio [rad/s/T] +init.gamma = getGyroRatio(init.nucleus); +% simulation type [string] +init.type = 'std'; +% equilibrium magnetization [A/m] +init.M0 = [0 0 1]; +% initial magnetization [A/m] +init.Minit = [1 0 0]; +% Earth's magnetic field [T] default: 48µT min: 1fT max: 1T +init.B0 = [48/1e6 1e-12 1]; +% corresponding Larmor frequencies [Hz] +init.Omega0 = [getOmega0(init.gamma,init.B0(1))/2/pi -1e9 1e9]; +% T1 relaxation time [ms] default: 100ms min: 1µs max: 1000s +init.T1relax = [100 1e-3 1e6]; +% T2 relaxation time [ms] default: 50ms min: 1µs max: 1000s +init.T2relax = [50 1e-3 1e6]; +% simulation time [ms] default: 50ms min: 1µs max: 1000s +init.Tsim = [50 1e-3 1e6]; + +% --- PRE-POLARIZATION --- +% switch-off ramp shape [string] +init.PrePolRamp = 'exp'; +% relaxation during switch-off [0/1] +init.PrePolRDS = 0; +% pre-polarization B-field amplitude in units of [B0] +init.PrePolFactor = [100 1e-6 1e6]; +% polar angle of pre-polarization field [deg] +init.PrePolTheta = [90 0 360]; +% azimuthal angle of pre-polarization field [deg] +init.PrePolPhi = [0 0 360]; +% pre-polarization B-field switch amplitude in units of [B0] +init.PrePolSwitchFactor = [1 1e-6 1e6]; +% switch-off ramp time [ms] default: 1ms min: 1µs max: 1000s +init.PrePolTramp = [1 1e-6 1e6]; +% switch-off ramp slope time [ms] default: 0.1ms min: 1µs max: 1000s +init.PrePolTslope = [0.1 1e-6 1e6]; + +% --- PULSE --- +% pulse type [string] +init.PulseType = 'pi_half'; +% pulse axis [string] +init.PulseAxis = '+x'; +% pulse polarization [string] +init.PulsePolarization = 'circular'; +% relaxation during pulse [0/1] +init.PulseRDP = 0; +% pulse length [ms] default: 20ms min: 1µs max: 1000s +init.PulseTtau = [20 1e-6 1e6]; +% pulse amplitude in units of [B0] default: 0.0061163 min: 1e-12 max: 1e6 +init.PulseB1Factor = [0.0061163 1e-12 1e6]; +% frequency modulation function [string] +init.PulseDFmode = 'const'; +% start of frequency sweep [Hz] default: 0Hz min: -1MHz max: 1MHz +init.PulseDFstart = [0 -1e6 1e6]; +% end of frequency sweep [Hz] default: 0Hz min: -1MHz max: 1MHz +init.PulseDFend = [0 -1e6 1e6]; +% slope parameter A +init.PulseDFA = [1 -1e6 1e6]; +% slope parameter B +init.PulseDFB = [0 -1e6 1e6]; +% current modulation function [string] +init.PulseImode = 'const'; +% start of current sweep [A] default: 1A min: 0A max: 1A +init.PulseIstart = [1 0 1]; +% end of current sweep [A] default: 1A min: 0A max: 1A +init.PulseIend = [1 0 1]; +% slope parameter A +init.PulseIA = [1 -1e6 1e6]; +% slope parameter B +init.PulseIB = [0 -1e6 1e6]; +% quality factor Q +init.PulseQ = [0 0 100]; +% quality factor off-resonance [Hz] +init.PulseQdf = [0 0 1e6]; +% wait time between pre-polarization switch-off and pulse [ms] +init.PulseTwait = [2 0 1e6]; +% number of periods (only for MIDI) +init.PulseMIDINP = 1; +% MIDI sampling frequency (fixed) +init.PulseMIDIsf = 50000; + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/BLOCHUS/BLOCHUS_setPositionOnScreen.m b/BLOCHUS/BLOCHUS_setPositionOnScreen.m new file mode 100644 index 0000000..ea923c3 --- /dev/null +++ b/BLOCHUS/BLOCHUS_setPositionOnScreen.m @@ -0,0 +1,82 @@ +function pos = BLOCHUS_setPositionOnScreen +%BLOCHUS_setPositionOnScreen sets GUI position depending on monitor size +% +% Syntax: +% BLOCHUS_setPositionOnScreen +% +% Inputs: +% none +% +% Outputs: +% pos - four element vector [x y w h] +% +% Example: +% BLOCHUS_setPositionOnScreen +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get the monitor layout +scr = get(0,'MonitorPosition'); +if size(scr,1) > 1 % dual monitor setup + ind = find(scr(:,1)==1 & scr(:,2)==1); + sw = scr(ind,3); % width + sh = scr(ind,4); % height +else % single monitor + sw = scr(3); % width + sh = scr(4); % height +end +% maximal initial GUI width +gw = 1440; +% adjust the GUI width if the screen is not wide enough +if sw < 1440 + gw = 2*sw/3; +end +% GUI height +gh = gw/1.5; + +if numel(scr) > 4 % dual monitor position + % GUI on second screen + if any(scr(:,1)<0) + pos = [-sw+(sw-gw)/2 (sh-gh)/2 gw gh]; + else + pos = [sw+(sw-gw)/2 (sh-gh)/2 gw gh]; + end +else % single monitor position + pos = [(sw-gw)/2 (sh-gh)/2 gw gh]; +end + +end +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5e9580f --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + BLOCHUS + Copyright (C) 2019 Thomas Hiller + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + BLOCHUS Copyright (C) 2019 Thomas Hiller + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..40be54d --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +## BLOCHUS + +**BLOCH** **U**niversal **S**imulator + +### About + +**BLOCHUS** is a set of MATLABTM tools, that allow some basic simulations of (S)NMR spin dynamics based on the Bloch equations. The Bloch equations are solved in the laboratory frame of reference with MATLABs built-in `ode45` solver. Because it was developed within the scope of a near surface SNMR project, its main features are the simulation of (1) pre-polarization switch-off ramps and (2) excitation pulses. The main front-end to the underlying simulation tools is a graphical user interface (GUI) that allows playing around with the different features and helps to understand the basic concepts of (S)NMR spin dynamics. + +#### Basic features: +1. Choose between different protons (e.g. *Hydrogen*, *Helium*, *Flourine*, etc.) +2. Choose between different pre-polarization switch-off ramp shapes (e.g. *exponential*, *linear*, *half cosine*, etc.) with arbitrary ramp time +3. Choose between different excitation pulses (*pi/2*, *pi*, *adiabatic half passage*, etc.) with arbitrary off-resonant frequency, or in case of the adiabatic pulses, arbitrary frequency and current modulation. + +- - - + +### Requirements + +In order to work properly you need to meet the following requirements: + +1. The [Mathworks](https://www.mathworks.com) MATLABTM software development environment (tested with R2017b and newer) +2. The GUI Layout Toolbox (get it from [FEX](https://de.mathworks.com/matlabcentral/fileexchange/47982-gui-layout-toolbox)) (required) +3. `findjobj` (get it from [FEX](https://de.mathworks.com/matlabcentral/fileexchange/14317-findjobj-find-java-handles-of-matlab-graphic-objects)) (required) + +#### Operating System + +I tested it successfully under Windows 7 (64bit) and 10 (64bit) with Matlab R2018a. + +**NOTE:** So far I did not test anything on Linux or a Mac. If you get it to work on either of the two systems (which it basically should I guess) please let me know. + +- - - + +### Installation + +1. It is recommended to install the GUI Layout Toolbox directly into MATLABTM via the mltbx-file (but it should also work via the old-school way of adding the toolbox folders to the MATLABTM path) +2. To use **BLOCHUS** you just need to place the `blochus` folder from the git repository on your hard drive and use the start script `startBLOCHUS` (within this script all necessary **BLOCHUS** folders are added to the MATLABTM path) + +- - - + +### Usage + +1. By executing the start scripts (see above) +2. Simply type `BLOCHUS` on the MATLABTM prompt (make sure the `blochus` folder is on the MATLABTM path) +3. Check the example scripts for the usage of the core functions without the GUI (inside the `scripts` folder) + +- - - + +### Documentation + +A basic documentation to **BLOCHUS** can be found in the `blochus\doc` folder. Just open the `index.html` in the web browser of your choice. The documentation was created with [m2html](https://www.artefact.tk/software/matlab/m2html/) by Guillaume Flandin. + +- - - + +### TODO + +In no particular order and without guarantee that it will ever happen :-) : + +1. Adapt the core functionality in a Python module (this is on top of my agenda) +2. A real Manual +3. ... + +- - - + +### References + +1. Hiller, T., Dlugosch, R. and Müller-Petke, M., "Utilizing pre-polarization to enhance SNMR signals - effect of imperfect switch-off", Geophysical Journal International **0**(0), p.1-15, 2020, [DOI](https://doi.org/10.1093/gji/ggaa216) + +- - - +

MATLAB is a registered trademark of The Mathworks, Inc.

\ No newline at end of file diff --git a/callbacks/checkbox/onCheckPrePolPulse.m b/callbacks/checkbox/onCheckPrePolPulse.m new file mode 100644 index 0000000..0463f2d --- /dev/null +++ b/callbacks/checkbox/onCheckPrePolPulse.m @@ -0,0 +1,295 @@ +function onCheckPrePolPulse(src,~) +%onCheckPrePolPulse activates / deactivates all control elements needed for +%either the pre-polarization switch-off ramp or a B1-pulse or both +% +% Syntax: +% onCheckPrePolPulse(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onCheckPrePolPulse(src) +% +% Other m-files required: +% onPopupPrePolRamp +% onPopupPulseType +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % check status of the check boxes + isPrePol = get(gui.check_handles.PrePol,'Value'); + isPulse = get(gui.check_handles.Pulse,'Value'); + + if isPrePol == 0 && isPulse == 0 % just standard relaxation + data.basic.type = 'std'; + + % menu settings + set(gui.menu.view_figures_ramp,'Enable','off'); + set(gui.menu.view_figures_pulse,'Enable','off'); + + % std settings + data.basic.Minit = [1 0 0]; + set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1))); + set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2))); + set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3))); + set(gui.edit_handles.Minitx,'Enable','on'); + set(gui.edit_handles.Minity,'Enable','on'); + set(gui.edit_handles.Minitz,'Enable','on'); + setappdata(fig,'data',data); + + % clear magnetization FFT axis + clearSingleAxis(gui.axes_handles.MagFFT); + + % deactivate PrePol settings + set(gui.check_handles.PrePolRDS,'Enable','off'); + set(gui.popup_handles.PrePolRamp,'Enable','off'); + set(gui.edit_handles.PrePolFactor,'Enable','off'); + set(gui.edit_handles.PrePolTheta,'Enable','off'); + set(gui.edit_handles.PrePolPhi,'Enable','off'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','off'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + % clear PrePol axes + clearSingleAxis(gui.axes_handles.Bpre); + clearSingleAxis(gui.axes_handles.alpha); + clearSingleAxis(gui.axes_handles.dadt); + clearSingleAxis(gui.axes_handles.wda); + + % deactivate Pulse settings + set(gui.check_handles.PulseRDP,'Enable','off'); + set(gui.popup_handles.PulseType,'Enable','off'); + set(gui.popup_handles.PulseAxis,'Enable','off'); + set(gui.popup_handles.PulsePolarization,'Enable','off'); + set(gui.edit_handles.PulseB1Factor,'Enable','off'); + set(gui.edit_handles.PulseTtau,'Enable','off'); + set(gui.edit_handles.PulseTwait,'Enable','off'); + set(gui.popup_handles.PulseDFmode,'Enable','off'); + set(gui.edit_handles.PulseDFstart,'Enable','off'); + set(gui.edit_handles.PulseDFend,'Enable','off'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIstart,'Enable','off'); + set(gui.edit_handles.PulseIend,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + + % clear Pulse axes + clearSingleAxis(gui.axes_handles.PulseB); + clearSingleAxis(gui.axes_handles.PulseSetupF); + clearSingleAxis(gui.axes_handles.PulseSetupI); + clearSingleAxis(gui.axes_handles.PulseFFT); + + elseif isPrePol == 1 && isPulse == 0 % only pre-polarization switch-off + data.basic.type = 'prepol'; + + % menu settings + set(gui.menu.view_figures_ramp,'Enable','on'); + set(gui.menu.view_figures_pulse,'Enable','off'); + + % std settings + data.basic.Tsim = data.prepol.Tramp; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + data.basic.Minit = [1 0 0]; + set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1))); + set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2))); + set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3))); + set(gui.edit_handles.Minitx,'Enable','off'); + set(gui.edit_handles.Minity,'Enable','off'); + set(gui.edit_handles.Minitz,'Enable','off'); + + % clear magnetization FFT axis + clearSingleAxis(gui.axes_handles.MagFFT); + + % activate PrePol settings + set(gui.check_handles.PrePolRDS,'Enable','on'); + set(gui.popup_handles.PrePolRamp,'Enable','on'); + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolPhi,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','on'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','on'); + setappdata(fig,'data',data); + onPopupPrePolRamp(gui.popup_handles.PrePolRamp); + data = getappdata(fig,'data'); + + % deactivate Pulse settings + set(gui.check_handles.PulseRDP,'Enable','off'); + set(gui.popup_handles.PulseType,'Enable','off'); + set(gui.popup_handles.PulseAxis,'Enable','off'); + set(gui.popup_handles.PulsePolarization,'Enable','off'); + set(gui.edit_handles.PulseB1Factor,'Enable','off'); + set(gui.edit_handles.PulseTtau,'Enable','off'); + set(gui.edit_handles.PulseTwait,'Enable','off'); + set(gui.popup_handles.PulseDFmode,'Enable','off'); + set(gui.edit_handles.PulseDFstart,'Enable','off'); + set(gui.edit_handles.PulseDFend,'Enable','off'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIstart,'Enable','off'); + set(gui.edit_handles.PulseIend,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + + % clear Pulse axes + clearSingleAxis(gui.axes_handles.PulseB); + clearSingleAxis(gui.axes_handles.PulseSetupF); + clearSingleAxis(gui.axes_handles.PulseSetupI); + clearSingleAxis(gui.axes_handles.PulseFFT); + + elseif isPrePol == 0 && isPulse == 1 % only Pulse + data.basic.type = 'pulse'; + + % menu settings + set(gui.menu.view_figures_ramp,'Enable','off'); + set(gui.menu.view_figures_pulse,'Enable','on'); + + % std settings + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + data.basic.Minit = [0 0 1]; + set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1))); + set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2))); + set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3))); + set(gui.edit_handles.Minitx,'Enable','on'); + set(gui.edit_handles.Minity,'Enable','on'); + set(gui.edit_handles.Minitz,'Enable','on'); + setappdata(fig,'data',data); + + % clear magnetization FFT axis + clearSingleAxis(gui.axes_handles.MagFFT); + + % deactivate PrePol settings + set(gui.check_handles.PrePolRDS,'Enable','off'); + set(gui.popup_handles.PrePolRamp,'Enable','off'); + set(gui.edit_handles.PrePolFactor,'Enable','off'); + set(gui.edit_handles.PrePolTheta,'Enable','off'); + set(gui.edit_handles.PrePolPhi,'Enable','off'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','off'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + % clear PrePol axes + clearSingleAxis(gui.axes_handles.Bpre); + clearSingleAxis(gui.axes_handles.alpha); + clearSingleAxis(gui.axes_handles.dadt); + clearSingleAxis(gui.axes_handles.wda); + + % activate Pulse settings + set(gui.check_handles.PulseRDP,'Enable','on'); + set(gui.popup_handles.PulseType,'Enable','on'); + set(gui.popup_handles.PulseAxis,'Enable','on'); + set(gui.popup_handles.PulsePolarization,'Enable','on'); + set(gui.edit_handles.PulseB1Factor,'Enable','on'); + set(gui.edit_handles.PulseTtau,'Enable','on'); + set(gui.edit_handles.PulseDFstart,'Enable','on'); + set(gui.edit_handles.PulseTwait,'Enable','off'); + onPopupPulseType(gui.popup_handles.PulseType); + data = getappdata(fig,'data'); + + elseif isPrePol == 1 && isPulse == 1 % pre-polarization + pulse + data.basic.type = 'prepolpulse'; + + % menu settings + set(gui.menu.view_figures_ramp,'Enable','on'); + set(gui.menu.view_figures_pulse,'Enable','on'); + + % std settings + data.basic.Minit = [1 0 0]; + set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1))); + set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2))); + set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3))); + set(gui.edit_handles.Minitx,'Enable','off'); + set(gui.edit_handles.Minity,'Enable','off'); + set(gui.edit_handles.Minitz,'Enable','off'); + setappdata(fig,'data',data); + + % clear magnetization FFT axis + clearSingleAxis(gui.axes_handles.MagFFT); + clearSingleAxis(gui.axes_handles.MagR); + clearSingleAxis(gui.axes_handles.SphereR); + + % activate PrePol settings + set(gui.check_handles.PrePolRDS,'Enable','on'); + set(gui.popup_handles.PrePolRamp,'Enable','on'); + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolPhi,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','on'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','on'); + setappdata(fig,'data',data); + onPopupPrePolRamp(gui.popup_handles.PrePolRamp); + data = getappdata(fig,'data'); + + % activate Pulse settings + set(gui.check_handles.PulseRDP,'Enable','on'); + set(gui.popup_handles.PulseType,'Enable','on'); + set(gui.popup_handles.PulseAxis,'Enable','on'); + set(gui.popup_handles.PulsePolarization,'Enable','on'); + set(gui.edit_handles.PulseB1Factor,'Enable','on'); + set(gui.edit_handles.PulseTtau,'Enable','on'); + set(gui.edit_handles.PulseDFstart,'Enable','on'); + set(gui.edit_handles.PulseTwait,'Enable','on'); + setappdata(fig,'data',data); + onPopupPulseType(gui.popup_handles.PulseType); + data = getappdata(fig,'data'); + end + + % update all data inside the GUI + setappdata(fig,'data',data); + % update status bar + updateStatusInformation(fig); +else + warndlg({'onCheckPrePolPulse:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/checkbox/onCheckPulseQ.m b/callbacks/checkbox/onCheckPulseQ.m new file mode 100644 index 0000000..9840913 --- /dev/null +++ b/callbacks/checkbox/onCheckPulseQ.m @@ -0,0 +1,84 @@ +function onCheckPulseQ(src,~) +%onCheckPulseQ updates the checkbox that activates quality factor tuning +% +% Syntax: +% onCheckPulseQ(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onCheckPulseQ(src) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + switch get(src,'Value') + case 0 + set(gui.edit_handles.PulseQ,'Enable','off'); + set(gui.edit_handles.PulseQdf,'Enable','off'); + case 1 + set(gui.edit_handles.PulseQ,'Enable','on'); + set(gui.edit_handles.PulseQdf,'Enable','on'); + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(gui.figh); + % get GUI data + data = getappdata(fig,'data'); + % plot pulse + plotBpulse(gui.figh); + +else + warndlg({'onCheckPulseQ:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/callbacks/checkbox/onCheckRDP.m b/callbacks/checkbox/onCheckRDP.m new file mode 100644 index 0000000..f75bfa0 --- /dev/null +++ b/callbacks/checkbox/onCheckRDP.m @@ -0,0 +1,78 @@ +function onCheckRDP(src,~) +%onCheckRDP updates the checkboxes that activate relaxation during pulse +%(RDP) or relaxation during switch-off (RDS) +% +% Syntax: +% onCheckRDP(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onCheckRDP(src) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + switch get(src,'Tag') + case 'PrePolRDS' + % update the RDS switch + data.prepol.RDS = get(src,'Value'); + case 'PulseRDP' + % update the RDP switch + data.pulse.RDP = get(src,'Value'); + end + + % update the data inside the GUI + setappdata(fig,'data',data); +else + warndlg({'onCheckRDP:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/callbacks/edits/onEditValue.m b/callbacks/edits/onEditValue.m new file mode 100644 index 0000000..73b2b25 --- /dev/null +++ b/callbacks/edits/onEditValue.m @@ -0,0 +1,419 @@ +function onEditValue(src,~) +%onEditValue updates all edit field values, checks for wrong inputs and +%restores a default value if necessary +% +% Syntax: +% onEditValue(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onEditValue(src) +% +% Other m-files required: +% getB0 +% getOmega0 +% getPulseParameters +% getRampParameters +% plotBpulse +% plotRamp +% +% Subfunctions: +% createDataString +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the value of the field + val = str2double(get(src,'String')); + % get the tag of the edit field + tag = get(src,'Tag'); + % get the user data of the field + ud = get(src,'UserData'); + + if isstruct(ud) % for new fields + % get the default values [default min max] + defaults = ud.defaults; + + % check if the value is numeric + % if not reset to defaults stored in user data + if isnan(val) + set(src,'String',num2str(defaults(1))); + val = str2double(get(src,'String')); + end + % check if the value is out of bounds + % if yes reset to default + if val < defaults(2) || val > defaults(3) + set(src,'String',num2str(defaults(1))); + val = str2double(get(src,'String')); %#ok<*NASGU> + end + + else % old style (Needs to be removed after the refactoring) + % check if the value is numeric + % if not reset to defaults stored in user data + if isnan(val) + set(src,'String',num2str(ud(3))); + val = str2double(get(src,'String')); + end + % check if the value is out of bounds + % if yes reset to default + if val < ud(1) || val > ud(2) + set(src,'String',num2str(ud(3))); + val = str2double(get(src,'String')); %#ok<*NASGU> + end + disp(['there is still an old style edit field:',tag]) + end + + % get the data field to update from the field tag + out = createDataString(tag); + % update the corresponding data field + updstr = [out.updstr,'=val;']; + eval(updstr); + + % update the data inside the GUI + setappdata(fig,'data',data); + + % depending on the particular edit field, further actions are + % necessary + switch tag + % ----------------------------------------------------------------- + % --- BASICS ------------------------------------------------------ + % ----------------------------------------------------------------- + case 'basic_B0' + % new Larmor frequency due to changed B0 + data.basic.Omega0 = getOmega0(data.basic.gamma,data.basic.B0)/2/pi; + % update the GUI fields + set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0)); + setappdata(fig,'data',data); + % if "Pulse" is activated, update the pulse as if the + % pulse length (or number of periods) would have been changed + % manually + if get(gui.check_handles.Pulse,'Value') == 1 + onEditValue(gui.edit_handles.PulseTtau); + data = getappdata(fig,'data'); + end + % if "PrePol" is activated and the active ramp is "melton1995" + % update the switch-off ramp settings due to the changed Larmor + % frequency + if get(gui.check_handles.PrePol,'Value') == 1 && ... + get(gui.popup_handles.PrePolRamp,'Value') == 5 + setappdata(fig,'data',data); + onPopupPrePolRamp(gui.popup_handles.PrePolRamp); + data = getappdata(fig,'data'); + end + if get(gui.check_handles.PrePol,'Value') == 1 + setappdata(fig,'data',data); + getRampParameters(fig); + data = getappdata(fig,'data'); + end + + case 'basic_Omega0' + % fix sign if it is wrong + if (data.basic.gamma > 0 && data.basic.Omega0 > 0) || ... + (data.basic.gamma < 0 && data.basic.Omega0 < 0) + data.basic.Omega0 = -data.basic.Omega0; + end + % new B0 due to changed Larmor frequency + data.basic.B0 = getB0(data.basic.gamma,data.basic.Omega0*2*pi); + % update the GUI fields + set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0)); + set(gui.edit_handles.B0,'String',sprintf('%5.4e',data.basic.B0)); + setappdata(fig,'data',data); + % if "Pulse" is activated, update the pulse as if the + % pulse length (or number of periods) would have been changed + % manually + if get(gui.check_handles.Pulse,'Value') == 1 + onEditValue(gui.edit_handles.PulseTtau); + data = getappdata(fig,'data'); + end + % if "PrePol" is activated and the active ramp is "melton1995" + % update the switch-off ramp settings due to the changed Larmor + % frequency + if get(gui.check_handles.PrePol,'Value') == 1 && ... + get(gui.popup_handles.PrePolRamp,'Value') == 5 + setappdata(fig,'data',data); + onPopupPrePolRamp(gui.popup_handles.PrePolRamp); + data = getappdata(fig,'data'); + end + if get(gui.check_handles.PrePol,'Value') == 1 + setappdata(fig,'data',data); + getRampParameters(fig); + data = getappdata(fig,'data'); + end + + case 'basic_Minitx' + % x-component of init magnetization + data.basic.Minit(1) = val; + + case 'basic_Minity' + % y-component of init magnetization + data.basic.Minit(2) = val; + + case 'basic_Minitz' + % z-component of init magnetization + data.basic.Minit(3) = val; + + % ------------------------------------------------------------- + % --- PRE-POLARIZATION ---------------------------------------- + % ------------------------------------------------------------- + case {'prepol_Factor','prepol_SwitchFactor'} + % check if the ramp type is "melton1995", if yes update the + % switch-off time to maintain the same switch-off rate + if get(gui.popup_handles.PrePolRamp,'Value') == 5 + % k / rate + GAMMA = data.prepol.Factor/data.prepol.SwitchFactor; + % corresponding ramp time + Tramp = GAMMA/(data.basic.B0*data.basic.gamma)*1e3; % [ms] + data.prepol.Tramp = Tramp; + data.prepol.Tslope = Tramp; + switch data.basic.type + case 'prepol' + data.basic.Tsim = Tramp; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + end + % update switch-off ramp settings + getRampParameters(fig); + data = getappdata(fig,'data'); + plotRamp(fig); + + case {'prepol_Theta','prepol_Phi','prepol_Tslope'} + % update switch-off ramp settings + getRampParameters(fig); + data = getappdata(fig,'data'); + plotRamp(fig); + + case 'prepol_Tramp' + % for "linear" and "half cosine" ramp set the Tslope value, + % which is not need here equal to Tramp + if strcmp(data.prepol.Ramp,'lin') || strcmp(data.prepol.Ramp,'halfcos') + data.prepol.Tslope = data.prepol.Tramp; + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + end + % in case of pure "PrePol" update the total simulation time + switch data.basic.type + case 'prepol' + data.basic.Tsim = data.prepol.Tramp; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + % update switch-off ramp settings + getRampParameters(fig); + data = getappdata(fig,'data'); + plotRamp(fig); + + % ------------------------------------------------------------- + % --- PULSE --------------------------------------------------- + % ------------------------------------------------------------- + case 'pulse_B1Factor' + % if the pulse amplitude changes some settings have to be + % adjusted, depending on the chosen pulse type + switch data.pulse.Type + case {'pi_half','pi'} + switch data.pulse.Type + case 'pi_half' + % in case of "pi_half" the pulse length gets updated + data.pulse.Ttau = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.B1Factor))); + case 'pi' + % in case of "pi" the pulse length gets updated + data.pulse.Ttau = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.B1Factor))); + end + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + + otherwise + % update pulse settings + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + end + + case 'pulse_Ttau' + % if the pulse length changes some settings have to be + % adjusted, depending on the chosen pulse type + switch data.pulse.Type + case {'pi_half','pi'} + switch data.pulse.Type + case 'pi_half' + % in case of "pi_half" the pulse amplitude gets updated + data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau))); + case 'pi' + % in case of "pi" the pulse amplitude gets updated + data.pulse.B1Factor = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.Ttau))); + end + set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor)); + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + + case 'MIDI_OR' + % in case of "MIDI_OR" the PulseTtau-field holds the + % number of periods + data.pulse.MIDINP = val; + % update pulse length + data.pulse.Ttau = abs(data.pulse.MIDINP/data.basic.Omega0)*1e3; + % update pulse amplitude to pi/2 value + data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau))); + set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor)); + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + + case 'MIDI_AP' + % in case of "MIDI_AP" the PulseTtau-field holds the + % number of periods + data.pulse.MIDINP = val; + % update pulse length assuming a constant frequency + data.pulse.Ttau = abs(data.pulse.MIDINP/data.basic.Omega0)*1e3; + % now calculate the actual pulse settings + setappdata(fig,'data',data); + getPulseParameters(fig); + data = getappdata(fig,'data'); + % adjust the pulse length to the actual value + data.pulse.Ttau = data.pulse_MIDI.t(end)*1e3; + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + setappdata(fig,'data',data); + % update pulse plot + plotBpulse(fig); + + otherwise + % for all other pulse types ("free" & "AHP") + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + end + + otherwise + switch data.basic.type + % update all changes related to the pulse modulation + case {'pulse','prepolpulse'} + setappdata(fig,'data',data); + getPulseParameters(fig); + data = getappdata(fig,'data'); + plotBpulse(fig); + + otherwise + % nothing to do for all other fields e.g. T1, T2, Tsim + end + end + + % update GUI data + setappdata(fig,'data',data); +else + warndlg({'onEditValue:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%% helper function to create the update string +function out = createDataString(tag) +% find the underscore +ind = strfind(tag,'_'); +% the panel name is before the underscore +out.panel = tag(1:ind(1)-1); +% the field name afterwards +out.field = tag(ind(1)+1:end); +% replace the underscore with a dot +tag(ind) = '.'; +% create the update string +out.updstr = ['data.',tag]; + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuExport.m b/callbacks/menus/onMenuExport.m new file mode 100644 index 0000000..ecd75be --- /dev/null +++ b/callbacks/menus/onMenuExport.m @@ -0,0 +1,100 @@ +function onMenuExport(src,~) +%onMenuExport handles the extra menu entries +% +% Syntax: +% onMenuExport(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuExport(src) +% +% Other m-files required: +% switchToolTips +% updateStatusInformation +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % gather the output data to save + savedata.data = data; + savedata.myui = gui.myui; + savedata.Nucleus = get(gui.popup_handles.Nuc,'Value'); + savedata.isPrePol = get(gui.check_handles.PrePol,'Value'); + savedata.Ramp = get(gui.popup_handles.PrePolRamp,'Value'); + savedata.isPulse = get(gui.check_handles.Pulse,'Value'); + savedata.PulseType = get(gui.popup_handles.PulseType,'Value'); + savedata.PulseAxis = get(gui.popup_handles.PulseAxis,'Value'); + savedata.PulsePolarization = get(gui.popup_handles.PulsePolarization,'Value'); + savedata.PulseDFmode = get(gui.popup_handles.PulseDFmode,'Value'); + savedata.PulseImode = get(gui.popup_handles.PulseImode,'Value'); + savedata.PulseQ = get(gui.check_handles.PulseQ,'Value'); + + % session file name + sfilename = 'BLOCHUS_session'; + + % ask for folder and maybe new name + [sfile,spath] = uiputfile('*.mat',... + 'Save session file',... + fullfile(pwd,[sfilename,'.mat'])); + + % if user didn't cancel save session + if sum([sfile spath]) > 0 + save(fullfile(spath,sfile),'savedata'); + clear savedata; + % display info text + set(gui.text_handles.Status,'String','BLOCHUS session successfully saved.'); + else + % display info text + set(gui.text_handles.Status,'String','BLOCHUS session not saved'); + end + +else + warndlg({'onMenuExport:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuHelp.m b/callbacks/menus/onMenuHelp.m new file mode 100644 index 0000000..b1c0bcc --- /dev/null +++ b/callbacks/menus/onMenuHelp.m @@ -0,0 +1,146 @@ +function onMenuHelp(src,~) +%onMenuHelp shows the Help Information +% +% Syntax: +% onMenuHelp(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuHelp(src) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + + + % BLOCHUS logo + load('BLOCHUS_logo.mat','logo'); + + % header info + header{1,1} = 'BLOCHUS:'; + header{end+1,1} = ' '; + header{end+1,1} = ['author: ',gui.myui.author]; + header{end+1,1} = ' '; + header{end+1,1} = ['version: ',gui.myui.version]; + header{end+1,1} = ' '; + header{end+1,1} = ['date: ',gui.myui.date]; + header{end+1,1} = ' '; + + % info text + info{1,1} = ['BLOCHUS is a set of MATLAB tools, that allow some basic',... + ' simulations of (S)NMR spin dynamics based on the Bloch equations.',... + ' The Bloch equations are solved in the laboratory frame of reference',... + ' with MATLABs built-in ode45 solver.',... + ' Because it was developed within the scope of a near surface SNMR project,',... + ' its main features are the simulation of',... + ' (1) pre-polarization switch-off ramps and (2) excitation pulses.',... + ' The main front-end to the underlying simulation tools is a',... + ' graphical user interface (GUI)',... + ' that allows playing around with the different features and helps',... + ' to understand the basic concepts of (S)NMR spin dynamics.']; + info{end+1,1} = ' '; + info{end+1,1} = 'Have Fun!'; + + % get BLOCHUS GUI position + posf = get(fig,'Position'); + % default widht and height of About Figure + ww = 560; hh = 420; + xp = posf(1) + (posf(3)-ww)/2; + yp = posf(2) + (posf(4)-hh)/2; + % create Figure + hf = figure('Name','About BLOCHUS',... + 'NumberTitle','off','Tag','Help','ToolBar','none','MenuBar','none',... + 'Resize','off','Position',[xp yp ww hh]); + v1 = uix.VBox('Parent',hf,'Padding',10,'Spacing',10); + + % text area + h1 = uix.VBox('Parent',v1); + % button area + h2 = uix.HBox('Parent',v1); + set(v1,'Heights',[-1 30]); + + % text area + h3 = uix.HBox('Parent',h1); + % logo area + h4 = uix.HBox('Parent',h1); + set(h1,'Heights',[-1 -1]); + + % close button at the bottom + uix.Empty('Parent',h2); + p1 = uicontrol('Style','pushbutton','Parent',h2,'String','OK',... + 'FontSize',10,'Callback','closereq()'); + uix.Empty('Parent',h2); + set(h2,'Widths',[-1 50 -1]) + + % header + uix.Empty('Parent',h3); + t1 = uicontrol('Style','Text','Parent',h3,'String',header,... + 'FontSize',10,'HorizontalAlignment','left'); + % logo + c1 = uicontainer('Parent',h3); + ax1 = axes('Parent',c1); + imshow(logo,'Parent',ax1); + set(h3,'Widths',[50 -1 -1]); + + % info text + uix.Empty('Parent',h4); + t2 = uicontrol('Style','Text','Parent',h4,'String',info,... + 'FontSize',10,'HorizontalAlignment','left'); + uix.Empty('Parent',h4); + set(h4,'Widths',[20 -1 20]) + + % text hack + jh = findjobj(t1); + jh.setVerticalAlignment(javax.swing.JLabel.CENTER) + +else + warndlg({'onMenuHelp:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuImport.m b/callbacks/menus/onMenuImport.m new file mode 100644 index 0000000..f999b9c --- /dev/null +++ b/callbacks/menus/onMenuImport.m @@ -0,0 +1,164 @@ +function onMenuImport(src,~) +%onMenuImport handles the extra menu entries +% +% Syntax: +% onMenuImport(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuImport(src) +% +% Other m-files required: +% switchToolTips +% updateStatusInformation +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % after the import these values should be strings + Sessionpath = -1; + Sessionfile = -1; + % 'pathstr' hold s the name of the chosen data path + [pathstr,~,~] = fileparts(pwd); + % get the file name + [Sessionfile,Sessionpath] = uigetfile(pathstr,... + 'Choose BLOCHUS session file'); + + % only continue if user didn't cancel + if sum(Sessionpath) > 0 + % check if it is a valid session file + tmp = load(fullfile(Sessionpath,Sessionfile),'savedata'); + if isfield(tmp,'savedata') && isfield(tmp.savedata,'data') && ... + isfield(tmp.savedata,'isPulse') && isfield(tmp.savedata,'isPrePol') + savedata = tmp.savedata; + + % copy data + data.info = savedata.data.info; + data.init = savedata.data.init; + data.basic = savedata.data.basic; + data.prepol = savedata.data.prepol; + data.pulse = savedata.data.pulse; + if isfield(savedata.data,'results') + data.results = savedata.data.results; + end + % update GUI data + setappdata(fig,'data',data); + + % update all edit-fields + set(gui.edit_handles.B0,'String',num2str(data.basic.B0)); + set(gui.edit_handles.Omega0,'String',num2str(data.basic.Omega0)); + set(gui.edit_handles.T1relax,'String',num2str(data.basic.T1relax)); + set(gui.edit_handles.T2relax,'String',num2str(data.basic.T2relax)); + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + set(gui.edit_handles.M0x,'String',num2str(data.basic.M0(1))); + set(gui.edit_handles.M0y,'String',num2str(data.basic.M0(2))); + set(gui.edit_handles.M0z,'String',num2str(data.basic.M0(3))); + set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1))); + set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2))); + set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3))); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolPhi,'String',num2str(data.prepol.Phi)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor)); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend)); + set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA)); + set(gui.edit_handles.PulseDFB,'String',num2str(data.pulse.DFB)); + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend)); + set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA)); + set(gui.edit_handles.PulseIB,'String',num2str(data.pulse.IB)); + set(gui.edit_handles.PulseQ,'String',num2str(data.pulse.Q)); + set(gui.edit_handles.PulseQdf,'String',num2str(data.pulse.Qdf)); + set(gui.edit_handles.PulseTwait,'String',num2str(data.pulse.Twait)); + + % update nucleus popup + set(gui.popup_handles.Nuc,'Value',savedata.Nucleus); + + % update PrePol uicontrols + set(gui.check_handles.PrePolRDS,'Value',data.prepol.RDS); + set(gui.popup_handles.PrePolRamp,'Value',savedata.Ramp); + set(gui.check_handles.PrePol,'Value',savedata.isPrePol); + + % update Pulse uicontrols + set(gui.check_handles.PulseRDP,'Value',data.pulse.RDP); + set(gui.popup_handles.PulseType,'Value',savedata.PulseType); + set(gui.popup_handles.PulseAxis,'Value',savedata.PulseAxis); + set(gui.popup_handles.PulsePolarization,'Value',savedata.PulsePolarization); + set(gui.popup_handles.PulseDFmode,'Value',savedata.PulseDFmode); + set(gui.popup_handles.PulseImode,'Value',savedata.PulseImode); + set(gui.check_handles.PulseQ,'Value',savedata.PulseQ); + onCheckPulseQ(gui.check_handles.PulseQ); + set(gui.check_handles.Pulse,'Value',savedata.isPulse); + + % activate the panels (if any) + onCheckPrePolPulse(gui.check_handles.PrePol); + + % plot results (if any) + if isfield(savedata.data,'results') + plotResults(fig); + end + + else + helpdlg({'onMenuImport:';... + 'This seems to be not a valid BLOCHUS session file'},... + 'No session data found'); + end + end + +else + warndlg({'onMenuImport:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuRestartQuit.m b/callbacks/menus/onMenuRestartQuit.m new file mode 100644 index 0000000..5e1e512 --- /dev/null +++ b/callbacks/menus/onMenuRestartQuit.m @@ -0,0 +1,71 @@ +function onMenuRestartQuit(src,~) +%onMenuRestartQuit restarts or closes the GUI +% +% Syntax: +% onMenuRestartQuit(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuRestartQuit(src) +% +% Other m-files required: +% BLOCHUS +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get the label (Restart / Quit) + label = get(src,'Label'); + % close the figure + close(fig); + % and restart if necessary + if strcmp(label,'Restart') + BLOCHUS; + end + +else + warndlg({'onMenuRestartQuit:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuViewFigure.m b/callbacks/menus/onMenuViewFigure.m new file mode 100644 index 0000000..2635c61 --- /dev/null +++ b/callbacks/menus/onMenuViewFigure.m @@ -0,0 +1,194 @@ +function onMenuViewFigure(src,~) +%onMenuViewFigure shows predefined figure layouts +% +% Syntax: +% onMenuViewFigure(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuViewFigure(src) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get GUI position + posf = get(fig,'Position'); + % opening the export figure + expfig = figure; + + % create the axes layout on the export figure + switch get(src,'Label') + case {'Current View','Magnetization','Switch-off Ramp'} + % we copy all visible axes in a 2x2 grid + ax1 = subplot(2,2,1,'Parent',expfig); + ax2 = subplot(2,2,2,'Parent',expfig); + ax3 = subplot(2,2,3,'Parent',expfig); + ax4 = subplot(2,2,4,'Parent',expfig); + + case 'Pulse' + % we copy pulse parameter in a 3x2 grid + ax1 = subplot(3,2,1,'Parent',expfig); + ax2 = subplot(3,2,2,'Parent',expfig); + ax3 = subplot(3,2,[3 4],'Parent',expfig); + ax4 = subplot(3,2,[5 6],'Parent',expfig); + end + % get the default positions + pos1 = get(ax1,'Position'); + pos2 = get(ax2,'Position'); + pos3 = get(ax3,'Position'); + pos4 = get(ax4,'Position'); + % delete axes + delete(ax1);delete(ax2);delete(ax3);delete(ax4); + + % copy the GUI axes to the export figure + switch get(src,'Label') + case 'Current View' + mag = get(gui.panels.Plot.Mag,'Selection'); + sph = get(gui.panels.Plot.Sphere,'Selection'); + pre = get(gui.panels.Plot.PrePol,'Selection'); + pul = get(gui.panels.Plot.Pulse,'Selection'); + switch mag + case 1 + ax1 = copyobj(gui.axes_handles.MagL,expfig); + case 2 + ax1 = copyobj(gui.axes_handles.MagR,expfig); + case 3 + ax1 = copyobj(gui.axes_handles.MagFFT,expfig); + end + switch sph + case 1 + ax2 = copyobj(gui.axes_handles.SphereL,expfig); + case 2 + ax2 = copyobj(gui.axes_handles.SphereR,expfig); + end + switch pre + case 1 + ax3 = copyobj(gui.axes_handles.Bpre,expfig); + case 2 + ax3 = copyobj(gui.axes_handles.alpha,expfig); + case 3 + ax3 = copyobj(gui.axes_handles.dadt,expfig); + case 4 + ax3 = copyobj(gui.axes_handles.wda,expfig); + end + switch pul + case 1 + ax4 = copyobj(gui.axes_handles.PulseSetupF,expfig); + case 2 + ax4 = copyobj(gui.axes_handles.PulseB,expfig); + case 3 + ax4 = copyobj(gui.axes_handles.PulseFFT,expfig); + end + + set(expfig,'Name','BLOCHUS: Current View'); + + case 'Magnetization' + ax1 = copyobj(gui.axes_handles.MagL,expfig); + ax2 = copyobj(gui.axes_handles.SphereL,expfig); + ax3 = copyobj(gui.axes_handles.MagR,expfig); + ax4 = copyobj(gui.axes_handles.SphereR,expfig); + + set(expfig,'Name','BLOCHUS: Magnetization'); + + case 'Switch-off Ramp' + ax1 = copyobj(gui.axes_handles.Bpre,expfig); + ax2 = copyobj(gui.axes_handles.alpha,expfig); + ax3 = copyobj(gui.axes_handles.dadt,expfig); + ax4 = copyobj(gui.axes_handles.wda,expfig); + + set(expfig,'Name','BLOCHUS: Switch-off Ramp'); + + case 'Pulse' + ax1 = copyobj(gui.axes_handles.PulseSetupF,expfig); + ax2 = copyobj(gui.axes_handles.PulseSetupI,expfig); + ax3 = copyobj(gui.axes_handles.PulseB,expfig); + ax4 = copyobj(gui.axes_handles.PulseFFT,expfig); + + set(expfig,'Name','BLOCHUS: Pulse'); + end + % adjust the axes positions + set(ax1,'Position',pos1); + set(ax2,'Position',pos2); + set(ax3,'Position',pos3); + set(ax4,'Position',pos4); + + % adjust the position of the export figure + set(expfig,'Position',[posf(1)+300 posf(2) (posf(3)-300)*0.8 posf(4)*0.8]); + + % show legends + switch get(src,'Label') + case 'Current View' + lgh1 = legend(ax1,'show'); + lgh3 = legend(ax3,'show'); + lgh4 = legend(ax4,'show'); + + case 'Magnetization' + lgh1 = legend(ax1,'show'); + lgh3 = legend(ax3,'show'); + + case 'Switch-off Ramp' + lgh1 = legend(ax1,'show'); + lgh2 = legend(ax2,'show'); + lgh4 = legend(ax4,'show'); + set(lgh4,'Interpreter','latex','Location','best'); + + case 'Pulse' + lgh1 = legend(ax1,'show'); + lgh2 = legend(ax2,'show'); + lgh3 = legend(ax3,'show'); + lgh4 = legend(ax4,'show'); + end + +else + warndlg({'onMenuViewFigure:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/menus/onMenuViewShow.m b/callbacks/menus/onMenuViewShow.m new file mode 100644 index 0000000..9bf2c98 --- /dev/null +++ b/callbacks/menus/onMenuViewShow.m @@ -0,0 +1,98 @@ +function onMenuViewShow(src,~) +%onMenuViewShow handles the extra menu entries +% +% Syntax: +% onMenuViewShow(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onMenuViewShow(src,~) +% +% Other m-files required: +% switchToolTips +% updateStatusInformation +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + switch get(src,'Label') + case 'Tooltips' % switch on/off Tooltips + onoff = get(gui.menu.view_tooltips,'Checked'); + switchToolTips(gui,onoff); + switch onoff + case 'on' + set(gui.menu.view_tooltips,'Checked','off'); + data.info.ToolTips = 0; + case 'off' + set(gui.menu.view_tooltips,'Checked','on'); + data.info.ToolTips = 1; + end + + case 'Figure Toolbar' % switch on/off the default Figure Toolbar + onoff = get(gui.menu.view_toolbar,'Checked'); + switch onoff + case 'on' + set(gui.menu.view_toolbar,'Checked','off'); + viewmenufcn('FigureToolbar'); + case 'off' + set(gui.menu.view_toolbar,'Checked','on'); + viewmenufcn('FigureToolbar'); + end + end + + % update GUI data + setappdata(fig,'gui',gui); + setappdata(fig,'data',data); + % update status bar + updateStatusInformation(fig); + +else + warndlg({'onMenuViewShow:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupNucleus.m b/callbacks/popup/onPopupNucleus.m new file mode 100644 index 0000000..66a032e --- /dev/null +++ b/callbacks/popup/onPopupNucleus.m @@ -0,0 +1,128 @@ +function onPopupNucleus(src,~) +%onPopupNucleus selects the nucleus (proton) to use for the simulation +% +% Syntax: +% onPopupNucleus(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupNucleus(src) +% +% Other m-files required: +% getGyroRatio +% getOmega0 +% onEditValue +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding nucleus + switch val + case 1 + data.basic.nucleus = '1H'; + case 2 + data.basic.nucleus = '2H'; + case 3 + data.basic.nucleus = '3He'; + case 4 + data.basic.nucleus = '7Li'; + case 5 + data.basic.nucleus = '13C'; + case 6 + data.basic.nucleus = '14N'; + case 7 + data.basic.nucleus = '15N'; + case 8 + data.basic.nucleus = '17O'; + case 9 + data.basic.nucleus = '19F'; + case 10 + data.basic.nucleus = '23Na'; + case 11 + data.basic.nucleus = '27Al'; + case 12 + data.basic.nucleus = '29Si'; + case 13 + data.basic.nucleus = '31P'; + case 14 + data.basic.nucleus = '57Fe'; + case 15 + data.basic.nucleus = '63Cu'; + case 16 + data.basic.nucleus = '67Zn'; + case 17 + data.basic.nucleus = '129Xe'; + end + % update the gyromagnetic ration and Larmor frequency accordingly + data.basic.gamma = getGyroRatio(data.basic.nucleus); + data.basic.Omega0 = getOmega0(data.basic.gamma,data.basic.B0)/2/pi; + + % update the GUI data + setappdata(fig,'data',data); + + % update the GUI + set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0)); + set(gui.edit_handles.Gyro,'String',sprintf('%5.4e',data.basic.gamma)); + + % if the pulse panel is activated + switch data.basic.type + case {'pulse','prepolpulse'} + % adapt the B1 amplitude due to the changed gamma value + onEditValue(gui.edit_handles.PulseTtau); + otherwise + % nothing to do + end + +else + warndlg({'onPopupNucleus:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPrePolRamp.m b/callbacks/popup/onPopupPrePolRamp.m new file mode 100644 index 0000000..0196a3e --- /dev/null +++ b/callbacks/popup/onPopupPrePolRamp.m @@ -0,0 +1,223 @@ +function onPopupPrePolRamp(src,~) +%onPopupPrePolRamp selects the pre-polarization switch-off ramp +% +% Syntax: +% onPopupPrePolRamp(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPrePolRamp(src) +% +% Other m-files required: +% getRampParameters; +% plotRamp; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding switch-off ramp + switch val + case 1 % exponential + data.prepol.Ramp = 'exp'; + data.prepol.Tslope = data.prepol.Tramp/10; + data.prepol.Factor = 100; + data.prepol.SwitchFactor = 1; + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','on'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]'); + + case 2 % linear & exponential (generic) + data.prepol.Ramp = 'linexp'; + data.prepol.Tslope = data.prepol.Tramp/2; + data.prepol.Factor = 100; + data.prepol.SwitchFactor = 10; + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','on'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','on'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]'); + + case 3 % half cosine (generic) + data.prepol.Ramp = 'halfcos'; + data.prepol.Tslope = data.prepol.Tramp; + data.prepol.Factor = 100; + data.prepol.SwitchFactor = 1; + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]'); + + case 4 % linear (generic) + data.prepol.Ramp = 'lin'; + data.prepol.Tslope = data.prepol.Tramp; + data.prepol.Factor = 100; + data.prepol.SwitchFactor = 1; + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','on'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]'); + + case 5 % linear (Melton 1995) + data.prepol.Ramp = 'lin'; + + % k / rate + GAMMA = data.prepol.Factor/data.prepol.SwitchFactor; + % corresponding ramp time + Tramp = GAMMA/(data.basic.B0*data.basic.gamma)*1e3; % [ms] + data.prepol.Tramp = Tramp; + data.prepol.Tslope = Tramp; + + switch data.basic.type + case 'prepol' + data.basic.Tsim = Tramp; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','off'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','on'); + set(gui.edit_handles.PrePolTramp,'Enable','off'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','cutoff rate'); + + case 6 % half cosine (MIDI) + data.prepol.Ramp = 'halfcos'; + + Tramp = 1; % [ms] + data.prepol.Tramp = Tramp; + data.prepol.Tslope = Tramp; + data.prepol.Factor = 100; + data.prepol.SwitchFactor = 1; + + switch data.basic.type + case 'prepol' + data.basic.Tsim = Tramp; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + + set(gui.edit_handles.PrePolFactor,'Enable','on'); + set(gui.edit_handles.PrePolTheta,'Enable','on'); + set(gui.edit_handles.PrePolSwitchFactor,'Enable','off'); + set(gui.edit_handles.PrePolTramp,'Enable','off'); + set(gui.edit_handles.PrePolTslope,'Enable','off'); + + set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor)); + set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta)); + set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor)); + set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp)); + set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope)); + + set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]'); + end + + % update GUI data + setappdata(fig,'data',data); + % get ramp parameters + getRampParameters(fig); + % update ramp plot + plotRamp(fig); + +else + warndlg({'onPopupPrePolRamp:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPulseAxis.m b/callbacks/popup/onPopupPulseAxis.m new file mode 100644 index 0000000..2dfaed7 --- /dev/null +++ b/callbacks/popup/onPopupPulseAxis.m @@ -0,0 +1,91 @@ +function onPopupPulseAxis(src,~) +%onPopupPulseAxis sets the orientation of the pulse axis +% +% Syntax: +% onPopupPulseAxis(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPulseAxis(src) +% +% Other m-files required: +% getPulseParameters +% plotBpulse +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding pulse axis + switch val + case 1 + data.pulse.Axis = '+x'; + case 2 + data.pulse.Axis = '-x'; + case 3 + data.pulse.Axis = '+y'; + case 4 + data.pulse.Axis = '-y'; + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(gui.figh); + % get GUI data + data = getappdata(fig,'data'); + % plot pulse + plotBpulse(gui.figh); + +else + warndlg({'onPopupPulseAxis:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPulseDFmode.m b/callbacks/popup/onPopupPulseDFmode.m new file mode 100644 index 0000000..556e929 --- /dev/null +++ b/callbacks/popup/onPopupPulseDFmode.m @@ -0,0 +1,114 @@ +function onPopupPulseDFmode(src,~) +%onPopupPulseDFmode selects the frequency modulation for an adiabatic pulse +% +% Syntax: +% onPopupPulseDFmode(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPulseDFmode(src) +% +% Other m-files required: +% getPulseParameters; +% plotPulse; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding frequency modulation + switch val + case 1 % linear + data.pulse.DFmode = 'lin'; + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + + case 2 % tanh MIDI + data.pulse.DFmode = 'tanhMIDI'; + data.pulse.DFstart = -200; + data.pulse.DFA = 0.7; + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA)); + set(gui.edit_handles.PulseDFA,'Enable','on'); + set(gui.edit_handles.PulseDFB,'Enable','on'); + + case 3 % tanh GMR + data.pulse.DFmode = 'tanhGMR'; + data.pulse.DFstart = -300; + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + + case 4 % exp + data.pulse.DFmode = 'exp'; + data.pulse.DFstart = -300; + data.pulse.DFA = 10; + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA)); + set(gui.edit_handles.PulseDFA,'Enable','on'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(gui.figh); + % get GUI data + data = getappdata(fig,'data'); + % update GUI data + setappdata(fig,'data',data); + % plot pulse + plotBpulse(gui.figh); + +else + warndlg({'onPopupPulseDFmode:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPulseImode.m b/callbacks/popup/onPopupPulseImode.m new file mode 100644 index 0000000..a44732d --- /dev/null +++ b/callbacks/popup/onPopupPulseImode.m @@ -0,0 +1,116 @@ +function onPopupPulseImode(src,~) +%onPopupPulseImode selects the current modulation for an adiabatic pulse +% +% Syntax: +% onPopupPulseImode(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPulseImode(src) +% +% Other m-files required: +% getPulseParameters; +% plotPulse; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding current modulation + switch val + case 1 % linear + data.pulse.Imode = 'lin'; + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + + case 2 % tanh MIDI + data.pulse.Imode = 'tanhMIDI'; + data.pulse.Istart = 0; + data.pulse.IA = 0.5; + data.pulse.IB = 1; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA)); + set(gui.edit_handles.PulseIA,'Enable','on'); + set(gui.edit_handles.PulseIB,'String',num2str(data.pulse.IB)); + set(gui.edit_handles.PulseIB,'Enable','on'); + + case 3 % tanh GMR + data.pulse.Imode = 'tanhGMR'; + data.pulse.Istart = 0; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + + case 4 % exp + data.pulse.Imode = 'exp'; + data.pulse.Istart = 0; + data.pulse.IA = 10; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA)); + set(gui.edit_handles.PulseIA,'Enable','on'); + set(gui.edit_handles.PulseIB,'Enable','off'); + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(gui.figh); + % get GUI data + data = getappdata(fig,'data'); + % update GUI data + setappdata(fig,'data',data); + % plot pulse + plotBpulse(gui.figh); + +else + warndlg({'onPopupPulseDFmode:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPulsePolarization.m b/callbacks/popup/onPopupPulsePolarization.m new file mode 100644 index 0000000..d531903 --- /dev/null +++ b/callbacks/popup/onPopupPulsePolarization.m @@ -0,0 +1,89 @@ +function onPopupPulsePolarization(src,~) +%onPopupPulsePolarization selects the pulse polarization +% +% Syntax: +% onPopupPulsePolarization(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPulsePolarization(src) +% +% Other m-files required: +% getPulseParameters; +% plotPulse; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding pulse polarization + switch val + case 1 % circular + data.pulse.Polarization = 'circular'; + case 2 % linear + data.pulse.Polarization = 'linear'; + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(gui.figh); + % get GUI data + data = getappdata(fig,'data'); + % update GUI data + setappdata(fig,'data',data); + % plot pulse + plotBpulse(gui.figh); + +else + warndlg({'onPopupPulsePolarization:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/popup/onPopupPulseType.m b/callbacks/popup/onPopupPulseType.m new file mode 100644 index 0000000..a73468d --- /dev/null +++ b/callbacks/popup/onPopupPulseType.m @@ -0,0 +1,258 @@ +function onPopupPulseType(src,~) +%onPopupPulseType selects the pulse type +% +% Syntax: +% onPopupPulseType(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPopupPulseType(src) +% +% Other m-files required: +% getPulseParameters; +% plotPulse; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % get the popup menu entry + val = get(src,'Value'); + + % set the corresponding pulse type + switch val + case 1 % pi/2 + data.pulse.Type = 'pi_half'; + set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + % adjust B1 amplitude + data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau))); + set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor)); + % set offset frequency + data.pulse.DFstart = 0; + data.pulse.DFend = 0; + set(gui.text_handles.PulseDF,'String','Offset [Hz]'); + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on'); + set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off'); + % disable all other frequency stuff + set(gui.popup_handles.PulseDFmode,'Enable','off'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + % set current + data.pulse.Istart = 1; + data.pulse.Iend = 1; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off'); + set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off'); + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + set(gui.check_handles.PulseQ,'Enable','off'); + + case 2 % pi + data.pulse.Type = 'pi'; + set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + % adjust B1 amplitude + data.pulse.B1Factor = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.Ttau))); + set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor)); + % set offset frequency + data.pulse.DFstart = 0; + data.pulse.DFend = 0; + set(gui.text_handles.PulseDF,'String','Offset [Hz]'); + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on'); + set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off'); + % disable all other frequency stuff + set(gui.popup_handles.PulseDFmode,'Enable','off'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + % set current + data.pulse.Istart = 1; + data.pulse.Iend = 1; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off'); + set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off'); + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + set(gui.check_handles.PulseQ,'Enable','off'); + + case 3 % free + data.pulse.Type = 'free'; + set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + % set offset frequency + data.pulse.DFstart = 0; + data.pulse.DFend = 0; + set(gui.text_handles.PulseDF,'String','Offset [Hz]'); + set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on'); + set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off'); + % disable all other frequency stuff + set(gui.popup_handles.PulseDFmode,'Enable','off'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + % set current + data.pulse.Istart = 1; + data.pulse.Iend = 1; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off'); + set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off'); + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + set(gui.check_handles.PulseQ,'Enable','off'); + + case 4 % AHP + data.pulse.Type = 'AHP'; + set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau)); + + set(gui.text_handles.PulseDF,'String','start [Hz] end [Hz] A B'); + set(gui.popup_handles.PulseDFmode,'Enable','on'); + set(gui.edit_handles.PulseDFstart,'Enable','on'); + set(gui.edit_handles.PulseDFend,'Enable','on'); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + + data.pulse.Istart = 0; + data.pulse.Iend = 1; + set(gui.popup_handles.PulseImode,'Enable','on'); + set(gui.edit_handles.PulseIstart,'Enable','on','String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIend,'Enable','on','String',num2str(data.pulse.Iend)); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + set(gui.check_handles.PulseQ,'Enable','on'); + + setappdata(fig,'data',data); + onPopupPulseDFmode(gui.popup_handles.PulseDFmode); + data = getappdata(fig,'data'); + setappdata(fig,'data',data); + onPopupPulseImode(gui.popup_handles.PulseImode); + data = getappdata(fig,'data'); + + case 5 % MIDI OR + data.pulse.Type = 'MIDI_OR'; + % calculate number of periods based on current pulse time and fL + data.pulse.MIDINP = ceil(abs(data.pulse.Ttau/1000 * data.basic.Omega0)); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.MIDINP)); + set(gui.text_handles.PulseTtau,'String','Number of periods'); + set(gui.text_handles.PulseDF,'String','Offset [Hz]'); + set(gui.popup_handles.PulseDFmode,'Enable','off'); + data.pulse.DFstart = 0; + data.pulse.DFend = 0; + set(gui.edit_handles.PulseDFstart,'Enable','off','String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFend,'Enable','off','String',num2str(data.pulse.DFend)); + set(gui.edit_handles.PulseDFA,'Enable','off'); + set(gui.edit_handles.PulseDFB,'Enable','off'); + + set(gui.popup_handles.PulseImode,'Enable','off'); + set(gui.edit_handles.PulseIstart,'Enable','on'); + data.pulse.Istart = 0.6; + data.pulse.Iend = 0.6; + set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIend,'Enable','off'); + set(gui.edit_handles.PulseIA,'Enable','off'); + set(gui.edit_handles.PulseIB,'Enable','off'); + set(gui.check_handles.PulseQ,'Enable','off'); + + % update the GUI as if the number of periods would have been + % changed manually + setappdata(fig,'data',data); + onEditValue(gui.edit_handles.PulseTtau); + data = getappdata(fig,'data'); + + case 6 % MIDI AP + data.pulse.Type = 'MIDI_AP'; + % calculate number of periods based on current pulse time and fL + data.pulse.MIDINP = ceil(abs(data.pulse.Ttau/1000 * data.basic.Omega0)); + set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.MIDINP)); + set(gui.text_handles.PulseTtau,'String','Number of periods'); + set(gui.text_handles.PulseDF,'String','start [Hz] end [Hz] A B'); + data.pulse.DFmode = 'tanhMIDI'; + set(gui.popup_handles.PulseDFmode,'Enable','on','Value',2); + data.pulse.DFstart = -200; + data.pulse.DFend = 0; + set(gui.edit_handles.PulseDFstart,'Enable','on','String',num2str(data.pulse.DFstart)); + set(gui.edit_handles.PulseDFend,'Enable','on','String',num2str(data.pulse.DFend)); + data.pulse.DFA = 0.7; + data.pulse.DFB = 0; + set(gui.edit_handles.PulseDFA,'Enable','on','String',num2str(data.pulse.DFA)); + set(gui.edit_handles.PulseDFB,'Enable','on','String',num2str(data.pulse.DFB)); + + data.pulse.Imode = 'tanhMIDI'; + set(gui.popup_handles.PulseImode,'Enable','on','Value',2); + data.pulse.Istart = 0.15; + data.pulse.Iend = 0.6; + set(gui.edit_handles.PulseIstart,'Enable','on','String',num2str(data.pulse.Istart)); + set(gui.edit_handles.PulseIend,'Enable','on','String',num2str(data.pulse.Iend)); + data.pulse.IA = 0.5; + data.pulse.IB = 1; + set(gui.edit_handles.PulseIA,'Enable','on','String',num2str(data.pulse.IA)); + set(gui.edit_handles.PulseIB,'Enable','on','String',num2str(data.pulse.IB)); + set(gui.check_handles.PulseQ,'Enable','off'); + + % update the GUI as if the number of periods would have been + % changed manually + setappdata(fig,'data',data); + onEditValue(gui.edit_handles.PulseTtau); + data = getappdata(fig,'data'); + end + + % update GUI data + setappdata(fig,'data',data); + % update pulse settings + getPulseParameters(fig); + % get GUI data + data = getappdata(fig,'data'); + % update GUI data + setappdata(fig,'data',data); + % plot pulse + plotBpulse(fig); + % update status bar + updateStatusInformation(fig); +else + warndlg({'onPopupPulseType:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/push/onPushAnimate.m b/callbacks/push/onPushAnimate.m new file mode 100644 index 0000000..80bf0d4 --- /dev/null +++ b/callbacks/push/onPushAnimate.m @@ -0,0 +1,264 @@ +function onPushAnimate(src,~) +fig = findobj('Tag','BLOCHUS'); +gui = getappdata(fig,'gui'); +data = getappdata(fig,'data'); + +% change the pushbutton color to indicate that an animation is running +set(src,'BackGroundColor','r'); +pause(0.01); + +NoFrames = 100; +FPS = 24; + +newblue = [0 0.4470 0.7410]; +neworange = [0.8500 0.3250 0.0980]; + +switch data.basic.type + + case 'std' + set(gui.text_handles.Status,'String','Animation running ...'); + pause(0.01); + Mamp = zeros(numel(data.TT),1); + for i=1:numel(data.TT) + Mamp(i,1) = norm(data.MM(i,:)); % amplitude of M + end + + dt = data.TT(end)/NoFrames; + time = 0:dt:data.TT(end); + + axes(gui.axes_handles.MagL); + cla(gui.axes_handles.MagL); + h1 = animatedline('Color','r','LineWidth',2,'Parent',gui.axXYZL); + h2 = animatedline('Color','g','LineWidth',2,'Parent',gui.axXYZL); + h3 = animatedline('Color','b','LineWidth',2,'Parent',gui.axXYZL); + h4 = animatedline('Color','k','LineWidth',2,'LineStyle','--','Parent',gui.axXYZL); + + axes(gui.axes_handles.MagR); + cla(gui.axes_handles.MagR); + h7 = animatedline('Color','r','LineWidth',2,'Parent',gui.axXYZR); + h8 = animatedline('Color','g','LineWidth',2,'Parent',gui.axXYZR); + h9 = animatedline('Color','b','LineWidth',2,'Parent',gui.axXYZR); + h10 = animatedline('Color','k','LineWidth',2,'LineStyle','--','Parent',gui.axXYZR); + + axes(gui.axSphereL); + cla(gui.axSphereL); + hold(gui.axSphereL,'on'); + plotBSphere(18,18,gui.axSphereL); + h5 = animatedline('Color',myui.color.basic,'LineWidth',2,'Parent',gui.axSphereL); + + axes(gui.axSphereR); + cla(gui.axSphereR); + hold(gui.axSphereR,'on'); + plotBSphere(18,18,gui.axSphereR); + h6 = animatedline('Color',myui.color.basic,'LineWidth',2,'Parent',gui.axSphereR); + + for nf = 1:NoFrames-1 + + x1 = data.TT(data.TT>=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.TT=time(nf) & data.results.prepol.t./1e3=time(nf) & data.results.prepol.t./1e3=time(nf) & data.results.prepol.t./1e3= time(nf) + x2 = data.results.prepol.t(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3=time(nf) & tt./1e3=time(nf) & data.results.prepol.t./1e3=time(nf) & data.results.prepol.t./1e3=time(nf) & tt./1e3=time(nf) & tt./1e3. diff --git a/callbacks/push/onPushGrid.m b/callbacks/push/onPushGrid.m new file mode 100644 index 0000000..c329eaa --- /dev/null +++ b/callbacks/push/onPushGrid.m @@ -0,0 +1,66 @@ +function onPushGrid(src,~) +%onPushGrid resets the axes grid to equal size +% +% Syntax: +% onPushGrid(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPushGrid(src) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + set(gui.right,'Widths',[-1 -1],'Heights',[-1 -1]); + +else + warndlg({'onPushAxView:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/callbacks/push/onPushRun.m b/callbacks/push/onPushRun.m new file mode 100644 index 0000000..889fdf9 --- /dev/null +++ b/callbacks/push/onPushRun.m @@ -0,0 +1,611 @@ +function onPushRun(src,~) +%onPushRun starts the calculation +% +% Syntax: +% onPushRun(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% onPushRun(src) +% +% Other m-files required: +% fcn_BLOCHUS_ode +% getFFT +% getMrot +% getOmega0 +% getPulsePhase +% getPulseTimeSeries +% plotResults +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI handle +fig = ancestor(src,'figure','toplevel'); + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + % get GUI data + gui = getappdata(fig,'gui'); + data = getappdata(fig,'data'); + + % change the pushbutton color to indicate that a calculation is running + set(src,'BackGroundColor','r'); + + % basic parameter that are always needed + % z unit vector + zunit = [0 0 1]'; + % initial magnetization [A/m] + Minit = data.basic.Minit(:); + % total simulation time Tsim [s] + Tsim = data.basic.Tsim/1e3; + + % parameter needed for the ODE solver + % simulation type [string] + odeparam.type = data.basic.type; + % equilibrium magnetization [A/m] + odeparam.M0 = data.basic.M0(:); + % primary (Earth's) magnetic field B0 [T] + odeparam.B0 = data.basic.B0; + % longitudinal relaxation time T1 [s] + odeparam.T1 = data.basic.T1relax/1e3; + % transversal relaxation time T2 [s] + odeparam.T2 = data.basic.T2relax/1e3; + % gyromagnetic ratio [rad/s/T] + odeparam.gamma = data.basic.gamma; + + % ODE solver error tolerance + tol = 1e-9; + % ODE solver options + options = odeset('RelTol',tol,'AbsTol',[tol tol tol]); + + % time the calculation + t0 = tic; + switch data.basic.type + case 'std' + % update Info field + set(gui.text_handles.Status,'String','Calculation of relaxation ...'); + pause(0.01); + + % normalized initial magnetization + Minit = Minit./norm(Minit); + % update the corresponding GUI fields + data.basic.Minit = Minit; + set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1))); + set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2))); + set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3))); + + % ODE solver call + % OUTPUT: time T and magnetization M + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % save data + data.results.basic.T = TT; + data.results.basic.M = MM; + + % rotate M into rotating frame of reference + Mrot = getMrot(MM,getOmega0(odeparam.gamma,odeparam.B0).*TT); + data.results.basic.Mrot = Mrot; + + % get FFTof M in the laboratory frame of reference + [Xm,fx] = getFFT(TT,MM(:,1:2)); + data.results.basic.Mspec.fx = fx; + data.results.basic.Mspec.X = Xm; + + % update Info field + set(gui.text_handles.Status,'String','Calculation of relaxation ... finished.'); + pause(0.01); + + case 'prepol' + % update Info field + set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ...'); + pause(0.01); + + % initial magnetization in the direction of B0+Bp + Morient = data.results.prepol.orient*data.results.prepol.Bmax + odeparam.B0*zunit; + % Minit does not get normalized in this case + Minit = Morient;%./norm(Morient); + % because Minit is not normalized to 1, M0 needs to be adjusted + odeparam.M0 = odeparam.B0*zunit; + % update the corresponding GUI fields + set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)/norm(Minit))); + set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)/norm(Minit))); + set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)/norm(Minit))); + + % orientation of the pre-polarization pulse axis + odeparam.orient = data.results.prepol.orient; + + % pre-polarization switch-off ramp parameter + % relaxation during switch-off [0/1] + odeparam.RDS = data.prepol.RDS; + % switch-off ramp type [string] + rampparam.ramp = data.prepol.Ramp; + % amplitude of pre-polarization field + rampparam.Bmax = data.results.prepol.Bmax; + % switch over magnetization (for linexp case) + rampparam.Bstar = data.results.prepol.Bstar; + % switch-off ramp time [s] + rampparam.Tramp = data.prepol.Tramp/1e3; + % switch over ramp time [s] (for linexp case) + rampparam.Tslope = data.prepol.Tslope/1e3; + + % add the ramp parameter to the ode parameter struct + odeparam.rampparam = rampparam; + + % ODE solver call + % OUTPUT: time T and magnetization M + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % normalized magnetization vector at end of switch-off ramp + MMn = MM(end,:)./norm(MM(end,:)); + % "adiabatic quality" p of the switch-off ramp + % -> orientation of M with respect to z_unit + p = dot(MMn(end,:),zunit)./norm(zunit); + + % save data + data.results.basic.T = TT; + data.results.basic.M = MM; + data.results.prepol.p = p; + + % update Info field + set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ... finished.'); + pause(0.01); + + % activate the lab-frame panels to show the results + set(gui.panels.Plot.Mag,'Selection',1); + set(gui.panels.Plot.Sphere,'Selection',1); + + case 'pulse' + % update Info field + set(gui.text_handles.Status,'String','Calculation of excitation pulse ...'); + pause(0.01); + + % normalized initial magnetization + Minit = Minit./norm(Minit); + % update the corresponding GUI fields + data.basic.Minit = Minit; + set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1))); + set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2))); + set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3))); + + % excitation pulse parameter + % relaxation during pulse [0/1] + odeparam.RDP = data.pulse.RDP; + % pulse length [s] + odeparam.Ttau = data.pulse.Ttau/1e3; + % pulse type [string] + pulseparam.PulseType = data.pulse.Type; + % gyromagnetic ratio [rad/s/T] + pulseparam.gamma = odeparam.gamma; + % Larmor frequency [rad] + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + % pulse amplitude [B0] + pulseparam.Amp = odeparam.B0*data.pulse.B1Factor; + % pulse frequency modulation [struct] + pulseparam.fmod = data.results.pulse.fmod; + % pulse current modulation [struct] + pulseparam.Imod = data.results.pulse.Imod; + % auxiliary pulse phase [rad] + pulseparam.phi = 0; + % pulse axis [string] + pulseparam.PulseAxis = data.pulse.Axis; + % pulse polarization [string] + pulseparam.PulsePolarization = data.pulse.Polarization; + % if the discrete MIDI pulses are used add the corresponding + % data + if isfield(data,'pulse_MIDI') + % MIDI pulse data [struct] + pulseparam.MIDI = data.pulse_MIDI; + end + + % add the pulse parameter to the ode parameter struct + odeparam.pulseparam = pulseparam; + + % ODE solver call + % OUTPUT: time T and magnetization M + switch data.pulse.Type + case {'MIDI_OR','MIDI_AP'} + % if Tsim > Ttau extend the discrete time steps + % this is needed because for the discrete pulses + % specific time steps are fed into the solver + Tsim = unique([data.pulse_MIDI.t;(0:1/50e3:Tsim)']); + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),Tsim,Minit,options); + otherwise + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + end + + % save data + data.results.basic.T = TT; + data.results.basic.M = MM; + + % in order to transform M in the rotating frame of reference + % get the pulse phase theta for all simulated time steps + pulseparam.fmod.t = TT; + pulseparam.Imod.t = TT; + pulseparam.t = TT; + % get also the pulse amplitudes at these time steps + [Bpulse,~,~,theta] = getPulseTimeSeries(pulseparam); + + % if the simulation is longer then the pulse (additional + % relaxation afterwards), correct for the pulse phase for + % points AFTER the pulse by simply calculating the phase at + % the end of the pulse + if data.basic.Tsim>data.pulse.Ttau + % correction phase + dphi = zeros(size(theta)); + % pulse length + Ttau = odeparam.Ttau; + % get pulse phase at the end of the pulse + dphival = getPulsePhase(Ttau,0,pulseparam,1); + % and add it to the correction phase for all time steps after + % the pulse + indT = TT>Ttau; + dphi(indT) = dphival; + % set theta for all time steps after the pulse simply to + % omega0*t + theta(indT) = getOmega0(odeparam.gamma,odeparam.B0).*TT(indT); + % rotate M into rotating frame of reference + Mrot = getMrot(MM,theta,dphi); + % get FFTof M in the laboratory frame of reference + [Xm,fmx] = getFFT(TT,MM(:,1:2)); + % get FFT for the pulse + [Xb,fbx] = getFFT(TT(TT<=Ttau),Bpulse(TT<=Ttau,1:2)); + + % update Info field + set(gui.text_handles.Status,'String','Calculation of excitation pulse & relaxation ... finished.'); + pause(0.01); + else + % rotate M into rotating frame of reference + Mrot = getMrot(MM,theta); + % get FFTof M in the laboratory frame of reference + [Xm,fmx] = getFFT(TT,MM(:,1:2)); + % get FFT for the pulse + [Xb,fbx] = getFFT(TT,Bpulse(:,1:2)); + + % update Info field + set(gui.text_handles.Status,'String','Calculation of excitation pulse ... finished.'); + pause(0.01); + end + + % save data + data.results.basic.Mrot = Mrot; + data.results.basic.Mspec.fx = fmx; + data.results.basic.Mspec.X = Xm; + data.results.pulse.Bspec.fx = fbx; + data.results.pulse.Bspec.X = Xb; + + case 'prepolpulse' + + % this is basically the combination of all of the above + % simulation types + + % these times we will later on, so init them already here + % total simulation time [s] + Tsim = data.basic.Tsim/1e3; + % switch-off ramp time [s] + Tramp = data.prepol.Tramp/1e3; + % wait time between switch-off ramp and pulse [s] + Twait = data.pulse.Twait/1e3; + % pulse length [s] + Ttau = data.pulse.Ttau/1e3; + + % check if the simulation time is long enough to process all + % different stages, if not fix it + % NOTE: of course the simulation time can be longer (relaxation) + % after the pulse + if Tsim-(Tramp+Twait+Ttau) < 0 + Tsim = Tramp+Twait+Ttau; + % update the corresponding GUI data and field + data.basic.Tsim = Tsim*1e3; % [ms] + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + % no relaxation after excitation pulse + Trelax = 0; + else + % relaxation after excitation pulse [s] + Trelax = Tsim-(Tramp+Twait+Ttau); + end + + % ------------------------------------------------------------- + %% --- 1.) pre-polarization switch-off ------------------------ + % ------------------------------------------------------------- + % update Info field + set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ...'); + pause(0.01); + + % initial magnetization in the direction of B0+Bp + Morient = data.results.prepol.orient*data.results.prepol.Bmax + odeparam.B0*zunit; + % Minit does not get normalized in this case + Minit = Morient;%./norm(Morient); + % because Minit is not normalized to 1, M0 needs to be adjusted + odeparam.M0 = odeparam.B0*zunit; + % update the corresponding GUI fields + set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)/norm(Minit))); + set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)/norm(Minit))); + set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)/norm(Minit))); + + % update the simulation type + odeparam.type = 'prepol'; + + % orientation of the pre-polarization pulse axis + odeparam.orient = data.results.prepol.orient; + + % pre-polarization switch-off ramp parameter + % relaxation during switch-off [0/1] + odeparam.RDS = data.prepol.RDS; + % switch-off ramp type [string] + rampparam.ramp = data.prepol.Ramp; + % amplitude of pre-polarization field + rampparam.Bmax = data.results.prepol.Bmax; + % switch over magnetization (for linexp case) + rampparam.Bstar = data.results.prepol.Bstar; + % switch-off ramp time [s] + rampparam.Tramp = Tramp; + % switch over ramp time [s] (for linexp case) + rampparam.Tslope = data.prepol.Tslope/1e3; + + % add the ramp parameter to the ode parameter struct + odeparam.rampparam = rampparam; + + % ODE solver call + % OUTPUT: time T and magnetization M + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tramp],Minit,options); + + % data of the first stage + TT1 = TT; + MM1 = MM; + + % normalized magnetization vector at end of switch-off ramp + MMn = MM(end,:)./norm(MM(end,:)); + % "adiabatic quality" p of the switch-off ramp + % -> orientation of M with respect to z_unit + data.results.prepol.p = dot(MMn(end,:),zunit)./norm(zunit); + + % ------------------------------------------------------------- + %% --- 2.) wait time (if any) --------------------------------- + % ------------------------------------------------------------- + if Twait > 0 + % update Info field + set(gui.text_handles.Status,'String','Calculation of wait time ...'); + pause(0.01); + % initial magnetization is the end of the switch-off ramp + Minit2 = MM1(end,:)'; + % update the simulation type + odeparam.type = 'std'; + + % ODE solver call + % OUTPUT: time T and magnetization M + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Twait],Minit2,options); + + % rotate M into rotating frame of reference + MM2rot = getMrot(MM,getOmega0(odeparam.gamma,odeparam.B0).*TT); + % get the additional phase at the end of the wait time + phiWait = getOmega0(odeparam.gamma,odeparam.B0).*TT(end); + + % because the simulation was done in "local" time + % coordinates, shift the time vector to the end of the + % switch-off ramp + TT2 = TT + Tramp; + % save data + MM2 = MM; + % initial magnetization for the pulse is the end of the + % wait time period + Minit3 = MM2(end,:)'; + else + % if wait time is 0, use dummy values + TT2 = []; + MM2 = []; + MM2rot = []; + phiWait = 0; + % initial magnetization for the pulse is the end of the + % switch-off ramp + Minit3 = MM1(end,:)'; + end + + % ------------------------------------------------------------- + %% --- 3.) excitation pulse ----------------------------------- + % ------------------------------------------------------------- + + % update the simulation type + odeparam.type = 'pulse'; + + % excitation pulse parameter + % relaxation during pulse [0/1] + odeparam.RDP = data.pulse.RDP; + % pulse length [s] + odeparam.Ttau = Ttau; + + % pulse type [string] + pulseparam.PulseType = data.pulse.Type; + % gyromagnetic ratio [rad/s/T] + pulseparam.gamma = odeparam.gamma; + % Larmor frequency [rad] + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + % pulse amplitude [B0] + pulseparam.Amp = odeparam.B0*data.pulse.B1Factor; + % pulse frequency modulation [struct] + pulseparam.fmod = data.results.pulse.fmod; + % pulse current modulation [struct] + pulseparam.Imod = data.results.pulse.Imod; + % auxiliary pulse phase [rad] + pulseparam.phi = 0; + % pulse axis [string] + pulseparam.PulseAxis = data.pulse.Axis; + % pulse polarization [string] + pulseparam.PulsePolarization = data.pulse.Polarization; + % if the discrete MIDI pulses are used add the corresponding + % data + if isfield(data,'pulse_MIDI') + % MIDI pulse data [struct] + pulseparam.MIDI = data.pulse_MIDI; + end + + % add the pulse parameter to the ode parameter struct + odeparam.pulseparam = pulseparam; + + % update Info field + set(gui.text_handles.Status,'String','Calculation of excitation pulse ...'); + pause(0.01); + + % if there is a time span after the pulse + if abs(Trelax) > eps + % the "local" simulation time is prolonged + Tsim1 = Ttau+Trelax; + else + % otherwise the "local" simulation time is simply the pulse + % length + Tsim1 = Ttau; + end + + % ODE solver call + % OUTPUT: time T and magnetization M + switch data.pulse.Type + case {'MIDI_OR','MIDI_AP'} + % if Tsim1 > Ttau extend the discrete time steps + % this is needed because for the discrete pulses + % specific time steps are fed into the solver + Tsim1 = unique([data.pulse_MIDI.t;(0:1/50e3:Tsim1)']); + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),Tsim1,Minit3,options); + otherwise + [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim1],Minit3,options); + end + + % in order to transform M in the rotating frame of reference + % get the pulse phase theta for all simulated time steps + pulseparam.fmod.t = TT; + pulseparam.Imod.t = TT; + pulseparam.t = TT; + % get also the pulse amplitudes at these time steps + [Bpulse,~,~,theta] = getPulseTimeSeries(pulseparam); + + % if the simulation is longer then the pulse (additional + % relaxation afterwards), correct for the pulse phase for + % points AFTER the pulse by simply calculating the phase at + % the end of the pulse + if abs(Trelax) > eps%max(Tsim1)>Ttau + % correction phase + dphi = zeros(size(theta)); + % get pulse phase at the end of the pulse + dphival = getPulsePhase(Ttau,0,pulseparam,1); + % and add it to the correction phase for all time steps after + % the pulse + indT = TT>Ttau; + dphi(indT) = dphival; + % set theta for all time steps after the pulse simply to + % omega0*t + theta(indT) = getOmega0(odeparam.gamma,odeparam.B0).*TT(indT); + % rotate M into rotating frame of reference + % and account for the phase from the wait time before the + % pulse + MM3rot = getMrot(MM,theta,dphi+phiWait); + % get FFT pulse B-field + [Xb,fbx] = getFFT(TT(TT<=Ttau),Bpulse(TT<=Ttau,1:2)); + + % update Info field + set(gui.text_handles.Status,'String',['Calculation of excitation pulse',... + ' & relaxation ... finished.']); + pause(0.01); + else + % rotate M into rotating frame of reference + % and account for the phase from the wait time before the + % pulse + MM3rot = getMrot(MM,theta,phiWait); + % get FFT pulse B-field + [Xb,fbx] = getFFT(TT,Bpulse(:,1:2)); + + % update Info field + set(gui.text_handles.Status,'String','Calculation of excitation pulse ... finished.'); + pause(0.01); + end + + % ------------------------------------------------------------- + %% --- 4.) final data merging --------------------------------- + % ------------------------------------------------------------- + % because the simulation was done in "local" time + % coordinates, shift the time vector to the end of the + % wait time after the switch-off + TT3 = TT + Tramp + Twait; + % save data + MM3 = MM; + + % combine data from all stages + TT = [TT1;TT2;TT3]; + MM = [MM1;MM2;MM3]; + % because there is no M in the rotating frame of reference + % during the switch-off ramp, use the lab-frame data instead + MMrot = [MM1;MM2rot;MM3rot]; + + % remove possible duplicate points + [TT,ix] = unique(TT); + MM = MM(ix,:); + MMrot = MMrot(ix,:); + + % save combined data + data.results.basic.T = TT; + data.results.basic.M = MM; + data.results.basic.Mrot = MMrot; + + % get FFT for the combined M + [Xm,fmx] = getFFT(TT,MM(:,1:2)); + data.results.basic.Mspec.fx = fmx; + data.results.basic.Mspec.X = Xm; + % save pulse FFT + data.results.pulse.Bspec.fx = fbx; + data.results.pulse.Bspec.X = Xb; + + end + % time the calculation + data.info.Timer = toc(t0); + + % update GUI data + setappdata(fig,'data',data); + % plot results + plotResults(fig); + % update status bar + updateStatusInformation(fig); + % activate animation button + set(gui.push_handles.Animate,'Enable','on'); + + % change the pushbutton color back to green + set(src,'BackGroundColor','g'); + +else + warndlg({'onPushRun:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS.html b/doc/blochus/BLOCHUS/BLOCHUS.html new file mode 100644 index 0000000..0a6e019 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS.html @@ -0,0 +1,170 @@ + + + + Description of BLOCHUS + + + + + + + + + + + +

BLOCHUS +

+ +

PURPOSE ^

+
is a graphical user interface (GUI) to simulate NMR spin dynamics
+ +

SYNOPSIS ^

+
function BLOCHUS
+ +

DESCRIPTION ^

+
BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+based on the Bloch equations
+
+ Syntax:
+       BLOCHUS
+
+ Inputs:
+       none
+
+ Outputs:
+       none
+
+ Example:
+       BLOCHUS
+
+ Other m-files required:
+       BLOCHUS_createGUI.m
+       BLOCHUS_loadDefaults.m
+       calculateGuiOnMonitorPosition.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function BLOCHUS
+0002 %BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+0003 %based on the Bloch equations
+0004 %
+0005 % Syntax:
+0006 %       BLOCHUS
+0007 %
+0008 % Inputs:
+0009 %       none
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       BLOCHUS
+0016 %
+0017 % Other m-files required:
+0018 %       BLOCHUS_createGUI.m
+0019 %       BLOCHUS_loadDefaults.m
+0020 %       calculateGuiOnMonitorPosition.m
+0021 %
+0022 % Subfunctions:
+0023 %       none
+0024 %
+0025 % MAT-files required:
+0026 %       none
+0027 %
+0028 % See also BLOCHUS
+0029 % Author: Thomas Hiller
+0030 % email: thomas.hiller[at]leibniz-liag.de
+0031 % License: GNU GPLv3 (at end)
+0032 
+0033 %------------- BEGIN CODE --------------
+0034 
+0035 %% GUI 'header' info and default GUI settings
+0036 myui.version = '0.1.0';
+0037 myui.date = '15.05.2020';
+0038 myui.author = 'Thomas Hiller';
+0039 myui.email = 'thomas.hiller[at]leibniz-liag.de';
+0040 
+0041 myui.fontsize = 9;
+0042 myui.axfontsize = 11;
+0043 myui.linewidth = 2;
+0044 myui.color.basic = [143 188 143]./255;
+0045 myui.color.prepol = [222 184 135]./255;
+0046 myui.color.prepolB = [0.635 0.078 0.184];
+0047 myui.color.wait = [240 128 128]./255;
+0048 myui.color.pulse = [100 149 237]./255;
+0049 
+0050 %% Default data settings
+0051 data = BLOCHUS_loadDefaults;
+0052 
+0053 %% GUI initialization
+0054 gui.figh = figure('Name','BLOCHUS - BLOCHUniversalSimulator',...
+0055     'NumberTitle','off','Tag','BLOCHUS','ToolBar','none','MenuBar','none',...
+0056     'SizeChangedFcn',@onFigureSizeChange);
+0057 
+0058 % position on screen
+0059 pos = BLOCHUS_setPositionOnScreen;
+0060 set(gui.figh,'Position',pos);
+0061 
+0062 %% GUI data
+0063 gui.myui = myui;
+0064 
+0065 % save the data struct within the GUI
+0066 setappdata(gui.figh,'data',data);
+0067 setappdata(gui.figh,'gui',gui);
+0068 
+0069 %% Create GUI elements
+0070 BLOCHUS_createGUI(gui.figh,true);
+0071 % update status bar
+0072 updateStatusInformation(gui.figh);
+0073 
+0074 end
+0075 
+0076 %------------- END OF CODE --------------
+0077 
+0078 %% License:
+0079 % GNU GPLv3
+0080 %
+0081 % BLOCHUS
+0082 % Copyright (C) 2019 Thomas Hiller
+0083 %
+0084 % This program is free software: you can redistribute it and/or modify
+0085 % it under the terms of the GNU General Public License as published by
+0086 % the Free Software Foundation, either version 3 of the License, or
+0087 % (at your option) any later version.
+0088 %
+0089 % This program is distributed in the hope that it will be useful,
+0090 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0091 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0092 % GNU General Public License for more details.
+0093 %
+0094 % You should have received a copy of the GNU General Public License
+0095 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createGUI.html b/doc/blochus/BLOCHUS/BLOCHUS_createGUI.html new file mode 100644 index 0000000..afd83ba --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createGUI.html @@ -0,0 +1,249 @@ + + + + Description of BLOCHUS_createGUI + + + + + + + + + + + +

BLOCHUS_createGUI +

+ +

PURPOSE ^

+
controls the creation of all GUI elements
+ +

SYNOPSIS ^

+
function BLOCHUS_createGUI(h,wbon)
+ +

DESCRIPTION ^

+
BLOCHUS_createGUI controls the creation of all GUI elements
+
+ Syntax:
+       BLOCHUS_createGUI(h)
+
+ Inputs:
+       h - figure handle
+       wbon - show waitbar (yes=true, no=false)
+
+ Outputs:
+       none
+
+ Example:
+       BLOCHUS_createGUI(h,true)
+
+ Other m-files required:
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: +
    +
  • BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+ + + + +

SOURCE CODE ^

+
0001 function BLOCHUS_createGUI(h,wbon)
+0002 %BLOCHUS_createGUI controls the creation of all GUI elements
+0003 %
+0004 % Syntax:
+0005 %       BLOCHUS_createGUI(h)
+0006 %
+0007 % Inputs:
+0008 %       h - figure handle
+0009 %       wbon - show waitbar (yes=true, no=false)
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       BLOCHUS_createGUI(h,true)
+0016 %
+0017 % Other m-files required:
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 %% get GUI data
+0033 data = getappdata(h,'data');
+0034 gui = getappdata(h,'gui');
+0035 myui = gui.myui;
+0036 
+0037 %% initialize wait bar
+0038 if wbon
+0039     hwb = waitbar(0,'loading ...','Name','BLOCHUS initialization','Visible','off');
+0040     steps = 6;
+0041     if ~isempty(h)
+0042         posf = get(h,'Position');
+0043         set(hwb,'Units','Pixel')
+0044         posw = get(hwb,'Position');
+0045         set(hwb,'Position',[posf(1)+posf(3)/2-posw(3)/2 posf(2)+posf(4)/2-posw(4)/2 posw(3:4)]);
+0046     end
+0047     set(hwb,'Visible','on');
+0048 end
+0049 
+0050 
+0051 
+0052 %% uimenus
+0053 if wbon
+0054     waitbar(1/steps,hwb,'loading GUI elements - menus');
+0055 end
+0056 gui = BLOCHUS_createMenus(gui);
+0057 
+0058 %% MAIN GUI "BOX"
+0059 gui.main = uix.VBox('Parent',gui.figh,'Visible','off');
+0060 
+0061 % top part for settings and plots
+0062 gui.top = uix.HBox('Parent',gui.main);
+0063 % bottom part for the status bar
+0064 gui.bottom = uix.HBox('Parent',gui.main);
+0065 set(gui.main,'Heights',[-1 20]);
+0066 
+0067 % top left contains the three main panels plus the control panel
+0068 gui.leftTop = uix.VBox('Parent',gui.top);
+0069 % all plots in a flexible grid on the right side
+0070 gui.right = uix.GridFlex('Parent',gui.top,'Spacing',7);
+0071 set(gui.top,'Widths',[330 -1]);
+0072 set(gui.top,'MinimumWidths',[330 200]);
+0073 
+0074 % the three main panels are inside a vertically scrollable panel
+0075 gui.left = uix.ScrollingPanel('Parent',gui.leftTop);
+0076 % but the control panel is fixed to the bottom
+0077 gui.panels.Control.main = uix.BoxPanel('Parent',gui.leftTop,'Title','Control',...
+0078     'TitleColor',[164 164 164]./255,'ForegroundColor','k');
+0079 set(gui.leftTop,'Heights',[-1 53]);
+0080 
+0081 %% A. settings column
+0082 gui.panels.main = uix.VBox('Parent',gui.left);
+0083 gui.panels.Basic.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Basics',...
+0084     'TitleColor',myui.color.basic,'ForegroundColor','k','MinimizeFcn',@minimizePanel);
+0085 gui.panels.PrePol.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Pre-polarization switch-off',...
+0086     'TitleColor',myui.color.prepol,'ForegroundColor','k','MinimizeFcn',@minimizePanel);
+0087 gui.panels.Pulse.main = uix.BoxPanel('Parent',gui.panels.main,'Title','Pulse',...
+0088     'TitleColor',myui.color.pulse,'ForegroundColor','k','MinimizeFcn',@minimizePanel);
+0089 uix.Empty('Parent',gui.panels.main);
+0090 
+0091 % adjust the heights of all left-column-panels
+0092 % edit and popup elements are 24
+0093 edith = 24;
+0094 % panel header is always 22 high
+0095 headerh = 22;
+0096 % spacing is set to 3
+0097 spacing = 3;
+0098 % maximal height of each panel
+0099 basic_max = 7*edith+8*spacing+headerh;
+0100 prepol_max = 9*edith+10*spacing+headerh;
+0101 pulse_max = 13*edith+14*spacing+headerh;
+0102 % save the heights information (needed for minimizing the panels)
+0103 myui.heights = [22 22 22 -1; basic_max prepol_max pulse_max -1];
+0104 set(gui.panels.main,'Heights',myui.heights(2,:),...
+0105     'MinimumHeights',[22 22 22 0]);
+0106 % the 'MinimumHeights' guarantees that the three panels fit into the
+0107 % ScrollingPanel when the GUI becomes smaller
+0108 set(gui.left,'Heights',-1,'MinimumHeights',basic_max+prepol_max+pulse_max);
+0109 
+0110 if wbon
+0111     waitbar(2/steps,hwb,'loading GUI elements - Basic panel');
+0112 end
+0113 [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui);
+0114 
+0115 if wbon
+0116     waitbar(2/steps,hwb,'loading GUI elements - PrePol panel');
+0117 end
+0118 [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui);
+0119 
+0120 if wbon
+0121     waitbar(3/steps,hwb,'loading GUI elements - Pulse panel');
+0122 end
+0123 [gui,myui] = BLOCHUS_createPanelPulse(data,gui,myui);
+0124 
+0125 if wbon
+0126     waitbar(5/steps,hwb,'loading GUI elements - Control panel');
+0127 end
+0128 [gui,myui] = BLOCHUS_createPanelControl(gui,myui);
+0129 
+0130 if wbon
+0131     waitbar(6/steps,hwb,'loading GUI elements - Plot panel');
+0132 end
+0133 [gui,myui] = BLOCHUS_createGridPlots(gui,myui);
+0134 
+0135 % delete wait bar
+0136 if wbon
+0137     delete(hwb);
+0138 end
+0139 
+0140 [gui,myui] = BLOCHUS_createStatusbar(gui,myui);
+0141 
+0142 % make the main GUI visible
+0143 set(gui.main,'Visible','on');
+0144 
+0145 %% enable all menus
+0146 set(gui.menu.file,'Enable','on');
+0147 set(gui.menu.view,'Enable','on');
+0148 set(gui.menu.help,'Enable','on');
+0149 
+0150 %% update the GUI data
+0151 gui.myui = myui;
+0152 setappdata(gui.figh,'gui',gui);
+0153 setappdata(gui.figh,'data',data);
+0154 set(gui.text_handles.Status,'String','BLOCHUS successfully started');
+0155 
+0156 end
+0157 
+0158 %------------- END OF CODE --------------
+0159 
+0160 %% License:
+0161 % GNU GPLv3
+0162 %
+0163 % BLOCHUS
+0164 % Copyright (C) 2019 Thomas Hiller
+0165 %
+0166 % This program is free software: you can redistribute it and/or modify
+0167 % it under the terms of the GNU General Public License as published by
+0168 % the Free Software Foundation, either version 3 of the License, or
+0169 % (at your option) any later version.
+0170 %
+0171 % This program is distributed in the hope that it will be useful,
+0172 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0173 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0174 % GNU General Public License for more details.
+0175 %
+0176 % You should have received a copy of the GNU General Public License
+0177 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createGridPlots.html b/doc/blochus/BLOCHUS/BLOCHUS_createGridPlots.html new file mode 100644 index 0000000..b556ed6 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createGridPlots.html @@ -0,0 +1,264 @@ + + + + Description of BLOCHUS_createGridPlots + + + + + + + + + + + +

BLOCHUS_createGridPlots +

+ +

PURPOSE ^

+
creates the "Plots" grid panel
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createGridPlots creates the "Plots" grid panel
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+
+ Inputs:
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+
+ Other m-files required:
+       findjobj.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+0002 %BLOCHUS_createGridPlots creates the "Plots" grid panel
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+0006 %
+0007 % Inputs:
+0008 %       gui - figure gui elements structure
+0009 %       myui - individual GUI settings structure
+0010 %
+0011 % Outputs:
+0012 %       gui
+0013 %       myui
+0014 %
+0015 % Example:
+0016 %       [gui,myui] = BLOCHUS_createGridPlots(gui,myui)
+0017 %
+0018 % Other m-files required:
+0019 %       findjobj.m
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 %% first create the individual tab panels
+0035 %(1,1) magnetization
+0036 gui.panels.Plot.Mag = uix.TabPanel('Parent',gui.right,...
+0037     'BackgroundColor',myui.color.basic);
+0038 %(2,1) pre-polarization settings
+0039 gui.panels.Plot.PrePol = uix.TabPanel('Parent',gui.right,...
+0040     'BackgroundColor',myui.color.prepol);
+0041 %(1,2) bloch sphere
+0042 gui.panels.Plot.Sphere = uix.TabPanel('Parent',gui.right,...
+0043     'BackgroundColor',myui.color.basic);
+0044 %(2,2) pulse settings
+0045 gui.panels.Plot.Pulse = uix.TabPanel('Parent',gui.right,...
+0046     'BackgroundColor',myui.color.pulse); 
+0047 
+0048 %% magnetization
+0049 % because Matlab is buggy when resizing, put uicontainer inside the panels
+0050 plotXYZL = uicontainer('Parent',gui.panels.Plot.Mag);
+0051 plotXYZR = uicontainer('Parent',gui.panels.Plot.Mag);
+0052 plotXYZFFT = uicontainer('Parent',gui.panels.Plot.Mag);
+0053 gui.panels.Plot.Mag.TabTitles = {'Lab frame','Rot frame','FFT'};
+0054 gui.panels.Plot.Mag.TabWidth = 75;
+0055 
+0056 gui.axes_handles.MagL = axes('Parent',plotXYZL,'Box','on');
+0057 gui.axes_handles.MagR = axes('Parent',plotXYZR,'Box','on');
+0058 gui.axes_handles.MagFFT = axes('Parent',plotXYZFFT,'Box','on');
+0059 clearSingleAxis(gui.axes_handles.MagL);
+0060 clearSingleAxis(gui.axes_handles.MagR);
+0061 clearSingleAxis(gui.axes_handles.MagFFT);
+0062 
+0063 %% PrePol tab panel
+0064 plotBpre = uicontainer('Parent',gui.panels.Plot.PrePol);
+0065 plotalpha = uicontainer('Parent',gui.panels.Plot.PrePol);
+0066 plotdadt = uicontainer('Parent',gui.panels.Plot.PrePol);
+0067 plotwda = uicontainer('Parent',gui.panels.Plot.PrePol);
+0068 gui.panels.Plot.PrePol.TabTitles = {'Bp ramp',...
+0069     [char(hex2dec('3B1')),'=',char(hex2dec('2221')),'B0 B',],...
+0070     ['d',char(hex2dec('3B1')),' / dt'],...
+0071     'adiab. cond.'};
+0072 gui.panels.Plot.PrePol.TabWidth = 75;
+0073 
+0074 gui.axes_handles.Bpre = axes('Parent',plotBpre,'Box','on');
+0075 gui.axes_handles.alpha = axes('Parent',plotalpha,'Box','on');
+0076 gui.axes_handles.dadt = axes('Parent',plotdadt,'Box','on');
+0077 gui.axes_handles.wda = axes('Parent',plotwda,'Box','on');
+0078 clearSingleAxis(gui.axes_handles.Bpre);
+0079 clearSingleAxis(gui.axes_handles.alpha);
+0080 clearSingleAxis(gui.axes_handles.dadt);
+0081 clearSingleAxis(gui.axes_handles.wda);
+0082 
+0083 %% 3D Bloch Sphere
+0084 
+0085 % lab frame (L) and rot frame (R)
+0086 SphereBoxL = uix.VBox('Parent',gui.panels.Plot.Sphere,'Spacing',3,'Padding',3);
+0087 SphereBoxR = uix.VBox('Parent',gui.panels.Plot.Sphere,'Spacing',3,'Padding',3);
+0088 gui.panels.Plot.Sphere.TabTitles = {'Lab frame','Rot frame'};
+0089 gui.panels.Plot.Sphere.TabWidth = 75;
+0090 
+0091 % add view buttons and axes to the panel
+0092 plotSphereL = uicontainer('Parent',SphereBoxL);
+0093 SphereButtonsL = uix.HButtonBox('Parent',SphereBoxL);
+0094 gui.push_handles.XZL = uicontrol('Parent',SphereButtonsL,...
+0095     'String','XZ',...
+0096     'Tag','XZ',...
+0097     'FontSize',myui.fontsize,...
+0098     'Callback',@onPushAxView);
+0099 gui.push_handles.YZL = uicontrol('Parent',SphereButtonsL,...
+0100     'String','YZ',...
+0101     'Tag','YZ',...
+0102     'FontSize',myui.fontsize,...
+0103     'Callback',@onPushAxView);
+0104 gui.push_handles.XYL = uicontrol('Parent',SphereButtonsL,...
+0105     'String','XY',...
+0106     'Tag','XY',...
+0107     'FontSize',myui.fontsize,...
+0108     'Callback',@onPushAxView);
+0109 gui.push_handles.DL = uicontrol('Parent',SphereButtonsL,...
+0110     'String','3D',...
+0111     'Tag','3D',...
+0112     'FontSize',myui.fontsize,...
+0113     'Callback',@onPushAxView);
+0114 set(SphereBoxL,'Heights',[-1 30]);
+0115 gui.axes_handles.SphereL = axes('Parent',plotSphereL,'Box','on');
+0116 view(3); axis equal;
+0117 clearSingleAxis(gui.axes_handles.SphereL);
+0118 
+0119 % add view buttons and axes to the panel
+0120 plotSphereR = uicontainer('Parent',SphereBoxR);
+0121 SphereButtonsR = uix.HButtonBox('Parent',SphereBoxR);
+0122 gui.push_handles.XZR = uicontrol('Parent',SphereButtonsR,...
+0123     'String','XZ',...
+0124     'Tag','XZ',...
+0125     'FontSize',myui.fontsize,...
+0126     'Callback',@onPushAxView);
+0127 gui.push_handles.YZR = uicontrol('Parent',SphereButtonsR,...
+0128     'String','YZ',...
+0129     'Tag','YZ',...
+0130     'FontSize',myui.fontsize,...
+0131     'Callback',@onPushAxView);
+0132 gui.push_handles.XYR = uicontrol('Parent',SphereButtonsR,...
+0133     'String','XY',...
+0134     'Tag','XY',...
+0135     'FontSize',myui.fontsize,...
+0136     'Callback',@onPushAxView);
+0137 gui.push_handles.DR = uicontrol('Parent',SphereButtonsR,...
+0138     'String','3D',...
+0139     'Tag','3D',...
+0140     'FontSize',myui.fontsize,...
+0141     'Callback',@onPushAxView);
+0142 set(SphereBoxR,'Heights',[-1 30]);
+0143 gui.axes_handles.SphereR = axes('Parent',plotSphereR,'Box','on');
+0144 view(3); axis equal;
+0145 clearSingleAxis(gui.axes_handles.SphereR);
+0146 
+0147 %% Pulse tab panel
+0148 plotPulseSetup = uix.HBox('Parent',gui.panels.Plot.Pulse);
+0149 plotPulseB = uicontainer('Parent',gui.panels.Plot.Pulse);
+0150 plotPulseFFT = uicontainer('Parent', gui.panels.Plot.Pulse);
+0151 gui.panels.Plot.Pulse.TabTitles = {'Pulse setup','Pulse','FFT'};
+0152 gui.panels.Plot.Pulse.TabWidth = 75;
+0153 
+0154 plotPulseSetupF = uicontainer('Parent',plotPulseSetup);
+0155 plotPulseSetupI = uicontainer('Parent',plotPulseSetup);
+0156 gui.axes_handles.PulseSetupF = axes('Parent',plotPulseSetupF,'Box','on');
+0157 gui.axes_handles.PulseSetupI = axes('Parent',plotPulseSetupI,'Box','on');
+0158 
+0159 gui.axes_handles.PulseB = axes('Parent',plotPulseB,'Box','on');
+0160 gui.axes_handles.PulseFFT = axes('Parent',plotPulseFFT,'Box','on');
+0161 clearSingleAxis(gui.axes_handles.PulseSetupF);
+0162 clearSingleAxis(gui.axes_handles.PulseSetupI);
+0163 clearSingleAxis(gui.axes_handles.PulseB);
+0164 clearSingleAxis(gui.axes_handles.PulseFFT);
+0165 
+0166 % arrange the panels in a 2x2 grid
+0167 set(gui.right,'Widths',[-1 -1],'Heights',[-1 -1]);
+0168 
+0169 end
+0170 
+0171 %------------- END OF CODE --------------
+0172 
+0173 %% License:
+0174 % GNU GPLv3
+0175 %
+0176 % BLOCHUS
+0177 % Copyright (C) 2019 Thomas Hiller
+0178 %
+0179 % This program is free software: you can redistribute it and/or modify
+0180 % it under the terms of the GNU General Public License as published by
+0181 % the Free Software Foundation, either version 3 of the License, or
+0182 % (at your option) any later version.
+0183 %
+0184 % This program is distributed in the hope that it will be useful,
+0185 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0186 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0187 % GNU General Public License for more details.
+0188 %
+0189 % You should have received a copy of the GNU General Public License
+0190 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createMenus.html b/doc/blochus/BLOCHUS/BLOCHUS_createMenus.html new file mode 100644 index 0000000..8b3b816 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createMenus.html @@ -0,0 +1,186 @@ + + + + Description of BLOCHUS_createMenus + + + + + + + + + + + +

BLOCHUS_createMenus +

+ +

PURPOSE ^

+
creates all GUI menus
+ +

SYNOPSIS ^

+
function gui = BLOCHUS_createMenus(gui)
+ +

DESCRIPTION ^

+
BLOCHUS_createMenus creates all GUI menus
+
+ Syntax:
+       gui = NUCLEUSinv_createMenus(gui)
+
+ Inputs:
+       gui - figure gui elements structure
+
+ Outputs:
+       gui
+
+ Example:
+       gui = BLOCHUS_createMenus(gui)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function gui = BLOCHUS_createMenus(gui)
+0002 %BLOCHUS_createMenus creates all GUI menus
+0003 %
+0004 % Syntax:
+0005 %       gui = NUCLEUSinv_createMenus(gui)
+0006 %
+0007 % Inputs:
+0008 %       gui - figure gui elements structure
+0009 %
+0010 % Outputs:
+0011 %       gui
+0012 %
+0013 % Example:
+0014 %       gui = BLOCHUS_createMenus(gui)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 %% 1. File
+0033 gui.menu.file = uimenu(gui.figh,...
+0034     'Label','File','Enable','off');
+0035 
+0036 % 1.1 Import
+0037 gui.menu.file_import = uimenu(gui.menu.file,...
+0038     'Label','Import','Enable','on');
+0039 
+0040 % 1.1.1 BLOCHUS session file
+0041 gui.menu.file_import_session = uimenu(gui.menu.file_import,...
+0042     'Label','Session file','Callback',@onMenuImport);
+0043 
+0044 % 1.2 Export
+0045 gui.menu.file_export = uimenu(gui.menu.file,...
+0046     'Label','Export');
+0047 
+0048 % 1.2.1 BLOCHUS session file
+0049 gui.menu.file_export_session = uimenu(gui.menu.file_export,...
+0050     'Label','Session file','Callback',@onMenuExport);
+0051 
+0052 % 1.3 Restart
+0053 gui.menu.file_restart = uimenu(gui.menu.file,...
+0054     'Label','Restart','Separator','on','Callback',@onMenuRestartQuit);
+0055 
+0056 % 1.4 Quit
+0057 gui.menu.file_quit = uimenu(gui.menu.file,...
+0058     'Label','Quit','Separator','on','Callback',@onMenuRestartQuit);
+0059 
+0060 %% 2. Extras
+0061 gui.menu.view = uimenu(gui.figh,...
+0062     'Label','View','Enable','off');
+0063 % 2.1 Tooltips (on/off)
+0064 gui.menu.view_tooltips = uimenu(gui.menu.view,...
+0065     'Label','Tooltips','Checked','on','Callback',@onMenuViewShow);
+0066 % 2.2 Figure Toolbar
+0067 gui.menu.view_toolbar = uimenu(gui.menu.view,...
+0068     'Label','Figure Toolbar','Callback',@onMenuViewShow);
+0069 % 2.3.1 Tigures
+0070 gui.menu.view_figures = uimenu(gui.menu.view,...
+0071     'Label','Figures','Separator','on');
+0072 % 2.3.1.1 current
+0073 gui.menu.view_figures_current = uimenu(gui.menu.view_figures,...
+0074     'Label','Current View','Callback',@onMenuViewFigure);
+0075 % 2.3.1.2 only magnetization
+0076 gui.menu.view_figures_mag = uimenu(gui.menu.view_figures,...
+0077     'Label','Magnetization','Callback',@onMenuViewFigure);
+0078 % 2.3.1.3 only ramp
+0079 gui.menu.view_figures_ramp = uimenu(gui.menu.view_figures,...
+0080     'Label','Switch-off Ramp','Enable','off','Callback',@onMenuViewFigure);
+0081 % 2.3.1.4 only pulse
+0082 gui.menu.view_figures_pulse = uimenu(gui.menu.view_figures,...
+0083     'Label','Pulse','Enable','off','Callback',@onMenuViewFigure);
+0084 
+0085 %% 3. Help
+0086 gui.menu.help = uimenu(gui.figh,...
+0087     'Label','Help','Enable','off');
+0088 
+0089 % 3.1 About
+0090 gui.menu.help_about = uimenu(gui.menu.help,...
+0091     'Label','About','Callback',@onMenuHelp);
+0092 
+0093 return
+0094 
+0095 %------------- END OF CODE --------------
+0096 
+0097 %% License:
+0098 % GNU GPLv3
+0099 %
+0100 % BLOCHUS
+0101 % Copyright (C) 2019 Thomas Hiller
+0102 %
+0103 % This program is free software: you can redistribute it and/or modify
+0104 % it under the terms of the GNU General Public License as published by
+0105 % the Free Software Foundation, either version 3 of the License, or
+0106 % (at your option) any later version.
+0107 %
+0108 % This program is distributed in the hope that it will be useful,
+0109 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0110 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0111 % GNU General Public License for more details.
+0112 %
+0113 % You should have received a copy of the GNU General Public License
+0114 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createPanelBasic.html b/doc/blochus/BLOCHUS/BLOCHUS_createPanelBasic.html new file mode 100644 index 0000000..35a3501 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createPanelBasic.html @@ -0,0 +1,321 @@ + + + + Description of BLOCHUS_createPanelBasic + + + + + + + + + + + +

BLOCHUS_createPanelBasic +

+ +

PURPOSE ^

+
creates "Basic" settings panel
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createPanelBasic creates "Basic" settings panel
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createPanelBasic(gui,myui,data)
+
+ Inputs:
+       data - figure data structure
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+
+ Other m-files required:
+       findjobj.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • onEditValue updates all edit field values, checks for wrong inputs and
  • onPopupNucleus selects the nucleus (proton) to use for the simulation
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+0002 %BLOCHUS_createPanelBasic creates "Basic" settings panel
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createPanelBasic(gui,myui,data)
+0006 %
+0007 % Inputs:
+0008 %       data - figure data structure
+0009 %       gui - figure gui elements structure
+0010 %       myui - individual GUI settings structure
+0011 %
+0012 % Outputs:
+0013 %       gui
+0014 %       myui
+0015 %
+0016 % Example:
+0017 %       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+0018 %
+0019 % Other m-files required:
+0020 %       findjobj.m
+0021 %
+0022 % Subfunctions:
+0023 %       none
+0024 %
+0025 % MAT-files required:
+0026 %       none
+0027 %
+0028 % See also: BLOCHUS
+0029 % Author: Thomas Hiller
+0030 % email: thomas.hiller[at]leibniz-liag.de
+0031 % License: GNU GPLv3 (at end)
+0032 
+0033 %------------- BEGIN CODE --------------
+0034 
+0035 %% create all boxes
+0036 gui.panels.Basic.VBox = uix.VBox('Parent', gui.panels.Basic.main,...
+0037     'Spacing',3,'Padding',3);
+0038 
+0039 setNuc = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0040 setB0 = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0041 setT1relax = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0042 setT2relax = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0043 setTsim = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0044 setM0 = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0045 setMinit = uix.HBox('Parent',gui.panels.Basic.VBox,'Spacing',3);
+0046 
+0047 %% Nucleus & gyromagnetic ratio
+0048 gui.text_handles.Nuc = uicontrol('Style','Text',...
+0049     'Parent',setNuc,...
+0050     'String',['Nucleus | ',char(hex2dec('3B3')),' [rad/s/T]'],...
+0051     'FontSize',myui.fontsize);
+0052 uix.Empty('Parent',setNuc);
+0053 tstr = 'Proton for spin simulation.';
+0054 gui.popup_handles.Nuc = uicontrol('Style', 'Popup',...
+0055     'Parent',setNuc,...
+0056     'String',{'1H','2H','3He','7Li','13C','14N','15N','17O','19F',...
+0057     '23Na','27Al','29Si','31P','57Fe','63Cu','67Zn','129Xe'},...
+0058     'Tag','Nuc',...
+0059     'TooltipString',tstr,...
+0060     'FontSize',myui.fontsize,...
+0061     'UserData',struct('Tooltipstr',tstr),...
+0062     'Callback',@onPopupNucleus);
+0063 gui.edit_handles.Gyro = uicontrol('Style','Edit',...
+0064     'Parent',setNuc,...
+0065     'String',sprintf('%5.4e',data.basic.gamma),...
+0066     'Tag','Gyro',...
+0067     'FontSize',myui.fontsize,...
+0068     'Enable','off');
+0069 set(setNuc,'Widths',[120 30 -1 -1]);
+0070 
+0071 %% B0 & omega0
+0072 gui.text_handles.B0 = uicontrol('Style','Text',...
+0073     'Parent',setB0,...
+0074     'String',['B0 [T] | ',char(hex2dec('3C9')),'0 [Hz]'],...
+0075     'FontSize',myui.fontsize);
+0076 uix.Empty('Parent',setB0);
+0077 tstr = '<HTML><b>B</b><sub>0</sub> field strength in [T].<br>';
+0078 gui.edit_handles.B0 = uicontrol('Style','Edit',...
+0079     'Parent', setB0,...
+0080     'String',num2str(data.init.B0(1)),...
+0081     'Tag','basic_B0',...
+0082     'TooltipString',tstr,...
+0083     'FontSize',myui.fontsize,...
+0084     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.B0),...    
+0085     'Callback',@onEditValue);
+0086 tstr = '<HTML><b>Omega</b><sub>0</sub> frequency in [Hz].<br>';
+0087 gui.edit_handles.Omega0 = uicontrol('Style','Edit',...
+0088     'Parent',setB0,...
+0089     'String',sprintf('%7.2f',data.init.Omega0(1)),...
+0090     'Tag','basic_Omega0',...
+0091     'TooltipString',tstr,...
+0092     'FontSize',myui.fontsize,...
+0093     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.Omega0),... 
+0094     'Callback',@onEditValue);
+0095 set(setB0,'Widths',[120 30 -1 -1]);
+0096 
+0097 %% T1 relaxation time
+0098 gui.text_handles.T1relax = uicontrol('Style','Text',...
+0099     'Parent',setT1relax,...
+0100     'String','T1 [ms]',...
+0101     'FontSize',myui.fontsize);
+0102 uix.Empty('Parent',setT1relax);
+0103 tstr = '<HTML>Longitudinal relaxation time T<sub>1</sub> in [ms].<br>';
+0104 gui.edit_handles.T1relax = uicontrol('Style','Edit',...
+0105     'Parent',setT1relax,...
+0106     'String',num2str(data.init.T1relax(1)),...
+0107     'Tag','basic_T1relax',...
+0108     'TooltipString',tstr,...
+0109     'FontSize',myui.fontsize,...
+0110     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.T1relax),... 
+0111     'Callback',@onEditValue);
+0112 set(setT1relax,'Widths',[120 30 -1]);
+0113 
+0114 %% T2 relaxation time
+0115 gui.text_handles.T2relax = uicontrol('Style','Text',...
+0116     'Parent',setT2relax,...
+0117     'String','T2 [ms]',...
+0118     'FontSize',myui.fontsize);
+0119 uix.Empty('Parent',setT2relax);
+0120 tstr = '<HTML>Transversal relaxation time T<sub>2</sub> in [ms].<br>';
+0121 gui.edit_handles.T2relax = uicontrol('Style','Edit',...
+0122     'Parent',setT2relax,...
+0123     'String',num2str(data.init.T2relax(1)),...
+0124     'Tag','basic_T2relax',...
+0125     'TooltipString',tstr,...
+0126     'FontSize',myui.fontsize,...
+0127     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.T2relax),... 
+0128     'Callback',@onEditValue);
+0129 set(setT2relax,'Widths',[120 30 -1]);
+0130 
+0131 %% maximum simulation time
+0132 gui.text_handles.Tsim = uicontrol('Style','Text',...
+0133     'Parent',setTsim,...
+0134     'String','T sim. [ms]',...
+0135     'FontSize',myui.fontsize);
+0136 uix.Empty('Parent',setTsim);
+0137 tstr = '<HTML>Total simulation time T<sub>sim</sub> in [ms].<br>';
+0138 gui.edit_handles.Tsim = uicontrol('Style','Edit',...
+0139     'Parent',setTsim,...
+0140     'String',num2str(data.init.Tsim(1)),...
+0141     'Tag','basic_Tsim',...
+0142     'TooltipString',tstr,...
+0143     'FontSize',myui.fontsize,...
+0144     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.Tsim),... 
+0145     'Callback',@onEditValue);
+0146 set(setTsim,'Widths',[120 30 -1]);
+0147 
+0148 %% equilibrium magnetization M0
+0149 gui.text_handles.M0 = uicontrol('Style','Text',...
+0150     'Parent',setM0,...
+0151     'String','M0 [A/m]',...
+0152     'FontSize',myui.fontsize);
+0153 uix.Empty('Parent',setM0);
+0154 gui.edit_handles.M0x = uicontrol('Style','Edit',...
+0155     'Parent',setM0,...
+0156     'String',num2str(data.basic.M0(1)),...
+0157     'Tag','basic_M0x',...
+0158     'FontSize',myui.fontsize,....
+0159     'Enable','off');
+0160 gui.edit_handles.M0y = uicontrol('Style','Edit',...
+0161     'Parent',setM0,...
+0162     'String',num2str(data.basic.M0(2)),...
+0163     'Tag','basic_M0y',...
+0164     'FontSize',myui.fontsize,...
+0165     'Enable','off');
+0166 gui.edit_handles.M0z = uicontrol('Style','Edit',...
+0167     'Parent',setM0,...
+0168     'String',num2str(data.basic.M0(3)),...
+0169     'Tag','basic_M0z',...
+0170     'FontSize',myui.fontsize,...
+0171     'Enable','off');
+0172 set(setM0,'Widths',[120 30 -1 -1 -1]);
+0173 
+0174 %% initial magnetization Minit
+0175 gui.text_handles.Minit = uicontrol('Style','Text',...
+0176     'Parent',setMinit,...
+0177     'String','Minit [A/m]',...
+0178     'FontSize',myui.fontsize);
+0179 uix.Empty('Parent',setMinit);
+0180 tstr = 'X-comp. of initial magnetization M in [A/m]';
+0181 gui.edit_handles.Minitx = uicontrol('Style','Edit',...
+0182     'Parent',setMinit,...
+0183     'String',num2str(data.basic.Minit(1)),...
+0184     'Tag','basic_Minitx',...
+0185     'TooltipString',tstr,...
+0186     'FontSize',myui.fontsize,...
+0187     'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(1) -1e6 1e6]),...
+0188     'Callback',@onEditValue);
+0189 tstr = 'Y-comp. of initial magnetization M in [A/m]';
+0190 gui.edit_handles.Minity = uicontrol('Style','Edit',...
+0191     'Parent',setMinit,...
+0192     'String',num2str(data.basic.Minit(2)),...
+0193     'Tag','basic_Minity',...
+0194     'TooltipString',tstr,...
+0195     'FontSize',myui.fontsize,...
+0196     'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(2) -1e6 1e6]),...
+0197     'Callback',@onEditValue);
+0198 tstr = 'Z-comp. of initial magnetization M in [A/m]';
+0199 gui.edit_handles.Minitz = uicontrol('Style','Edit',...
+0200     'Parent',setMinit,...
+0201     'String',num2str(data.basic.Minit(3)),...
+0202     'Tag','basic_Minitz',...
+0203     'TooltipString',tstr,...
+0204     'FontSize',myui.fontsize,...
+0205     'UserData',struct('Tooltipstr',tstr,'defaults',[data.basic.Minit(3) -1e6 1e6]),...
+0206     'Callback',@onEditValue);
+0207 set(setMinit,'Widths',[120 30 -1 -1 -1]);
+0208 
+0209 % Java Hack to adjust the text fields vertical alignment
+0210 jh = findjobj(gui.text_handles.Nuc);
+0211 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0212 jh = findjobj(gui.text_handles.B0);
+0213 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0214 jh = findjobj(gui.text_handles.T1relax);
+0215 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0216 jh = findjobj(gui.text_handles.T2relax);
+0217 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0218 jh = findjobj(gui.text_handles.Tsim);
+0219 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0220 jh = findjobj(gui.text_handles.M0);
+0221 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0222 jh = findjobj(gui.text_handles.Minit);
+0223 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0224 
+0225 return
+0226 
+0227 %------------- END OF CODE --------------
+0228 
+0229 %% License:
+0230 % GNU GPLv3
+0231 %
+0232 % BLOCHUS
+0233 % Copyright (C) 2019 Thomas Hiller
+0234 %
+0235 % This program is free software: you can redistribute it and/or modify
+0236 % it under the terms of the GNU General Public License as published by
+0237 % the Free Software Foundation, either version 3 of the License, or
+0238 % (at your option) any later version.
+0239 %
+0240 % This program is distributed in the hope that it will be useful,
+0241 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0242 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0243 % GNU General Public License for more details.
+0244 %
+0245 % You should have received a copy of the GNU General Public License
+0246 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createPanelControl.html b/doc/blochus/BLOCHUS/BLOCHUS_createPanelControl.html new file mode 100644 index 0000000..198806a --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createPanelControl.html @@ -0,0 +1,164 @@ + + + + Description of BLOCHUS_createPanelControl + + + + + + + + + + + +

BLOCHUS_createPanelControl +

+ +

PURPOSE ^

+
creates "Control" panel
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createPanelControl creates "Control" panel
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+
+ Inputs:
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+
+ Other m-files required:
+       findjobj.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+0002 %BLOCHUS_createPanelControl creates "Control" panel
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+0006 %
+0007 % Inputs:
+0008 %       gui - figure gui elements structure
+0009 %       myui - individual GUI settings structure
+0010 %
+0011 % Outputs:
+0012 %       gui
+0013 %       myui
+0014 %
+0015 % Example:
+0016 %       [gui,myui] = BLOCHUS_createPanelControl(gui,myui)
+0017 %
+0018 % Other m-files required:
+0019 %       findjobj.m
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 gui.panels.Control.HBox = uix.HBox('Parent', gui.panels.Control.main,...
+0035     'Spacing',3,'Padding',3);
+0036 
+0037 tstr = 'Start calculation.';
+0038 gui.push_handles.Run = uicontrol('Style','pushbutton',...
+0039     'Parent',gui.panels.Control.HBox,...
+0040     'String','RUN',...
+0041     'Tag','RUN',...
+0042     'ToolTipString',tstr,...
+0043     'FontSize',myui.fontsize,...
+0044     'BackGroundColor','g',...
+0045     'UserData',struct('Tooltipstr',tstr),...
+0046     'Callback',@onPushRun);
+0047 
+0048 tstr = 'Show animation of the last result.';
+0049 gui.push_handles.Animate = uicontrol('Style','pushbutton',...
+0050     'Parent',gui.panels.Control.HBox,...
+0051     'String','ANIMATE',...
+0052     'Tag','ANIMATE',...
+0053     'ToolTipString',tstr,...
+0054     'FontSize',myui.fontsize,...
+0055     'UserData',struct('Tooltipstr',tstr),...
+0056     'Enable','off',...
+0057     'Callback',@onPushAnimate);
+0058 
+0059 tstr = 'Reset axes grid to equally spaced 2x2.';
+0060 gui.push_handles.Grid = uicontrol('Style','pushbutton',...
+0061     'Parent',gui.panels.Control.HBox,...
+0062     'String','RESET GRID',...
+0063     'Tag','GRID',...
+0064     'ToolTipString',tstr,...
+0065     'FontSize',myui.fontsize,...
+0066     'UserData',struct('Tooltipstr',tstr),...
+0067     'Callback',@onPushGrid);
+0068 
+0069 return
+0070 
+0071 %------------- END OF CODE --------------
+0072 
+0073 %% License:
+0074 % GNU GPLv3
+0075 %
+0076 % BLOCHUS
+0077 % Copyright (C) 2019 Thomas Hiller
+0078 %
+0079 % This program is free software: you can redistribute it and/or modify
+0080 % it under the terms of the GNU General Public License as published by
+0081 % the Free Software Foundation, either version 3 of the License, or
+0082 % (at your option) any later version.
+0083 %
+0084 % This program is distributed in the hope that it will be useful,
+0085 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0086 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0087 % GNU General Public License for more details.
+0088 %
+0089 % You should have received a copy of the GNU General Public License
+0090 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createPanelPrePol.html b/doc/blochus/BLOCHUS/BLOCHUS_createPanelPrePol.html new file mode 100644 index 0000000..3ced6c0 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createPanelPrePol.html @@ -0,0 +1,366 @@ + + + + Description of BLOCHUS_createPanelPrePol + + + + + + + + + + + +

BLOCHUS_createPanelPrePol +

+ +

PURPOSE ^

+
creates "Pre-polarization" settings panel
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createPanelPrePol creates "Pre-polarization" settings panel
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+
+ Inputs:
+       data - figure data structure
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+
+ Other m-files required:
+       findjobj.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+0002 %BLOCHUS_createPanelPrePol creates "Pre-polarization" settings panel
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+0006 %
+0007 % Inputs:
+0008 %       data - figure data structure
+0009 %       gui - figure gui elements structure
+0010 %       myui - individual GUI settings structure
+0011 %
+0012 % Outputs:
+0013 %       gui
+0014 %       myui
+0015 %
+0016 % Example:
+0017 %       [gui,myui] = BLOCHUS_createPanelPrePol(data,gui,myui)
+0018 %
+0019 % Other m-files required:
+0020 %       findjobj.m
+0021 %
+0022 % Subfunctions:
+0023 %       none
+0024 %
+0025 % MAT-files required:
+0026 %       none
+0027 %
+0028 % See also: BLOCHUS
+0029 % Author: Thomas Hiller
+0030 % email: thomas.hiller[at]leibniz-liag.de
+0031 % License: GNU GPLv3 (at end)
+0032 
+0033 %------------- BEGIN CODE --------------
+0034 
+0035 %% create all boxes
+0036 gui.panels.PrePol.VBox = uix.VBox('Parent', gui.panels.PrePol.main,...
+0037     'Spacing',3,'Padding',3);
+0038 
+0039 setCheck = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0040 setPrePolRDS = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0041 setPrePolRamp = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0042 setPrePolFactor = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0043 setPrePolTheta = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0044 setPrePolPhi = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0045 setPrePolSwitchFactor = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0046 setPrePolTramp = uix.HBox('Parent',gui.panels.PrePol.VBox,'Spacing',3);
+0047 setPrePolTslope = uix.HBox( 'Parent', gui.panels.PrePol.VBox,'Spacing',3);
+0048 
+0049 %%
+0050 uix.Empty('Parent',setCheck);
+0051 tstr = 'Activate pre-polarization switch-off ramp settings.';
+0052 gui.check_handles.PrePol = uicontrol('Style','Checkbox',...
+0053     'Parent',setCheck,...
+0054     'String','Use Pre-polarization switch-off',...
+0055     'Value',0,...
+0056     'Tag','checkPrePol',...
+0057     'ToolTipString',tstr,...
+0058     'FontSize',myui.fontsize,...
+0059     'UserData',struct('Tooltipstr',tstr),...
+0060     'Callback',@onCheckPrePolPulse);
+0061 uix.Empty('Parent',setCheck);
+0062 set(setCheck,'Widths',[-1 200 -1]);
+0063 
+0064 %% relaxation during switch-off RDS switch
+0065 gui.text_handles.PrePolRDS = uicontrol('Style','Text',...
+0066     'Parent',setPrePolRDS,...
+0067     'String','Relax. during switch-off',...
+0068     'FontSize',myui.fontsize);
+0069 uix.Empty('Parent',setPrePolRDS);
+0070 tstr = '<HTML>Switch on/off relaxation during switch-off - RDS.<br>';
+0071 gui.check_handles.PrePolRDS = uicontrol('Style','Checkbox',...
+0072     'Parent',setPrePolRDS,...
+0073     'String','RDS',...
+0074     'Tag','PrePolRDS',...
+0075     'ToolTipString',tstr,...
+0076     'FontSize',myui.fontsize,...
+0077     'UserData',struct('Tooltipstr',tstr),...
+0078     'Enable','off',...
+0079     'Callback',@onCheckRDP);
+0080 set(setPrePolRDS,'Widths',[140 10 -1]);
+0081 
+0082 %% prepolarization switch-off ramp
+0083 gui.text_handles.PrePolRamp = uicontrol('Style','Text',...
+0084     'Parent',setPrePolRamp,...
+0085     'String','Ramp type',...
+0086     'FontSize',myui.fontsize);
+0087 uix.Empty('Parent', setPrePolRamp);
+0088 tstr = ['<HTML>Choose between different switch-off ramps.<br><br>',...
+0089     '<u>Available options:</u><br>',...
+0090     '<b>exp.</b> Pure exponential.<br>',...
+0091     '<b>linear & exp.</b> Lin + exp parts as introduced by Conradi et al. (2017).<br>',...
+0092     '<b>half cos</b> 1+cos type ramp.<br>',...
+0093     '<b>linear</b> Pure linear.<br>',...
+0094     '<b>melton1995</b> Linear using switch-off <it>rates</it> after Melton et al. (1995).<br>',...
+0095     '<b>MIDI</b> 1+cos type ramp with NMR Midi settings.<br><br>',...
+0096     'Depending on the chosen method some edit fields have different meanings.<br><br>',...
+0097     '<u>Default value:</u><br>',...
+0098     '<b>exp</b><br>'];
+0099 gui.popup_handles.PrePolRamp = uicontrol('Style','Popup',...
+0100     'Parent',setPrePolRamp,...
+0101     'String',{'exp.','linear & exp.','half cos','linear','melton1995','MIDI'},...
+0102     'Value',1,...
+0103     'Tag','Ramp',...
+0104     'TooltipString',tstr,...
+0105     'FontSize',myui.fontsize,...
+0106     'UserData',struct('Tooltipstr',tstr),...
+0107     'Enable','off',...
+0108     'Callback',@onPopupPrePolRamp);
+0109 set(setPrePolRamp,'Widths',[140 10 -1]);
+0110 
+0111 %% pre-polarization factor
+0112 gui.text_handles.PrePolFactor = uicontrol('Style','Text',...
+0113     'Parent',setPrePolFactor,...
+0114     'String','PrePol. factor [B0]',...
+0115     'FontSize',myui.fontsize);
+0116 uix.Empty('Parent', setPrePolFactor);
+0117 tstr = '<HTML>Pre-polarization factor in units of <b>B</b><sub>0</sub>.<br>';
+0118 gui.edit_handles.PrePolFactor = uicontrol('Style','Edit',...
+0119     'Parent',setPrePolFactor,...
+0120     'String',num2str(data.init.PrePolFactor(1)),...
+0121     'Tag','prepol_Factor',...
+0122     'TooltipString',tstr,...
+0123     'FontSize',myui.fontsize,...
+0124     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolFactor),...
+0125     'Enable','off',...
+0126     'Callback',@onEditValue);
+0127 set(setPrePolFactor,'Widths',[140 10 -1]);
+0128 
+0129 %% angle theta between B0 and Bpre
+0130 gui.text_handles.PrePolTheta = uicontrol('Style','Text',...
+0131     'Parent',setPrePolTheta,...
+0132     'String','Theta [deg]',...
+0133     'FontSize',myui.fontsize);
+0134 uix.Empty('Parent', setPrePolTheta);
+0135 tstr = ['<HTML>Polar orientation of <b>B</b><sub>p</sub> in [deg].<br>',...
+0136     'Rotation is around the y-axis [0 1 0].'];
+0137 gui.edit_handles.PrePolTheta = uicontrol('Style','Edit',...
+0138     'Parent',setPrePolTheta,...
+0139     'String',num2str(data.init.PrePolTheta(1)),...
+0140     'Tag','prepol_Theta',...
+0141     'TooltipString',tstr,...
+0142     'FontSize',myui.fontsize,...
+0143     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTheta),...
+0144     'Enable','off',...
+0145     'Callback',@onEditValue);
+0146 set(setPrePolTheta,'Widths',[140 10 -1]);
+0147 
+0148 %% angle phi (azimuthal angle)
+0149 gui.text_handles.PrePolPhi = uicontrol('Style','Text',...
+0150     'Parent',setPrePolPhi,...
+0151     'String','Phi [deg]',...
+0152     'FontSize',myui.fontsize);
+0153 uix.Empty('Parent', setPrePolPhi);
+0154 tstr = ['<HTML>Azimuthal orientation of <b>B</b><sub>p</sub> in [deg].<br>',...
+0155     'Rotation is around the z-axis [0 0 1].'];
+0156 gui.edit_handles.PrePolPhi = uicontrol('Style','Edit',...
+0157     'Parent',setPrePolPhi,...
+0158     'String',num2str(data.init.PrePolPhi(1)),...
+0159     'Tag','prepol_Phi',...
+0160     'TooltipString',tstr,...
+0161     'FontSize',myui.fontsize,...
+0162     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolPhi),...
+0163     'Enable','off',...
+0164     'Callback',@onEditValue);
+0165 set(setPrePolPhi,'Widths',[140 10 -1]);
+0166 
+0167 %% pre-polarization switch factor for the 'linexp' and 'exp' ramps
+0168 gui.text_handles.PrePolSwitchFactor = uicontrol('Style','Text',...
+0169     'Parent',setPrePolSwitchFactor,...
+0170     'String','Switch factor [B0]',...
+0171     'FontSize',myui.fontsize);
+0172 uix.Empty('Parent', setPrePolSwitchFactor);
+0173 tstr = ['<HTML><BODY>This field has different meanings depending on the chosen',...
+0174     ' shut-off ramp:<br><br>',...
+0175     '<u>exp:</u><br>',...
+0176     'Switch factor <b>B</b>* in units of [<b>B</b><sub>0</sub>] as part of the',...
+0177     ' exponential decay exp(-t <b>B</b><sub>max</sub> / <b>B</b>* / T<sub>slope</sub>)'...
+0178     '.<br><br>',...
+0179     '<u>linear & exp:</u><br>',...
+0180     'Switch factor <b>B</b>* in units of [<b>B</b><sub>0</sub>] where the ramp',...
+0181     ' changes from linear to exp.<br>',...
+0182     '<u>half cos:</u><br>',...
+0183     'Not needed.<br><br>',...
+0184     '<u>linear:</u><br>',...
+0185     'Not needed.<br><br>',...
+0186     '<u>melton1995:</u><br>',...
+0187     'Cutoff rate k / &#915, with k the pre-polarization factor and &#915=&omega<sub>',...
+0188     '0</sub> / T<sub>ramp</sub><br><br>',...
+0189     '<u>MIDI:</u><br>',...
+0190     'Not needed.</BODY></HTML>'];
+0191 gui.edit_handles.PrePolSwitchFactor = uicontrol('Style','Edit',...
+0192     'Parent',setPrePolSwitchFactor,...
+0193     'String',num2str(data.init.PrePolSwitchFactor(1)),...
+0194     'Tag','prepol_SwitchFactor',...
+0195     'TooltipString',tstr,...
+0196     'FontSize',myui.fontsize,...
+0197     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolSwitchFactor),...
+0198     'Enable','off',...    
+0199     'Callback',@onEditValue);
+0200 set(setPrePolSwitchFactor,'Widths',[140 10 -1]);
+0201 
+0202 %% pre-polarization Tramp time
+0203 gui.text_handles.PrePolTramp = uicontrol('Style','Text',...
+0204     'Parent',setPrePolTramp,...
+0205     'String','T ramp [ms]',...
+0206     'FontSize',myui.fontsize);
+0207 uix.Empty('Parent', setPrePolTramp);
+0208 tstr = '<HTML>Switch-off ramp time T<sub>ramp</sub> in [ms]';
+0209 gui.edit_handles.PrePolTramp = uicontrol('Style','Edit',...
+0210     'Parent',setPrePolTramp,...
+0211     'String',num2str(data.init.PrePolTramp(1)),...
+0212     'Tag','prepol_Tramp',...
+0213     'TooltipString',tstr,...
+0214     'FontSize',myui.fontsize,...
+0215     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTramp),...
+0216     'Enable','off',...    
+0217     'Callback',@onEditValue);
+0218 set(setPrePolTramp, 'Widths', [140 10 -1]);
+0219 
+0220 %% pre-polarization Tslope parameter for e.g. the 'linexp' ramp
+0221 gui.text_handles.PrePolTslope = uicontrol('Style','Text',...
+0222     'Parent',setPrePolTslope,...
+0223     'String','T slope [ms]',...
+0224     'FontSize',myui.fontsize);
+0225 uix.Empty('Parent', setPrePolTslope);
+0226 tstr = ['<HTML><BODY>This field has different meanings depending on the chosen',...
+0227     ' switch-off ramp:<br><br>',...
+0228     '<u>exp:</u><br>',...
+0229     'T<sub>slope</sub> in [ms] as part of the exponential decay exp(-t <b>B</b>',...
+0230     '<sub>max</sub> / <b>B</b>* / T<sub>slope</sub>).<br><br>',...
+0231     '<u>linear & exp:</u><br>',...
+0232     'Slope T<sub>slope</sub> in [ms] of the linear part of the switch-off ramp.<br>',...
+0233     '<u>half cos:</u><br>',...
+0234     'Not needed.<br><br>',...
+0235     '<u>linear:</u><br>',...
+0236     'Not needed.<br><br>',...
+0237     '<u>melton1995:</u><br>',...
+0238     'Not needed.<br><br>',...
+0239     '<u>MIDI:</u><br>',...
+0240     'Not needed.</BODY></HTML>'];
+0241 gui.edit_handles.PrePolTslope = uicontrol('Style','Edit',...
+0242     'Parent',setPrePolTslope,...
+0243     'String',num2str(data.init.PrePolTslope(1)),...
+0244     'Tag','prepol_Tslope',...
+0245     'TooltipString',tstr,...
+0246     'FontSize',myui.fontsize,...
+0247     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PrePolTslope),...
+0248     'Enable','off',...    
+0249     'Callback',@onEditValue);
+0250 set(setPrePolTslope,'Widths',[140 10 -1]);
+0251 
+0252 %% Java Hack to adjust the text fields vertical alignment
+0253 jh = findjobj(gui.text_handles.PrePolRDS);
+0254 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0255 jh = findjobj(gui.text_handles.PrePolRamp);
+0256 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0257 jh = findjobj(gui.text_handles.PrePolFactor);
+0258 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0259 jh = findjobj(gui.text_handles.PrePolTheta);
+0260 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0261 jh = findjobj(gui.text_handles.PrePolPhi);
+0262 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0263 jh = findjobj(gui.text_handles.PrePolSwitchFactor);
+0264 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0265 jh = findjobj(gui.text_handles.PrePolTramp);
+0266 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0267 jh = findjobj(gui.text_handles.PrePolTslope);
+0268 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0269 
+0270 end
+0271 
+0272 %------------- END OF CODE --------------
+0273 
+0274 %% License:
+0275 % GNU GPLv3
+0276 %
+0277 % BLOCHUS
+0278 % Copyright (C) 2019 Thomas Hiller
+0279 %
+0280 % This program is free software: you can redistribute it and/or modify
+0281 % it under the terms of the GNU General Public License as published by
+0282 % the Free Software Foundation, either version 3 of the License, or
+0283 % (at your option) any later version.
+0284 %
+0285 % This program is distributed in the hope that it will be useful,
+0286 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0287 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0288 % GNU General Public License for more details.
+0289 %
+0290 % You should have received a copy of the GNU General Public License
+0291 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createPanelPulse.html b/doc/blochus/BLOCHUS/BLOCHUS_createPanelPulse.html new file mode 100644 index 0000000..46e3eab --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createPanelPulse.html @@ -0,0 +1,530 @@ + + + + Description of BLOCHUS_createPanelPulse + + + + + + + + + + + +

BLOCHUS_createPanelPulse +

+ +

PURPOSE ^

+
creates "Pulse" settings panel
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createPanelPulse(data,gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createPanelPulse creates "Pulse" settings panel
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+
+ Inputs:
+       data - figure data structure
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+
+ Other m-files required:
+       findjobj.m
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createPanelPulse(data,gui,myui)
+0002 %BLOCHUS_createPanelPulse creates "Pulse" settings panel
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+0006 %
+0007 % Inputs:
+0008 %       data - figure data structure
+0009 %       gui - figure gui elements structure
+0010 %       myui - individual GUI settings structure
+0011 %
+0012 % Outputs:
+0013 %       gui
+0014 %       myui
+0015 %
+0016 % Example:
+0017 %       [gui,myui] = BLOCHUS_createPanelBasic(data,gui,myui)
+0018 %
+0019 % Other m-files required:
+0020 %       findjobj.m
+0021 %
+0022 % Subfunctions:
+0023 %       none
+0024 %
+0025 % MAT-files required:
+0026 %       none
+0027 %
+0028 % See also: BLOCHUS
+0029 % Author: Thomas Hiller
+0030 % email: thomas.hiller[at]leibniz-liag.de
+0031 % License: GNU GPLv3 (at end)
+0032 
+0033 %------------- BEGIN CODE --------------
+0034 
+0035 %% create all boxes
+0036 gui.panels.Pulse.VBox = uix.VBox('Parent', gui.panels.Pulse.main,...
+0037     'Spacing',3,'Padding',3);
+0038 
+0039 setCheck2 = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0040 setPulseRDP = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0041 setPulseType = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0042 setPulseAxis = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0043 setPulsePolarization = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0044 setPulseB1Factor = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0045 setPulseTtau = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0046 setPulseDFmode = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0047 setPulseDF = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0048 setPulseImode = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0049 setPulseI = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0050 setPulseQ = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0051 setPulseTwait = uix.HBox('Parent',gui.panels.Pulse.VBox,'Spacing',3);
+0052 
+0053 %%
+0054 uix.Empty('Parent',setCheck2);
+0055 tstr = 'Activate pulse settings.';
+0056 gui.check_handles.Pulse = uicontrol('Style','Checkbox',...
+0057     'Parent',setCheck2,...
+0058     'String','Use Pulse',...
+0059     'Value',0,...
+0060     'Tag','checkPulse',...
+0061     'ToolTipString',tstr,...
+0062     'FontSize',myui.fontsize,...
+0063     'UserData',struct('Tooltipstr',tstr),...
+0064     'Callback',@onCheckPrePolPulse);
+0065 uix.Empty('Parent',setCheck2);
+0066 set(setCheck2,'Widths',[-1 100 -1]);
+0067 
+0068 %% relaxation during pulse RDP switch
+0069 gui.text_handles.PulseRDP = uicontrol('Style','Text',...
+0070     'Parent',setPulseRDP,...
+0071     'String','Relax. during pulse',...
+0072     'FontSize',myui.fontsize);
+0073 uix.Empty('Parent',setPulseRDP);
+0074 tstr = '<HTML>Switch on/off relaxation during pulse - RDP.<br>';
+0075 gui.check_handles.PulseRDP = uicontrol('Style','checkbox',...
+0076     'Parent',setPulseRDP,...
+0077     'String','RDP',...
+0078     'Tag','PulseRDP',...
+0079     'TooltipString',tstr,...
+0080     'FontSize',myui.fontsize,...
+0081     'UserData',struct('Tooltipstr',tstr),...
+0082     'Enable','off',...
+0083     'Callback',@onCheckRDP);
+0084 set(setPulseRDP,'Widths',[140 10 -1]);
+0085 
+0086 %% pulse type
+0087 gui.text_handles.PulseType = uicontrol('Style','Text',...
+0088     'Parent',setPulseType,...
+0089     'String','Pulse type',...
+0090     'FontSize',myui.fontsize);
+0091 uix.Empty('Parent',setPulseType);
+0092 tstr = ['<HTML>Choose between different pulse types.<br><br>',...
+0093     '<u>Available options:</u><br>',...
+0094     '<b>',char(hex2dec('3C0')),'/2</b> ',char(hex2dec('3C0')),...
+0095     '/2 excitation pulse. B1 or ',char(hex2dec('3C4')),' get adjusted.<br>',...
+0096     '<b>',char(hex2dec('3C0')),'</b> ',char(hex2dec('3C0')),...
+0097     ' excitation pulse. B1 or ',char(hex2dec('3C4')),' get adjusted.<br>',...
+0098     '<b>free</b> freely adjustable excitation pulse.<br>',...
+0099     '<b>adiabatic HP</b> adiabatic half passage pulse.<br>',...
+0100     '<b>MIDI OR</b> MIDI style (discrete) on-resonant pulse.<br>',...
+0101     '<b>MDID AP</b> MIDI style (discrete) adiabatic pulse.<br><br>',...
+0102     '<u>Default value:</u><br>',...
+0103     '<b>',char(hex2dec('3C0')),'/2</b><br>'];
+0104 gui.popup_handles.PulseType = uicontrol('Style','Popup',...
+0105     'Parent',setPulseType,...
+0106     'String',{[char(hex2dec('3C0')),'/2'],char(hex2dec('3C0')),'free',...
+0107     'AHP','MIDI OR','MIDI AHP'},...
+0108     'Value',1,...
+0109     'Tag','PulseType',...
+0110     'TooltipString',tstr,...
+0111     'FontSize',myui.fontsize,...
+0112     'UserData',struct('Tooltipstr',tstr),...
+0113     'Enable','off',...
+0114     'Callback',@onPopupPulseType);
+0115 set(setPulseType,'Widths',[140 10 -1]);
+0116 
+0117 %% pulse axis
+0118 gui.text_handles.PulseAxis = uicontrol('Style','Text',...
+0119     'Parent',setPulseAxis,...
+0120     'String','Pulse axis',...
+0121     'FontSize',myui.fontsize);
+0122 uix.Empty('Parent',setPulseAxis);
+0123 tstr = ['<HTML>Choose between different pulse axis.<br>',...
+0124     'Note that in the rotating frame of reference, <b>M</b> flips',...
+0125     ' according to the right-hand-rule.<br><br>',...
+0126     '<u>Available options:</u><br>',...
+0127     '<b>+x</b> - Lab standard (OR pulse is flipped into the -Im part (-y))<br>',...
+0128     '<b>-x</b><br>',...
+0129     '<b>+y</b> - MRS standard (OR pulse is flipped into the Re part (+x))<br>',...
+0130     '<b>-y</b><br><br>',...
+0131     '<u>Default value:</u><br>',...
+0132     '<b>+x</b><br>'];
+0133 gui.popup_handles.PulseAxis = uicontrol('Style','Popup',...
+0134     'Parent',setPulseAxis,...
+0135     'String',{'+x (Lab std)','-x','+y (MRS std)','-y'},...
+0136     'Value',1,...
+0137     'Tag','PulseAxis',...
+0138     'TooltipString',tstr,...
+0139     'FontSize',myui.fontsize,...
+0140     'UserData',struct('Tooltipstr',tstr),...
+0141     'Enable','off',...
+0142     'Callback',@onPopupPulseAxis);
+0143 set(setPulseAxis,'Widths',[140 10 -1]);
+0144 
+0145 %% pulse polarization
+0146 gui.text_handles.PulsePolarization = uicontrol('Style','Text',...
+0147     'Parent',setPulsePolarization,...
+0148     'String','Pulse polarization',...
+0149     'FontSize',myui.fontsize);
+0150 uix.Empty('Parent',setPulsePolarization);
+0151 tstr = ['<HTML>Choose between different pulse polarization.<br><br>',...
+0152     '<u>Available options:</u><br>',...
+0153     '<b>circular</b> x and y components.<br>',...
+0154     '<b>linear</b> only x component.<br><br>',...
+0155     '<u>Default value:</u><br>',...
+0156     '<b>circular</b><br>'];
+0157 gui.popup_handles.PulsePolarization = uicontrol('Style','Popup',...
+0158     'Parent',setPulsePolarization,...
+0159     'String',{'circular','linear'},...
+0160     'Value',1,...
+0161     'Tag','PulsePolarization',...
+0162     'TooltipString',tstr,...
+0163     'FontSize',myui.fontsize,...
+0164     'UserData',struct('Tooltipstr',tstr),...
+0165     'Enable','off',...
+0166     'Callback',@onPopupPulsePolarization);
+0167 set(setPulsePolarization,'Widths',[140 10 -1]);
+0168 
+0169 %% pulse amplitude B1 factor in units of B0
+0170 gui.text_handles.PulseB1Factor = uicontrol('Style','Text',...
+0171     'Parent',setPulseB1Factor,...
+0172     'String','B1 factor [B0]',...
+0173     'FontSize',myui.fontsize);
+0174 uix.Empty('Parent',setPulseB1Factor);
+0175 tstr = '<HTML>Pulse amplitude factor B1 in units of <b>B</b><sub>0</sub>.<br>';
+0176 gui.edit_handles.PulseB1Factor = uicontrol('Style','Edit',...
+0177     'Parent',setPulseB1Factor,...
+0178     'String',num2str(data.init.PulseB1Factor(1)),...
+0179     'Tag','pulse_B1Factor',...
+0180     'TooltipString',tstr,...
+0181     'FontSize',myui.fontsize,...
+0182     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseB1Factor),...
+0183     'Enable','off',...
+0184     'Callback',@onEditValue);
+0185 set(setPulseB1Factor,'Widths',[140 10 -1]);
+0186 
+0187 %% pulse time T_tau
+0188 gui.text_handles.PulseTtau = uicontrol('Style','Text',....
+0189     'Parent',setPulseTtau,...
+0190     'String',['Pulse length ',char(hex2dec('3C4')),' [ms]'],...
+0191     'FontSize',myui.fontsize);
+0192 uix.Empty('Parent',setPulseTtau);
+0193 tstr = '<HTML>Pulse length &tau in [ms].<br>';
+0194 gui.edit_handles.PulseTtau = uicontrol('Style','Edit',...
+0195     'Parent',setPulseTtau,...
+0196     'String',num2str(data.init.PulseTtau(1)),...
+0197     'Tag','pulse_Ttau',...
+0198     'TooltipString',tstr,...
+0199     'FontSize',myui.fontsize,...
+0200     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseTtau),...
+0201     'Enable','off',...    
+0202     'Callback',@onEditValue);
+0203 set(setPulseTtau,'Widths',[140 10 -1]);
+0204 
+0205 %% frequency modulation
+0206 gui.text_handles.PulseDFmode = uicontrol('Style','Text',...
+0207     'Parent',setPulseDFmode,...
+0208     'String',['Frequency modulation ',char(hex2dec('394')),'f'],...
+0209     'FontSize',myui.fontsize);
+0210 uix.Empty('Parent',setPulseDFmode);
+0211 tstr = ['<HTML>Choose between different pulse types.<br><br>',...
+0212     '<u>Available options:</u><br>',...
+0213     '<b>linear</b> linear sweep from start freq. to end freq.<br>',...
+0214     '<b>tanh MIDI</b> tanh sweep from start freq. to end freq. (shape can be adjusted).<br>',...
+0215     '<b>tanh GMR</b> tanh sweep from start freq. to end freq..<br>',...
+0216     '<b>exp</b> exp sweep from start freq. to end freq..<br><br>',...
+0217     '<u>Default value:</u><br>',...
+0218     '<b>linear</b><br>'];
+0219 gui.popup_handles.PulseDFmode = uicontrol('Style','Popup',...
+0220     'Parent',setPulseDFmode,...
+0221     'String',{'linear','tanh MIDI','tanh GMR','exp'},...
+0222     'Value',1,...
+0223     'Tag','PulseDFmode',...
+0224     'TooltipString',tstr,...
+0225     'FontSize',myui.fontsize,...
+0226     'UserData',struct('Tooltipstr',tstr),...
+0227     'Enable','off',...
+0228     'Callback',@onPopupPulseDFmode);
+0229 set(setPulseDFmode,'Widths',[140 10 -1]);
+0230 
+0231 %% off resonance frequency settings
+0232 gui.text_handles.PulseDF = uicontrol('Style','Text',...
+0233     'Parent',setPulseDF,...
+0234     'String','start [Hz] end [Hz] A B',...
+0235     'FontSize',myui.fontsize);
+0236 uix.Empty('Parent',setPulseDF);
+0237 tstr = ['<HTML>Start of frequency offset ',char(hex2dec('394')),'f in [Hz].'];
+0238 gui.edit_handles.PulseDFstart = uicontrol('Style','Edit',...
+0239     'Parent',setPulseDF,...
+0240     'String',num2str(data.init.PulseDFstart(1)),...
+0241     'Tag','pulse_DFstart',...
+0242     'TooltipString',tstr,...
+0243     'FontSize',myui.fontsize,...
+0244     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFstart),...
+0245     'Enable','off',...    
+0246     'Callback',@onEditValue);
+0247 tstr = ['<HTML>End of frequency offset ',char(hex2dec('394')),'f in [Hz].'];
+0248 gui.edit_handles.PulseDFend = uicontrol('Style','Edit',...
+0249     'Parent',setPulseDF,....
+0250     'String',num2str(data.init.PulseDFend(1)),...
+0251     'Tag','pulse_DFend',...
+0252     'TooltipString',tstr,...
+0253     'FontSize',myui.fontsize,...    
+0254     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFend),...
+0255     'Enable','off',...
+0256     'Callback',@onEditValue);
+0257 tstr = 'Slope parameter A of tanh curve.';
+0258 gui.edit_handles.PulseDFA = uicontrol('Style','Edit',...
+0259     'Parent',setPulseDF,...
+0260     'String',num2str(data.init.PulseDFA(1)),...
+0261     'Tag','pulse_DFA',...
+0262     'TooltipString',tstr,...
+0263     'FontSize',myui.fontsize,...
+0264     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFA),...
+0265     'Enable','off',...
+0266     'Callback',@onEditValue);
+0267 tstr = 'Upsetting parameter B of tanh curve.';
+0268 gui.edit_handles.PulseDFB = uicontrol('Style','Edit',...
+0269     'Parent',setPulseDF,...
+0270     'String',num2str(data.init.PulseDFB(1)),...
+0271     'Tag','pulse_DFB',...
+0272     'TooltipString',tstr,...
+0273     'FontSize',myui.fontsize,...
+0274     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseDFB),...
+0275     'Enable','off',...
+0276     'Callback',@onEditValue);
+0277 set(setPulseDF,'Widths',[140 10 -1.5 -1.5 -1 -1]);
+0278 
+0279 %% current modulation
+0280 gui.text_handles.PulseImode = uicontrol('Style','Text',...
+0281     'Parent',setPulseImode,...
+0282     'String','Current modulation I',...
+0283     'FontSize',myui.fontsize);
+0284 uix.Empty('Parent',setPulseImode);
+0285 tstr = ['<HTML>Choose between different pulse types.<br><br>',...
+0286     '<u>Available options:</u><br>',...
+0287     '<b>linear</b> linear sweep from start I to end I.<br>',...
+0288     '<b>tanh MIDI</b> tanh sweep from start I to end I (shape can be adjusted).<br>',...
+0289     '<b>tanh GMR</b> tanh sweep from start I to end I.<br>',...
+0290     '<b>exp</b> tanh sweep from start I to end I.<br><br>',...
+0291     '<u>Default value:</u><br>',...
+0292     '<b>linear</b><br>'];
+0293 gui.popup_handles.PulseImode = uicontrol('Style','Popup',...
+0294     'Parent',setPulseImode,...
+0295     'String',{'linear','tanh MIDI','tanh GMR','exp'},...
+0296     'Value',1,...
+0297     'Tag','PulseDFmode',....
+0298     'TooltipString',tstr,...
+0299     'FontSize',myui.fontsize,...
+0300     'UserData',struct('Tooltipstr',tstr),...
+0301     'Enable','off',...
+0302     'Callback',@onPopupPulseImode);
+0303 set(setPulseImode,'Widths',[140 10 -1]);
+0304 
+0305 %% current settings
+0306 gui.text_handles.PulseI = uicontrol('Style','Text',...
+0307     'Parent',setPulseI,...
+0308     'String','start [A] end [A] A B',...
+0309     'FontSize',myui.fontsize);
+0310 uix.Empty('Parent',setPulseI);
+0311 tstr = 'Start of current sweep in [A].';
+0312 gui.edit_handles.PulseIstart = uicontrol('Style','Edit',...
+0313     'Parent',setPulseI,...
+0314     'String',num2str(data.init.PulseIstart(1)),...
+0315     'Tag','pulse_Istart',...
+0316     'TooltipString',tstr,...
+0317     'FontSize',myui.fontsize,...
+0318     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIstart),...
+0319     'Enable','off',...    
+0320     'Callback',@onEditValue);
+0321 tstr = 'End of current sweep in [A].';
+0322 gui.edit_handles.PulseIend = uicontrol('Style','Edit',...
+0323     'Parent',setPulseI,...
+0324     'String',num2str(data.init.PulseIend(1)),...
+0325     'Tag','pulse_Iend',...
+0326     'TooltipString',tstr,...
+0327     'FontSize',myui.fontsize,...
+0328     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIend),...
+0329     'Enable','off',...    
+0330     'Callback',@onEditValue);
+0331 tstr = 'Slope parameter A of tanh curve.';
+0332 gui.edit_handles.PulseIA = uicontrol('Style','Edit',...
+0333     'Parent',setPulseI,...
+0334     'String',num2str(data.init.PulseIA(1)),...
+0335     'Tag','pulse_IA',...
+0336     'TooltipString',tstr,...
+0337     'FontSize',myui.fontsize,...
+0338     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIA),...
+0339     'Enable','off',...    
+0340     'Callback',@onEditValue);
+0341 tstr = 'Upsetting parameter B of tanh curve.';
+0342 gui.edit_handles.PulseIB = uicontrol('Style','Edit',...
+0343     'Parent',setPulseI,...
+0344     'String',num2str(data.init.PulseIB(1)),...
+0345     'Tag','pulse_IB',...
+0346     'TooltipString',tstr,...
+0347     'FontSize',myui.fontsize,...
+0348     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseIB),...
+0349     'Enable','off',...
+0350     'Callback',@onEditValue);
+0351 set(setPulseI,'Widths',[140 10 -1.5 -1.5 -1 -1]);
+0352 
+0353 %% quality factor tuning
+0354 gui.text_handles.PulseQ = uicontrol('Style','Text',...
+0355     'Parent',setPulseQ,...
+0356     'String','quality factor tuning Q | df',...
+0357     'FontSize',myui.fontsize);
+0358 uix.Empty('Parent',setPulseQ);
+0359 tstr = 'Activate coil tuning via quality factor.';
+0360 gui.check_handles.PulseQ = uicontrol('Style','checkbox',...
+0361     'Parent',setPulseQ,...
+0362     'String','on / off',...
+0363     'Tag','PulseQ',...
+0364     'TooltipString',tstr,...
+0365     'FontSize',myui.fontsize,...
+0366     'UserData',struct('Tooltipstr',tstr),...
+0367     'Enable','off',...
+0368     'Callback',@onCheckPulseQ);
+0369 tstr = 'Quality factor Q.';
+0370 gui.edit_handles.PulseQ = uicontrol('Style','Edit',...
+0371     'Parent',setPulseQ,...
+0372     'String',num2str(data.init.PulseQ(1)),...
+0373     'Tag','pulse_Q',...
+0374     'TooltipString',tstr,...
+0375     'FontSize',myui.fontsize,...
+0376     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseQ),...
+0377     'Enable','off',...
+0378     'Callback',@onEditValue);
+0379 tstr = 'Quality factor offset [Hz]';
+0380 gui.edit_handles.PulseQdf = uicontrol('Style','Edit',...
+0381     'Parent',setPulseQ,...
+0382     'String',num2str(data.init.PulseQdf(1)),...
+0383     'Tag','pulse_Qdf',...
+0384     'TooltipString',tstr,...
+0385     'FontSize',myui.fontsize,...
+0386     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseQdf),...
+0387     'Enable','off',...
+0388     'Callback',@onEditValue);
+0389 set(setPulseQ,'Widths',[140 10 -1.5 -1 -1]);
+0390 
+0391 %% wait time T_wait between end of PrePol and Pulse
+0392 gui.text_handles.PulseTwait = uicontrol('Style','Text',...
+0393     'Parent',setPulseTwait,...
+0394     'String','Wait time [ms]',...
+0395     'FontSize',myui.fontsize);
+0396 uix.Empty('Parent',setPulseTwait);
+0397 tstr = 'Wait time in [ms] between end of pre-polarization switch off and start of pulse.';
+0398 gui.edit_handles.PulseTwait = uicontrol('Style','Edit',...
+0399     'Parent',setPulseTwait,...
+0400     'String',num2str(data.init.PulseTwait(1)),...
+0401     'Tag','pulse_Twait',...
+0402     'TooltipString',tstr,...
+0403     'BackgroundColor',myui.color.wait,...
+0404     'FontSize',myui.fontsize,...
+0405     'UserData',struct('Tooltipstr',tstr,'defaults',data.init.PulseTwait),...  
+0406     'Enable','off',...
+0407     'Callback',@onEditValue);
+0408 set(setPulseTwait,'Widths',[140 10 -1]);
+0409 
+0410 %% Java Hack to adjust the text fields vertical alignment
+0411 jh = findjobj(gui.text_handles.PulseRDP);
+0412 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0413 jh = findjobj(gui.text_handles.PulseType);
+0414 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0415 jh = findjobj(gui.text_handles.PulseAxis);
+0416 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0417 jh = findjobj(gui.text_handles.PulseB1Factor);
+0418 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0419 jh = findjobj(gui.text_handles.PulseTtau);
+0420 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0421 jh = findjobj(gui.text_handles.PulseImode);
+0422 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0423 jh = findjobj(gui.text_handles.PulseI);
+0424 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0425 jh = findjobj(gui.text_handles.PulseDFmode);
+0426 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0427 jh = findjobj(gui.text_handles.PulseDF);
+0428 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0429 jh = findjobj(gui.text_handles.PulseQ);
+0430 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0431 jh = findjobj(gui.text_handles.PulseTwait);
+0432 jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0433 
+0434 return
+0435 
+0436 %------------- END OF CODE --------------
+0437 
+0438 %% License:
+0439 % GNU GPLv3
+0440 %
+0441 % BLOCHUS
+0442 % Copyright (C) 2019 Thomas Hiller
+0443 %
+0444 % This program is free software: you can redistribute it and/or modify
+0445 % it under the terms of the GNU General Public License as published by
+0446 % the Free Software Foundation, either version 3 of the License, or
+0447 % (at your option) any later version.
+0448 %
+0449 % This program is distributed in the hope that it will be useful,
+0450 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0451 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0452 % GNU General Public License for more details.
+0453 %
+0454 % You should have received a copy of the GNU General Public License
+0455 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_createStatusbar.html b/doc/blochus/BLOCHUS/BLOCHUS_createStatusbar.html new file mode 100644 index 0000000..6aaa2df --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_createStatusbar.html @@ -0,0 +1,178 @@ + + + + Description of BLOCHUS_createStatusbar + + + + + + + + + + + +

BLOCHUS_createStatusbar +

+ +

PURPOSE ^

+
creates the bottom status bar
+ +

SYNOPSIS ^

+
function [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+ +

DESCRIPTION ^

+
BLOCHUS_createStatusbar creates the bottom status bar
+
+ Syntax:
+       [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+
+ Inputs:
+       gui - figure gui elements structure
+       myui - individual GUI settings structure
+
+ Outputs:
+       gui
+       myui
+
+ Example:
+       [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+0002 %BLOCHUS_createStatusbar creates the bottom status bar
+0003 %
+0004 % Syntax:
+0005 %       [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+0006 %
+0007 % Inputs:
+0008 %       gui - figure gui elements structure
+0009 %       myui - individual GUI settings structure
+0010 %
+0011 % Outputs:
+0012 %       gui
+0013 %       myui
+0014 %
+0015 % Example:
+0016 %       [gui,myui] = BLOCHUS_createStatusbar(gui,myui)
+0017 %
+0018 % Other m-files required:
+0019 %       none
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % create panels inside the bottom hbox to show persistent status
+0035 % information
+0036 gui.panels.status.main = uix.Panel('Parent',gui.bottom);
+0037 gui.panels.status.Timer = uix.Panel('Parent',gui.bottom);
+0038 gui.panels.status.PrePol = uix.Panel('Parent',gui.bottom);
+0039 gui.panels.status.Pulse = uix.Panel('Parent',gui.bottom);
+0040 gui.panels.status.MIDI = uix.Panel('Parent',gui.bottom);
+0041 gui.panels.status.Tooltips = uix.Panel('Parent',gui.bottom);
+0042 gui.panels.status.Version = uix.Panel('Parent',gui.bottom);
+0043 
+0044 % adjust the panel widths
+0045 set(gui.bottom,'Widths',[330 -1 -1 -1 -1 -1 -1]);
+0046 
+0047 gui.text_handles.Status = uicontrol('Style','Text',...
+0048     'Parent',gui.panels.status.main,...
+0049     'String','',...
+0050     'HorizontalAlignment','left',...
+0051     'FontSize',8);
+0052 gui.text_handles.TimerStat = uicontrol('Style','Text',...
+0053     'Parent',gui.panels.status.Timer,...
+0054     'String','Calc. Time: 0 s',...
+0055     'HorizontalAlignment','left',...
+0056     'FontSize',8);
+0057 gui.text_handles.PrePolStat = uicontrol('Style','Text',...
+0058     'Parent',gui.panels.status.PrePol,...
+0059     'String','Pre-Polarization: OFF',...
+0060     'HorizontalAlignment','left',...
+0061     'FontSize',8);
+0062 gui.text_handles.PulseStat = uicontrol('Style','Text',...
+0063     'Parent',gui.panels.status.Pulse,...
+0064     'String','Pulse: OFF',...
+0065     'HorizontalAlignment','left',...
+0066     'FontSize',8);
+0067 gui.text_handles.MIDIStat = uicontrol('Style','Text',...
+0068     'Parent',gui.panels.status.MIDI,...
+0069     'String','Discrete Pulse: OFF',...
+0070     'HorizontalAlignment','left',...
+0071     'FontSize',8);
+0072 gui.text_handles.TooltipsStat = uicontrol('Style','Text',...
+0073     'Parent',gui.panels.status.Tooltips,...
+0074     'String','Tooltips: ON',...
+0075     'HorizontalAlignment','left',...
+0076     'FontSize',8);
+0077 gui.text_handles.VersionStat = uicontrol('Style','Text',...
+0078     'Parent',gui.panels.status.Version,...
+0079     'String','Version: ',...
+0080     'HorizontalAlignment','left',...
+0081     'FontSize',8);
+0082 
+0083 return
+0084 
+0085 %------------- END OF CODE --------------
+0086 
+0087 %% License:
+0088 % GNU GPLv3
+0089 %
+0090 % BLOCHUS
+0091 % Copyright (C) 2019 Thomas Hiller
+0092 %
+0093 % This program is free software: you can redistribute it and/or modify
+0094 % it under the terms of the GNU General Public License as published by
+0095 % the Free Software Foundation, either version 3 of the License, or
+0096 % (at your option) any later version.
+0097 %
+0098 % This program is distributed in the hope that it will be useful,
+0099 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0100 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0101 % GNU General Public License for more details.
+0102 %
+0103 % You should have received a copy of the GNU General Public License
+0104 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_loadDefaults.html b/doc/blochus/BLOCHUS/BLOCHUS_loadDefaults.html new file mode 100644 index 0000000..5ee46e9 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_loadDefaults.html @@ -0,0 +1,270 @@ + + + + Description of BLOCHUS_loadDefaults + + + + + + + + + + + +

BLOCHUS_loadDefaults +

+ +

PURPOSE ^

+
loads default GUI data values
+ +

SYNOPSIS ^

+
function data = BLOCHUS_loadDefaults
+ +

DESCRIPTION ^

+
BLOCHUS_loadDefaults loads default GUI data values
+
+ Syntax:
+       BLOCHUS_loadDefaults
+
+ Inputs:
+       none
+
+ Outputs:
+       out - default data structure
+
+ Example:
+       out = BLOCHUS_loadDefaults
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       getInitData
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • getGyroRatio provides the gyromagnetic ratio of different nuclei
  • getOmega0 calculates the angular frequency from a given B-field and
+This function is called by: +
    +
  • BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+ + +

SUBFUNCTIONS ^

+ + +

SOURCE CODE ^

+
0001 function data = BLOCHUS_loadDefaults
+0002 %BLOCHUS_loadDefaults loads default GUI data values
+0003 %
+0004 % Syntax:
+0005 %       BLOCHUS_loadDefaults
+0006 %
+0007 % Inputs:
+0008 %       none
+0009 %
+0010 % Outputs:
+0011 %       out - default data structure
+0012 %
+0013 % Example:
+0014 %       out = BLOCHUS_loadDefaults
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       getInitData
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % aux data
+0033 data.info.ToolTips = 1;
+0034 data.info.Timer = 0;
+0035 
+0036 % get init data
+0037 % Note to user: use the "getInitData" function to adjust default
+0038 % settings and parameter range
+0039 init = getInitData;
+0040 data.init = init;
+0041 
+0042 % basic data
+0043 data.basic.nucleus = init.nucleus;
+0044 data.basic.gamma = init.gamma;
+0045 data.basic.type = init.type;
+0046 data.basic.M0 = init.M0;
+0047 data.basic.Minit = init.Minit;
+0048 data.basic.B0 = init.B0(1);
+0049 data.basic.Omega0 = init.Omega0(1);
+0050 data.basic.T1relax = init.T1relax(1);
+0051 data.basic.T2relax = init.T2relax(1);
+0052 data.basic.Tsim = init.Tsim(1);
+0053 
+0054 % pre-polarization data
+0055 data.prepol.Ramp = init.PrePolRamp;
+0056 data.prepol.RDS = init.PrePolRDS;
+0057 data.prepol.Factor = init.PrePolFactor(1);
+0058 data.prepol.Theta = init.PrePolTheta(1);
+0059 data.prepol.Phi = init.PrePolPhi(1);
+0060 data.prepol.SwitchFactor = init.PrePolSwitchFactor(1);
+0061 data.prepol.Tramp = init.PrePolTramp(1);
+0062 data.prepol.Tslope = init.PrePolTslope(1);
+0063 
+0064 % pulse data
+0065 data.pulse.Type = init.PulseType;
+0066 data.pulse.Axis = init.PulseAxis;
+0067 data.pulse.Polarization = init.PulsePolarization;
+0068 data.pulse.RDP = init.PulseRDP;
+0069 data.pulse.Ttau = init.PulseTtau(1);
+0070 data.pulse.B1Factor = init.PulseB1Factor(1);
+0071 data.pulse.DFmode = init.PulseDFmode;
+0072 data.pulse.DFstart = init.PulseDFstart(1);
+0073 data.pulse.DFend = init.PulseDFend(1);
+0074 data.pulse.DFA = init.PulseDFA(1);
+0075 data.pulse.DFB = init.PulseDFB(1);
+0076 data.pulse.Imode = init.PulseImode;
+0077 data.pulse.Istart = init.PulseIstart(1);
+0078 data.pulse.Iend = init.PulseIend(1);
+0079 data.pulse.IA = init.PulseIA(1);
+0080 data.pulse.IB = init.PulseIB(1);
+0081 data.pulse.Q = init.PulseQ(1);
+0082 data.pulse.Qdf = init.PulseQdf(1);
+0083 data.pulse.Twait = init.PulseTwait(1);
+0084 data.pulse.MIDINP = init.PulseMIDINP;
+0085 data.pulse.MIDIsf = init.PulseMIDIsf;
+0086 
+0087 end
+0088 
+0089 % define init values and range
+0090 function init = getInitData
+0091 % --- BASIC ---
+0092 % proton [string]
+0093 init.nucleus = '1H';
+0094 % gyromagnetic ratio [rad/s/T]
+0095 init.gamma = getGyroRatio(init.nucleus);
+0096 % simulation type [string]
+0097 init.type = 'std';
+0098 % equilibrium magnetization [A/m]
+0099 init.M0 = [0 0 1];
+0100 % initial magnetization [A/m]
+0101 init.Minit = [1 0 0];
+0102 % Earth's magnetic field [T] default: 48µT min: 1fT max: 1T
+0103 init.B0 = [48/1e6 1e-12 1];
+0104 % corresponding Larmor frequencies [Hz]
+0105 init.Omega0 = [getOmega0(init.gamma,init.B0(1))/2/pi -1e9 1e9];
+0106 % T1 relaxation time [ms] default: 100ms min: 1µs max: 1000s
+0107 init.T1relax = [100 1e-3 1e6];
+0108 % T2 relaxation time [ms] default: 50ms min: 1µs max: 1000s
+0109 init.T2relax = [50 1e-3 1e6];
+0110 % simulation time [ms] default: 50ms min: 1µs max: 1000s
+0111 init.Tsim = [50 1e-3 1e6];
+0112 
+0113 % --- PRE-POLARIZATION ---
+0114 % switch-off ramp shape [string]
+0115 init.PrePolRamp = 'exp';
+0116 % relaxation during switch-off [0/1]
+0117 init.PrePolRDS = 0;
+0118 % pre-polarization B-field amplitude in units of [B0]
+0119 init.PrePolFactor = [100 1e-6 1e6];
+0120 % polar angle of pre-polarization field [deg]
+0121 init.PrePolTheta = [90 0 360];
+0122 % azimuthal angle of pre-polarization field [deg]
+0123 init.PrePolPhi = [0 0 360];
+0124 % pre-polarization B-field switch amplitude in units of [B0]
+0125 init.PrePolSwitchFactor = [1 1e-6 1e6];
+0126 % switch-off ramp time [ms] default: 1ms min: 1µs max: 1000s
+0127 init.PrePolTramp = [1 1e-6 1e6];
+0128 % switch-off ramp slope time [ms] default: 0.1ms min: 1µs max: 1000s
+0129 init.PrePolTslope = [0.1 1e-6 1e6];
+0130 
+0131 % --- PULSE ---
+0132 % pulse type [string]
+0133 init.PulseType = 'pi_half';
+0134 % pulse axis [string]
+0135 init.PulseAxis = '+x';
+0136 % pulse polarization [string]
+0137 init.PulsePolarization = 'circular';
+0138 % relaxation during pulse [0/1]
+0139 init.PulseRDP = 0;
+0140 % pulse length [ms] default: 20ms min: 1µs max: 1000s
+0141 init.PulseTtau = [20 1e-6 1e6];
+0142 % pulse amplitude in units of [B0] default: 0.0061163 min: 1e-12 max: 1e6
+0143 init.PulseB1Factor = [0.0061163 1e-12 1e6];
+0144 % frequency modulation function [string]
+0145 init.PulseDFmode = 'const';
+0146 % start of frequency sweep [Hz] default: 0Hz min: -1MHz max: 1MHz
+0147 init.PulseDFstart = [0 -1e6 1e6];
+0148 % end of frequency sweep [Hz] default: 0Hz min: -1MHz max: 1MHz
+0149 init.PulseDFend = [0 -1e6 1e6];
+0150 % slope parameter A
+0151 init.PulseDFA = [1 -1e6 1e6];
+0152 % slope parameter B
+0153 init.PulseDFB = [0 -1e6 1e6];
+0154 % current modulation function [string]
+0155 init.PulseImode = 'const';
+0156 % start of current sweep [A] default: 1A min: 0A max: 1A
+0157 init.PulseIstart = [1 0 1];
+0158 % end of current sweep [A] default: 1A min: 0A max: 1A
+0159 init.PulseIend = [1 0 1];
+0160 % slope parameter A
+0161 init.PulseIA = [1 -1e6 1e6];
+0162 % slope parameter B
+0163 init.PulseIB = [0 -1e6 1e6];
+0164 % quality factor Q
+0165 init.PulseQ = [0 0 100];
+0166 % quality factor off-resonance [Hz]
+0167 init.PulseQdf = [0 0 1e6];
+0168 % wait time between pre-polarization switch-off and pulse [ms]
+0169 init.PulseTwait = [2 0 1e6];
+0170 % number of periods (only for MIDI)
+0171 init.PulseMIDINP = 1;
+0172 % MIDI sampling frequency (fixed)
+0173 init.PulseMIDIsf = 50000;
+0174 
+0175 end
+0176 
+0177 %------------- END OF CODE --------------
+0178 
+0179 %% License:
+0180 % GNU GPLv3
+0181 %
+0182 % BLOCHUS
+0183 % Copyright (C) 2019 Thomas Hiller
+0184 %
+0185 % This program is free software: you can redistribute it and/or modify
+0186 % it under the terms of the GNU General Public License as published by
+0187 % the Free Software Foundation, either version 3 of the License, or
+0188 % (at your option) any later version.
+0189 %
+0190 % This program is distributed in the hope that it will be useful,
+0191 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0192 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0193 % GNU General Public License for more details.
+0194 %
+0195 % You should have received a copy of the GNU General Public License
+0196 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/BLOCHUS_setPositionOnScreen.html b/doc/blochus/BLOCHUS/BLOCHUS_setPositionOnScreen.html new file mode 100644 index 0000000..3fd0fe0 --- /dev/null +++ b/doc/blochus/BLOCHUS/BLOCHUS_setPositionOnScreen.html @@ -0,0 +1,154 @@ + + + + Description of BLOCHUS_setPositionOnScreen + + + + + + + + + + + +

BLOCHUS_setPositionOnScreen +

+ +

PURPOSE ^

+
sets GUI position depending on monitor size
+ +

SYNOPSIS ^

+
function pos = BLOCHUS_setPositionOnScreen
+ +

DESCRIPTION ^

+
BLOCHUS_setPositionOnScreen sets GUI position depending on monitor size
+
+ Syntax:
+       BLOCHUS_setPositionOnScreen
+
+ Inputs:
+       none
+
+ Outputs:
+       pos - four element vector [x y w h]
+
+ Example:
+       BLOCHUS_setPositionOnScreen
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: +
    +
  • BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+ + + + +

SOURCE CODE ^

+
0001 function pos = BLOCHUS_setPositionOnScreen
+0002 %BLOCHUS_setPositionOnScreen sets GUI position depending on monitor size
+0003 %
+0004 % Syntax:
+0005 %       BLOCHUS_setPositionOnScreen
+0006 %
+0007 % Inputs:
+0008 %       none
+0009 %
+0010 % Outputs:
+0011 %       pos - four element vector [x y w h]
+0012 %
+0013 % Example:
+0014 %       BLOCHUS_setPositionOnScreen
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get the monitor layout
+0033 scr = get(0,'MonitorPosition');
+0034 if size(scr,1) > 1 % dual monitor setup
+0035     ind = find(scr(:,1)==1 & scr(:,2)==1);
+0036     sw = scr(ind,3); % width
+0037     sh = scr(ind,4); % height
+0038 else % single monitor
+0039     sw = scr(3); % width
+0040     sh = scr(4); % height
+0041 end
+0042 % maximal initial GUI width
+0043 gw = 1440;
+0044 % adjust the GUI width if the screen is not wide enough
+0045 if sw < 1440
+0046     gw = 2*sw/3;
+0047 end
+0048 % GUI height
+0049 gh = gw/1.5;
+0050 
+0051 if numel(scr) > 4 % dual monitor position
+0052     % GUI on second screen
+0053     if any(scr(:,1)<0)
+0054         pos = [-sw+(sw-gw)/2 (sh-gh)/2 gw gh];
+0055     else
+0056         pos = [sw+(sw-gw)/2 (sh-gh)/2 gw gh];
+0057     end
+0058 else % single monitor position
+0059     pos = [(sw-gw)/2 (sh-gh)/2 gw gh];
+0060 end
+0061 
+0062 end
+0063 %------------- END OF CODE --------------
+0064 
+0065 %% License:
+0066 % GNU GPLv3
+0067 %
+0068 % BLOCHUS
+0069 % Copyright (C) 2019 Thomas Hiller
+0070 %
+0071 % This program is free software: you can redistribute it and/or modify
+0072 % it under the terms of the GNU General Public License as published by
+0073 % the Free Software Foundation, either version 3 of the License, or
+0074 % (at your option) any later version.
+0075 %
+0076 % This program is distributed in the hope that it will be useful,
+0077 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0078 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0079 % GNU General Public License for more details.
+0080 %
+0081 % You should have received a copy of the GNU General Public License
+0082 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/BLOCHUS/menu.html b/doc/blochus/BLOCHUS/menu.html new file mode 100644 index 0000000..cdd5dba --- /dev/null +++ b/doc/blochus/BLOCHUS/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\BLOCHUS + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\BLOCHUS

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/checkbox/menu.html b/doc/blochus/callbacks/checkbox/menu.html new file mode 100644 index 0000000..a750590 --- /dev/null +++ b/doc/blochus/callbacks/checkbox/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\callbacks\checkbox + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\callbacks\checkbox

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/checkbox/onCheckPrePolPulse.html b/doc/blochus/callbacks/checkbox/onCheckPrePolPulse.html new file mode 100644 index 0000000..cea12a6 --- /dev/null +++ b/doc/blochus/callbacks/checkbox/onCheckPrePolPulse.html @@ -0,0 +1,369 @@ + + + + Description of onCheckPrePolPulse + + + + + + + + + + + +

onCheckPrePolPulse +

+ +

PURPOSE ^

+
activates / deactivates all control elements needed for
+ +

SYNOPSIS ^

+
function onCheckPrePolPulse(src,~)
+ +

DESCRIPTION ^

+
onCheckPrePolPulse activates / deactivates all control elements needed for
+either the pre-polarization switch-off ramp or a B1-pulse or both
+
+ Syntax:
+       onCheckPrePolPulse(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onCheckPrePolPulse(src)
+
+ Other m-files required:
+       onPopupPrePolRamp
+       onPopupPulseType
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onCheckPrePolPulse(src,~)
+0002 %onCheckPrePolPulse activates / deactivates all control elements needed for
+0003 %either the pre-polarization switch-off ramp or a B1-pulse or both
+0004 %
+0005 % Syntax:
+0006 %       onCheckPrePolPulse(src)
+0007 %
+0008 % Inputs:
+0009 %       src - handle of the calling object
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       onCheckPrePolPulse(src)
+0016 %
+0017 % Other m-files required:
+0018 %       onPopupPrePolRamp
+0019 %       onPopupPulseType
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % get GUI handle
+0035 fig = ancestor(src,'figure','toplevel');
+0036 
+0037 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0038     % get GUI data
+0039     gui  = getappdata(fig,'gui');
+0040     data = getappdata(fig,'data');
+0041     
+0042     % check status of the check boxes
+0043     isPrePol = get(gui.check_handles.PrePol,'Value');
+0044     isPulse = get(gui.check_handles.Pulse,'Value');
+0045     
+0046     if isPrePol == 0 && isPulse == 0 % just standard relaxation
+0047         data.basic.type = 'std';
+0048         
+0049         % menu settings
+0050         set(gui.menu.view_figures_ramp,'Enable','off');
+0051         set(gui.menu.view_figures_pulse,'Enable','off');
+0052         
+0053         % std settings
+0054         data.basic.Minit = [1 0 0];
+0055         set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1)));
+0056         set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2)));
+0057         set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3)));
+0058         set(gui.edit_handles.Minitx,'Enable','on');
+0059         set(gui.edit_handles.Minity,'Enable','on');
+0060         set(gui.edit_handles.Minitz,'Enable','on');
+0061         setappdata(fig,'data',data);
+0062         
+0063         % clear magnetization FFT axis
+0064         clearSingleAxis(gui.axes_handles.MagFFT);
+0065         
+0066         % deactivate PrePol settings
+0067         set(gui.check_handles.PrePolRDS,'Enable','off');
+0068         set(gui.popup_handles.PrePolRamp,'Enable','off');
+0069         set(gui.edit_handles.PrePolFactor,'Enable','off');
+0070         set(gui.edit_handles.PrePolTheta,'Enable','off');
+0071         set(gui.edit_handles.PrePolPhi,'Enable','off');
+0072         set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0073         set(gui.edit_handles.PrePolTramp,'Enable','off');
+0074         set(gui.edit_handles.PrePolTslope,'Enable','off');
+0075         
+0076         % clear PrePol axes
+0077         clearSingleAxis(gui.axes_handles.Bpre);
+0078         clearSingleAxis(gui.axes_handles.alpha);
+0079         clearSingleAxis(gui.axes_handles.dadt);
+0080         clearSingleAxis(gui.axes_handles.wda);
+0081         
+0082         % deactivate Pulse settings
+0083         set(gui.check_handles.PulseRDP,'Enable','off');
+0084         set(gui.popup_handles.PulseType,'Enable','off');
+0085         set(gui.popup_handles.PulseAxis,'Enable','off');
+0086         set(gui.popup_handles.PulsePolarization,'Enable','off');        
+0087         set(gui.edit_handles.PulseB1Factor,'Enable','off');
+0088         set(gui.edit_handles.PulseTtau,'Enable','off');
+0089         set(gui.edit_handles.PulseTwait,'Enable','off');
+0090         set(gui.popup_handles.PulseDFmode,'Enable','off');
+0091         set(gui.edit_handles.PulseDFstart,'Enable','off');
+0092         set(gui.edit_handles.PulseDFend,'Enable','off');
+0093         set(gui.edit_handles.PulseDFA,'Enable','off');
+0094         set(gui.edit_handles.PulseDFB,'Enable','off');
+0095         set(gui.popup_handles.PulseImode,'Enable','off');
+0096         set(gui.edit_handles.PulseIstart,'Enable','off');
+0097         set(gui.edit_handles.PulseIend,'Enable','off');
+0098         set(gui.edit_handles.PulseIA,'Enable','off');
+0099         set(gui.edit_handles.PulseIB,'Enable','off');
+0100         
+0101         % clear Pulse axes
+0102         clearSingleAxis(gui.axes_handles.PulseB);
+0103         clearSingleAxis(gui.axes_handles.PulseSetupF);
+0104         clearSingleAxis(gui.axes_handles.PulseSetupI);
+0105         clearSingleAxis(gui.axes_handles.PulseFFT);
+0106         
+0107     elseif isPrePol == 1 && isPulse == 0 % only pre-polarization switch-off
+0108         data.basic.type = 'prepol';
+0109         
+0110         % menu settings
+0111         set(gui.menu.view_figures_ramp,'Enable','on');
+0112         set(gui.menu.view_figures_pulse,'Enable','off');
+0113         
+0114         % std settings
+0115         data.basic.Tsim = data.prepol.Tramp;
+0116         set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0117         data.basic.Minit = [1 0 0];
+0118         set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1)));
+0119         set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2)));
+0120         set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3)));
+0121         set(gui.edit_handles.Minitx,'Enable','off');
+0122         set(gui.edit_handles.Minity,'Enable','off');
+0123         set(gui.edit_handles.Minitz,'Enable','off');
+0124         
+0125         % clear magnetization FFT axis
+0126         clearSingleAxis(gui.axes_handles.MagFFT);
+0127         
+0128         % activate PrePol settings
+0129         set(gui.check_handles.PrePolRDS,'Enable','on');
+0130         set(gui.popup_handles.PrePolRamp,'Enable','on');
+0131         set(gui.edit_handles.PrePolFactor,'Enable','on');
+0132         set(gui.edit_handles.PrePolTheta,'Enable','on');
+0133         set(gui.edit_handles.PrePolPhi,'Enable','on');
+0134         set(gui.edit_handles.PrePolSwitchFactor,'Enable','on');
+0135         set(gui.edit_handles.PrePolTramp,'Enable','on');
+0136         set(gui.edit_handles.PrePolTslope,'Enable','on');
+0137         setappdata(fig,'data',data);
+0138         onPopupPrePolRamp(gui.popup_handles.PrePolRamp);
+0139         data = getappdata(fig,'data');
+0140         
+0141         % deactivate Pulse settings
+0142         set(gui.check_handles.PulseRDP,'Enable','off');
+0143         set(gui.popup_handles.PulseType,'Enable','off');
+0144         set(gui.popup_handles.PulseAxis,'Enable','off');
+0145         set(gui.popup_handles.PulsePolarization,'Enable','off');
+0146         set(gui.edit_handles.PulseB1Factor,'Enable','off');
+0147         set(gui.edit_handles.PulseTtau,'Enable','off');
+0148         set(gui.edit_handles.PulseTwait,'Enable','off');
+0149         set(gui.popup_handles.PulseDFmode,'Enable','off');
+0150         set(gui.edit_handles.PulseDFstart,'Enable','off');
+0151         set(gui.edit_handles.PulseDFend,'Enable','off');
+0152         set(gui.edit_handles.PulseDFA,'Enable','off');
+0153         set(gui.edit_handles.PulseDFB,'Enable','off');
+0154         set(gui.popup_handles.PulseImode,'Enable','off');
+0155         set(gui.edit_handles.PulseIstart,'Enable','off');
+0156         set(gui.edit_handles.PulseIend,'Enable','off');
+0157         set(gui.edit_handles.PulseIA,'Enable','off');
+0158         set(gui.edit_handles.PulseIB,'Enable','off');
+0159         
+0160         % clear Pulse axes
+0161         clearSingleAxis(gui.axes_handles.PulseB);
+0162         clearSingleAxis(gui.axes_handles.PulseSetupF);
+0163         clearSingleAxis(gui.axes_handles.PulseSetupI);
+0164         clearSingleAxis(gui.axes_handles.PulseFFT);
+0165         
+0166     elseif isPrePol == 0 && isPulse == 1 % only Pulse
+0167         data.basic.type = 'pulse';
+0168         
+0169         % menu settings
+0170         set(gui.menu.view_figures_ramp,'Enable','off');
+0171         set(gui.menu.view_figures_pulse,'Enable','on');
+0172         
+0173         % std settings
+0174         data.basic.Tsim = data.pulse.Ttau;
+0175         set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0176         data.basic.Minit = [0 0 1];
+0177         set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1)));
+0178         set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2)));
+0179         set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3)));
+0180         set(gui.edit_handles.Minitx,'Enable','on');
+0181         set(gui.edit_handles.Minity,'Enable','on');
+0182         set(gui.edit_handles.Minitz,'Enable','on');
+0183         setappdata(fig,'data',data);
+0184         
+0185         % clear magnetization FFT axis
+0186         clearSingleAxis(gui.axes_handles.MagFFT);
+0187         
+0188         % deactivate PrePol settings
+0189         set(gui.check_handles.PrePolRDS,'Enable','off');
+0190         set(gui.popup_handles.PrePolRamp,'Enable','off');
+0191         set(gui.edit_handles.PrePolFactor,'Enable','off');
+0192         set(gui.edit_handles.PrePolTheta,'Enable','off');
+0193         set(gui.edit_handles.PrePolPhi,'Enable','off');
+0194         set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0195         set(gui.edit_handles.PrePolTramp,'Enable','off');
+0196         set(gui.edit_handles.PrePolTslope,'Enable','off');
+0197         
+0198         % clear PrePol axes
+0199         clearSingleAxis(gui.axes_handles.Bpre);
+0200         clearSingleAxis(gui.axes_handles.alpha);
+0201         clearSingleAxis(gui.axes_handles.dadt);
+0202         clearSingleAxis(gui.axes_handles.wda);
+0203         
+0204         % activate Pulse settings
+0205         set(gui.check_handles.PulseRDP,'Enable','on');
+0206         set(gui.popup_handles.PulseType,'Enable','on');
+0207         set(gui.popup_handles.PulseAxis,'Enable','on');
+0208         set(gui.popup_handles.PulsePolarization,'Enable','on');        
+0209         set(gui.edit_handles.PulseB1Factor,'Enable','on');
+0210         set(gui.edit_handles.PulseTtau,'Enable','on');
+0211         set(gui.edit_handles.PulseDFstart,'Enable','on');
+0212         set(gui.edit_handles.PulseTwait,'Enable','off');
+0213         onPopupPulseType(gui.popup_handles.PulseType);
+0214         data = getappdata(fig,'data');
+0215         
+0216     elseif isPrePol == 1 && isPulse == 1 % pre-polarization + pulse
+0217         data.basic.type = 'prepolpulse';
+0218         
+0219         % menu settings
+0220         set(gui.menu.view_figures_ramp,'Enable','on');
+0221         set(gui.menu.view_figures_pulse,'Enable','on');
+0222         
+0223         % std settings
+0224         data.basic.Minit = [1 0 0];
+0225         set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1)));
+0226         set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2)));
+0227         set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3)));
+0228         set(gui.edit_handles.Minitx,'Enable','off');
+0229         set(gui.edit_handles.Minity,'Enable','off');
+0230         set(gui.edit_handles.Minitz,'Enable','off');
+0231         setappdata(fig,'data',data);
+0232         
+0233         % clear magnetization FFT axis
+0234         clearSingleAxis(gui.axes_handles.MagFFT);
+0235         clearSingleAxis(gui.axes_handles.MagR);
+0236         clearSingleAxis(gui.axes_handles.SphereR);
+0237         
+0238         % activate PrePol settings
+0239         set(gui.check_handles.PrePolRDS,'Enable','on');
+0240         set(gui.popup_handles.PrePolRamp,'Enable','on');
+0241         set(gui.edit_handles.PrePolFactor,'Enable','on');
+0242         set(gui.edit_handles.PrePolTheta,'Enable','on');
+0243         set(gui.edit_handles.PrePolPhi,'Enable','on');
+0244         set(gui.edit_handles.PrePolSwitchFactor,'Enable','on');
+0245         set(gui.edit_handles.PrePolTramp,'Enable','on');
+0246         set(gui.edit_handles.PrePolTslope,'Enable','on');
+0247         setappdata(fig,'data',data);
+0248         onPopupPrePolRamp(gui.popup_handles.PrePolRamp);
+0249         data = getappdata(fig,'data');
+0250         
+0251         % activate Pulse settings
+0252         set(gui.check_handles.PulseRDP,'Enable','on');
+0253         set(gui.popup_handles.PulseType,'Enable','on');
+0254         set(gui.popup_handles.PulseAxis,'Enable','on');
+0255         set(gui.popup_handles.PulsePolarization,'Enable','on');        
+0256         set(gui.edit_handles.PulseB1Factor,'Enable','on');
+0257         set(gui.edit_handles.PulseTtau,'Enable','on');
+0258         set(gui.edit_handles.PulseDFstart,'Enable','on');
+0259         set(gui.edit_handles.PulseTwait,'Enable','on');
+0260         setappdata(fig,'data',data);
+0261         onPopupPulseType(gui.popup_handles.PulseType);
+0262         data = getappdata(fig,'data');
+0263     end
+0264     
+0265     % update all data inside the GUI
+0266     setappdata(fig,'data',data);
+0267     % update status bar
+0268     updateStatusInformation(fig);
+0269 else
+0270     warndlg({'onCheckPrePolPulse:','There is no figure with the BLOCHUS Tag open.'},...
+0271         'BLOCHUS error');
+0272 end
+0273 
+0274 end
+0275 
+0276 %------------- END OF CODE --------------
+0277 
+0278 %% License:
+0279 % GNU GPLv3
+0280 %
+0281 % BLOCHUS
+0282 % Copyright (C) 2019 Thomas Hiller
+0283 %
+0284 % This program is free software: you can redistribute it and/or modify
+0285 % it under the terms of the GNU General Public License as published by
+0286 % the Free Software Foundation, either version 3 of the License, or
+0287 % (at your option) any later version.
+0288 %
+0289 % This program is distributed in the hope that it will be useful,
+0290 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0291 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0292 % GNU General Public License for more details.
+0293 %
+0294 % You should have received a copy of the GNU General Public License
+0295 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/checkbox/onCheckPulseQ.html b/doc/blochus/callbacks/checkbox/onCheckPulseQ.html new file mode 100644 index 0000000..9d5acac --- /dev/null +++ b/doc/blochus/callbacks/checkbox/onCheckPulseQ.html @@ -0,0 +1,156 @@ + + + + Description of onCheckPulseQ + + + + + + + + + + + +

onCheckPulseQ +

+ +

PURPOSE ^

+
updates the checkbox that activates quality factor tuning
+ +

SYNOPSIS ^

+
function onCheckPulseQ(src,~)
+ +

DESCRIPTION ^

+
onCheckPulseQ updates the checkbox that activates quality factor tuning
+
+ Syntax:
+       onCheckPulseQ(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onCheckPulseQ(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onCheckPulseQ(src,~)
+0002 %onCheckPulseQ updates the checkbox that activates quality factor tuning
+0003 %
+0004 % Syntax:
+0005 %       onCheckPulseQ(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onCheckPulseQ(src)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui  = getappdata(fig,'gui');
+0038     data = getappdata(fig,'data');
+0039     
+0040     switch get(src,'Value')
+0041         case 0
+0042             set(gui.edit_handles.PulseQ,'Enable','off');
+0043             set(gui.edit_handles.PulseQdf,'Enable','off');
+0044         case 1    
+0045             set(gui.edit_handles.PulseQ,'Enable','on');
+0046             set(gui.edit_handles.PulseQdf,'Enable','on');
+0047     end
+0048     
+0049     % update GUI data
+0050     setappdata(fig,'data',data);
+0051     % update pulse settings
+0052     getPulseParameters(gui.figh);
+0053     % get GUI data
+0054     data = getappdata(fig,'data');
+0055     % plot pulse
+0056     plotBpulse(gui.figh);
+0057     
+0058 else
+0059     warndlg({'onCheckPulseQ:','There is no figure with the BLOCHUS Tag open.'},...
+0060         'BLOCHUS error');
+0061 end
+0062 
+0063 end
+0064 
+0065 %------------- END OF CODE --------------
+0066 
+0067 %% License:
+0068 % GNU GPLv3
+0069 %
+0070 % BLOCHUS
+0071 % Copyright (C) 2019 Thomas Hiller
+0072 %
+0073 % This program is free software: you can redistribute it and/or modify
+0074 % it under the terms of the GNU General Public License as published by
+0075 % the Free Software Foundation, either version 3 of the License, or
+0076 % (at your option) any later version.
+0077 %
+0078 % This program is distributed in the hope that it will be useful,
+0079 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0080 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0081 % GNU General Public License for more details.
+0082 %
+0083 % You should have received a copy of the GNU General Public License
+0084 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/checkbox/onCheckRDP.html b/doc/blochus/callbacks/checkbox/onCheckRDP.html new file mode 100644 index 0000000..be41ce4 --- /dev/null +++ b/doc/blochus/callbacks/checkbox/onCheckRDP.html @@ -0,0 +1,151 @@ + + + + Description of onCheckRDP + + + + + + + + + + + +

onCheckRDP +

+ +

PURPOSE ^

+
updates the checkboxes that activate relaxation during pulse
+ +

SYNOPSIS ^

+
function onCheckRDP(src,~)
+ +

DESCRIPTION ^

+
onCheckRDP updates the checkboxes that activate relaxation during pulse
+(RDP) or relaxation during switch-off (RDS)
+
+ Syntax:
+       onCheckRDP(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onCheckRDP(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onCheckRDP(src,~)
+0002 %onCheckRDP updates the checkboxes that activate relaxation during pulse
+0003 %(RDP) or relaxation during switch-off (RDS)
+0004 %
+0005 % Syntax:
+0006 %       onCheckRDP(src)
+0007 %
+0008 % Inputs:
+0009 %       src - handle of the calling object
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       onCheckRDP(src)
+0016 %
+0017 % Other m-files required:
+0018 %       none
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     switch get(src,'Tag')        
+0042         case 'PrePolRDS'
+0043             % update the RDS switch
+0044             data.prepol.RDS = get(src,'Value');
+0045         case 'PulseRDP'            
+0046             % update the RDP switch
+0047             data.pulse.RDP = get(src,'Value');
+0048     end
+0049     
+0050     % update the data inside the GUI
+0051     setappdata(fig,'data',data);
+0052 else
+0053     warndlg({'onCheckRDP:','There is no figure with the BLOCHUS Tag open.'},...
+0054         'BLOCHUS error');
+0055 end
+0056 
+0057 end
+0058 
+0059 %------------- END OF CODE --------------
+0060 
+0061 %% License:
+0062 % GNU GPLv3
+0063 %
+0064 % BLOCHUS
+0065 % Copyright (C) 2019 Thomas Hiller
+0066 %
+0067 % This program is free software: you can redistribute it and/or modify
+0068 % it under the terms of the GNU General Public License as published by
+0069 % the Free Software Foundation, either version 3 of the License, or
+0070 % (at your option) any later version.
+0071 %
+0072 % This program is distributed in the hope that it will be useful,
+0073 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0074 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0075 % GNU General Public License for more details.
+0076 %
+0077 % You should have received a copy of the GNU General Public License
+0078 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/edits/menu.html b/doc/blochus/callbacks/edits/menu.html new file mode 100644 index 0000000..469edef --- /dev/null +++ b/doc/blochus/callbacks/edits/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\callbacks\edits + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\callbacks\edits

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/edits/onEditValue.html b/doc/blochus/callbacks/edits/onEditValue.html new file mode 100644 index 0000000..90b47c7 --- /dev/null +++ b/doc/blochus/callbacks/edits/onEditValue.html @@ -0,0 +1,499 @@ + + + + Description of onEditValue + + + + + + + + + + + +

onEditValue +

+ +

PURPOSE ^

+
updates all edit field values, checks for wrong inputs and
+ +

SYNOPSIS ^

+
function onEditValue(src,~)
+ +

DESCRIPTION ^

+
onEditValue updates all edit field values, checks for wrong inputs and
+restores a default value if necessary
+
+ Syntax:
+       onEditValue(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onEditValue(src)
+
+ Other m-files required:
+       getB0
+       getOmega0
+       getPulseParameters
+       getRampParameters
+       plotBpulse
+       plotRamp
+
+ Subfunctions:
+       createDataString
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • onEditValue updates all edit field values, checks for wrong inputs and
  • onPopupPrePolRamp selects the pre-polarization switch-off ramp
  • getB0 calculates the magnetic field from a given angular frequency and
  • getOmega0 calculates the angular frequency from a given B-field and
  • getPulseParameters updates all relevant pulse settings
  • getRampParameters updates all relevant switch-off ramp settings
  • plotBpulse plots different pulse parameter
  • plotRamp plots different pre-polarization switch-off ramp parameter
+This function is called by: + + + +

SUBFUNCTIONS ^

+ + +

SOURCE CODE ^

+
0001 function onEditValue(src,~)
+0002 %onEditValue updates all edit field values, checks for wrong inputs and
+0003 %restores a default value if necessary
+0004 %
+0005 % Syntax:
+0006 %       onEditValue(src)
+0007 %
+0008 % Inputs:
+0009 %       src - handle of the calling object
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       onEditValue(src)
+0016 %
+0017 % Other m-files required:
+0018 %       getB0
+0019 %       getOmega0
+0020 %       getPulseParameters
+0021 %       getRampParameters
+0022 %       plotBpulse
+0023 %       plotRamp
+0024 %
+0025 % Subfunctions:
+0026 %       createDataString
+0027 %
+0028 % MAT-files required:
+0029 %       none
+0030 %
+0031 % See also: BLOCHUS
+0032 % Author: Thomas Hiller
+0033 % email: thomas.hiller[at]leibniz-liag.de
+0034 % License: GNU GPLv3 (at end)
+0035 
+0036 %------------- BEGIN CODE --------------
+0037 
+0038 % get GUI handle
+0039 fig = ancestor(src,'figure','toplevel');
+0040 
+0041 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0042     % get GUI data
+0043     gui = getappdata(fig,'gui');
+0044     data = getappdata(fig,'data');
+0045     
+0046     % get the value of the field
+0047     val = str2double(get(src,'String'));
+0048     % get the tag of the edit field
+0049     tag = get(src,'Tag');
+0050     % get the user data of the field
+0051     ud = get(src,'UserData');
+0052     
+0053     if isstruct(ud) % for new fields
+0054         % get the default values [default min max]
+0055         defaults = ud.defaults;
+0056         
+0057         % check if the value is numeric
+0058         % if not reset to defaults stored in user data
+0059         if isnan(val)
+0060             set(src,'String',num2str(defaults(1)));
+0061             val = str2double(get(src,'String'));
+0062         end
+0063         % check if the value is out of bounds
+0064         % if yes reset to default
+0065         if val < defaults(2) || val > defaults(3)
+0066             set(src,'String',num2str(defaults(1)));
+0067             val = str2double(get(src,'String')); %#ok<*NASGU>
+0068         end
+0069         
+0070     else % old style (Needs to be removed after the refactoring)
+0071         % check if the value is numeric
+0072         % if not reset to defaults stored in user data
+0073         if isnan(val)
+0074             set(src,'String',num2str(ud(3)));
+0075             val = str2double(get(src,'String'));
+0076         end
+0077         % check if the value is out of bounds
+0078         % if yes reset to default
+0079         if val < ud(1) || val > ud(2)
+0080             set(src,'String',num2str(ud(3)));
+0081             val = str2double(get(src,'String')); %#ok<*NASGU>
+0082         end
+0083         disp(['there is still an old style edit field:',tag])
+0084     end
+0085     
+0086     % get the data field to update from the field tag
+0087     out = createDataString(tag);
+0088     % update the corresponding data field
+0089     updstr = [out.updstr,'=val;'];
+0090     eval(updstr);
+0091     
+0092     % update the data inside the GUI
+0093     setappdata(fig,'data',data);
+0094     
+0095     % depending on the particular edit field, further actions are
+0096     % necessary
+0097     switch tag
+0098         % -----------------------------------------------------------------
+0099         % --- BASICS ------------------------------------------------------
+0100         % -----------------------------------------------------------------
+0101         case 'basic_B0'
+0102             % new Larmor frequency due to changed B0
+0103             data.basic.Omega0 = getOmega0(data.basic.gamma,data.basic.B0)/2/pi;
+0104             % update the GUI fields
+0105             set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0));
+0106             setappdata(fig,'data',data);
+0107             % if "Pulse" is activated, update the pulse as if the
+0108             % pulse length (or number of periods) would have been changed
+0109             % manually
+0110             if get(gui.check_handles.Pulse,'Value') == 1
+0111                 onEditValue(gui.edit_handles.PulseTtau);
+0112                 data = getappdata(fig,'data');
+0113             end
+0114             % if "PrePol" is activated and the active ramp is "melton1995"
+0115             % update the switch-off ramp settings due to the changed Larmor
+0116             % frequency
+0117             if get(gui.check_handles.PrePol,'Value') == 1 && ...
+0118                     get(gui.popup_handles.PrePolRamp,'Value') == 5
+0119                 setappdata(fig,'data',data);
+0120                 onPopupPrePolRamp(gui.popup_handles.PrePolRamp);
+0121                 data = getappdata(fig,'data');
+0122             end
+0123             if get(gui.check_handles.PrePol,'Value') == 1
+0124                 setappdata(fig,'data',data);
+0125                 getRampParameters(fig);
+0126                 data = getappdata(fig,'data');
+0127             end
+0128             
+0129         case 'basic_Omega0'
+0130             % fix sign if it is wrong
+0131             if (data.basic.gamma > 0 && data.basic.Omega0 > 0) || ...
+0132                     (data.basic.gamma < 0 && data.basic.Omega0 < 0)
+0133                 data.basic.Omega0 = -data.basic.Omega0;
+0134             end
+0135             % new B0 due to changed Larmor frequency
+0136             data.basic.B0 = getB0(data.basic.gamma,data.basic.Omega0*2*pi);
+0137             % update the GUI fields
+0138             set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0));
+0139             set(gui.edit_handles.B0,'String',sprintf('%5.4e',data.basic.B0));
+0140             setappdata(fig,'data',data);
+0141             % if "Pulse" is activated, update the pulse as if the
+0142             % pulse length (or number of periods) would have been changed
+0143             % manually
+0144             if get(gui.check_handles.Pulse,'Value') == 1
+0145                 onEditValue(gui.edit_handles.PulseTtau);
+0146                 data = getappdata(fig,'data');
+0147             end
+0148             % if "PrePol" is activated and the active ramp is "melton1995"
+0149             % update the switch-off ramp settings due to the changed Larmor
+0150             % frequency
+0151             if get(gui.check_handles.PrePol,'Value') == 1 && ...
+0152                     get(gui.popup_handles.PrePolRamp,'Value') == 5
+0153                 setappdata(fig,'data',data);
+0154                 onPopupPrePolRamp(gui.popup_handles.PrePolRamp);
+0155                 data = getappdata(fig,'data');
+0156             end
+0157             if get(gui.check_handles.PrePol,'Value') == 1
+0158                 setappdata(fig,'data',data);
+0159                 getRampParameters(fig);
+0160                 data = getappdata(fig,'data');
+0161             end
+0162             
+0163         case 'basic_Minitx'
+0164             % x-component of init magnetization
+0165             data.basic.Minit(1) = val;
+0166             
+0167         case 'basic_Minity'
+0168             % y-component of init magnetization
+0169             data.basic.Minit(2) = val;
+0170             
+0171         case 'basic_Minitz'
+0172             % z-component of init magnetization
+0173             data.basic.Minit(3) = val;
+0174             
+0175             % -------------------------------------------------------------
+0176             % --- PRE-POLARIZATION ----------------------------------------
+0177             % -------------------------------------------------------------
+0178         case {'prepol_Factor','prepol_SwitchFactor'}
+0179             % check if the ramp type is "melton1995", if yes update the
+0180             % switch-off time to maintain the same switch-off rate
+0181             if get(gui.popup_handles.PrePolRamp,'Value') == 5
+0182                 % k / rate
+0183                 GAMMA = data.prepol.Factor/data.prepol.SwitchFactor;
+0184                 % corresponding ramp time
+0185                 Tramp = GAMMA/(data.basic.B0*data.basic.gamma)*1e3; % [ms]
+0186                 data.prepol.Tramp = Tramp;
+0187                 data.prepol.Tslope = Tramp;
+0188                 switch data.basic.type
+0189                     case 'prepol'
+0190                         data.basic.Tsim = Tramp;
+0191                         set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0192                     otherwise
+0193                         % nothing to do
+0194                 end
+0195                 setappdata(fig,'data',data);
+0196                 set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0197                 set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0198             end
+0199             % update switch-off ramp settings
+0200             getRampParameters(fig);
+0201             data = getappdata(fig,'data');
+0202             plotRamp(fig);
+0203             
+0204         case {'prepol_Theta','prepol_Phi','prepol_Tslope'}
+0205             % update switch-off ramp settings
+0206             getRampParameters(fig);
+0207             data = getappdata(fig,'data');
+0208             plotRamp(fig);
+0209             
+0210         case 'prepol_Tramp'
+0211             % for "linear" and "half cosine" ramp set the Tslope value,
+0212             % which is not need here equal to Tramp
+0213             if strcmp(data.prepol.Ramp,'lin') || strcmp(data.prepol.Ramp,'halfcos')
+0214                 data.prepol.Tslope = data.prepol.Tramp;
+0215                 set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0216             end
+0217             % in case of pure "PrePol" update the total simulation time
+0218             switch data.basic.type
+0219                 case 'prepol'
+0220                     data.basic.Tsim = data.prepol.Tramp;
+0221                     set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0222                 otherwise
+0223                     % nothing to do
+0224             end
+0225             setappdata(fig,'data',data);
+0226             % update switch-off ramp settings
+0227             getRampParameters(fig);
+0228             data = getappdata(fig,'data');
+0229             plotRamp(fig);
+0230             
+0231             % -------------------------------------------------------------
+0232             % --- PULSE ---------------------------------------------------
+0233             % -------------------------------------------------------------
+0234         case 'pulse_B1Factor'
+0235             % if the pulse amplitude changes some settings have to be
+0236             % adjusted, depending on the chosen pulse type
+0237             switch data.pulse.Type
+0238                 case {'pi_half','pi'}
+0239                     switch data.pulse.Type
+0240                         case 'pi_half'
+0241                             % in case of "pi_half" the pulse length gets updated
+0242                             data.pulse.Ttau = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.B1Factor)));
+0243                         case 'pi'
+0244                             % in case of "pi" the pulse length gets updated
+0245                             data.pulse.Ttau = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.B1Factor)));
+0246                     end
+0247                     set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0248                     % in case of pure "Pulse" update the total simulation time
+0249                     switch data.basic.type
+0250                         case 'pulse'
+0251                             data.basic.Tsim = data.pulse.Ttau;
+0252                             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0253                         otherwise
+0254                             % nothing to do
+0255                     end
+0256                     setappdata(fig,'data',data);
+0257                     % update pulse settings
+0258                     getPulseParameters(fig);
+0259                     data = getappdata(fig,'data');
+0260                     plotBpulse(fig);
+0261                     
+0262                 otherwise
+0263                     % update pulse settings
+0264                     getPulseParameters(fig);
+0265                     data = getappdata(fig,'data');
+0266                     plotBpulse(fig);
+0267             end
+0268             
+0269         case 'pulse_Ttau'
+0270             % if the pulse length changes some settings have to be
+0271             % adjusted, depending on the chosen pulse type
+0272             switch data.pulse.Type
+0273                 case {'pi_half','pi'}
+0274                     switch data.pulse.Type
+0275                         case 'pi_half'
+0276                             % in case of "pi_half" the pulse amplitude gets updated
+0277                             data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau)));
+0278                         case 'pi'
+0279                             % in case of "pi" the pulse amplitude gets updated
+0280                             data.pulse.B1Factor = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.Ttau)));
+0281                     end
+0282                     set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor));
+0283                     % in case of pure "Pulse" update the total simulation time
+0284                     switch data.basic.type
+0285                         case 'pulse'
+0286                             data.basic.Tsim = data.pulse.Ttau;
+0287                             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0288                         otherwise
+0289                             % nothing to do
+0290                     end
+0291                     setappdata(fig,'data',data);
+0292                     % update pulse settings
+0293                     getPulseParameters(fig);
+0294                     data = getappdata(fig,'data');
+0295                     plotBpulse(fig);
+0296                     
+0297                 case 'MIDI_OR'
+0298                     % in case of "MIDI_OR" the PulseTtau-field holds the
+0299                     % number of periods
+0300                     data.pulse.MIDINP = val;
+0301                     % update pulse length
+0302                     data.pulse.Ttau = abs(data.pulse.MIDINP/data.basic.Omega0)*1e3;
+0303                     % update pulse amplitude to pi/2 value
+0304                     data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau)));
+0305                     set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor));
+0306                     % in case of pure "Pulse" update the total simulation time
+0307                     switch data.basic.type
+0308                         case 'pulse'
+0309                             data.basic.Tsim = data.pulse.Ttau;
+0310                             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0311                         otherwise
+0312                             % nothing to do
+0313                     end
+0314                     setappdata(fig,'data',data);
+0315                     % update pulse settings
+0316                     getPulseParameters(fig);
+0317                     data = getappdata(fig,'data');
+0318                     plotBpulse(fig);
+0319                     
+0320                 case 'MIDI_AP'
+0321                     % in case of "MIDI_AP" the PulseTtau-field holds the
+0322                     % number of periods
+0323                     data.pulse.MIDINP = val;
+0324                     % update pulse length assuming a constant frequency
+0325                     data.pulse.Ttau = abs(data.pulse.MIDINP/data.basic.Omega0)*1e3;
+0326                     % now calculate the actual pulse settings
+0327                     setappdata(fig,'data',data);
+0328                     getPulseParameters(fig);
+0329                     data = getappdata(fig,'data');
+0330                     % adjust the pulse length to the actual value
+0331                     data.pulse.Ttau = data.pulse_MIDI.t(end)*1e3;
+0332                     % in case of pure "Pulse" update the total simulation time
+0333                     switch data.basic.type
+0334                         case 'pulse'
+0335                             data.basic.Tsim = data.pulse.Ttau;
+0336                             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0337                         otherwise
+0338                             % nothing to do
+0339                     end
+0340                     setappdata(fig,'data',data);
+0341                     % update pulse plot
+0342                     plotBpulse(fig);
+0343                     
+0344                 otherwise
+0345                     % for all other pulse types ("free" & "AHP")
+0346                     % in case of pure "Pulse" update the total simulation time
+0347                     switch data.basic.type
+0348                         case 'pulse'
+0349                             data.basic.Tsim = data.pulse.Ttau;
+0350                             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0351                         otherwise
+0352                             % nothing to do
+0353                     end
+0354                     % update GUI data
+0355                     setappdata(fig,'data',data);
+0356                     % update pulse settings
+0357                     getPulseParameters(fig);
+0358                     data = getappdata(fig,'data');
+0359                     plotBpulse(fig);
+0360             end
+0361             
+0362         otherwise
+0363             switch data.basic.type
+0364                 % update all changes related to the pulse modulation
+0365                 case {'pulse','prepolpulse'}
+0366                     setappdata(fig,'data',data);
+0367                     getPulseParameters(fig);
+0368                     data = getappdata(fig,'data');
+0369                     plotBpulse(fig);
+0370                     
+0371                 otherwise
+0372                     % nothing to do for all other fields e.g. T1, T2, Tsim
+0373             end
+0374     end
+0375     
+0376     % update GUI data
+0377     setappdata(fig,'data',data);
+0378 else
+0379     warndlg({'onEditValue:','There is no figure with the BLOCHUS Tag open.'},...
+0380         'BLOCHUS error');
+0381 end
+0382 
+0383 end
+0384 
+0385 %% helper function to create the update string
+0386 function out = createDataString(tag)
+0387 % find the underscore
+0388 ind = strfind(tag,'_');
+0389 % the panel name is before the underscore
+0390 out.panel = tag(1:ind(1)-1);
+0391 % the field name afterwards
+0392 out.field = tag(ind(1)+1:end);
+0393 % replace the underscore with a dot
+0394 tag(ind) = '.';
+0395 % create the update string
+0396 out.updstr = ['data.',tag];
+0397 
+0398 end
+0399 
+0400 %------------- END OF CODE --------------
+0401 
+0402 %% License:
+0403 % GNU GPLv3
+0404 %
+0405 % BLOCHUS
+0406 % Copyright (C) 2019 Thomas Hiller
+0407 %
+0408 % This program is free software: you can redistribute it and/or modify
+0409 % it under the terms of the GNU General Public License as published by
+0410 % the Free Software Foundation, either version 3 of the License, or
+0411 % (at your option) any later version.
+0412 %
+0413 % This program is distributed in the hope that it will be useful,
+0414 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0415 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0416 % GNU General Public License for more details.
+0417 %
+0418 % You should have received a copy of the GNU General Public License
+0419 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/menu.html b/doc/blochus/callbacks/menus/menu.html new file mode 100644 index 0000000..bea8b9b --- /dev/null +++ b/doc/blochus/callbacks/menus/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\callbacks\menus + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\callbacks\menus

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuExport.html b/doc/blochus/callbacks/menus/onMenuExport.html new file mode 100644 index 0000000..aba9783 --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuExport.html @@ -0,0 +1,173 @@ + + + + Description of onMenuExport + + + + + + + + + + + +

onMenuExport +

+ +

PURPOSE ^

+
handles the extra menu entries
+ +

SYNOPSIS ^

+
function onMenuExport(src,~)
+ +

DESCRIPTION ^

+
onMenuExport handles the extra menu entries
+
+ Syntax:
+       onMenuExport(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuExport(src)
+
+ Other m-files required:
+       switchToolTips
+       updateStatusInformation
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuExport(src,~)
+0002 %onMenuExport handles the extra menu entries
+0003 %
+0004 % Syntax:
+0005 %       onMenuExport(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuExport(src)
+0015 %
+0016 % Other m-files required:
+0017 %       switchToolTips
+0018 %       updateStatusInformation
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % gather the output data to save
+0042     savedata.data = data;
+0043     savedata.myui = gui.myui;
+0044     savedata.Nucleus = get(gui.popup_handles.Nuc,'Value');
+0045     savedata.isPrePol = get(gui.check_handles.PrePol,'Value');
+0046     savedata.Ramp = get(gui.popup_handles.PrePolRamp,'Value');
+0047     savedata.isPulse = get(gui.check_handles.Pulse,'Value');
+0048     savedata.PulseType = get(gui.popup_handles.PulseType,'Value');
+0049     savedata.PulseAxis = get(gui.popup_handles.PulseAxis,'Value');
+0050     savedata.PulsePolarization = get(gui.popup_handles.PulsePolarization,'Value');
+0051     savedata.PulseDFmode = get(gui.popup_handles.PulseDFmode,'Value');
+0052     savedata.PulseImode = get(gui.popup_handles.PulseImode,'Value');
+0053     savedata.PulseQ = get(gui.check_handles.PulseQ,'Value');
+0054     
+0055     % session file name
+0056     sfilename = 'BLOCHUS_session';
+0057     
+0058     % ask for folder and maybe new name
+0059     [sfile,spath] = uiputfile('*.mat',...
+0060         'Save session file',...
+0061         fullfile(pwd,[sfilename,'.mat']));
+0062     
+0063     % if user didn't cancel save session
+0064     if sum([sfile spath]) > 0
+0065         save(fullfile(spath,sfile),'savedata');
+0066         clear savedata;
+0067         % display info text
+0068         set(gui.text_handles.Status,'String','BLOCHUS session successfully saved.');
+0069     else
+0070         % display info text
+0071         set(gui.text_handles.Status,'String','BLOCHUS session not saved');
+0072     end
+0073     
+0074 else
+0075     warndlg({'onMenuExport:','There is no figure with the BLOCHUS Tag open.'},...
+0076         'BLOCHUS error');
+0077 end
+0078 
+0079 end
+0080 
+0081 %------------- END OF CODE --------------
+0082 
+0083 %% License:
+0084 % GNU GPLv3
+0085 %
+0086 % BLOCHUS
+0087 % Copyright (C) 2019 Thomas Hiller
+0088 %
+0089 % This program is free software: you can redistribute it and/or modify
+0090 % it under the terms of the GNU General Public License as published by
+0091 % the Free Software Foundation, either version 3 of the License, or
+0092 % (at your option) any later version.
+0093 %
+0094 % This program is distributed in the hope that it will be useful,
+0095 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0096 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0097 % GNU General Public License for more details.
+0098 %
+0099 % You should have received a copy of the GNU General Public License
+0100 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuHelp.html b/doc/blochus/callbacks/menus/onMenuHelp.html new file mode 100644 index 0000000..01f31e6 --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuHelp.html @@ -0,0 +1,218 @@ + + + + Description of onMenuHelp + + + + + + + + + + + +

onMenuHelp +

+ +

PURPOSE ^

+
shows the Help Information
+ +

SYNOPSIS ^

+
function onMenuHelp(src,~)
+ +

DESCRIPTION ^

+
onMenuHelp shows the Help Information
+
+ Syntax:
+       onMenuHelp(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuHelp(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuHelp(src,~)
+0002 %onMenuHelp shows the Help Information
+0003 %
+0004 % Syntax:
+0005 %       onMenuHelp(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuHelp(src)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui = getappdata(fig,'gui');
+0038     
+0039     
+0040     % BLOCHUS logo
+0041     load('BLOCHUS_logo.mat','logo');
+0042     
+0043     % header info
+0044     header{1,1}  = 'BLOCHUS:';
+0045     header{end+1,1}  = ' ';
+0046     header{end+1,1}  = ['author: ',gui.myui.author];
+0047     header{end+1,1}  = ' ';
+0048     header{end+1,1}  = ['version: ',gui.myui.version];
+0049     header{end+1,1}  = ' ';
+0050     header{end+1,1}  = ['date: ',gui.myui.date];
+0051     header{end+1,1}  = ' ';
+0052     
+0053     % info text
+0054     info{1,1} = ['BLOCHUS is a set of MATLAB tools, that allow some basic',...
+0055         ' simulations of (S)NMR spin dynamics based on the Bloch equations.',...
+0056         ' The Bloch equations are solved in the laboratory frame of reference',...
+0057         ' with MATLABs built-in ode45 solver.',...
+0058         ' Because it was developed within the scope of a near surface SNMR project,',...
+0059         ' its main features are the simulation of',...
+0060         ' (1) pre-polarization switch-off ramps and (2) excitation pulses.',...
+0061         ' The main front-end to the underlying simulation tools is a',...
+0062         ' graphical user interface (GUI)',...
+0063         ' that allows playing around with the different features and helps',...
+0064         ' to understand the basic concepts of (S)NMR spin dynamics.'];
+0065     info{end+1,1} = ' ';
+0066     info{end+1,1} = 'Have Fun!';
+0067     
+0068     % get BLOCHUS GUI position
+0069     posf = get(fig,'Position');
+0070     % default widht and height of About Figure
+0071     ww = 560; hh = 420;
+0072     xp = posf(1) + (posf(3)-ww)/2;
+0073     yp = posf(2) + (posf(4)-hh)/2;
+0074     % create Figure
+0075     hf = figure('Name','About BLOCHUS',...
+0076         'NumberTitle','off','Tag','Help','ToolBar','none','MenuBar','none',...
+0077         'Resize','off','Position',[xp yp ww hh]);
+0078     v1 = uix.VBox('Parent',hf,'Padding',10,'Spacing',10);
+0079     
+0080     % text area
+0081     h1 = uix.VBox('Parent',v1);
+0082     % button area
+0083     h2 = uix.HBox('Parent',v1);
+0084     set(v1,'Heights',[-1 30]);
+0085     
+0086     % text area
+0087     h3 = uix.HBox('Parent',h1);
+0088     % logo area
+0089     h4 = uix.HBox('Parent',h1);
+0090     set(h1,'Heights',[-1 -1]);
+0091     
+0092     % close button at the bottom
+0093     uix.Empty('Parent',h2);
+0094     p1 = uicontrol('Style','pushbutton','Parent',h2,'String','OK',...
+0095         'FontSize',10,'Callback','closereq()');
+0096     uix.Empty('Parent',h2);
+0097     set(h2,'Widths',[-1 50 -1])
+0098     
+0099     % header
+0100     uix.Empty('Parent',h3);
+0101     t1 = uicontrol('Style','Text','Parent',h3,'String',header,...
+0102         'FontSize',10,'HorizontalAlignment','left');
+0103     % logo
+0104     c1 = uicontainer('Parent',h3);
+0105     ax1 = axes('Parent',c1);
+0106     imshow(logo,'Parent',ax1);
+0107     set(h3,'Widths',[50 -1 -1]);
+0108     
+0109     % info text
+0110     uix.Empty('Parent',h4);
+0111     t2 = uicontrol('Style','Text','Parent',h4,'String',info,...
+0112         'FontSize',10,'HorizontalAlignment','left');
+0113     uix.Empty('Parent',h4);
+0114     set(h4,'Widths',[20 -1 20])
+0115     
+0116     % text hack
+0117     jh = findjobj(t1);
+0118     jh.setVerticalAlignment(javax.swing.JLabel.CENTER)
+0119     
+0120 else
+0121     warndlg({'onMenuHelp:','There is no figure with the BLOCHUS Tag open.'},...
+0122         'BLOCHUS error');
+0123 end
+0124 
+0125 end
+0126 
+0127 %------------- END OF CODE --------------
+0128 
+0129 %% License:
+0130 % GNU GPLv3
+0131 %
+0132 % BLOCHUS
+0133 % Copyright (C) 2019 Thomas Hiller
+0134 %
+0135 % This program is free software: you can redistribute it and/or modify
+0136 % it under the terms of the GNU General Public License as published by
+0137 % the Free Software Foundation, either version 3 of the License, or
+0138 % (at your option) any later version.
+0139 %
+0140 % This program is distributed in the hope that it will be useful,
+0141 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0142 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0143 % GNU General Public License for more details.
+0144 %
+0145 % You should have received a copy of the GNU General Public License
+0146 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuImport.html b/doc/blochus/callbacks/menus/onMenuImport.html new file mode 100644 index 0000000..dfa9332 --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuImport.html @@ -0,0 +1,237 @@ + + + + Description of onMenuImport + + + + + + + + + + + +

onMenuImport +

+ +

PURPOSE ^

+
handles the extra menu entries
+ +

SYNOPSIS ^

+
function onMenuImport(src,~)
+ +

DESCRIPTION ^

+
onMenuImport handles the extra menu entries
+
+ Syntax:
+       onMenuImport(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuImport(src)
+
+ Other m-files required:
+       switchToolTips
+       updateStatusInformation
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuImport(src,~)
+0002 %onMenuImport handles the extra menu entries
+0003 %
+0004 % Syntax:
+0005 %       onMenuImport(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuImport(src)
+0015 %
+0016 % Other m-files required:
+0017 %       switchToolTips
+0018 %       updateStatusInformation
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % after the import these values should be strings
+0042     Sessionpath = -1;
+0043     Sessionfile = -1;
+0044     % 'pathstr' hold s the name of the chosen data path
+0045     [pathstr,~,~] = fileparts(pwd);
+0046     % get the file name
+0047     [Sessionfile,Sessionpath] = uigetfile(pathstr,...
+0048         'Choose BLOCHUS session file');
+0049     
+0050     % only continue if user didn't cancel
+0051     if sum(Sessionpath) > 0
+0052         % check if it is a valid session file
+0053         tmp = load(fullfile(Sessionpath,Sessionfile),'savedata');
+0054         if isfield(tmp,'savedata') && isfield(tmp.savedata,'data') && ...
+0055                 isfield(tmp.savedata,'isPulse') && isfield(tmp.savedata,'isPrePol')
+0056             savedata = tmp.savedata;
+0057             
+0058             % copy data
+0059             data.info = savedata.data.info;
+0060             data.init = savedata.data.init;
+0061             data.basic = savedata.data.basic;
+0062             data.prepol = savedata.data.prepol;
+0063             data.pulse = savedata.data.pulse;
+0064             if isfield(savedata.data,'results')
+0065                 data.results = savedata.data.results;
+0066             end
+0067             % update GUI data
+0068             setappdata(fig,'data',data);
+0069             
+0070             % update all edit-fields
+0071             set(gui.edit_handles.B0,'String',num2str(data.basic.B0));
+0072             set(gui.edit_handles.Omega0,'String',num2str(data.basic.Omega0));
+0073             set(gui.edit_handles.T1relax,'String',num2str(data.basic.T1relax));
+0074             set(gui.edit_handles.T2relax,'String',num2str(data.basic.T2relax));
+0075             set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0076             set(gui.edit_handles.M0x,'String',num2str(data.basic.M0(1)));
+0077             set(gui.edit_handles.M0y,'String',num2str(data.basic.M0(2)));
+0078             set(gui.edit_handles.M0z,'String',num2str(data.basic.M0(3)));
+0079             set(gui.edit_handles.Minitx,'String',num2str(data.basic.Minit(1)));
+0080             set(gui.edit_handles.Minity,'String',num2str(data.basic.Minit(2)));
+0081             set(gui.edit_handles.Minitz,'String',num2str(data.basic.Minit(3)));
+0082             
+0083             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0084             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0085             set(gui.edit_handles.PrePolPhi,'String',num2str(data.prepol.Phi));
+0086             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0087             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0088             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0089             
+0090             set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor));
+0091             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0092             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart));
+0093             set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend));
+0094             set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA));
+0095             set(gui.edit_handles.PulseDFB,'String',num2str(data.pulse.DFB));
+0096             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart));
+0097             set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend));
+0098             set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA));
+0099             set(gui.edit_handles.PulseIB,'String',num2str(data.pulse.IB));
+0100             set(gui.edit_handles.PulseQ,'String',num2str(data.pulse.Q));
+0101             set(gui.edit_handles.PulseQdf,'String',num2str(data.pulse.Qdf));
+0102             set(gui.edit_handles.PulseTwait,'String',num2str(data.pulse.Twait));
+0103             
+0104             % update nucleus popup
+0105             set(gui.popup_handles.Nuc,'Value',savedata.Nucleus);
+0106             
+0107             % update PrePol uicontrols
+0108             set(gui.check_handles.PrePolRDS,'Value',data.prepol.RDS);
+0109             set(gui.popup_handles.PrePolRamp,'Value',savedata.Ramp);
+0110             set(gui.check_handles.PrePol,'Value',savedata.isPrePol);
+0111             
+0112             % update Pulse uicontrols
+0113             set(gui.check_handles.PulseRDP,'Value',data.pulse.RDP);
+0114             set(gui.popup_handles.PulseType,'Value',savedata.PulseType);
+0115             set(gui.popup_handles.PulseAxis,'Value',savedata.PulseAxis);
+0116             set(gui.popup_handles.PulsePolarization,'Value',savedata.PulsePolarization);
+0117             set(gui.popup_handles.PulseDFmode,'Value',savedata.PulseDFmode);
+0118             set(gui.popup_handles.PulseImode,'Value',savedata.PulseImode);
+0119             set(gui.check_handles.PulseQ,'Value',savedata.PulseQ);
+0120             onCheckPulseQ(gui.check_handles.PulseQ);
+0121             set(gui.check_handles.Pulse,'Value',savedata.isPulse);
+0122             
+0123             % activate the panels (if any)
+0124             onCheckPrePolPulse(gui.check_handles.PrePol);
+0125             
+0126             % plot results (if any)
+0127             if isfield(savedata.data,'results')
+0128                 plotResults(fig);
+0129             end
+0130             
+0131         else
+0132             helpdlg({'onMenuImport:';...
+0133                 'This seems to be not a valid BLOCHUS session file'},...
+0134                 'No session data found');
+0135         end        
+0136     end
+0137     
+0138 else
+0139     warndlg({'onMenuImport:','There is no figure with the BLOCHUS Tag open.'},...
+0140         'BLOCHUS error');
+0141 end
+0142 
+0143 end
+0144 
+0145 %------------- END OF CODE --------------
+0146 
+0147 %% License:
+0148 % GNU GPLv3
+0149 %
+0150 % BLOCHUS
+0151 % Copyright (C) 2019 Thomas Hiller
+0152 %
+0153 % This program is free software: you can redistribute it and/or modify
+0154 % it under the terms of the GNU General Public License as published by
+0155 % the Free Software Foundation, either version 3 of the License, or
+0156 % (at your option) any later version.
+0157 %
+0158 % This program is distributed in the hope that it will be useful,
+0159 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0160 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0161 % GNU General Public License for more details.
+0162 %
+0163 % You should have received a copy of the GNU General Public License
+0164 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuRestartQuit.html b/doc/blochus/callbacks/menus/onMenuRestartQuit.html new file mode 100644 index 0000000..634e871 --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuRestartQuit.html @@ -0,0 +1,143 @@ + + + + Description of onMenuRestartQuit + + + + + + + + + + + +

onMenuRestartQuit +

+ +

PURPOSE ^

+
restarts or closes the GUI
+ +

SYNOPSIS ^

+
function onMenuRestartQuit(src,~)
+ +

DESCRIPTION ^

+
onMenuRestartQuit restarts or closes the GUI
+
+ Syntax:
+       onMenuRestartQuit(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuRestartQuit(src)
+
+ Other m-files required:
+       BLOCHUS
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuRestartQuit(src,~)
+0002 %onMenuRestartQuit restarts or closes the GUI
+0003 %
+0004 % Syntax:
+0005 %       onMenuRestartQuit(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuRestartQuit(src)
+0015 %
+0016 % Other m-files required:
+0017 %       BLOCHUS
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get the label (Restart / Quit)
+0037     label = get(src,'Label');
+0038     % close the figure
+0039     close(fig);
+0040     % and restart if necessary
+0041     if strcmp(label,'Restart')
+0042         BLOCHUS;
+0043     end
+0044     
+0045 else
+0046     warndlg({'onMenuRestartQuit:','There is no figure with the BLOCHUS Tag open.'},...
+0047         'BLOCHUS error');
+0048 end
+0049 
+0050 end
+0051 
+0052 %------------- END OF CODE --------------
+0053 
+0054 %% License:
+0055 % GNU GPLv3
+0056 %
+0057 % BLOCHUS
+0058 % Copyright (C) 2019 Thomas Hiller
+0059 %
+0060 % This program is free software: you can redistribute it and/or modify
+0061 % it under the terms of the GNU General Public License as published by
+0062 % the Free Software Foundation, either version 3 of the License, or
+0063 % (at your option) any later version.
+0064 %
+0065 % This program is distributed in the hope that it will be useful,
+0066 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0067 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0068 % GNU General Public License for more details.
+0069 %
+0070 % You should have received a copy of the GNU General Public License
+0071 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuViewFigure.html b/doc/blochus/callbacks/menus/onMenuViewFigure.html new file mode 100644 index 0000000..1a16a7b --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuViewFigure.html @@ -0,0 +1,266 @@ + + + + Description of onMenuViewFigure + + + + + + + + + + + +

onMenuViewFigure +

+ +

PURPOSE ^

+
shows predefined figure layouts
+ +

SYNOPSIS ^

+
function onMenuViewFigure(src,~)
+ +

DESCRIPTION ^

+
onMenuViewFigure shows predefined figure layouts
+
+ Syntax:
+       onMenuViewFigure(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuViewFigure(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuViewFigure(src,~)
+0002 %onMenuViewFigure shows predefined figure layouts
+0003 %
+0004 % Syntax:
+0005 %       onMenuViewFigure(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuViewFigure(src)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui = getappdata(fig,'gui');
+0038     data = getappdata(fig,'data');
+0039     
+0040     % get GUI position
+0041     posf = get(fig,'Position');
+0042     % opening the export figure
+0043     expfig = figure;
+0044     
+0045     % create the axes layout on the export figure
+0046     switch get(src,'Label')
+0047         case {'Current View','Magnetization','Switch-off Ramp'}
+0048             % we copy all visible axes in a 2x2 grid
+0049             ax1 = subplot(2,2,1,'Parent',expfig);
+0050             ax2 = subplot(2,2,2,'Parent',expfig);
+0051             ax3 = subplot(2,2,3,'Parent',expfig);
+0052             ax4 = subplot(2,2,4,'Parent',expfig);
+0053             
+0054         case 'Pulse'
+0055             % we copy pulse parameter in a 3x2 grid
+0056             ax1 = subplot(3,2,1,'Parent',expfig);
+0057             ax2 = subplot(3,2,2,'Parent',expfig);
+0058             ax3 = subplot(3,2,[3 4],'Parent',expfig);
+0059             ax4 = subplot(3,2,[5 6],'Parent',expfig);
+0060     end
+0061     % get the default positions
+0062     pos1 = get(ax1,'Position');
+0063     pos2 = get(ax2,'Position');
+0064     pos3 = get(ax3,'Position');
+0065     pos4 = get(ax4,'Position');
+0066     % delete axes
+0067     delete(ax1);delete(ax2);delete(ax3);delete(ax4);
+0068     
+0069     % copy the GUI axes to the export figure
+0070     switch get(src,'Label')
+0071         case 'Current View'
+0072             mag = get(gui.panels.Plot.Mag,'Selection');
+0073             sph = get(gui.panels.Plot.Sphere,'Selection');
+0074             pre = get(gui.panels.Plot.PrePol,'Selection');
+0075             pul = get(gui.panels.Plot.Pulse,'Selection');
+0076             switch mag
+0077                 case 1
+0078                     ax1 = copyobj(gui.axes_handles.MagL,expfig);
+0079                 case 2
+0080                     ax1 = copyobj(gui.axes_handles.MagR,expfig);
+0081                 case 3
+0082                     ax1 = copyobj(gui.axes_handles.MagFFT,expfig);
+0083             end
+0084             switch sph
+0085                 case 1
+0086                     ax2 = copyobj(gui.axes_handles.SphereL,expfig);
+0087                 case 2
+0088                     ax2 = copyobj(gui.axes_handles.SphereR,expfig);
+0089             end
+0090             switch pre
+0091                 case 1
+0092                     ax3 = copyobj(gui.axes_handles.Bpre,expfig);
+0093                 case 2
+0094                     ax3 = copyobj(gui.axes_handles.alpha,expfig);
+0095                 case 3
+0096                     ax3 = copyobj(gui.axes_handles.dadt,expfig);
+0097                 case 4
+0098                     ax3 = copyobj(gui.axes_handles.wda,expfig);
+0099             end
+0100             switch pul
+0101                 case 1
+0102                     ax4 = copyobj(gui.axes_handles.PulseSetupF,expfig);
+0103                 case 2
+0104                     ax4 = copyobj(gui.axes_handles.PulseB,expfig);
+0105                 case 3
+0106                     ax4 = copyobj(gui.axes_handles.PulseFFT,expfig);
+0107             end
+0108             
+0109             set(expfig,'Name','BLOCHUS: Current View');
+0110             
+0111         case 'Magnetization'
+0112             ax1 = copyobj(gui.axes_handles.MagL,expfig);
+0113             ax2 = copyobj(gui.axes_handles.SphereL,expfig);
+0114             ax3 = copyobj(gui.axes_handles.MagR,expfig);
+0115             ax4 = copyobj(gui.axes_handles.SphereR,expfig);
+0116             
+0117             set(expfig,'Name','BLOCHUS: Magnetization');
+0118             
+0119         case 'Switch-off Ramp'
+0120             ax1 = copyobj(gui.axes_handles.Bpre,expfig);
+0121             ax2 = copyobj(gui.axes_handles.alpha,expfig);
+0122             ax3 = copyobj(gui.axes_handles.dadt,expfig);
+0123             ax4 = copyobj(gui.axes_handles.wda,expfig);
+0124             
+0125             set(expfig,'Name','BLOCHUS: Switch-off Ramp');
+0126             
+0127         case 'Pulse'
+0128             ax1 = copyobj(gui.axes_handles.PulseSetupF,expfig);
+0129             ax2 = copyobj(gui.axes_handles.PulseSetupI,expfig);
+0130             ax3 = copyobj(gui.axes_handles.PulseB,expfig);
+0131             ax4 = copyobj(gui.axes_handles.PulseFFT,expfig);
+0132             
+0133             set(expfig,'Name','BLOCHUS: Pulse');
+0134     end
+0135     % adjust the axes positions
+0136     set(ax1,'Position',pos1);
+0137     set(ax2,'Position',pos2);
+0138     set(ax3,'Position',pos3);
+0139     set(ax4,'Position',pos4);
+0140     
+0141     % adjust the position of the export figure
+0142     set(expfig,'Position',[posf(1)+300 posf(2) (posf(3)-300)*0.8 posf(4)*0.8]);
+0143     
+0144     % show legends
+0145     switch get(src,'Label')
+0146         case 'Current View'
+0147             lgh1 = legend(ax1,'show');
+0148             lgh3 = legend(ax3,'show');
+0149             lgh4 = legend(ax4,'show');
+0150             
+0151         case 'Magnetization'
+0152             lgh1 = legend(ax1,'show');
+0153             lgh3 = legend(ax3,'show');
+0154             
+0155         case 'Switch-off Ramp'
+0156             lgh1 = legend(ax1,'show');
+0157             lgh2 = legend(ax2,'show');
+0158             lgh4 = legend(ax4,'show');
+0159             set(lgh4,'Interpreter','latex','Location','best');
+0160             
+0161         case 'Pulse'
+0162             lgh1 = legend(ax1,'show');
+0163             lgh2 = legend(ax2,'show');
+0164             lgh3 = legend(ax3,'show');
+0165             lgh4 = legend(ax4,'show');
+0166     end
+0167     
+0168 else
+0169     warndlg({'onMenuViewFigure:','There is no figure with the BLOCHUS Tag open.'},...
+0170         'BLOCHUS error');
+0171 end
+0172 
+0173 end
+0174 
+0175 %------------- END OF CODE --------------
+0176 
+0177 %% License:
+0178 % GNU GPLv3
+0179 %
+0180 % BLOCHUS
+0181 % Copyright (C) 2019 Thomas Hiller
+0182 %
+0183 % This program is free software: you can redistribute it and/or modify
+0184 % it under the terms of the GNU General Public License as published by
+0185 % the Free Software Foundation, either version 3 of the License, or
+0186 % (at your option) any later version.
+0187 %
+0188 % This program is distributed in the hope that it will be useful,
+0189 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0190 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0191 % GNU General Public License for more details.
+0192 %
+0193 % You should have received a copy of the GNU General Public License
+0194 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/menus/onMenuViewShow.html b/doc/blochus/callbacks/menus/onMenuViewShow.html new file mode 100644 index 0000000..c6b99c9 --- /dev/null +++ b/doc/blochus/callbacks/menus/onMenuViewShow.html @@ -0,0 +1,171 @@ + + + + Description of onMenuViewShow + + + + + + + + + + + +

onMenuViewShow +

+ +

PURPOSE ^

+
handles the extra menu entries
+ +

SYNOPSIS ^

+
function onMenuViewShow(src,~)
+ +

DESCRIPTION ^

+
onMenuViewShow handles the extra menu entries
+
+ Syntax:
+       onMenuViewShow(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onMenuViewShow(src,~)
+
+ Other m-files required:
+       switchToolTips
+       updateStatusInformation
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onMenuViewShow(src,~)
+0002 %onMenuViewShow handles the extra menu entries
+0003 %
+0004 % Syntax:
+0005 %       onMenuViewShow(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onMenuViewShow(src,~)
+0015 %
+0016 % Other m-files required:
+0017 %       switchToolTips
+0018 %       updateStatusInformation
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     switch get(src,'Label')
+0042         case 'Tooltips' % switch on/off Tooltips
+0043             onoff = get(gui.menu.view_tooltips,'Checked');
+0044             switchToolTips(gui,onoff);
+0045             switch onoff
+0046                 case 'on'
+0047                     set(gui.menu.view_tooltips,'Checked','off');
+0048                     data.info.ToolTips = 0;
+0049                 case 'off'
+0050                     set(gui.menu.view_tooltips,'Checked','on');
+0051                     data.info.ToolTips = 1;
+0052             end
+0053             
+0054         case 'Figure Toolbar' % switch on/off the default Figure Toolbar
+0055             onoff = get(gui.menu.view_toolbar,'Checked');
+0056             switch onoff
+0057                 case 'on'
+0058                     set(gui.menu.view_toolbar,'Checked','off');
+0059                     viewmenufcn('FigureToolbar');
+0060                 case 'off'
+0061                     set(gui.menu.view_toolbar,'Checked','on');
+0062                     viewmenufcn('FigureToolbar');
+0063             end
+0064     end
+0065     
+0066     % update GUI data
+0067     setappdata(fig,'gui',gui);
+0068     setappdata(fig,'data',data);
+0069     % update status bar
+0070     updateStatusInformation(fig);
+0071     
+0072 else
+0073     warndlg({'onMenuViewShow:','There is no figure with the BLOCHUS Tag open.'},...
+0074         'BLOCHUS error');
+0075 end
+0076 
+0077 end
+0078 
+0079 %------------- END OF CODE --------------
+0080 
+0081 %% License:
+0082 % GNU GPLv3
+0083 %
+0084 % BLOCHUS
+0085 % Copyright (C) 2019 Thomas Hiller
+0086 %
+0087 % This program is free software: you can redistribute it and/or modify
+0088 % it under the terms of the GNU General Public License as published by
+0089 % the Free Software Foundation, either version 3 of the License, or
+0090 % (at your option) any later version.
+0091 %
+0092 % This program is distributed in the hope that it will be useful,
+0093 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0094 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0095 % GNU General Public License for more details.
+0096 %
+0097 % You should have received a copy of the GNU General Public License
+0098 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/menu.html b/doc/blochus/callbacks/popup/menu.html new file mode 100644 index 0000000..27ffe07 --- /dev/null +++ b/doc/blochus/callbacks/popup/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\callbacks\popup + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\callbacks\popup

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupNucleus.html b/doc/blochus/callbacks/popup/onPopupNucleus.html new file mode 100644 index 0000000..b627aaa --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupNucleus.html @@ -0,0 +1,202 @@ + + + + Description of onPopupNucleus + + + + + + + + + + + +

onPopupNucleus +

+ +

PURPOSE ^

+
selects the nucleus (proton) to use for the simulation
+ +

SYNOPSIS ^

+
function onPopupNucleus(src,~)
+ +

DESCRIPTION ^

+
onPopupNucleus selects the nucleus (proton) to use for the simulation
+
+ Syntax:
+       onPopupNucleus(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupNucleus(src)
+
+ Other m-files required:
+       getGyroRatio
+       getOmega0
+       onEditValue
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • onEditValue updates all edit field values, checks for wrong inputs and
  • getGyroRatio provides the gyromagnetic ratio of different nuclei
  • getOmega0 calculates the angular frequency from a given B-field and
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupNucleus(src,~)
+0002 %onPopupNucleus selects the nucleus (proton) to use for the simulation
+0003 %
+0004 % Syntax:
+0005 %       onPopupNucleus(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupNucleus(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getGyroRatio
+0018 %       getOmega0
+0019 %       onEditValue
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % get GUI handle
+0035 fig = ancestor(src,'figure','toplevel');
+0036 
+0037 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0038     % get GUI data
+0039     gui = getappdata(fig,'gui');
+0040     data = getappdata(fig,'data');
+0041     
+0042     % get the popup menu entry
+0043     val = get(src,'Value');
+0044     
+0045     % set the corresponding nucleus
+0046     switch val
+0047         case 1
+0048             data.basic.nucleus = '1H';
+0049         case 2
+0050             data.basic.nucleus = '2H';
+0051         case 3
+0052             data.basic.nucleus = '3He';
+0053         case 4
+0054             data.basic.nucleus = '7Li';
+0055         case 5
+0056             data.basic.nucleus = '13C';
+0057         case 6
+0058             data.basic.nucleus = '14N';
+0059         case 7
+0060             data.basic.nucleus = '15N';
+0061         case 8
+0062             data.basic.nucleus = '17O';
+0063         case 9
+0064             data.basic.nucleus = '19F';
+0065         case 10
+0066             data.basic.nucleus = '23Na';
+0067         case 11
+0068             data.basic.nucleus = '27Al';
+0069         case 12
+0070             data.basic.nucleus = '29Si';
+0071         case 13
+0072             data.basic.nucleus = '31P';
+0073         case 14
+0074             data.basic.nucleus = '57Fe';
+0075         case 15
+0076             data.basic.nucleus = '63Cu';
+0077         case 16
+0078             data.basic.nucleus = '67Zn';
+0079         case 17
+0080             data.basic.nucleus = '129Xe';
+0081     end
+0082     % update the gyromagnetic ration and Larmor frequency accordingly
+0083     data.basic.gamma = getGyroRatio(data.basic.nucleus);
+0084     data.basic.Omega0 = getOmega0(data.basic.gamma,data.basic.B0)/2/pi;
+0085     
+0086     % update the GUI data
+0087     setappdata(fig,'data',data);
+0088     
+0089     % update the GUI
+0090     set(gui.edit_handles.Omega0,'String',sprintf('%7.2f',data.basic.Omega0));
+0091     set(gui.edit_handles.Gyro,'String',sprintf('%5.4e',data.basic.gamma));
+0092     
+0093     % if the pulse panel is activated
+0094     switch data.basic.type
+0095         case {'pulse','prepolpulse'}
+0096             % adapt the B1 amplitude due to the changed gamma value
+0097             onEditValue(gui.edit_handles.PulseTtau);
+0098         otherwise
+0099             % nothing to do
+0100     end
+0101     
+0102 else
+0103     warndlg({'onPopupNucleus:','There is no figure with the BLOCHUS Tag open.'},...
+0104         'BLOCHUS error');
+0105 end
+0106 
+0107 end
+0108 
+0109 %------------- END OF CODE --------------
+0110 
+0111 %% License:
+0112 % GNU GPLv3
+0113 %
+0114 % BLOCHUS
+0115 % Copyright (C) 2019 Thomas Hiller
+0116 %
+0117 % This program is free software: you can redistribute it and/or modify
+0118 % it under the terms of the GNU General Public License as published by
+0119 % the Free Software Foundation, either version 3 of the License, or
+0120 % (at your option) any later version.
+0121 %
+0122 % This program is distributed in the hope that it will be useful,
+0123 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0124 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0125 % GNU General Public License for more details.
+0126 %
+0127 % You should have received a copy of the GNU General Public License
+0128 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPrePolRamp.html b/doc/blochus/callbacks/popup/onPopupPrePolRamp.html new file mode 100644 index 0000000..e36fa88 --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPrePolRamp.html @@ -0,0 +1,296 @@ + + + + Description of onPopupPrePolRamp + + + + + + + + + + + +

onPopupPrePolRamp +

+ +

PURPOSE ^

+
selects the pre-polarization switch-off ramp
+ +

SYNOPSIS ^

+
function onPopupPrePolRamp(src,~)
+ +

DESCRIPTION ^

+
onPopupPrePolRamp selects the pre-polarization switch-off ramp
+
+ Syntax:
+       onPopupPrePolRamp(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupPrePolRamp(src)
+
+ Other m-files required:
+       getRampParameters;
+       plotRamp;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • getRampParameters updates all relevant switch-off ramp settings
  • plotRamp plots different pre-polarization switch-off ramp parameter
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPrePolRamp(src,~)
+0002 %onPopupPrePolRamp selects the pre-polarization switch-off ramp
+0003 %
+0004 % Syntax:
+0005 %       onPopupPrePolRamp(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupPrePolRamp(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getRampParameters;
+0018 %       plotRamp;
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding switch-off ramp
+0045     switch val
+0046         case 1 % exponential
+0047             data.prepol.Ramp = 'exp';
+0048             data.prepol.Tslope = data.prepol.Tramp/10;
+0049             data.prepol.Factor = 100;
+0050             data.prepol.SwitchFactor = 1;
+0051             
+0052             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0053             set(gui.edit_handles.PrePolTheta,'Enable','on');
+0054             set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0055             set(gui.edit_handles.PrePolTramp,'Enable','on');
+0056             set(gui.edit_handles.PrePolTslope,'Enable','on');
+0057             
+0058             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0059             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0060             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0061             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0062             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0063             
+0064             set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]');
+0065             
+0066         case 2 % linear & exponential (generic)
+0067             data.prepol.Ramp = 'linexp';
+0068             data.prepol.Tslope = data.prepol.Tramp/2;
+0069             data.prepol.Factor = 100;
+0070             data.prepol.SwitchFactor = 10;
+0071             
+0072             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0073             set(gui.edit_handles.PrePolTheta,'Enable','on');
+0074             set(gui.edit_handles.PrePolSwitchFactor,'Enable','on');
+0075             set(gui.edit_handles.PrePolTramp,'Enable','on');
+0076             set(gui.edit_handles.PrePolTslope,'Enable','on');
+0077             
+0078             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0079             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0080             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0081             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0082             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0083             
+0084             set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]');
+0085             
+0086         case 3 % half cosine (generic)
+0087             data.prepol.Ramp = 'halfcos';
+0088             data.prepol.Tslope = data.prepol.Tramp;
+0089             data.prepol.Factor = 100;
+0090             data.prepol.SwitchFactor = 1;
+0091             
+0092             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0093             set(gui.edit_handles.PrePolTheta,'Enable','on');
+0094             set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0095             set(gui.edit_handles.PrePolTramp,'Enable','on');
+0096             set(gui.edit_handles.PrePolTslope,'Enable','off');
+0097             
+0098             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0099             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0100             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0101             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0102             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0103             
+0104             set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]');    
+0105             
+0106         case 4 % linear (generic)
+0107             data.prepol.Ramp = 'lin';
+0108             data.prepol.Tslope = data.prepol.Tramp;
+0109             data.prepol.Factor = 100;
+0110             data.prepol.SwitchFactor = 1;
+0111             
+0112             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0113             set(gui.edit_handles.PrePolTheta,'Enable','on');
+0114             set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0115             set(gui.edit_handles.PrePolTramp,'Enable','on');
+0116             set(gui.edit_handles.PrePolTslope,'Enable','off');
+0117             
+0118             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0119             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0120             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0121             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0122             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0123             
+0124             set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]');
+0125             
+0126         case 5 % linear (Melton 1995)
+0127             data.prepol.Ramp = 'lin';
+0128             
+0129             % k / rate
+0130             GAMMA = data.prepol.Factor/data.prepol.SwitchFactor;
+0131             % corresponding ramp time
+0132             Tramp = GAMMA/(data.basic.B0*data.basic.gamma)*1e3; % [ms]
+0133             data.prepol.Tramp = Tramp;
+0134             data.prepol.Tslope = Tramp;
+0135 
+0136             switch data.basic.type
+0137                 case 'prepol'
+0138                     data.basic.Tsim = Tramp;
+0139                     set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0140                 otherwise
+0141                     % nothing to do
+0142             end
+0143             
+0144             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0145             set(gui.edit_handles.PrePolTheta,'Enable','off');
+0146             set(gui.edit_handles.PrePolSwitchFactor,'Enable','on');
+0147             set(gui.edit_handles.PrePolTramp,'Enable','off');
+0148             set(gui.edit_handles.PrePolTslope,'Enable','off');
+0149             
+0150             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0151             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0152             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0153             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0154             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0155             
+0156             set(gui.text_handles.PrePolSwitchFactor,'String','cutoff rate');
+0157             
+0158         case 6 % half cosine (MIDI)
+0159             data.prepol.Ramp = 'halfcos';
+0160             
+0161             Tramp = 1; % [ms]
+0162             data.prepol.Tramp = Tramp;
+0163             data.prepol.Tslope = Tramp;            
+0164             data.prepol.Factor = 100;
+0165             data.prepol.SwitchFactor = 1;
+0166             
+0167             switch data.basic.type
+0168                 case 'prepol'
+0169                     data.basic.Tsim = Tramp;
+0170                     set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0171                 otherwise
+0172                     % nothing to do
+0173             end
+0174             
+0175             set(gui.edit_handles.PrePolFactor,'Enable','on');
+0176             set(gui.edit_handles.PrePolTheta,'Enable','on');
+0177             set(gui.edit_handles.PrePolSwitchFactor,'Enable','off');
+0178             set(gui.edit_handles.PrePolTramp,'Enable','off');
+0179             set(gui.edit_handles.PrePolTslope,'Enable','off');
+0180             
+0181             set(gui.edit_handles.PrePolFactor,'String',num2str(data.prepol.Factor));
+0182             set(gui.edit_handles.PrePolTheta,'String',num2str(data.prepol.Theta));
+0183             set(gui.edit_handles.PrePolSwitchFactor,'String',num2str(data.prepol.SwitchFactor));
+0184             set(gui.edit_handles.PrePolTramp,'String',num2str(data.prepol.Tramp));
+0185             set(gui.edit_handles.PrePolTslope,'String',num2str(data.prepol.Tslope));
+0186             
+0187             set(gui.text_handles.PrePolSwitchFactor,'String','Switch factor [B0]');
+0188     end
+0189     
+0190     % update GUI data
+0191     setappdata(fig,'data',data);    
+0192     % get ramp parameters
+0193     getRampParameters(fig);
+0194     % update ramp plot
+0195     plotRamp(fig);
+0196     
+0197 else
+0198     warndlg({'onPopupPrePolRamp:','There is no figure with the BLOCHUS Tag open.'},...
+0199         'BLOCHUS error');
+0200 end
+0201 
+0202 end
+0203 
+0204 %------------- END OF CODE --------------
+0205 
+0206 %% License:
+0207 % GNU GPLv3
+0208 %
+0209 % BLOCHUS
+0210 % Copyright (C) 2019 Thomas Hiller
+0211 %
+0212 % This program is free software: you can redistribute it and/or modify
+0213 % it under the terms of the GNU General Public License as published by
+0214 % the Free Software Foundation, either version 3 of the License, or
+0215 % (at your option) any later version.
+0216 %
+0217 % This program is distributed in the hope that it will be useful,
+0218 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0219 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0220 % GNU General Public License for more details.
+0221 %
+0222 % You should have received a copy of the GNU General Public License
+0223 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPulseAxis.html b/doc/blochus/callbacks/popup/onPopupPulseAxis.html new file mode 100644 index 0000000..73f3d1b --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPulseAxis.html @@ -0,0 +1,164 @@ + + + + Description of onPopupPulseAxis + + + + + + + + + + + +

onPopupPulseAxis +

+ +

PURPOSE ^

+
sets the orientation of the pulse axis
+ +

SYNOPSIS ^

+
function onPopupPulseAxis(src,~)
+ +

DESCRIPTION ^

+
onPopupPulseAxis sets the orientation of the pulse axis
+
+ Syntax:
+       onPopupPulseAxis(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+        onPopupPulseAxis(src)
+
+ Other m-files required:
+       getPulseParameters
+       plotBpulse
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPulseAxis(src,~)
+0002 %onPopupPulseAxis sets the orientation of the pulse axis
+0003 %
+0004 % Syntax:
+0005 %       onPopupPulseAxis(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %        onPopupPulseAxis(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getPulseParameters
+0018 %       plotBpulse
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding pulse axis
+0045     switch val
+0046         case 1
+0047             data.pulse.Axis = '+x';
+0048         case 2
+0049             data.pulse.Axis = '-x';
+0050         case 3
+0051             data.pulse.Axis = '+y';
+0052         case 4
+0053             data.pulse.Axis = '-y';
+0054     end
+0055     
+0056     % update GUI data
+0057     setappdata(fig,'data',data);
+0058     % update pulse settings
+0059     getPulseParameters(gui.figh);
+0060     % get GUI data
+0061     data = getappdata(fig,'data');
+0062     % plot pulse
+0063     plotBpulse(gui.figh);
+0064     
+0065 else
+0066     warndlg({'onPopupPulseAxis:','There is no figure with the BLOCHUS Tag open.'},...
+0067         'BLOCHUS error');
+0068 end
+0069 
+0070 end
+0071 
+0072 %------------- END OF CODE --------------
+0073 
+0074 %% License:
+0075 % GNU GPLv3
+0076 %
+0077 % BLOCHUS
+0078 % Copyright (C) 2019 Thomas Hiller
+0079 %
+0080 % This program is free software: you can redistribute it and/or modify
+0081 % it under the terms of the GNU General Public License as published by
+0082 % the Free Software Foundation, either version 3 of the License, or
+0083 % (at your option) any later version.
+0084 %
+0085 % This program is distributed in the hope that it will be useful,
+0086 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0087 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0088 % GNU General Public License for more details.
+0089 %
+0090 % You should have received a copy of the GNU General Public License
+0091 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPulseDFmode.html b/doc/blochus/callbacks/popup/onPopupPulseDFmode.html new file mode 100644 index 0000000..91e46e2 --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPulseDFmode.html @@ -0,0 +1,187 @@ + + + + Description of onPopupPulseDFmode + + + + + + + + + + + +

onPopupPulseDFmode +

+ +

PURPOSE ^

+
selects the frequency modulation for an adiabatic pulse
+ +

SYNOPSIS ^

+
function onPopupPulseDFmode(src,~)
+ +

DESCRIPTION ^

+
onPopupPulseDFmode selects the frequency modulation for an adiabatic pulse
+
+ Syntax:
+       onPopupPulseDFmode(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupPulseDFmode(src)
+
+ Other m-files required:
+       getPulseParameters;
+       plotPulse;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPulseDFmode(src,~)
+0002 %onPopupPulseDFmode selects the frequency modulation for an adiabatic pulse
+0003 %
+0004 % Syntax:
+0005 %       onPopupPulseDFmode(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupPulseDFmode(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getPulseParameters;
+0018 %       plotPulse;
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding frequency modulation
+0045     switch val
+0046         case 1 % linear
+0047             data.pulse.DFmode = 'lin';
+0048             set(gui.edit_handles.PulseDFA,'Enable','off');
+0049             set(gui.edit_handles.PulseDFB,'Enable','off');
+0050             
+0051         case 2 % tanh MIDI
+0052             data.pulse.DFmode = 'tanhMIDI';
+0053             data.pulse.DFstart = -200;
+0054             data.pulse.DFA = 0.7;
+0055             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart));
+0056             set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA));
+0057             set(gui.edit_handles.PulseDFA,'Enable','on');
+0058             set(gui.edit_handles.PulseDFB,'Enable','on');
+0059             
+0060         case 3 % tanh GMR
+0061             data.pulse.DFmode = 'tanhGMR';
+0062             data.pulse.DFstart = -300;
+0063             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart));
+0064             set(gui.edit_handles.PulseDFA,'Enable','off');
+0065             set(gui.edit_handles.PulseDFB,'Enable','off');
+0066             
+0067         case 4 % exp
+0068             data.pulse.DFmode = 'exp';
+0069             data.pulse.DFstart = -300;
+0070             data.pulse.DFA = 10;
+0071             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart));
+0072             set(gui.edit_handles.PulseDFA,'String',num2str(data.pulse.DFA));
+0073             set(gui.edit_handles.PulseDFA,'Enable','on');
+0074             set(gui.edit_handles.PulseDFB,'Enable','off');
+0075     end
+0076     
+0077     % update GUI data
+0078     setappdata(fig,'data',data);
+0079     % update pulse settings
+0080     getPulseParameters(gui.figh);
+0081     % get GUI data
+0082     data = getappdata(fig,'data');
+0083     % update GUI data
+0084     setappdata(fig,'data',data);
+0085     % plot pulse
+0086     plotBpulse(gui.figh);
+0087     
+0088 else
+0089     warndlg({'onPopupPulseDFmode:','There is no figure with the BLOCHUS Tag open.'},...
+0090         'BLOCHUS error');
+0091 end
+0092 
+0093 end
+0094 
+0095 %------------- END OF CODE --------------
+0096 
+0097 %% License:
+0098 % GNU GPLv3
+0099 %
+0100 % BLOCHUS
+0101 % Copyright (C) 2019 Thomas Hiller
+0102 %
+0103 % This program is free software: you can redistribute it and/or modify
+0104 % it under the terms of the GNU General Public License as published by
+0105 % the Free Software Foundation, either version 3 of the License, or
+0106 % (at your option) any later version.
+0107 %
+0108 % This program is distributed in the hope that it will be useful,
+0109 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0110 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0111 % GNU General Public License for more details.
+0112 %
+0113 % You should have received a copy of the GNU General Public License
+0114 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPulseImode.html b/doc/blochus/callbacks/popup/onPopupPulseImode.html new file mode 100644 index 0000000..22a29ee --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPulseImode.html @@ -0,0 +1,189 @@ + + + + Description of onPopupPulseImode + + + + + + + + + + + +

onPopupPulseImode +

+ +

PURPOSE ^

+
selects the current modulation for an adiabatic pulse
+ +

SYNOPSIS ^

+
function onPopupPulseImode(src,~)
+ +

DESCRIPTION ^

+
onPopupPulseImode selects the current modulation for an adiabatic pulse
+
+ Syntax:
+       onPopupPulseImode(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupPulseImode(src)
+
+ Other m-files required:
+       getPulseParameters;
+       plotPulse;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPulseImode(src,~)
+0002 %onPopupPulseImode selects the current modulation for an adiabatic pulse
+0003 %
+0004 % Syntax:
+0005 %       onPopupPulseImode(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupPulseImode(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getPulseParameters;
+0018 %       plotPulse;
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding current modulation
+0045     switch val
+0046         case 1 % linear
+0047             data.pulse.Imode = 'lin';
+0048             set(gui.edit_handles.PulseIA,'Enable','off');
+0049             set(gui.edit_handles.PulseIB,'Enable','off');
+0050             
+0051         case 2 % tanh MIDI
+0052             data.pulse.Imode = 'tanhMIDI';
+0053             data.pulse.Istart = 0;
+0054             data.pulse.IA = 0.5;
+0055             data.pulse.IB = 1;
+0056             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart));
+0057             set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA));
+0058             set(gui.edit_handles.PulseIA,'Enable','on');
+0059             set(gui.edit_handles.PulseIB,'String',num2str(data.pulse.IB));
+0060             set(gui.edit_handles.PulseIB,'Enable','on');
+0061             
+0062         case 3 % tanh GMR
+0063             data.pulse.Imode = 'tanhGMR';
+0064             data.pulse.Istart = 0;
+0065             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart));
+0066             set(gui.edit_handles.PulseIA,'Enable','off');
+0067             set(gui.edit_handles.PulseIB,'Enable','off');
+0068             
+0069         case 4 % exp
+0070             data.pulse.Imode = 'exp';
+0071             data.pulse.Istart = 0;
+0072             data.pulse.IA = 10;
+0073             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart));
+0074             set(gui.edit_handles.PulseIA,'String',num2str(data.pulse.IA));
+0075             set(gui.edit_handles.PulseIA,'Enable','on');
+0076             set(gui.edit_handles.PulseIB,'Enable','off');
+0077     end
+0078     
+0079     % update GUI data
+0080     setappdata(fig,'data',data);
+0081     % update pulse settings
+0082     getPulseParameters(gui.figh);
+0083     % get GUI data
+0084     data = getappdata(fig,'data');
+0085     % update GUI data
+0086     setappdata(fig,'data',data);
+0087     % plot pulse
+0088     plotBpulse(gui.figh);
+0089     
+0090 else
+0091     warndlg({'onPopupPulseDFmode:','There is no figure with the BLOCHUS Tag open.'},...
+0092         'BLOCHUS error');
+0093 end
+0094 
+0095 end
+0096 
+0097 %------------- END OF CODE --------------
+0098 
+0099 %% License:
+0100 % GNU GPLv3
+0101 %
+0102 % BLOCHUS
+0103 % Copyright (C) 2019 Thomas Hiller
+0104 %
+0105 % This program is free software: you can redistribute it and/or modify
+0106 % it under the terms of the GNU General Public License as published by
+0107 % the Free Software Foundation, either version 3 of the License, or
+0108 % (at your option) any later version.
+0109 %
+0110 % This program is distributed in the hope that it will be useful,
+0111 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0112 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0113 % GNU General Public License for more details.
+0114 %
+0115 % You should have received a copy of the GNU General Public License
+0116 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPulsePolarization.html b/doc/blochus/callbacks/popup/onPopupPulsePolarization.html new file mode 100644 index 0000000..a1b5e12 --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPulsePolarization.html @@ -0,0 +1,162 @@ + + + + Description of onPopupPulsePolarization + + + + + + + + + + + +

onPopupPulsePolarization +

+ +

PURPOSE ^

+
selects the pulse polarization
+ +

SYNOPSIS ^

+
function onPopupPulsePolarization(src,~)
+ +

DESCRIPTION ^

+
onPopupPulsePolarization selects the pulse polarization
+
+ Syntax:
+       onPopupPulsePolarization(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupPulsePolarization(src)
+
+ Other m-files required:
+       getPulseParameters;
+       plotPulse;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPulsePolarization(src,~)
+0002 %onPopupPulsePolarization selects the pulse polarization
+0003 %
+0004 % Syntax:
+0005 %       onPopupPulsePolarization(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupPulsePolarization(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getPulseParameters;
+0018 %       plotPulse;
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding pulse polarization
+0045     switch val
+0046         case 1 % circular
+0047             data.pulse.Polarization = 'circular';
+0048         case 2 % linear
+0049             data.pulse.Polarization = 'linear';
+0050     end
+0051     
+0052     % update GUI data
+0053     setappdata(fig,'data',data);
+0054     % update pulse settings
+0055     getPulseParameters(gui.figh);
+0056     % get GUI data
+0057     data = getappdata(fig,'data');
+0058     % update GUI data
+0059     setappdata(fig,'data',data);
+0060     % plot pulse
+0061     plotBpulse(gui.figh);
+0062     
+0063 else
+0064     warndlg({'onPopupPulsePolarization:','There is no figure with the BLOCHUS Tag open.'},...
+0065         'BLOCHUS error');
+0066 end
+0067 
+0068 end
+0069 
+0070 %------------- END OF CODE --------------
+0071 
+0072 %% License:
+0073 % GNU GPLv3
+0074 %
+0075 % BLOCHUS
+0076 % Copyright (C) 2019 Thomas Hiller
+0077 %
+0078 % This program is free software: you can redistribute it and/or modify
+0079 % it under the terms of the GNU General Public License as published by
+0080 % the Free Software Foundation, either version 3 of the License, or
+0081 % (at your option) any later version.
+0082 %
+0083 % This program is distributed in the hope that it will be useful,
+0084 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0085 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0086 % GNU General Public License for more details.
+0087 %
+0088 % You should have received a copy of the GNU General Public License
+0089 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/popup/onPopupPulseType.html b/doc/blochus/callbacks/popup/onPopupPulseType.html new file mode 100644 index 0000000..480e5be --- /dev/null +++ b/doc/blochus/callbacks/popup/onPopupPulseType.html @@ -0,0 +1,331 @@ + + + + Description of onPopupPulseType + + + + + + + + + + + +

onPopupPulseType +

+ +

PURPOSE ^

+
selects the pulse type
+ +

SYNOPSIS ^

+
function onPopupPulseType(src,~)
+ +

DESCRIPTION ^

+
onPopupPulseType selects the pulse type
+
+ Syntax:
+       onPopupPulseType(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPopupPulseType(src)
+
+ Other m-files required:
+       getPulseParameters;
+       plotPulse;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPopupPulseType(src,~)
+0002 %onPopupPulseType selects the pulse type
+0003 %
+0004 % Syntax:
+0005 %       onPopupPulseType(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPopupPulseType(src)
+0015 %
+0016 % Other m-files required:
+0017 %       getPulseParameters;
+0018 %       plotPulse;
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % get GUI handle
+0034 fig = ancestor(src,'figure','toplevel');
+0035 
+0036 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0037     % get GUI data
+0038     gui  = getappdata(fig,'gui');
+0039     data = getappdata(fig,'data');
+0040     
+0041     % get the popup menu entry
+0042     val = get(src,'Value');
+0043     
+0044     % set the corresponding pulse type
+0045     switch val
+0046         case 1 % pi/2
+0047             data.pulse.Type = 'pi_half';
+0048             set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']);
+0049             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0050             % adjust B1 amplitude
+0051             data.pulse.B1Factor = abs(1e3*(pi/2/(data.basic.gamma*data.basic.B0*data.pulse.Ttau)));
+0052             set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor));
+0053             % set offset frequency
+0054             data.pulse.DFstart = 0;
+0055             data.pulse.DFend = 0;
+0056             set(gui.text_handles.PulseDF,'String','Offset [Hz]');
+0057             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on');
+0058             set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off');
+0059             % disable all other frequency stuff
+0060             set(gui.popup_handles.PulseDFmode,'Enable','off');
+0061             set(gui.edit_handles.PulseDFA,'Enable','off');
+0062             set(gui.edit_handles.PulseDFB,'Enable','off');
+0063             % set current
+0064             data.pulse.Istart = 1;
+0065             data.pulse.Iend = 1;
+0066             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off');
+0067             set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off');
+0068             set(gui.popup_handles.PulseImode,'Enable','off');
+0069             set(gui.edit_handles.PulseIA,'Enable','off');
+0070             set(gui.edit_handles.PulseIB,'Enable','off');
+0071             set(gui.check_handles.PulseQ,'Enable','off');
+0072             
+0073         case 2 % pi
+0074             data.pulse.Type = 'pi';
+0075             set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']);
+0076             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0077             % adjust B1 amplitude
+0078             data.pulse.B1Factor = abs(1e3*(pi/(data.basic.gamma*data.basic.B0*data.pulse.Ttau)));
+0079             set(gui.edit_handles.PulseB1Factor,'String',num2str(data.pulse.B1Factor));
+0080             % set offset frequency
+0081             data.pulse.DFstart = 0;
+0082             data.pulse.DFend = 0;
+0083             set(gui.text_handles.PulseDF,'String','Offset [Hz]');
+0084             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on');
+0085             set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off');
+0086             % disable all other frequency stuff
+0087             set(gui.popup_handles.PulseDFmode,'Enable','off');
+0088             set(gui.edit_handles.PulseDFA,'Enable','off');
+0089             set(gui.edit_handles.PulseDFB,'Enable','off');
+0090             % set current
+0091             data.pulse.Istart = 1;
+0092             data.pulse.Iend = 1;
+0093             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off');
+0094             set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off');
+0095             set(gui.popup_handles.PulseImode,'Enable','off');
+0096             set(gui.edit_handles.PulseIA,'Enable','off');
+0097             set(gui.edit_handles.PulseIB,'Enable','off');
+0098             set(gui.check_handles.PulseQ,'Enable','off');
+0099             
+0100         case 3 % free
+0101             data.pulse.Type = 'free';
+0102             set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']);
+0103             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0104             % set offset frequency
+0105             data.pulse.DFstart = 0;
+0106             data.pulse.DFend = 0;
+0107             set(gui.text_handles.PulseDF,'String','Offset [Hz]');
+0108             set(gui.edit_handles.PulseDFstart,'String',num2str(data.pulse.DFstart),'Enable','on');
+0109             set(gui.edit_handles.PulseDFend,'String',num2str(data.pulse.DFend),'Enable','off');
+0110             % disable all other frequency stuff
+0111             set(gui.popup_handles.PulseDFmode,'Enable','off');
+0112             set(gui.edit_handles.PulseDFA,'Enable','off');
+0113             set(gui.edit_handles.PulseDFB,'Enable','off');
+0114             % set current
+0115             data.pulse.Istart = 1;
+0116             data.pulse.Iend = 1;
+0117             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart),'Enable','off');
+0118             set(gui.edit_handles.PulseIend,'String',num2str(data.pulse.Iend),'Enable','off');
+0119             set(gui.popup_handles.PulseImode,'Enable','off');
+0120             set(gui.edit_handles.PulseIA,'Enable','off');
+0121             set(gui.edit_handles.PulseIB,'Enable','off');
+0122             set(gui.check_handles.PulseQ,'Enable','off');
+0123             
+0124         case 4 % AHP
+0125             data.pulse.Type = 'AHP';
+0126             set(gui.text_handles.PulseTtau,'String',['Pulse length ',char(hex2dec('3C4')),' [ms]']);
+0127             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.Ttau));
+0128             
+0129             set(gui.text_handles.PulseDF,'String','start [Hz] end [Hz] A B');
+0130             set(gui.popup_handles.PulseDFmode,'Enable','on');
+0131             set(gui.edit_handles.PulseDFstart,'Enable','on');
+0132             set(gui.edit_handles.PulseDFend,'Enable','on');
+0133             set(gui.edit_handles.PulseDFA,'Enable','off');
+0134             set(gui.edit_handles.PulseDFB,'Enable','off');
+0135             
+0136             data.pulse.Istart = 0;
+0137             data.pulse.Iend = 1;
+0138             set(gui.popup_handles.PulseImode,'Enable','on');
+0139             set(gui.edit_handles.PulseIstart,'Enable','on','String',num2str(data.pulse.Istart));
+0140             set(gui.edit_handles.PulseIend,'Enable','on','String',num2str(data.pulse.Iend));
+0141             set(gui.edit_handles.PulseIA,'Enable','off');
+0142             set(gui.edit_handles.PulseIB,'Enable','off');
+0143             set(gui.check_handles.PulseQ,'Enable','on');
+0144             
+0145             setappdata(fig,'data',data);
+0146             onPopupPulseDFmode(gui.popup_handles.PulseDFmode);
+0147             data = getappdata(fig,'data');
+0148             setappdata(fig,'data',data);
+0149             onPopupPulseImode(gui.popup_handles.PulseImode);
+0150             data = getappdata(fig,'data');
+0151   
+0152         case 5 % MIDI OR
+0153             data.pulse.Type = 'MIDI_OR';
+0154             % calculate number of periods based on current pulse time and fL
+0155             data.pulse.MIDINP = ceil(abs(data.pulse.Ttau/1000 * data.basic.Omega0));
+0156             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.MIDINP));
+0157             set(gui.text_handles.PulseTtau,'String','Number of periods');         
+0158             set(gui.text_handles.PulseDF,'String','Offset [Hz]');
+0159             set(gui.popup_handles.PulseDFmode,'Enable','off');
+0160             data.pulse.DFstart = 0;
+0161             data.pulse.DFend = 0;
+0162             set(gui.edit_handles.PulseDFstart,'Enable','off','String',num2str(data.pulse.DFstart));
+0163             set(gui.edit_handles.PulseDFend,'Enable','off','String',num2str(data.pulse.DFend));
+0164             set(gui.edit_handles.PulseDFA,'Enable','off');
+0165             set(gui.edit_handles.PulseDFB,'Enable','off');
+0166             
+0167             set(gui.popup_handles.PulseImode,'Enable','off');
+0168             set(gui.edit_handles.PulseIstart,'Enable','on');
+0169             data.pulse.Istart = 0.6;
+0170             data.pulse.Iend = 0.6;
+0171             set(gui.edit_handles.PulseIstart,'String',num2str(data.pulse.Istart));
+0172             set(gui.edit_handles.PulseIend,'Enable','off');
+0173             set(gui.edit_handles.PulseIA,'Enable','off');
+0174             set(gui.edit_handles.PulseIB,'Enable','off');
+0175             set(gui.check_handles.PulseQ,'Enable','off');
+0176             
+0177             % update the GUI as if the number of periods would have been
+0178             % changed manually
+0179             setappdata(fig,'data',data);
+0180             onEditValue(gui.edit_handles.PulseTtau);
+0181             data = getappdata(fig,'data');
+0182             
+0183         case 6 % MIDI AP
+0184             data.pulse.Type = 'MIDI_AP';
+0185             % calculate number of periods based on current pulse time and fL
+0186             data.pulse.MIDINP = ceil(abs(data.pulse.Ttau/1000 * data.basic.Omega0));
+0187             set(gui.edit_handles.PulseTtau,'String',num2str(data.pulse.MIDINP));
+0188             set(gui.text_handles.PulseTtau,'String','Number of periods');         
+0189             set(gui.text_handles.PulseDF,'String','start [Hz] end [Hz] A B');
+0190             data.pulse.DFmode = 'tanhMIDI';
+0191             set(gui.popup_handles.PulseDFmode,'Enable','on','Value',2);
+0192             data.pulse.DFstart = -200;
+0193             data.pulse.DFend = 0;
+0194             set(gui.edit_handles.PulseDFstart,'Enable','on','String',num2str(data.pulse.DFstart));
+0195             set(gui.edit_handles.PulseDFend,'Enable','on','String',num2str(data.pulse.DFend));
+0196             data.pulse.DFA = 0.7;
+0197             data.pulse.DFB = 0;
+0198             set(gui.edit_handles.PulseDFA,'Enable','on','String',num2str(data.pulse.DFA));
+0199             set(gui.edit_handles.PulseDFB,'Enable','on','String',num2str(data.pulse.DFB));
+0200             
+0201             data.pulse.Imode = 'tanhMIDI';
+0202             set(gui.popup_handles.PulseImode,'Enable','on','Value',2);
+0203             data.pulse.Istart = 0.15;
+0204             data.pulse.Iend = 0.6;
+0205             set(gui.edit_handles.PulseIstart,'Enable','on','String',num2str(data.pulse.Istart));
+0206             set(gui.edit_handles.PulseIend,'Enable','on','String',num2str(data.pulse.Iend));
+0207             data.pulse.IA = 0.5;
+0208             data.pulse.IB = 1;
+0209             set(gui.edit_handles.PulseIA,'Enable','on','String',num2str(data.pulse.IA));
+0210             set(gui.edit_handles.PulseIB,'Enable','on','String',num2str(data.pulse.IB));
+0211             set(gui.check_handles.PulseQ,'Enable','off');
+0212             
+0213             % update the GUI as if the number of periods would have been
+0214             % changed manually
+0215             setappdata(fig,'data',data);
+0216             onEditValue(gui.edit_handles.PulseTtau);
+0217             data = getappdata(fig,'data');
+0218     end
+0219     
+0220     % update GUI data
+0221     setappdata(fig,'data',data);
+0222     % update pulse settings
+0223     getPulseParameters(fig);
+0224     % get GUI data
+0225     data = getappdata(fig,'data');
+0226     % update GUI data
+0227     setappdata(fig,'data',data);
+0228     % plot pulse
+0229     plotBpulse(fig);
+0230     % update status bar
+0231     updateStatusInformation(fig);
+0232 else
+0233     warndlg({'onPopupPulseType:','There is no figure with the BLOCHUS Tag open.'},...
+0234         'BLOCHUS error');
+0235 end
+0236 
+0237 end
+0238 
+0239 %------------- END OF CODE --------------
+0240 
+0241 %% License:
+0242 % GNU GPLv3
+0243 %
+0244 % BLOCHUS
+0245 % Copyright (C) 2019 Thomas Hiller
+0246 %
+0247 % This program is free software: you can redistribute it and/or modify
+0248 % it under the terms of the GNU General Public License as published by
+0249 % the Free Software Foundation, either version 3 of the License, or
+0250 % (at your option) any later version.
+0251 %
+0252 % This program is distributed in the hope that it will be useful,
+0253 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0254 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0255 % GNU General Public License for more details.
+0256 %
+0257 % You should have received a copy of the GNU General Public License
+0258 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/push/menu.html b/doc/blochus/callbacks/push/menu.html new file mode 100644 index 0000000..561abd1 --- /dev/null +++ b/doc/blochus/callbacks/push/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\callbacks\push + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\callbacks\push

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/push/onPushAnimate.html b/doc/blochus/callbacks/push/onPushAnimate.html new file mode 100644 index 0000000..3e10666 --- /dev/null +++ b/doc/blochus/callbacks/push/onPushAnimate.html @@ -0,0 +1,310 @@ + + + + Description of onPushAnimate + + + + + + + + + + + +

onPushAnimate +

+ +

PURPOSE ^

+
+ +

SYNOPSIS ^

+
function onPushAnimate(src,~)
+ +

DESCRIPTION ^

+
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • plotBSphere plots a (Bloch)-Sphere (basically a unit sphere) with
  • plotResults plots results depending on the chosen settings
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPushAnimate(src,~)
+0002 fig  = findobj('Tag','BLOCHUS');
+0003 gui  = getappdata(fig,'gui');
+0004 data = getappdata(fig,'data');
+0005 
+0006 % change the pushbutton color to indicate that an animation is running
+0007 set(src,'BackGroundColor','r');
+0008 pause(0.01);
+0009 
+0010 NoFrames = 100;
+0011 FPS = 24;
+0012 
+0013 newblue = [0 0.4470 0.7410];
+0014 neworange = [0.8500 0.3250 0.0980];
+0015 
+0016 switch data.basic.type
+0017     
+0018     case 'std'
+0019         set(gui.text_handles.Status,'String','Animation running ...');
+0020         pause(0.01);
+0021         Mamp = zeros(numel(data.TT),1);
+0022         for i=1:numel(data.TT)
+0023             Mamp(i,1) = norm(data.MM(i,:)); % amplitude of M
+0024         end
+0025         
+0026         dt = data.TT(end)/NoFrames;
+0027         time = 0:dt:data.TT(end);
+0028         
+0029         axes(gui.axes_handles.MagL);
+0030         cla(gui.axes_handles.MagL);
+0031         h1 = animatedline('Color','r','LineWidth',2,'Parent',gui.axXYZL);
+0032         h2 = animatedline('Color','g','LineWidth',2,'Parent',gui.axXYZL);
+0033         h3 = animatedline('Color','b','LineWidth',2,'Parent',gui.axXYZL);
+0034         h4 = animatedline('Color','k','LineWidth',2,'LineStyle','--','Parent',gui.axXYZL);
+0035         
+0036         axes(gui.axes_handles.MagR);
+0037         cla(gui.axes_handles.MagR);
+0038         h7 = animatedline('Color','r','LineWidth',2,'Parent',gui.axXYZR);
+0039         h8 = animatedline('Color','g','LineWidth',2,'Parent',gui.axXYZR);
+0040         h9 = animatedline('Color','b','LineWidth',2,'Parent',gui.axXYZR);
+0041         h10 = animatedline('Color','k','LineWidth',2,'LineStyle','--','Parent',gui.axXYZR);
+0042         
+0043         axes(gui.axSphereL);
+0044         cla(gui.axSphereL);
+0045         hold(gui.axSphereL,'on');
+0046         plotBSphere(18,18,gui.axSphereL);
+0047         h5 = animatedline('Color',myui.color.basic,'LineWidth',2,'Parent',gui.axSphereL);
+0048         
+0049         axes(gui.axSphereR);
+0050         cla(gui.axSphereR);
+0051         hold(gui.axSphereR,'on');
+0052         plotBSphere(18,18,gui.axSphereR); 
+0053         h6 = animatedline('Color',myui.color.basic,'LineWidth',2,'Parent',gui.axSphereR);
+0054         
+0055         for nf = 1:NoFrames-1
+0056             
+0057             x1 = data.TT(data.TT>=time(nf) & data.TT<time(nf+1)).*1e3;
+0058             y1 = data.MM(data.TT>=time(nf) & data.TT<time(nf+1),1);
+0059             y2 = data.MM(data.TT>=time(nf) & data.TT<time(nf+1),2);
+0060             y3 = data.MM(data.TT>=time(nf) & data.TT<time(nf+1),3);
+0061             y1R = data.MMrot(data.TT>=time(nf) & data.TT<time(nf+1),1);
+0062             y2R = data.MMrot(data.TT>=time(nf) & data.TT<time(nf+1),2);
+0063             y3R = data.MMrot(data.TT>=time(nf) & data.TT<time(nf+1),3);
+0064             y4 = Mamp(data.TT>=time(nf) & data.TT<time(nf+1))./Mamp(1);
+0065             addpoints(h1,x1,y1);
+0066             addpoints(h2,x1,y2);
+0067             addpoints(h3,x1,y3);
+0068             addpoints(h4,x1,y4);
+0069             
+0070             legend(gui.axes_handles.MagL,'M_x','M_y','M_z','Location','SouthEast');
+0071             set(gui.axes_handles.MagL,'XLim',[min(data.TT.*1e3) max(data.TT.*1e3)],...
+0072                 'XTick',linspace(min(data.TT.*1e3),max(data.TT.*1e3),5))
+0073             set(get(gui.axes_handles.MagL,'XLabel'),'String','t [ms]');
+0074             set(get(gui.axes_handles.MagL,'YLabel'),'String','M');
+0075             set(get(gui.axes_handles.MagL,'Title'),'String','magnetization components - lab frame');
+0076             
+0077             
+0078             addpoints(h7,x1,y1R);
+0079             addpoints(h8,x1,y2R);
+0080             addpoints(h9,x1,y3R);
+0081             addpoints(h10,x1,y4);
+0082             
+0083             legend(gui.axes_handles.MagR,'M_x','M_y','M_z','Location','SouthEast');
+0084             set(gui.axXYZR,'XLim',[min(data.TT.*1e3) max(data.TT.*1e3)],...
+0085                 'XTick',linspace(min(data.TT.*1e3),max(data.TT.*1e3),5))
+0086             set(get(gui.axes_handles.MagR,'XLabel'),'String','t [ms]');
+0087             set(get(gui.axes_handles.MagR,'YLabel'),'String','M');
+0088             set(get(gui.axes_handles.MagR,'Title'),'String','magnetization components - rot frame');
+0089             
+0090             addpoints(h5,y1,y2,y3);
+0091             view([134 30]);
+0092             set(gui.axSphereL,'Color','w','XColor','none','YColor','none','ZColor','none');
+0093             axis equal tight
+0094             
+0095             addpoints(h6,y1R,y2R,y3R);
+0096             set(gui.axSphereR,'Color','w','XColor','none','YColor','none','ZColor','none');
+0097             axis equal tight
+0098             
+0099             pause(1/FPS);
+0100         end
+0101         hold(gui.axes_handles.MagL,'off');
+0102         hold(gui.axes_handles.MagR,'off');
+0103         hold(gui.axSphereL,'off');
+0104         hold(gui.axSphereR,'off');
+0105         set(gui.text_handles.Status,'String','Animation running ... done.');
+0106         pause(0.01);
+0107         
+0108     case 'prepol'
+0109         set(gui.text_handles.Status,'String','Animation running ...');
+0110         pause(0.01);
+0111         Mamp = zeros(numel(data.TT),1);
+0112         MM = zeros(numel(data.TT),3);
+0113         for i=1:numel(data.TT)
+0114             Mamp(i,1) = norm(data.MM(i,:)); % amplitude of M
+0115             MM(i,:) = data.MM(i,:)./Mamp(1); % normalize to initial M
+0116         end
+0117         Beffn = zeros(numel(data.results.prepol.t),3);
+0118         for i=1:numel(data.results.prepol.t)
+0119             Beffn(i,:) = data.results.prepol.Beff(i,:)./norm(data.results.prepol.Beff(i,:));
+0120         end
+0121         
+0122         dt = data.TT(end)/NoFrames;
+0123         time = 0:dt:data.TT(end);
+0124         
+0125         cla(gui.axXYZL);
+0126         axes(gui.axXYZL);
+0127         h1 = animatedline('Color','r','LineWidth',2,'Parent',gui.axXYZL);
+0128         h2 = animatedline('Color','g','LineWidth',2,'Parent',gui.axXYZL);
+0129         h3 = animatedline('Color','b','LineWidth',2,'Parent',gui.axXYZL);
+0130         h4 = animatedline('Color','k','LineWidth',2,'LineStyle','--','Parent',gui.axXYZL);
+0131         if data.prepol.Tramp < data.basic.Tsim
+0132             h11 = animatedline('Color',[0.8 0.8 0.8],'LineWidth',1,'Parent',gui.axXYZL);
+0133         end
+0134         
+0135         cla(gui.axSphereL);
+0136         axes(gui.axSphereL);
+0137         plotBlochSphere(30,30); hold on;
+0138         h5a = animatedline('Color',myui.color.prepol,'LineWidth',2,'Parent',gui.axSphereL);
+0139         h5b = animatedline('Color',myui.color.basic,'LineWidth',2,'Parent',gui.axSphereL);
+0140         h6 = animatedline('Color',myui.color.prepolB,'LineWidth',2,'Parent',gui.axSphereL);
+0141         
+0142         cla(gui.axBpre);
+0143         axes(gui.axBpre);
+0144         h10 = animatedline('Color',myui.color.prepolB,'LineWidth',2,'Parent',gui.axBpre);
+0145         y10a = data.results.prepol.Bp./data.basic.B0;
+0146         
+0147         cla(gui.axalpha);
+0148         axes(gui.axalpha);
+0149         h7 = animatedline('Color',myui.color.prepolB,'LineWidth',2,'Parent',gui.axalpha);
+0150         
+0151         cla(gui.axes_handles.dadt);
+0152         axes(gui.axes_handles.dadt);
+0153         h8 = animatedline('Color',myui.color.prepolB,'LineWidth',2,'Parent',gui.axes_handles.dadt);
+0154         y8a = data.results.prepol.dadt;
+0155         tt = data.results.prepol.t(1:end-1);
+0156         
+0157         cla(gui.axes_handles.wda);
+0158         axes(gui.axes_handles.wda);
+0159         h9 = animatedline('Color',myui.color.prepolB,'LineWidth',2,'Parent',gui.axes_handles.wda);
+0160         y9a = data.results.prepol.omega(1:numel(data.results.prepol.dadt))./data.results.prepol.dadt;
+0161         
+0162         for nf = 1:NoFrames-1
+0163             
+0164             x1 = data.TT(data.TT>=time(nf) & data.TT<time(nf+1)).*1e3;
+0165             y1 = MM(data.TT>=time(nf) & data.TT<time(nf+1),1);
+0166             y2 = MM(data.TT>=time(nf) & data.TT<time(nf+1),2);
+0167             y3 = MM(data.TT>=time(nf) & data.TT<time(nf+1),3);
+0168             
+0169             if time(nf)<data.prepol.Tramp/1e3
+0170                 y1a = MM(data.TT>=time(nf) & data.TT<time(nf+1),1);
+0171                 y2a = MM(data.TT>=time(nf) & data.TT<time(nf+1),2);
+0172                 y3a = MM(data.TT>=time(nf) & data.TT<time(nf+1),3);
+0173             else
+0174                 y1b = MM(data.TT>=time(nf) & data.TT<time(nf+1),1);
+0175                 y2b = MM(data.TT>=time(nf) & data.TT<time(nf+1),2);
+0176                 y3b = MM(data.TT>=time(nf) & data.TT<time(nf+1),3);
+0177             end
+0178             
+0179             y4 = Mamp(data.TT>=time(nf) & data.TT<time(nf+1))./Mamp(1);
+0180             addpoints(h1,x1,y1);
+0181             addpoints(h2,x1,y2);
+0182             addpoints(h3,x1,y3);
+0183             addpoints(h4,x1,y4);
+0184             if data.prepol.Tramp < data.basic.Tsim
+0185                 addpoints(h11,[data.prepol.Tramp data.prepol.Tramp],[min(min(MM)) max(max(MM))]);
+0186             end
+0187             
+0188             legend(gui.axXYZL,'M_x','M_y','M_z','Location','SouthEast');
+0189             set(gui.axXYZL,'XLim',[min(data.TT.*1e3) max(data.TT.*1e3)],...
+0190                 'XTick',linspace(min(data.TT.*1e3),max(data.TT.*1e3),5),...
+0191                 'YLim',[min(min(MM)) max(max(MM))])
+0192             set(get(gui.axXYZL,'XLabel'),'String','t [ms]');
+0193             set(get(gui.axXYZL,'YLabel'),'String','M');
+0194             set(get(gui.axXYZL,'Title'),'String',['projection M \rightarrow B_0 p = ',sprintf('%4.3f',data.results.prepol.p)]);
+0195             
+0196             y6(:,1) = Beffn(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1),1);
+0197             y6(:,2) = Beffn(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1),2);
+0198             y6(:,3) = Beffn(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1),3);
+0199             if time(nf)<data.prepol.Tramp/1e3
+0200                 addpoints(h5a,y1a,y2a,y3a);
+0201             else
+0202                 addpoints(h5b,y1b,y2b,y3b);
+0203             end
+0204             addpoints(h6,y6(:,1),y6(:,2),y6(:,3));
+0205             set(gui.axSphereL,'XGrid','on','YGrid','on','ZGrid','on','Box','on');
+0206             axis(gui.axSphereL,'equal','tight'); view(3);
+0207             set(get(gui.axSphereL,'XLabel'),'String','X');
+0208             set(get(gui.axSphereL,'YLabel'),'String','Y');
+0209             set(get(gui.axSphereL,'ZLabel'),'String','Z');
+0210             set(get(gui.axSphereL,'Title'),'String','"Bloch sphere"');
+0211             
+0212             if data.results.prepol.t(end)/1e3 >= time(nf)
+0213                 x2 = data.results.prepol.t(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1));
+0214                 x3 = tt(tt./1e3>=time(nf) & tt./1e3<time(nf+1));
+0215                 
+0216                 y10 = y10a(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1));
+0217                 addpoints(h10,x2,y10);
+0218                 set(gui.axBpre,'XLim',[min(data.results.prepol.t) max(data.results.prepol.t)],'YLim',[0 data.prepol.Factor]);
+0219                 set(get(gui.axBpre,'XLabel'),'String','t [ms]');
+0220                 set(get(gui.axBpre,'YLabel'),'String','B_{pre} [B_0]');
+0221                 set(get(gui.axBpre,'Title'),'String','B_{pre} switch-off ramp');
+0222                 
+0223                 y7 = data.results.prepol.alpha(data.results.prepol.t./1e3>=time(nf) & data.results.prepol.t./1e3<time(nf+1));
+0224                 addpoints(h7,x2,y7);
+0225                 set(gui.axalpha,'XLim',[min(data.results.prepol.t) max(data.results.prepol.t)],'YLim',[min(data.results.prepol.alpha) max(data.results.prepol.alpha)]);
+0226                 set(get(gui.axalpha,'XLabel'),'String','t [ms]');
+0227                 set(get(gui.axalpha,'YLabel'),'String','\alpha [deg]');
+0228                 set(get(gui.axalpha,'Title'),'String','angle \alpha between B_0 and B_{eff}');
+0229                 
+0230                 y8 = y8a(tt./1e3>=time(nf) & tt./1e3<time(nf+1));
+0231                 addpoints(h8,x3,y8);
+0232                 set(gui.axes_handles.dadt,'XLim',[min(data.results.prepol.t) max(data.results.prepol.t)],'YLim',[min(data.results.prepol.dadt) max(data.results.prepol.dadt)]);
+0233                 set(get(gui.axes_handles.dadt,'XLabel'),'String','t [ms]');
+0234                 set(get(gui.axes_handles.dadt,'YLabel'),'String','d\alpha / dt');
+0235                 set(get(gui.axes_handles.dadt,'Title'),'String','time derivative of \alpha');
+0236                 
+0237                 y9 = y9a(tt./1e3>=time(nf) & tt./1e3<time(nf+1));
+0238                 addpoints(h9,x3,y9);
+0239                 set(gui.axes_handles.wda,'XLim',[min(data.results.prepol.t) max(data.results.prepol.t)],'YScale','log','YLim',[min(y9a) max(y9a)]);
+0240                 set(get(gui.axes_handles.wda,'XLabel'),'String','t [ms]');
+0241                 set(get(gui.axes_handles.wda,'YLabel'),'String','\omega / d\alpha');
+0242                 set(get(gui.axes_handles.wda,'Title'),'String','adiabatic criterion(?)');
+0243             end
+0244             clear y1 y2 y3 y4 y6 y7 y8 y9
+0245             pause(1/FPS);
+0246         end
+0247         hold(gui.axXYZL,'off');
+0248         hold(gui.axSphereL,'off');
+0249         set(gui.text_handles.Status,'String','Animation running ... done.');
+0250         pause(0.01);
+0251         
+0252     case 'pulse'
+0253         mgh = msgbox('Not yet implemented.','BLOCHUS info');
+0254         
+0255     case 'prepolpulse'
+0256         mgh = msgbox('Not yet implemented.','BLOCHUS info');
+0257 end
+0258 
+0259 
+0260 % change the pushbutton color back to green
+0261 % set(src,'BackGroundColor','g');
+0262 set(src,'BackGroundColor',[.94 .94 .94]);
+0263 plotResults(fig);
+0264 end % onPushAnimate
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/push/onPushAxView.html b/doc/blochus/callbacks/push/onPushAxView.html new file mode 100644 index 0000000..0d52da6 --- /dev/null +++ b/doc/blochus/callbacks/push/onPushAxView.html @@ -0,0 +1,163 @@ + + + + Description of onPushAxView + + + + + + + + + + + +

onPushAxView +

+ +

PURPOSE ^

+
sets the view of the Bloch sphere plot to predefined sets
+ +

SYNOPSIS ^

+
function onPushAxView(src,~)
+ +

DESCRIPTION ^

+
onPushAxView sets the view of the Bloch sphere plot to predefined sets
+
+ Syntax:
+       onPushAxView(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPushAxView(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPushAxView(src,~)
+0002 %onPushAxView sets the view of the Bloch sphere plot to predefined sets
+0003 %
+0004 % Syntax:
+0005 %       onPushAxView(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPushAxView(src)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui = getappdata(fig,'gui');
+0038     data = getappdata(fig,'data');
+0039     % get button tag
+0040     tag = get(src,'String');
+0041     
+0042     switch tag
+0043         case 'XZ'
+0044             axes(gui.axes_handles.SphereL)
+0045             view([0 0]);
+0046             axes(gui.axes_handles.SphereR)
+0047             view([0 0]);
+0048         case 'YZ'
+0049             axes(gui.axes_handles.SphereL)
+0050             view([90 0]);
+0051             axes(gui.axes_handles.SphereR)
+0052             view([90 0]);
+0053         case 'XY'
+0054             axes(gui.axes_handles.SphereL)
+0055             view([0 90]);
+0056             axes(gui.axes_handles.SphereR)
+0057             view([0 90]);
+0058         case '3D'
+0059             axes(gui.axes_handles.SphereL)
+0060             view([-35 30]);
+0061             axes(gui.axes_handles.SphereR)
+0062             view([-35 30]);
+0063     end
+0064     
+0065 else
+0066     warndlg({'onPushAxView:','There is no figure with the BLOCHUS Tag open.'},...
+0067         'BLOCHUS error');
+0068 end
+0069 
+0070 end
+0071 
+0072 %------------- END OF CODE --------------
+0073 
+0074 %% License:
+0075 % GNU GPLv3
+0076 %
+0077 % BLOCHUS
+0078 % Copyright (C) 2019 Thomas Hiller
+0079 %
+0080 % This program is free software: you can redistribute it and/or modify
+0081 % it under the terms of the GNU General Public License as published by
+0082 % the Free Software Foundation, either version 3 of the License, or
+0083 % (at your option) any later version.
+0084 %
+0085 % This program is distributed in the hope that it will be useful,
+0086 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0087 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0088 % GNU General Public License for more details.
+0089 %
+0090 % You should have received a copy of the GNU General Public License
+0091 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/push/onPushGrid.html b/doc/blochus/callbacks/push/onPushGrid.html new file mode 100644 index 0000000..6a9be1b --- /dev/null +++ b/doc/blochus/callbacks/push/onPushGrid.html @@ -0,0 +1,138 @@ + + + + Description of onPushGrid + + + + + + + + + + + +

onPushGrid +

+ +

PURPOSE ^

+
resets the axes grid to equal size
+ +

SYNOPSIS ^

+
function onPushGrid(src,~)
+ +

DESCRIPTION ^

+
onPushGrid resets the axes grid to equal size
+
+ Syntax:
+       onPushGrid(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPushGrid(src)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPushGrid(src,~)
+0002 %onPushGrid resets the axes grid to equal size
+0003 %
+0004 % Syntax:
+0005 %       onPushGrid(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPushGrid(src)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(src,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui = getappdata(fig,'gui');
+0038     set(gui.right,'Widths',[-1 -1],'Heights',[-1 -1]);
+0039     
+0040 else
+0041     warndlg({'onPushAxView:','There is no figure with the BLOCHUS Tag open.'},...
+0042         'BLOCHUS error');
+0043 end
+0044 
+0045 end
+0046 
+0047 %------------- END OF CODE --------------
+0048 
+0049 %% License:
+0050 % GNU GPLv3
+0051 %
+0052 % BLOCHUS
+0053 % Copyright (C) 2019 Thomas Hiller
+0054 %
+0055 % This program is free software: you can redistribute it and/or modify
+0056 % it under the terms of the GNU General Public License as published by
+0057 % the Free Software Foundation, either version 3 of the License, or
+0058 % (at your option) any later version.
+0059 %
+0060 % This program is distributed in the hope that it will be useful,
+0061 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0062 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0063 % GNU General Public License for more details.
+0064 %
+0065 % You should have received a copy of the GNU General Public License
+0066 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/callbacks/push/onPushRun.html b/doc/blochus/callbacks/push/onPushRun.html new file mode 100644 index 0000000..79ef27d --- /dev/null +++ b/doc/blochus/callbacks/push/onPushRun.html @@ -0,0 +1,689 @@ + + + + Description of onPushRun + + + + + + + + + + + +

onPushRun +

+ +

PURPOSE ^

+
starts the calculation
+ +

SYNOPSIS ^

+
function onPushRun(src,~)
+ +

DESCRIPTION ^

+
onPushRun starts the calculation
+
+ Syntax:
+       onPushRun(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       onPushRun(src)
+
+ Other m-files required:
+       fcn_BLOCHUS_ode
+       getFFT
+       getMrot
+       getOmega0
+       getPulsePhase
+       getPulseTimeSeries
+       plotResults
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • fcn_BLOCHUS_ode is the objective function for the ode-solver which solves
  • getFFT calculates the FFT for a given time and signal pair
  • getMrot transforms the magnetization from the laboratory frame of
  • getOmega0 calculates the angular frequency from a given B-field and
  • getPulsePhase provides the instantaneous phase of a pulse; this is
  • getPulseTimeSeries returns the B-field amplitudes of the pulse either for a
  • plotResults plots results depending on the chosen settings
  • updateStatusInformation updates all fields inside the bottom status bar
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function onPushRun(src,~)
+0002 %onPushRun starts the calculation
+0003 %
+0004 % Syntax:
+0005 %       onPushRun(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       onPushRun(src)
+0015 %
+0016 % Other m-files required:
+0017 %       fcn_BLOCHUS_ode
+0018 %       getFFT
+0019 %       getMrot
+0020 %       getOmega0
+0021 %       getPulsePhase
+0022 %       getPulseTimeSeries
+0023 %       plotResults
+0024 %
+0025 % Subfunctions:
+0026 %       none
+0027 %
+0028 % MAT-files required:
+0029 %       none
+0030 %
+0031 % See also: BLOCHUS
+0032 % Author: Thomas Hiller
+0033 % email: thomas.hiller[at]leibniz-liag.de
+0034 % License: GNU GPLv3 (at end)
+0035 
+0036 %------------- BEGIN CODE --------------
+0037 
+0038 % get GUI handle
+0039 fig = ancestor(src,'figure','toplevel');
+0040 
+0041 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0042     % get GUI data
+0043     gui = getappdata(fig,'gui');
+0044     data = getappdata(fig,'data');
+0045     
+0046     % change the pushbutton color to indicate that a calculation is running
+0047     set(src,'BackGroundColor','r');
+0048     
+0049     % basic parameter that are always needed
+0050     % z unit vector
+0051     zunit = [0 0 1]';
+0052     % initial magnetization [A/m]
+0053     Minit = data.basic.Minit(:);
+0054     % total simulation time Tsim [s]
+0055     Tsim = data.basic.Tsim/1e3; 
+0056     
+0057     % parameter needed for the ODE solver
+0058     % simulation type [string]
+0059     odeparam.type = data.basic.type;
+0060     % equilibrium magnetization [A/m]
+0061     odeparam.M0 = data.basic.M0(:);
+0062     % primary (Earth's) magnetic field B0 [T]
+0063     odeparam.B0 = data.basic.B0;
+0064     % longitudinal relaxation time T1 [s]
+0065     odeparam.T1 = data.basic.T1relax/1e3;
+0066     % transversal relaxation time T2 [s]
+0067     odeparam.T2 = data.basic.T2relax/1e3;
+0068     % gyromagnetic ratio [rad/s/T]
+0069     odeparam.gamma = data.basic.gamma; 
+0070     
+0071     % ODE solver error tolerance
+0072     tol = 1e-9;
+0073     % ODE solver options
+0074     options = odeset('RelTol',tol,'AbsTol',[tol tol tol]);
+0075     
+0076     % time the calculation
+0077     t0 = tic;
+0078     switch data.basic.type
+0079         case 'std'
+0080             % update Info field
+0081             set(gui.text_handles.Status,'String','Calculation of relaxation ...');
+0082             pause(0.01);
+0083             
+0084             % normalized initial magnetization
+0085             Minit = Minit./norm(Minit);
+0086             % update the corresponding GUI fields
+0087             data.basic.Minit = Minit;
+0088             set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)));
+0089             set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)));
+0090             set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)));
+0091             
+0092             % ODE solver call
+0093             % OUTPUT: time T and magnetization M
+0094             [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options);
+0095             
+0096             % save data
+0097             data.results.basic.T = TT;
+0098             data.results.basic.M = MM;
+0099             
+0100             % rotate M into rotating frame of reference
+0101             Mrot = getMrot(MM,getOmega0(odeparam.gamma,odeparam.B0).*TT);
+0102             data.results.basic.Mrot = Mrot;
+0103             
+0104             % get FFTof M in the laboratory frame of reference
+0105             [Xm,fx] = getFFT(TT,MM(:,1:2));
+0106             data.results.basic.Mspec.fx = fx;
+0107             data.results.basic.Mspec.X = Xm;
+0108             
+0109             % update Info field
+0110             set(gui.text_handles.Status,'String','Calculation of relaxation ... finished.');
+0111             pause(0.01);
+0112             
+0113         case 'prepol'
+0114             % update Info field
+0115             set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ...');
+0116             pause(0.01);
+0117             
+0118             % initial magnetization in the direction of B0+Bp
+0119             Morient = data.results.prepol.orient*data.results.prepol.Bmax + odeparam.B0*zunit;
+0120             % Minit does not get normalized in this case
+0121             Minit = Morient;%./norm(Morient);
+0122             % because Minit is not normalized to 1, M0 needs to be adjusted
+0123             odeparam.M0 = odeparam.B0*zunit;
+0124             % update the corresponding GUI fields
+0125             set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)/norm(Minit)));
+0126             set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)/norm(Minit)));
+0127             set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)/norm(Minit)));
+0128             
+0129             % orientation of the pre-polarization pulse axis
+0130             odeparam.orient = data.results.prepol.orient;
+0131             
+0132             % pre-polarization switch-off ramp parameter
+0133             % relaxation during switch-off [0/1]
+0134             odeparam.RDS = data.prepol.RDS;
+0135             % switch-off ramp type [string]
+0136             rampparam.ramp = data.prepol.Ramp;            
+0137             % amplitude of pre-polarization field
+0138             rampparam.Bmax = data.results.prepol.Bmax;
+0139             % switch over magnetization (for linexp case)
+0140             rampparam.Bstar = data.results.prepol.Bstar;
+0141             % switch-off ramp time [s]
+0142             rampparam.Tramp = data.prepol.Tramp/1e3;
+0143             % switch over ramp time [s] (for linexp case)
+0144             rampparam.Tslope = data.prepol.Tslope/1e3;
+0145             
+0146             % add the ramp parameter to the ode parameter struct
+0147             odeparam.rampparam = rampparam;
+0148             
+0149             % ODE solver call
+0150             % OUTPUT: time T and magnetization M
+0151             [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options);
+0152             
+0153             % normalized magnetization vector at end of switch-off ramp
+0154             MMn = MM(end,:)./norm(MM(end,:));
+0155             % "adiabatic quality" p of the switch-off ramp
+0156             % -> orientation of M with respect to z_unit
+0157             p = dot(MMn(end,:),zunit)./norm(zunit);
+0158             
+0159             % save data
+0160             data.results.basic.T = TT;
+0161             data.results.basic.M = MM;
+0162             data.results.prepol.p = p;
+0163             
+0164             % update Info field
+0165             set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ... finished.');
+0166             pause(0.01);
+0167             
+0168             % activate the lab-frame panels to show the results
+0169             set(gui.panels.Plot.Mag,'Selection',1);
+0170             set(gui.panels.Plot.Sphere,'Selection',1);
+0171             
+0172         case 'pulse'
+0173             % update Info field
+0174             set(gui.text_handles.Status,'String','Calculation of excitation pulse ...');
+0175             pause(0.01);
+0176             
+0177             % normalized initial magnetization
+0178             Minit = Minit./norm(Minit);
+0179             % update the corresponding GUI fields
+0180             data.basic.Minit = Minit;
+0181             set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)));
+0182             set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)));
+0183             set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)));
+0184             
+0185             % excitation pulse parameter
+0186             % relaxation during pulse [0/1]
+0187             odeparam.RDP = data.pulse.RDP;
+0188             % pulse length [s]
+0189             odeparam.Ttau = data.pulse.Ttau/1e3;
+0190             % pulse type [string]
+0191             pulseparam.PulseType = data.pulse.Type;
+0192             % gyromagnetic ratio [rad/s/T]
+0193             pulseparam.gamma = odeparam.gamma;
+0194             % Larmor frequency [rad]
+0195             pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0);
+0196             % pulse amplitude [B0]
+0197             pulseparam.Amp = odeparam.B0*data.pulse.B1Factor;
+0198             % pulse frequency modulation [struct]
+0199             pulseparam.fmod = data.results.pulse.fmod;
+0200             % pulse current modulation [struct]
+0201             pulseparam.Imod = data.results.pulse.Imod;
+0202             % auxiliary pulse phase [rad]
+0203             pulseparam.phi = 0;
+0204             % pulse axis [string]
+0205             pulseparam.PulseAxis = data.pulse.Axis;
+0206             % pulse polarization [string]
+0207             pulseparam.PulsePolarization = data.pulse.Polarization;
+0208             % if the discrete MIDI pulses are used add the corresponding
+0209             % data
+0210             if isfield(data,'pulse_MIDI')
+0211                 % MIDI pulse data [struct]
+0212                 pulseparam.MIDI = data.pulse_MIDI;
+0213             end
+0214             
+0215             % add the pulse parameter to the ode parameter struct
+0216             odeparam.pulseparam = pulseparam;
+0217             
+0218             % ODE solver call
+0219             % OUTPUT: time T and magnetization M
+0220             switch data.pulse.Type
+0221                 case {'MIDI_OR','MIDI_AP'}
+0222                     % if Tsim > Ttau extend the discrete time steps
+0223                     % this is needed because for the discrete pulses
+0224                     % specific time steps are fed into the solver
+0225                     Tsim = unique([data.pulse_MIDI.t;(0:1/50e3:Tsim)']);
+0226                     [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),Tsim,Minit,options);
+0227                 otherwise
+0228                     [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options);
+0229             end
+0230             
+0231             % save data
+0232             data.results.basic.T = TT;
+0233             data.results.basic.M = MM;
+0234             
+0235             % in order to transform M in the rotating frame of reference
+0236             % get the pulse phase theta for all simulated time steps
+0237             pulseparam.fmod.t = TT;
+0238             pulseparam.Imod.t = TT;
+0239             pulseparam.t = TT;
+0240             % get also the pulse amplitudes at these time steps
+0241             [Bpulse,~,~,theta] = getPulseTimeSeries(pulseparam);
+0242             
+0243             % if the simulation is longer then the pulse (additional
+0244             % relaxation afterwards), correct for the pulse phase for
+0245             % points AFTER the pulse by simply calculating the phase at
+0246             % the end of the pulse
+0247             if data.basic.Tsim>data.pulse.Ttau
+0248                 % correction phase
+0249                 dphi = zeros(size(theta));
+0250                 % pulse length
+0251                 Ttau = odeparam.Ttau;
+0252                 % get pulse phase at the end of the pulse
+0253                 dphival = getPulsePhase(Ttau,0,pulseparam,1);
+0254                 % and add it to the correction phase for all time steps after
+0255                 % the pulse
+0256                 indT = TT>Ttau;
+0257                 dphi(indT) = dphival;
+0258                 % set theta for all time steps after the pulse simply to
+0259                 % omega0*t
+0260                 theta(indT) = getOmega0(odeparam.gamma,odeparam.B0).*TT(indT);
+0261                 % rotate M into rotating frame of reference
+0262                 Mrot = getMrot(MM,theta,dphi);
+0263                 % get FFTof M in the laboratory frame of reference
+0264                 [Xm,fmx] = getFFT(TT,MM(:,1:2));
+0265                 % get FFT for the pulse
+0266                 [Xb,fbx] = getFFT(TT(TT<=Ttau),Bpulse(TT<=Ttau,1:2));
+0267                 
+0268                 % update Info field
+0269                 set(gui.text_handles.Status,'String','Calculation of excitation pulse & relaxation ... finished.');
+0270                 pause(0.01);
+0271             else
+0272                 % rotate M into rotating frame of reference
+0273                 Mrot = getMrot(MM,theta);
+0274                 % get FFTof M in the laboratory frame of reference
+0275                 [Xm,fmx] = getFFT(TT,MM(:,1:2));
+0276                 % get FFT for the pulse
+0277                 [Xb,fbx] = getFFT(TT,Bpulse(:,1:2));
+0278                 
+0279                 % update Info field
+0280                 set(gui.text_handles.Status,'String','Calculation of excitation pulse ... finished.');
+0281                 pause(0.01);
+0282             end
+0283             
+0284             % save data
+0285             data.results.basic.Mrot = Mrot;
+0286             data.results.basic.Mspec.fx = fmx;
+0287             data.results.basic.Mspec.X = Xm;
+0288             data.results.pulse.Bspec.fx = fbx;
+0289             data.results.pulse.Bspec.X = Xb;
+0290             
+0291         case 'prepolpulse'
+0292             
+0293             % this is basically the combination of all of the above
+0294             % simulation types
+0295             
+0296             % these times we will later on, so init them already here
+0297             % total simulation time [s]
+0298             Tsim = data.basic.Tsim/1e3;
+0299             % switch-off ramp time [s]
+0300             Tramp = data.prepol.Tramp/1e3;
+0301             % wait time between switch-off ramp and pulse [s]
+0302             Twait = data.pulse.Twait/1e3;
+0303             % pulse length [s]
+0304             Ttau = data.pulse.Ttau/1e3;
+0305             
+0306             % check if the simulation time is long enough to process all
+0307             % different stages, if not fix it
+0308             % NOTE: of course the simulation time can be longer (relaxation)
+0309             % after the pulse
+0310             if Tsim-(Tramp+Twait+Ttau) < 0
+0311                 Tsim = Tramp+Twait+Ttau;
+0312                 % update the corresponding GUI data and field
+0313                 data.basic.Tsim = Tsim*1e3; % [ms]
+0314                 set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0315                 % no relaxation after excitation pulse
+0316                 Trelax = 0;
+0317             else
+0318                 % relaxation after excitation pulse [s]
+0319                 Trelax = Tsim-(Tramp+Twait+Ttau);
+0320             end
+0321             
+0322             % -------------------------------------------------------------
+0323             %% --- 1.) pre-polarization switch-off ------------------------
+0324             % -------------------------------------------------------------
+0325             % update Info field
+0326             set(gui.text_handles.Status,'String','Calculation of pre-polarization switch-off ...');
+0327             pause(0.01);
+0328             
+0329             % initial magnetization in the direction of B0+Bp
+0330             Morient = data.results.prepol.orient*data.results.prepol.Bmax + odeparam.B0*zunit;
+0331              % Minit does not get normalized in this case
+0332             Minit = Morient;%./norm(Morient);
+0333             % because Minit is not normalized to 1, M0 needs to be adjusted
+0334             odeparam.M0 = odeparam.B0*zunit;
+0335             % update the corresponding GUI fields
+0336             set(gui.edit_handles.Minitx,'String',sprintf('%4.3f',Minit(1)/norm(Minit)));
+0337             set(gui.edit_handles.Minity,'String',sprintf('%4.3f',Minit(2)/norm(Minit)));
+0338             set(gui.edit_handles.Minitz,'String',sprintf('%4.3f',Minit(3)/norm(Minit)));
+0339 
+0340             % update the simulation type
+0341             odeparam.type = 'prepol';
+0342             
+0343             % orientation of the pre-polarization pulse axis
+0344             odeparam.orient = data.results.prepol.orient;
+0345             
+0346             % pre-polarization switch-off ramp parameter
+0347             % relaxation during switch-off [0/1]
+0348             odeparam.RDS = data.prepol.RDS;
+0349             % switch-off ramp type [string]
+0350             rampparam.ramp = data.prepol.Ramp;            
+0351             % amplitude of pre-polarization field
+0352             rampparam.Bmax = data.results.prepol.Bmax;
+0353             % switch over magnetization (for linexp case)
+0354             rampparam.Bstar = data.results.prepol.Bstar;
+0355             % switch-off ramp time [s]
+0356             rampparam.Tramp = Tramp;
+0357             % switch over ramp time [s] (for linexp case)
+0358             rampparam.Tslope = data.prepol.Tslope/1e3;
+0359             
+0360             % add the ramp parameter to the ode parameter struct
+0361             odeparam.rampparam = rampparam;
+0362             
+0363             % ODE solver call
+0364             % OUTPUT: time T and magnetization M
+0365             [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tramp],Minit,options);
+0366             
+0367             % data of the first stage
+0368             TT1 = TT;
+0369             MM1 = MM;
+0370 
+0371             % normalized magnetization vector at end of switch-off ramp
+0372             MMn = MM(end,:)./norm(MM(end,:));
+0373             % "adiabatic quality" p of the switch-off ramp
+0374             % -> orientation of M with respect to z_unit
+0375             data.results.prepol.p = dot(MMn(end,:),zunit)./norm(zunit);
+0376             
+0377             % -------------------------------------------------------------
+0378             %% --- 2.) wait time (if any) ---------------------------------
+0379             % -------------------------------------------------------------
+0380             if Twait > 0
+0381                 % update Info field
+0382                 set(gui.text_handles.Status,'String','Calculation of wait time ...');
+0383                 pause(0.01);
+0384                 % initial magnetization is the end of the switch-off ramp
+0385                 Minit2 = MM1(end,:)';
+0386                 % update the simulation type
+0387                 odeparam.type = 'std';
+0388                 
+0389                 % ODE solver call
+0390                 % OUTPUT: time T and magnetization M
+0391                 [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Twait],Minit2,options);
+0392                 
+0393                 % rotate M into rotating frame of reference
+0394                 MM2rot = getMrot(MM,getOmega0(odeparam.gamma,odeparam.B0).*TT);
+0395                 % get the additional phase at the end of the wait time
+0396                 phiWait = getOmega0(odeparam.gamma,odeparam.B0).*TT(end);
+0397                 
+0398                 % because the simulation was done in "local" time
+0399                 % coordinates, shift the time vector to the end of the
+0400                 % switch-off ramp
+0401                 TT2 = TT + Tramp;
+0402                 % save data
+0403                 MM2 = MM;
+0404                 % initial magnetization for the pulse is the end of the
+0405                 % wait time period
+0406                 Minit3 = MM2(end,:)';
+0407             else
+0408                 % if wait time is 0, use dummy values
+0409                 TT2 = [];
+0410                 MM2 = [];
+0411                 MM2rot = [];
+0412                 phiWait = 0;
+0413                 % initial magnetization for the pulse is the end of the
+0414                 % switch-off ramp
+0415                 Minit3 = MM1(end,:)';
+0416             end
+0417             
+0418             % -------------------------------------------------------------
+0419             %% --- 3.) excitation pulse -----------------------------------
+0420             % -------------------------------------------------------------
+0421             
+0422             % update the simulation type
+0423             odeparam.type = 'pulse';
+0424 
+0425             % excitation pulse parameter
+0426             % relaxation during pulse [0/1]
+0427             odeparam.RDP = data.pulse.RDP;
+0428             % pulse length [s]
+0429             odeparam.Ttau = Ttau;
+0430             
+0431             % pulse type [string]
+0432             pulseparam.PulseType = data.pulse.Type;
+0433             % gyromagnetic ratio [rad/s/T]
+0434             pulseparam.gamma = odeparam.gamma;
+0435             % Larmor frequency [rad]
+0436             pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0);
+0437             % pulse amplitude [B0]
+0438             pulseparam.Amp = odeparam.B0*data.pulse.B1Factor;
+0439             % pulse frequency modulation [struct]
+0440             pulseparam.fmod = data.results.pulse.fmod;
+0441             % pulse current modulation [struct]
+0442             pulseparam.Imod = data.results.pulse.Imod;
+0443             % auxiliary pulse phase [rad]
+0444             pulseparam.phi = 0;
+0445             % pulse axis [string]
+0446             pulseparam.PulseAxis = data.pulse.Axis;
+0447             % pulse polarization [string]
+0448             pulseparam.PulsePolarization = data.pulse.Polarization;
+0449             % if the discrete MIDI pulses are used add the corresponding
+0450             % data
+0451             if isfield(data,'pulse_MIDI')
+0452                 % MIDI pulse data [struct]
+0453                 pulseparam.MIDI = data.pulse_MIDI;
+0454             end
+0455 
+0456             % add the pulse parameter to the ode parameter struct
+0457             odeparam.pulseparam = pulseparam;
+0458             
+0459             % update Info field
+0460             set(gui.text_handles.Status,'String','Calculation of excitation pulse ...');
+0461             pause(0.01);
+0462             
+0463             % if there is a time span after the pulse
+0464             if abs(Trelax) > eps
+0465                 % the "local" simulation time is prolonged
+0466                 Tsim1 = Ttau+Trelax;
+0467             else
+0468                 % otherwise the "local" simulation time is simply the pulse
+0469                 % length
+0470                 Tsim1 = Ttau;
+0471             end
+0472             
+0473             % ODE solver call
+0474             % OUTPUT: time T and magnetization M
+0475             switch data.pulse.Type
+0476                 case {'MIDI_OR','MIDI_AP'}
+0477                     % if Tsim1 > Ttau extend the discrete time steps
+0478                     % this is needed because for the discrete pulses
+0479                     % specific time steps are fed into the solver
+0480                     Tsim1 = unique([data.pulse_MIDI.t;(0:1/50e3:Tsim1)']);
+0481                     [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),Tsim1,Minit3,options);
+0482                 otherwise
+0483                     [TT,MM] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim1],Minit3,options);
+0484             end
+0485             
+0486             % in order to transform M in the rotating frame of reference
+0487             % get the pulse phase theta for all simulated time steps
+0488             pulseparam.fmod.t = TT;
+0489             pulseparam.Imod.t = TT;
+0490             pulseparam.t = TT;
+0491             % get also the pulse amplitudes at these time steps
+0492             [Bpulse,~,~,theta] = getPulseTimeSeries(pulseparam);
+0493             
+0494             % if the simulation is longer then the pulse (additional
+0495             % relaxation afterwards), correct for the pulse phase for
+0496             % points AFTER the pulse by simply calculating the phase at
+0497             % the end of the pulse
+0498             if abs(Trelax) > eps%max(Tsim1)>Ttau
+0499                 % correction phase
+0500                 dphi = zeros(size(theta));
+0501                 % get pulse phase at the end of the pulse
+0502                 dphival = getPulsePhase(Ttau,0,pulseparam,1);
+0503                 % and add it to the correction phase for all time steps after
+0504                 % the pulse
+0505                 indT = TT>Ttau;
+0506                 dphi(indT) = dphival;
+0507                 % set theta for all time steps after the pulse simply to
+0508                 % omega0*t
+0509                 theta(indT) = getOmega0(odeparam.gamma,odeparam.B0).*TT(indT);
+0510                 % rotate M into rotating frame of reference
+0511                 % and account for the phase from the wait time before the
+0512                 % pulse
+0513                 MM3rot = getMrot(MM,theta,dphi+phiWait);
+0514                 % get FFT pulse B-field
+0515                 [Xb,fbx] = getFFT(TT(TT<=Ttau),Bpulse(TT<=Ttau,1:2));
+0516                 
+0517                 % update Info field
+0518                 set(gui.text_handles.Status,'String',['Calculation of excitation pulse',...
+0519                     ' & relaxation ... finished.']);
+0520                 pause(0.01);
+0521             else
+0522                 % rotate M into rotating frame of reference
+0523                 % and account for the phase from the wait time before the
+0524                 % pulse
+0525                 MM3rot = getMrot(MM,theta,phiWait);
+0526                 % get FFT pulse B-field
+0527                 [Xb,fbx] = getFFT(TT,Bpulse(:,1:2));
+0528                 
+0529                 % update Info field
+0530                 set(gui.text_handles.Status,'String','Calculation of excitation pulse ... finished.');
+0531                 pause(0.01);
+0532             end
+0533             
+0534             % -------------------------------------------------------------
+0535             %% --- 4.) final data merging ---------------------------------
+0536             % -------------------------------------------------------------
+0537             % because the simulation was done in "local" time
+0538             % coordinates, shift the time vector to the end of the
+0539             % wait time after the switch-off
+0540             TT3 = TT + Tramp + Twait;
+0541             % save data
+0542             MM3 = MM;
+0543             
+0544             % combine data from all stages
+0545             TT = [TT1;TT2;TT3];
+0546             MM = [MM1;MM2;MM3];
+0547             % because there is no M in the rotating frame of reference
+0548             % during the switch-off ramp, use the lab-frame data instead
+0549             MMrot = [MM1;MM2rot;MM3rot];
+0550             
+0551             % remove possible duplicate points
+0552             [TT,ix] = unique(TT);
+0553             MM = MM(ix,:);
+0554             MMrot = MMrot(ix,:);
+0555             
+0556             % save combined data
+0557             data.results.basic.T = TT;
+0558             data.results.basic.M = MM;
+0559             data.results.basic.Mrot = MMrot;
+0560             
+0561             % get FFT for the combined M
+0562             [Xm,fmx] = getFFT(TT,MM(:,1:2));
+0563             data.results.basic.Mspec.fx = fmx;
+0564             data.results.basic.Mspec.X = Xm;
+0565             % save pulse FFT
+0566             data.results.pulse.Bspec.fx = fbx;
+0567             data.results.pulse.Bspec.X = Xb;
+0568 
+0569     end
+0570     % time the calculation
+0571     data.info.Timer = toc(t0);
+0572     
+0573     % update GUI data
+0574     setappdata(fig,'data',data);
+0575     % plot results
+0576     plotResults(fig);
+0577     % update status bar
+0578     updateStatusInformation(fig);
+0579     % activate animation button
+0580     set(gui.push_handles.Animate,'Enable','on');
+0581     
+0582     % change the pushbutton color back to green
+0583     set(src,'BackGroundColor','g');
+0584     
+0585 else
+0586     warndlg({'onPushRun:','There is no figure with the BLOCHUS Tag open.'},...
+0587         'BLOCHUS error');
+0588 end
+0589 
+0590 end
+0591 
+0592 %------------- END OF CODE --------------
+0593 
+0594 %% License:
+0595 % GNU GPLv3
+0596 %
+0597 % BLOCHUS
+0598 % Copyright (C) 2019 Thomas Hiller
+0599 %
+0600 % This program is free software: you can redistribute it and/or modify
+0601 % it under the terms of the GNU General Public License as published by
+0602 % the Free Software Foundation, either version 3 of the License, or
+0603 % (at your option) any later version.
+0604 %
+0605 % This program is distributed in the hope that it will be useful,
+0606 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0607 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0608 % GNU General Public License for more details.
+0609 %
+0610 % You should have received a copy of the GNU General Public License
+0611 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/fcn_BLOCHUS_ode.html b/doc/blochus/functions/blochsim/fcn_BLOCHUS_ode.html new file mode 100644 index 0000000..20ecc7b --- /dev/null +++ b/doc/blochus/functions/blochsim/fcn_BLOCHUS_ode.html @@ -0,0 +1,234 @@ + + + + Description of fcn_BLOCHUS_ode + + + + + + + + + + + +

fcn_BLOCHUS_ode +

+ +

PURPOSE ^

+
is the objective function for the ode-solver which solves
+ +

SYNOPSIS ^

+
function dM = fcn_BLOCHUS_ode(t,m,param)
+ +

DESCRIPTION ^

+
fcn_BLOCHUS_ode is the objective function for the ode-solver which solves
+the Bloch equation in the laboratory frame of reference
+
+ Syntax:
+       fcn_BLOCHUS_ode(t,m,param)
+
+ Inputs:
+       t - instantaneous time
+       m - instantaneous magnetization
+       param - struct that holds additional settings:
+                   type       : flag between 'std', 'prepol',
+                               'pulse', 'prepolpulse'
+                   M0         : equilibrium magnetization [A/m]
+                   B0         : Earth magnetic field [T]
+                   T1         : relaxation times [s]
+                   T2         : relaxation times [s]
+                   gamma      : gyromagnetic ratio [rad/s/T]
+                   rampparam  : struct holding switch-off settings
+                   pulseparam : struct holding pulse settings
+
+ Outputs:
+       dM - time derivative of m
+
+ Example:
+       fcn_BLOCHUS_ode(t,m,param)
+
+ Other m-files required:
+       getRampAmplitude
+       getPulseTimeSeries
+       getRotationMatrixFromVectors
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function dM = fcn_BLOCHUS_ode(t,m,param)
+0002 %fcn_BLOCHUS_ode is the objective function for the ode-solver which solves
+0003 %the Bloch equation in the laboratory frame of reference
+0004 %
+0005 % Syntax:
+0006 %       fcn_BLOCHUS_ode(t,m,param)
+0007 %
+0008 % Inputs:
+0009 %       t - instantaneous time
+0010 %       m - instantaneous magnetization
+0011 %       param - struct that holds additional settings:
+0012 %                   type       : flag between 'std', 'prepol',
+0013 %                               'pulse', 'prepolpulse'
+0014 %                   M0         : equilibrium magnetization [A/m]
+0015 %                   B0         : Earth magnetic field [T]
+0016 %                   T1         : relaxation times [s]
+0017 %                   T2         : relaxation times [s]
+0018 %                   gamma      : gyromagnetic ratio [rad/s/T]
+0019 %                   rampparam  : struct holding switch-off settings
+0020 %                   pulseparam : struct holding pulse settings
+0021 %
+0022 % Outputs:
+0023 %       dM - time derivative of m
+0024 %
+0025 % Example:
+0026 %       fcn_BLOCHUS_ode(t,m,param)
+0027 %
+0028 % Other m-files required:
+0029 %       getRampAmplitude
+0030 %       getPulseTimeSeries
+0031 %       getRotationMatrixFromVectors
+0032 %
+0033 % Subfunctions:
+0034 %       none
+0035 %
+0036 % MAT-files required:
+0037 %       none
+0038 %
+0039 % See also: BLOCHUS
+0040 % Author: Thomas Hiller
+0041 % email: thomas.hiller[at]leibniz-liag.de
+0042 % License: GNU GPLv3 (at end)
+0043 
+0044 %------------- BEGIN CODE --------------
+0045 
+0046 % unit vectors
+0047 xunit = [1 0 0]';
+0048 yunit = [0 1 0]';
+0049 zunit = [0 0 1]';
+0050 
+0051 % basic parameters
+0052 M0 = param.M0;
+0053 B0 = param.B0;
+0054 T1 = param.T1;
+0055 T2 = param.T2;
+0056 gamma = param.gamma;
+0057 
+0058 switch param.type
+0059     case 'std'
+0060         B = B0*zunit;        
+0061         % dM/dt
+0062         dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 );
+0063         
+0064     case 'prepol'
+0065         % switch-off ramp parameters
+0066         rampparam = param.rampparam;
+0067         rampparam.B0 = B0;
+0068         rampparam.gamma = gamma;
+0069         % decreasing Bp amplitude over time
+0070         Bp = getRampAmplitude(t,rampparam);
+0071         % B0 - Earth field
+0072         Be = B0*zunit;
+0073         % check if we are during the switch-off or not
+0074         if t <= rampparam.Tramp
+0075             % during the switch-off we need to account for the decreasing
+0076             % Bp-field amplitude
+0077             B1 = Bp*param.orient;
+0078             B = Be + B1;            
+0079             % if RDS = 0 (switched-off) ignore T1 and T2 during switch-off
+0080             % ramp
+0081             if param.RDS == 0
+0082                 T1 = T1*1e6;
+0083                 T2 = T2*1e6;
+0084             end            
+0085             % if the B-field vector is not parallel to B0
+0086             % rotate B and m into z-axis to apply relaxation
+0087             if any(B./norm(B) ~= zunit)
+0088                 % get rotation matrix from Beff to z-axis
+0089                 R = getRotationMatrixFromVectors(B,zunit);
+0090                 B = R*B; m = R*m;
+0091                 % dM/dt
+0092                 dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 );
+0093                 % rotate dM back
+0094                 dM = R'*dM;
+0095             else
+0096                 % dM/dt
+0097                 dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 );
+0098             end
+0099         else
+0100             % pure B0 evolution after the switch-off
+0101             B = Be;
+0102             % dM/dt
+0103             dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 );
+0104         end
+0105         
+0106     case 'pulse'
+0107         pulseparam = param.pulseparam;
+0108         pulseparam.t = t;
+0109         % check if we are during the pulse or not
+0110         if t <= param.Ttau
+0111             % get pulse amplitude over time
+0112             B1 = getPulseTimeSeries(pulseparam);            
+0113             B = [B1 B0]';
+0114             % if RDP = 0 (switched-off) ignore T1 and T2 during pulse
+0115             if param.RDP == 0
+0116                 T1 = T1*1e6;
+0117                 T2 = T2*1e6;
+0118             end
+0119         else
+0120             % pure B0 evolution after the pulse
+0121             B = B0*zunit;
+0122         end        
+0123         % dM/dt
+0124         dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 );
+0125 end
+0126 
+0127 end
+0128 
+0129 %------------- END OF CODE --------------
+0130 
+0131 %% License:
+0132 % GNU GPLv3
+0133 %
+0134 % BLOCHUS
+0135 % Copyright (C) 2019 Thomas Hiller
+0136 %
+0137 % This program is free software: you can redistribute it and/or modify
+0138 % it under the terms of the GNU General Public License as published by
+0139 % the Free Software Foundation, either version 3 of the License, or
+0140 % (at your option) any later version.
+0141 %
+0142 % This program is distributed in the hope that it will be useful,
+0143 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0144 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0145 % GNU General Public License for more details.
+0146 %
+0147 % You should have received a copy of the GNU General Public License
+0148 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getB0.html b/doc/blochus/functions/blochsim/getB0.html new file mode 100644 index 0000000..cdc872c --- /dev/null +++ b/doc/blochus/functions/blochsim/getB0.html @@ -0,0 +1,133 @@ + + + + Description of getB0 + + + + + + + + + + + +

getB0 +

+ +

PURPOSE ^

+
calculates the magnetic field from a given angular frequency and
+ +

SYNOPSIS ^

+
function B = getB0(gamma,omega0)
+ +

DESCRIPTION ^

+
getB0 calculates the magnetic field from a given angular frequency and
+gyromagnetic ratio
+
+ Syntax:
+       getB0(gamma,omega0)
+
+ Inputs:
+       gamma - gyromagnetic ration [rad/s/T]
+       omega0 - angular frequency [rad/s]
+
+ Outputs:
+       B - magnetic field [T]
+
+ Example:
+       getB0(getGyroRatio('1H'),2000*2*pi)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: +
    +
  • onEditValue updates all edit field values, checks for wrong inputs and
+ + + + +

SOURCE CODE ^

+
0001 function B = getB0(gamma,omega0)
+0002 %getB0 calculates the magnetic field from a given angular frequency and
+0003 %gyromagnetic ratio
+0004 %
+0005 % Syntax:
+0006 %       getB0(gamma,omega0)
+0007 %
+0008 % Inputs:
+0009 %       gamma - gyromagnetic ration [rad/s/T]
+0010 %       omega0 - angular frequency [rad/s]
+0011 %
+0012 % Outputs:
+0013 %       B - magnetic field [T]
+0014 %
+0015 % Example:
+0016 %       getB0(getGyroRatio('1H'),2000*2*pi)
+0017 %
+0018 % Other m-files required:
+0019 %       none
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % even though the original formula is sign-sensitive, as a precaution
+0035 % I make the output B-field always positive
+0036 B = abs(omega0/-gamma);
+0037 
+0038 return
+0039 
+0040 %------------- END OF CODE --------------
+0041 
+0042 %% License:
+0043 % GNU GPLv3
+0044 %
+0045 % BLOCHUS
+0046 % Copyright (C) 2019 Thomas Hiller
+0047 %
+0048 % This program is free software: you can redistribute it and/or modify
+0049 % it under the terms of the GNU General Public License as published by
+0050 % the Free Software Foundation, either version 3 of the License, or
+0051 % (at your option) any later version.
+0052 %
+0053 % This program is distributed in the hope that it will be useful,
+0054 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0055 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0056 % GNU General Public License for more details.
+0057 %
+0058 % You should have received a copy of the GNU General Public License
+0059 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getFFT.html b/doc/blochus/functions/blochsim/getFFT.html new file mode 100644 index 0000000..a22018e --- /dev/null +++ b/doc/blochus/functions/blochsim/getFFT.html @@ -0,0 +1,160 @@ + + + + Description of getFFT + + + + + + + + + + + +

getFFT +

+ +

PURPOSE ^

+
calculates the FFT for a given time and signal pair
+ +

SYNOPSIS ^

+
function [Y,f] = getFFT(t,s)
+ +

DESCRIPTION ^

+
getFFT calculates the FFT for a given time and signal pair
+
+ Syntax:
+       getFFT(t,m)
+
+ Inputs:
+       t - time [s]
+       s - signal
+
+ Outputs:
+       Y - amplitudes of the FFT
+       f - frequency [Hz]
+
+ Example:
+       getFFT(t,s)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [Y,f] = getFFT(t,s)
+0002 %getFFT calculates the FFT for a given time and signal pair
+0003 %
+0004 % Syntax:
+0005 %       getFFT(t,m)
+0006 %
+0007 % Inputs:
+0008 %       t - time [s]
+0009 %       s - signal
+0010 %
+0011 % Outputs:
+0012 %       Y - amplitudes of the FFT
+0013 %       f - frequency [Hz]
+0014 %
+0015 % Example:
+0016 %       getFFT(t,s)
+0017 %
+0018 % Other m-files required:
+0019 %       none
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % length of the time series [s]
+0035 Tmax = t(end);
+0036 % NOTE: because the ode-solver uses adaptive time-stepping, the time vector
+0037 % may be irregularly spaced, so we use the shortest time step
+0038 dt = diff(t);
+0039 dt = max([1e-6 abs(min(dt))]); % [s] max. 1MHz
+0040 % dt = 1e-7;
+0041 % sampling frequency [Hz]
+0042 FS = 1/dt;
+0043 % new time vector with regular time stepping [s]
+0044 tt=0:1/FS:Tmax;
+0045 % number of time steps [-]
+0046 Nt = numel(tt);
+0047 % if the signal is complex we need to interpolate both parts
+0048 if size(s,2)== 2
+0049     % interpolate signal to new time steps
+0050     SxI = interp1(t,s(:,1),tt);
+0051     SyI = interp1(t,s(:,2),tt);
+0052     % new complex signal
+0053     y = complex(SxI,SyI);
+0054 else
+0055     % interpolate signal to new time steps
+0056     y = interp1(t,s,tt);
+0057 end
+0058 % complex FFT
+0059 YY = fft(y);
+0060 % apply fftshift to center the spectrum correctly
+0061 Y = fftshift(YY)./Nt;
+0062 % frequency sampling [Hz]
+0063 f = FS/2*linspace(-1,1,Nt);
+0064 
+0065 return
+0066 
+0067 %------------- END OF CODE --------------
+0068 
+0069 %% License:
+0070 % GNU GPLv3
+0071 %
+0072 % BLOCHUS
+0073 % Copyright (C) 2019 Thomas Hiller
+0074 %
+0075 % This program is free software: you can redistribute it and/or modify
+0076 % it under the terms of the GNU General Public License as published by
+0077 % the Free Software Foundation, either version 3 of the License, or
+0078 % (at your option) any later version.
+0079 %
+0080 % This program is distributed in the hope that it will be useful,
+0081 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0082 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0083 % GNU General Public License for more details.
+0084 %
+0085 % You should have received a copy of the GNU General Public License
+0086 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getGyroRatio.html b/doc/blochus/functions/blochsim/getGyroRatio.html new file mode 100644 index 0000000..52922a1 --- /dev/null +++ b/doc/blochus/functions/blochsim/getGyroRatio.html @@ -0,0 +1,170 @@ + + + + Description of getGyroRatio + + + + + + + + + + + +

getGyroRatio +

+ +

PURPOSE ^

+
provides the gyromagnetic ratio of different nuclei
+ +

SYNOPSIS ^

+
function gamma = getGyroRatio(nuc)
+ +

DESCRIPTION ^

+
getGyroRatio provides the gyromagnetic ratio of different nuclei
+all values are from https://en.wikipedia.org/wiki/Gyromagnetic_ratio
+
+ Syntax:
+       getGyroRatio(nuc)
+
+ Inputs:
+       nuc - nucleus type [string]
+
+ Outputs:
+       gamma - gyromagnetic ration [rad/s/T]
+
+ Example:
+       getGyroRatio('1H')
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function gamma = getGyroRatio(nuc)
+0002 %getGyroRatio provides the gyromagnetic ratio of different nuclei
+0003 %all values are from https://en.wikipedia.org/wiki/Gyromagnetic_ratio
+0004 %
+0005 % Syntax:
+0006 %       getGyroRatio(nuc)
+0007 %
+0008 % Inputs:
+0009 %       nuc - nucleus type [string]
+0010 %
+0011 % Outputs:
+0012 %       gamma - gyromagnetic ration [rad/s/T]
+0013 %
+0014 % Example:
+0015 %       getGyroRatio('1H')
+0016 %
+0017 % Other m-files required:
+0018 %       none
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 %% all freq values are in [MHz/T] and /2pi
+0034 switch nuc
+0035     case '1H'
+0036         freq = 42.57747892;
+0037     case '2H'
+0038         freq = 6.536;
+0039     case '3He'
+0040         freq = -32.434;
+0041     case '7Li'
+0042         freq = 16.546;
+0043     case '13C'
+0044         freq = 10.705;
+0045     case '14N'
+0046         freq = 3.077;
+0047     case '15N'
+0048         freq = -4.316;
+0049     case '17O'
+0050         freq = -5.772;
+0051     case '19F'
+0052         freq = 40.053;
+0053     case '23Na'
+0054         freq = 11.262;
+0055     case '27Al'
+0056         freq = 11.103;
+0057     case '29Si'
+0058         freq = -8.465;    
+0059     case '31P'
+0060         freq = 17.235;
+0061     case '57Fe'
+0062         freq = 1.382;
+0063     case '63Cu'
+0064         freq = 11.319;
+0065     case '67Zn'
+0066         freq = 2.669;    
+0067     case '129Xe'
+0068         freq = -11.777;
+0069     otherwise
+0070         freq = NaN;
+0071 end
+0072 
+0073 % transform to [rad/s/T]
+0074 gamma = 2*pi*freq*1e6;
+0075 
+0076 return
+0077 
+0078 %------------- END OF CODE --------------
+0079 
+0080 %% License:
+0081 % GNU GPLv3
+0082 %
+0083 % BLOCHUS
+0084 % Copyright (C) 2019 Thomas Hiller
+0085 %
+0086 % This program is free software: you can redistribute it and/or modify
+0087 % it under the terms of the GNU General Public License as published by
+0088 % the Free Software Foundation, either version 3 of the License, or
+0089 % (at your option) any later version.
+0090 %
+0091 % This program is distributed in the hope that it will be useful,
+0092 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0093 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0094 % GNU General Public License for more details.
+0095 %
+0096 % You should have received a copy of the GNU General Public License
+0097 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getMIDI_Tx.html b/doc/blochus/functions/blochsim/getMIDI_Tx.html new file mode 100644 index 0000000..fdf113d --- /dev/null +++ b/doc/blochus/functions/blochsim/getMIDI_Tx.html @@ -0,0 +1,374 @@ + + + + Description of getMIDI_Tx + + + + + + + + + + + +

getMIDI_Tx +

+ +

PURPOSE ^

+
creates discrete on-resonant or adiabatic pulses
+ +

SYNOPSIS ^

+
function [t,Bxy,AP] = getMIDI_Tx(param)
+ +

DESCRIPTION ^

+
getMIDI_Tx creates discrete on-resonant or adiabatic pulses
+
+ Syntax:
+       getMIDI_Tx(param)
+
+ Inputs:
+       param - struct containing the pulse settings
+
+ Outputs:
+       t - time vector [s]
+       Bxy - pulse amplitudes (x,y)
+       AP - struct containing adiabatic pulse settings
+
+ Example:
+       [t,y,~] = getMIDI_Tx(param)
+
+ Other m-files required:
+       getPulseTimeSeries
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [t,Bxy,AP] = getMIDI_Tx(param)
+0002 %getMIDI_Tx creates discrete on-resonant or adiabatic pulses
+0003 %
+0004 % Syntax:
+0005 %       getMIDI_Tx(param)
+0006 %
+0007 % Inputs:
+0008 %       param - struct containing the pulse settings
+0009 %
+0010 % Outputs:
+0011 %       t - time vector [s]
+0012 %       Bxy - pulse amplitudes (x,y)
+0013 %       AP - struct containing adiabatic pulse settings
+0014 %
+0015 % Example:
+0016 %       [t,y,~] = getMIDI_Tx(param)
+0017 %
+0018 % Other m-files required:
+0019 %       getPulseTimeSeries
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % input data
+0035 % Larmor freq. [Hz]
+0036 fL = param.fL;
+0037 % gyromagnetic ratio [rad/s/T]
+0038 gamma = param.gamma;
+0039 % sampling freg. [Hz]
+0040 sf = param.sf;
+0041 % number of periods
+0042 P = param.P;
+0043 % Tx current
+0044 I = param.I;
+0045 % duty cycle min
+0046 DCmin = param.DCmin;
+0047 % duty cycle max
+0048 DCmax = param.DCmax; 
+0049 
+0050 % time sampling due to sampling frequency [s]
+0051 dt = 1/sf;
+0052 
+0053 switch param.Tx
+0054     case 'MIDI_OR'
+0055         % creating on-resonant pulses is straight forward
+0056         
+0057         % Larmor sampling + offset [s]
+0058         % this determines the time of a full period with the given
+0059         % frequency
+0060         dtL = 1/(fL+param.df); 
+0061         
+0062         % time vector [s]
+0063         % total length of pulse depending on the number of periods and the
+0064         % time length of one single period
+0065         t = 0:dt:P*dtL; 
+0066         
+0067         % positive (up) and negative (down) "Larmor" peaks
+0068         % we always start with a negative (down) one
+0069         tLup = 3*dtL/4:dtL:P*dtL;
+0070         tLdown = dtL/4:dtL:P*dtL;
+0071         
+0072         % peak width of positive and negative peaks depending on the duty
+0073         % cycle
+0074         peakwidthup = DCmax*dtL/2.*ones(size(tLup));
+0075         peakwidthdown = DCmax*dtL/2.*ones(size(tLup));
+0076         
+0077         % no adiabatic pulse data
+0078         AP = 0;
+0079         
+0080     case 'MIDI_AP'
+0081         % creating the adiabatic pulses is more tricky because due to the
+0082         % frequency modulation it is not clear at the beginning how long
+0083         % the actual pulse is given the number of periods
+0084         
+0085         % Larmor sampling + offset [s]
+0086         % this determines the time of a full period with the given
+0087         % frequency
+0088         dtL = 1/(fL); 
+0089         
+0090         % time vector [s]
+0091         % total length of pulse depending on the number of periods and the
+0092         % time length of one single period
+0093         t = 0:dt:P*dtL; 
+0094 
+0095         % the adiabatic pulse is assembled in an iterative approach
+0096         % maybe there is a more neat way, but I could not think of one
+0097         search = true;
+0098         count = 0;
+0099         while search
+0100             % first create a continuous adiabatic pulse with the modulation
+0101             % settings from the GUI
+0102             
+0103             % temporary time vector [s]
+0104             tt = t(:);
+0105             
+0106             % get the modulation functions
+0107             fmod = param.fmod;
+0108             Imod = param.Imod;
+0109             
+0110             % update the time vector and start and end point
+0111             fmod.t = tt;
+0112             fmod.t0 = tt(1);
+0113             fmod.t1 = t(end);
+0114             
+0115             Imod.t = tt;
+0116             Imod.t0 = tt(1);
+0117             Imod.t1 = tt(end);
+0118             
+0119             % standard adiabatic pulse settings
+0120             pparam.PulseType = 'AHP';
+0121              % gyromagnetic ratio [rad/s/T]
+0122             pparam.gamma = gamma;
+0123             % angular frequency [rad/s]
+0124             if gamma > 0
+0125                 pparam.omega0 = -fL*2*pi;
+0126             else
+0127                 pparam.omega0 = fL*2*pi;
+0128             end
+0129             % normalized pulse amplitude
+0130             pparam.Amp = 1;
+0131             % pulse frequency modulation [struct]
+0132             pparam.fmod = fmod;
+0133             % pulse current modulation [struct]
+0134             pparam.Imod = Imod;
+0135             % auxiliary pulse phase [rad]
+0136             pparam.phi = 0;
+0137             % pulse axis [string]
+0138             if isfield(param,'PulseAxis')
+0139                 pparam.PulseAxis = param.PulseAxis;
+0140             else
+0141                 pparam.PulseAxis = '+y';
+0142             end
+0143             % pulse polarization [string]
+0144             pparam.PulsePolarization = 'linear';            
+0145             % temporary time vector [s]
+0146             pparam.t = tt;
+0147             % create the continuous adiabatic pulse
+0148             [AP.Bout,AP.df,AP.I,AP.theta] = getPulseTimeSeries(pparam);
+0149             
+0150             % find the indices of all peaks within the pulse
+0151             [~,locs] = findpeaks(abs(AP.Bout(:,1)));
+0152             % take only the positive one
+0153             indup = AP.Bout(locs,1)>0;
+0154             % if there are more peaks than number of periods we are done
+0155             if sum(indup) >= P
+0156                 search = false;
+0157             else
+0158                 % other wise extend the time vector and start again
+0159                 count = count + 2;
+0160                 t = 0:dt:(P+count)*dtL;
+0161             end
+0162         end
+0163         
+0164         % find the last positive peak that is equal to the number of
+0165         % periods
+0166         ind = find(cumsum(indup)==P,1,'first');
+0167         % keep all peaks (up & down) within this range
+0168         locs = locs(1:ind);
+0169         % set the pulse length to the corresponding time and add a quarter
+0170         % of a period
+0171         tmax = tt(locs(end)) + dtL/4;
+0172         
+0173         % trim the temporary time vector
+0174         tt = tt(tt<=tmax);
+0175         % trim the output data
+0176         AP.Bout = AP.Bout(1:numel(tt),:);
+0177         AP.df = AP.df(1:numel(tt),:);
+0178         AP.I = AP.I(1:numel(tt),:);
+0179         AP.theta = AP.theta(1:numel(tt),:);
+0180         
+0181         % update the original time vector
+0182         t = tt';
+0183         
+0184         % find all positive peaks
+0185         indup = AP.Bout(locs,1)>0;
+0186         % find all negative peaks
+0187         inddown = AP.Bout(locs,1)<0;
+0188         % find the corresponding time samples
+0189         tLup = tt(locs(indup));
+0190         tLdown = tt(locs(inddown));
+0191         
+0192         % the "width" of the peak in [s]
+0193         dtLup = diff([0;tLup]);
+0194         dtLdown = diff([0;tLdown]);
+0195         
+0196         % the actual peak width is the width in [s] scaled by the
+0197         % corresponding current amplitude of the continuous adiabatic pulse
+0198         % therewith the duty cycle increases as given by the current
+0199         % modulation function
+0200         peakwidthup = AP.I(locs(indup)).*(dtLup./2);
+0201         peakwidthdown = AP.I(locs(inddown)).*(dtLdown/2);
+0202         
+0203         % save all output data
+0204         AP.locs = locs;
+0205         AP.indup = indup;
+0206         AP.inddown = inddown;
+0207         AP.tLup = tLup;
+0208         AP.tLdown = tLdown;
+0209         AP.peakwidthup = peakwidthup;
+0210         AP.peakwidthdown = peakwidthdown;
+0211 end
+0212 
+0213 % loop over all negative peaks
+0214 for i = 1:numel(tLdown)
+0215     % find the discrete time steps that are within the range of peak
+0216     % width
+0217     ind = find(t>=tLdown(i)-peakwidthdown(i)/2 & t<tLdown(i)+peakwidthdown(i)/2);
+0218     % store the indices within the time vector
+0219     if i == 1
+0220         locd = ind;
+0221     else
+0222         locd = [locd ind]; %#ok<AGROW>
+0223     end
+0224 end
+0225 
+0226 % loop over all negative peaks
+0227 for i = 1:numel(tLup)
+0228     % find the discrete time steps that are within the range of peak
+0229     % width
+0230     ind = find(t>=tLup(i)-peakwidthup(i)/2 & t<tLup(i)+peakwidthup(i)/2);
+0231     % store the indices within the time vector
+0232     if i == 1
+0233         locu = ind;
+0234     else
+0235         locu = [locu ind]; %#ok<AGROW>
+0236     end
+0237 end
+0238 
+0239 % create the amplitude vector
+0240 x = zeros(size(t));
+0241 % all negative peak positions get the corresponding Tx amplitude (scaled
+0242 % by the Tx current I)
+0243 x(locd) = -I*ones(size(locd));
+0244 % all positive peak positions get the corresponding Tx amplitude (scaled
+0245 % by the Tx current I)
+0246 x(locu) = I*ones(size(locu));
+0247 
+0248 % now create an artificial y-component by shifting the original signal
+0249 % (x-component) 90° (quarter of a full period)
+0250 % get the length of a quarter period
+0251 t90 = dtL/4;
+0252 % cut out these first samples and put them to the end of the original signal
+0253 y = [x(t>=t90) x(t<t90)];
+0254 % merge the x- and y-components
+0255 Bxy = [x;y];
+0256 
+0257 % because the created pulse is a +y-pulse adjust its pulse axis here if
+0258 % necessary (only the on-resonant case here because for the adiabatic
+0259 % pulse this is already taken care of during assembling)
+0260 if strcmp(param.Tx,'MIDI_OR') && isfield(param,'PulseAxis')
+0261     % depending on the frequency, there is a different amount of time
+0262     % steps for the "90° phase shift"
+0263     shiftind = sum(t<t90);
+0264     % now shift both components by the necessary amount of samples
+0265     switch param.PulseAxis
+0266         case '+x'
+0267             tmp = circshift(Bxy',-shiftind);
+0268         case '+y'
+0269             tmp = Bxy'; % nothing to do
+0270         case '-x'
+0271             tmp = circshift(Bxy',+shiftind);
+0272         case '-y'
+0273             tmp = circshift(Bxy',+2*shiftind);
+0274     end
+0275     % update the pulse amplitudes
+0276     Bxy = tmp';
+0277 end
+0278 
+0279 return
+0280 
+0281 %------------- END OF CODE --------------
+0282 
+0283 %% License:
+0284 % GNU GPLv3
+0285 %
+0286 % BLOCHUS
+0287 % Copyright (C) 2019 Thomas Hiller
+0288 %
+0289 % This program is free software: you can redistribute it and/or modify
+0290 % it under the terms of the GNU General Public License as published by
+0291 % the Free Software Foundation, either version 3 of the License, or
+0292 % (at your option) any later version.
+0293 %
+0294 % This program is distributed in the hope that it will be useful,
+0295 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0296 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0297 % GNU General Public License for more details.
+0298 %
+0299 % You should have received a copy of the GNU General Public License
+0300 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getMrot.html b/doc/blochus/functions/blochsim/getMrot.html new file mode 100644 index 0000000..9bee056 --- /dev/null +++ b/doc/blochus/functions/blochsim/getMrot.html @@ -0,0 +1,141 @@ + + + + Description of getMrot + + + + + + + + + + + +

getMrot +

+ +

PURPOSE ^

+
transforms the magnetization from the laboratory frame of
+ +

SYNOPSIS ^

+
function Mrot = getMrot(M,theta,varargin)
+ +

DESCRIPTION ^

+
getMrot transforms the magnetization from the laboratory frame of
+reference into the rotating frame of reference
+
+ Syntax:
+       getMrot(M,theta,varargin)
+
+ Inputs:
+       M - magnetization in the lab-frame
+       theta - instantaneous phase omega*t [rad]
+       phi - [optional] additional phase [rad]
+
+ Outputs:
+       Mrot - magnetization in the rot-frame
+
+ Example:
+       getMrot(M,theta)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function Mrot = getMrot(M,theta,varargin)
+0002 %getMrot transforms the magnetization from the laboratory frame of
+0003 %reference into the rotating frame of reference
+0004 %
+0005 % Syntax:
+0006 %       getMrot(M,theta,varargin)
+0007 %
+0008 % Inputs:
+0009 %       M - magnetization in the lab-frame
+0010 %       theta - instantaneous phase omega*t [rad]
+0011 %       phi - [optional] additional phase [rad]
+0012 %
+0013 % Outputs:
+0014 %       Mrot - magnetization in the rot-frame
+0015 %
+0016 % Example:
+0017 %       getMrot(M,theta)
+0018 %
+0019 % Other m-files required:
+0020 %       none
+0021 %
+0022 % Subfunctions:
+0023 %       none
+0024 %
+0025 % MAT-files required:
+0026 %       none
+0027 %
+0028 % See also: BLOCHUS
+0029 % Author: Thomas Hiller
+0030 % email: thomas.hiller[at]leibniz-liag.de
+0031 % License: GNU GPLv3 (at end)
+0032 
+0033 %------------- BEGIN CODE --------------
+0034 
+0035 phi = 0;
+0036 if nargin > 2
+0037     phi = varargin{1};
+0038 end
+0039 Mrot = zeros(size(M));
+0040 
+0041 Mrot(:,1) =  M(:,1).*cos(theta + phi) + M(:,2).*sin(theta + phi);
+0042 Mrot(:,2) = -M(:,1).*sin(theta + phi) + M(:,2).*cos(theta + phi);
+0043 Mrot(:,3) =  M(:,3);
+0044 
+0045 return
+0046 
+0047 %------------- END OF CODE --------------
+0048 
+0049 %% License:
+0050 % GNU GPLv3
+0051 %
+0052 % BLOCHUS
+0053 % Copyright (C) 2019 Thomas Hiller
+0054 %
+0055 % This program is free software: you can redistribute it and/or modify
+0056 % it under the terms of the GNU General Public License as published by
+0057 % the Free Software Foundation, either version 3 of the License, or
+0058 % (at your option) any later version.
+0059 %
+0060 % This program is distributed in the hope that it will be useful,
+0061 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0062 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0063 % GNU General Public License for more details.
+0064 %
+0065 % You should have received a copy of the GNU General Public License
+0066 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getOmega0.html b/doc/blochus/functions/blochsim/getOmega0.html new file mode 100644 index 0000000..13807c7 --- /dev/null +++ b/doc/blochus/functions/blochsim/getOmega0.html @@ -0,0 +1,133 @@ + + + + Description of getOmega0 + + + + + + + + + + + +

getOmega0 +

+ +

PURPOSE ^

+
calculates the angular frequency from a given B-field and
+ +

SYNOPSIS ^

+
function omega0 = getOmega0(gamma,B)
+ +

DESCRIPTION ^

+
getOmega0 calculates the angular frequency from a given B-field and
+gyromagnetic ratio
+
+ Syntax:
+       getOmega0(gamma,B)
+
+ Inputs:
+       gamma - gyromagnetic ration [rad/s/T]
+       B - magnetic field [T]
+
+ Outputs:
+       omega0 - angular frequency [rad/s]
+
+ Example:
+       getOmega0(getGyroRatio('1H'),50e-6)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function omega0 = getOmega0(gamma,B)
+0002 %getOmega0 calculates the angular frequency from a given B-field and
+0003 %gyromagnetic ratio
+0004 %
+0005 % Syntax:
+0006 %       getOmega0(gamma,B)
+0007 %
+0008 % Inputs:
+0009 %       gamma - gyromagnetic ration [rad/s/T]
+0010 %       B - magnetic field [T]
+0011 %
+0012 % Outputs:
+0013 %       omega0 - angular frequency [rad/s]
+0014 %
+0015 % Example:
+0016 %       getOmega0(getGyroRatio('1H'),50e-6)
+0017 %
+0018 % Other m-files required:
+0019 %       none
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % this formula is sign sensitive:
+0035 % omega0 is negative for positive gyromagnetic ratio
+0036 omega0 = -gamma.*B;
+0037 
+0038 return
+0039 
+0040 %------------- END OF CODE --------------
+0041 
+0042 %% License:
+0043 % GNU GPLv3
+0044 %
+0045 % BLOCHUS
+0046 % Copyright (C) 2019 Thomas Hiller
+0047 %
+0048 % This program is free software: you can redistribute it and/or modify
+0049 % it under the terms of the GNU General Public License as published by
+0050 % the Free Software Foundation, either version 3 of the License, or
+0051 % (at your option) any later version.
+0052 %
+0053 % This program is distributed in the hope that it will be useful,
+0054 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0055 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0056 % GNU General Public License for more details.
+0057 %
+0058 % You should have received a copy of the GNU General Public License
+0059 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getPulseAxisPhase.html b/doc/blochus/functions/blochsim/getPulseAxisPhase.html new file mode 100644 index 0000000..b654eb8 --- /dev/null +++ b/doc/blochus/functions/blochsim/getPulseAxisPhase.html @@ -0,0 +1,136 @@ + + + + Description of getPulseAxisPhase + + + + + + + + + + + +

getPulseAxisPhase +

+ +

PURPOSE ^

+
provides the phase angle of the given pulse axis
+ +

SYNOPSIS ^

+
function ax_phi = getPulseAxisPhase(ax_dir)
+ +

DESCRIPTION ^

+
getPulseAxisPhase provides the phase angle of the given pulse axis
+
+ Syntax:
+       getPulseAxisPhase(ax_dir)
+
+ Inputs:
+       ax_dir - string holding the pulse axis direction
+
+ Outputs:
+       ax_phi - phase angle of the pulse axis [rad]
+
+ Example:
+       getPulseAxisPhase('+x')
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function ax_phi = getPulseAxisPhase(ax_dir)
+0002 %getPulseAxisPhase provides the phase angle of the given pulse axis
+0003 %
+0004 % Syntax:
+0005 %       getPulseAxisPhase(ax_dir)
+0006 %
+0007 % Inputs:
+0008 %       ax_dir - string holding the pulse axis direction
+0009 %
+0010 % Outputs:
+0011 %       ax_phi - phase angle of the pulse axis [rad]
+0012 %
+0013 % Example:
+0014 %       getPulseAxisPhase('+x')
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 switch ax_dir
+0033     case '+x'
+0034         ax_phi = 0;
+0035     case '+y'
+0036         ax_phi = pi/2;
+0037     case '-x'
+0038         ax_phi = pi;
+0039     case '-y'
+0040         ax_phi = 3*pi/2;
+0041 end
+0042 
+0043 return
+0044 
+0045 %------------- END OF CODE --------------
+0046 
+0047 %% License:
+0048 % GNU GPLv3
+0049 %
+0050 % BLOCHUS
+0051 % Copyright (C) 2019 Thomas Hiller
+0052 %
+0053 % This program is free software: you can redistribute it and/or modify
+0054 % it under the terms of the GNU General Public License as published by
+0055 % the Free Software Foundation, either version 3 of the License, or
+0056 % (at your option) any later version.
+0057 %
+0058 % This program is distributed in the hope that it will be useful,
+0059 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0060 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0061 % GNU General Public License for more details.
+0062 %
+0063 % You should have received a copy of the GNU General Public License
+0064 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getPulsePhase.html b/doc/blochus/functions/blochsim/getPulsePhase.html new file mode 100644 index 0000000..0237969 --- /dev/null +++ b/doc/blochus/functions/blochsim/getPulsePhase.html @@ -0,0 +1,234 @@ + + + + Description of getPulsePhase + + + + + + + + + + + +

getPulsePhase +

+ +

PURPOSE ^

+
provides the instantaneous phase of a pulse; this is
+ +

SYNOPSIS ^

+
function theta = getPulsePhase(t,df,param,flag)
+ +

DESCRIPTION ^

+
getPulsePhase provides the instantaneous phase of a pulse; this is
+needed for frequency modulated pulses (e.g. AHP) because the frequency is
+actually modulated via the phase
+NOTE: because f = dphi/dt*2pi the time domain phase is the integral of the
+frequency:
+phi(t) = phi0 + 2pi*int_0^t f(tau) dtau
+
+this means e.g. for a linear frequency chirp from f0 to f1 like:
+ f(t) = k*t + f0, with slope k = (f1-f0)/(t1-t0)
+
+ the instantaneous phase is given as
+ phi(t) = phi0 + 2pi*(k/2*t^2 + f0*t)
+
+ Syntax:
+       getPulsePhase(t,df,param,flag)
+
+ Inputs:
+       t - time [s]
+       df - off-resonance [Hz]
+       param - struct containing extra settings:
+               fmod   : struct containing frequency modulation settings
+               gamma  : gyromagnetic ratio [rad/s/T]
+               omega0 : angular frequency [rad/s]
+       flag - 0 -> phase during pulse
+              1 -> phase after pulse (only relaxation)
+
+ Outputs:
+       theta - instantaneous phase angle of the pulse
+
+ Example:
+       getPulsePhase(t,0,param,0)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function theta = getPulsePhase(t,df,param,flag)
+0002 %getPulsePhase provides the instantaneous phase of a pulse; this is
+0003 %needed for frequency modulated pulses (e.g. AHP) because the frequency is
+0004 %actually modulated via the phase
+0005 %NOTE: because f = dphi/dt*2pi the time domain phase is the integral of the
+0006 %frequency:
+0007 %phi(t) = phi0 + 2pi*int_0^t f(tau) dtau
+0008 %
+0009 %this means e.g. for a linear frequency chirp from f0 to f1 like:
+0010 % f(t) = k*t + f0, with slope k = (f1-f0)/(t1-t0)
+0011 %
+0012 % the instantaneous phase is given as
+0013 % phi(t) = phi0 + 2pi*(k/2*t^2 + f0*t)
+0014 %
+0015 % Syntax:
+0016 %       getPulsePhase(t,df,param,flag)
+0017 %
+0018 % Inputs:
+0019 %       t - time [s]
+0020 %       df - off-resonance [Hz]
+0021 %       param - struct containing extra settings:
+0022 %               fmod   : struct containing frequency modulation settings
+0023 %               gamma  : gyromagnetic ratio [rad/s/T]
+0024 %               omega0 : angular frequency [rad/s]
+0025 %       flag - 0 -> phase during pulse
+0026 %              1 -> phase after pulse (only relaxation)
+0027 %
+0028 % Outputs:
+0029 %       theta - instantaneous phase angle of the pulse
+0030 %
+0031 % Example:
+0032 %       getPulsePhase(t,0,param,0)
+0033 %
+0034 % Other m-files required:
+0035 %       none
+0036 %
+0037 % Subfunctions:
+0038 %       none
+0039 %
+0040 % MAT-files required:
+0041 %       none
+0042 %
+0043 % See also: BLOCHUS
+0044 % Author: Thomas Hiller
+0045 % email: thomas.hiller[at]leibniz-liag.de
+0046 % License: GNU GPLv3 (at end)
+0047 
+0048 %------------- BEGIN CODE --------------
+0049 
+0050 % modulation parameter
+0051 fmod = param.fmod;
+0052 % Larmor freq. [Hz]
+0053 f0 = param.omega0/2/pi;
+0054 
+0055 % manipulating the phase angle theta modulates the frequency of the pulse
+0056 switch fmod.shape
+0057     case 'const'
+0058         switch flag
+0059             case 0 % during pulse
+0060                 theta = (f0-df)*2*pi.*t;
+0061             case 1 % after pulse
+0062                 theta = -fmod.v1*2*pi*t;
+0063         end
+0064         
+0065     case 'lin'
+0066         k = (fmod.v0-fmod.v1)./(fmod.t1-fmod.t0);
+0067         switch flag
+0068             case 0 % during pulse
+0069                 theta = 2*pi*((f0-fmod.v0).*t + k./2.*t.^2);
+0070             case 1 % after pulse
+0071                 theta = -2*pi*(fmod.v1*t + k/2*t^2);
+0072         end
+0073         
+0074     case 'tanhMIDI'
+0075         delta_f = fmod.v0-fmod.v1;
+0076         delta_t = fmod.t1-fmod.t0;
+0077         A = 2*pi*fmod.A;
+0078         B = fmod.B;
+0079         C = tanh( (A./fmod.t1).*(fmod.t0-B.*(fmod.t1/2)));
+0080         D = tanh( (A./fmod.t1).*(fmod.t1-B.*(fmod.t1/2)));
+0081         E = fmod.v1;
+0082         F = -delta_f;
+0083         T = delta_t;
+0084         % sign switch
+0085         delta_val = -delta_f;
+0086         switch flag
+0087             case 0 % during pulse
+0088                 theta = 2.*pi.*(f0.*t + (( A.*B.*C.*F.*T + 2.*F.*T.*log(cosh((A.*(t-(B.*T./2)))./T)) + 2.*A.*t.*(C.*E-D.*(E+F)) ) ./ (2.*A.*(C-D))) );
+0089             case 1 % after pulse
+0090                 theta = 2.*pi.*(fmod.v1*t + (( A.*B.*C.*F.*T + 2.*F.*T.*log(cosh((A.*(t-(B.*T./2)))./T)) + 2.*A.*t.*(C.*E-D.*(E+F)) ) ./ (2.*A.*(C-D))) );
+0091         end
+0092         
+0093     case 'tanhGMR'
+0094         delta_f = fmod.v0-fmod.v1;
+0095         delta_t = fmod.t1-fmod.t0;
+0096         switch flag
+0097             case 0 % during pulse
+0098                 theta = 2*pi*( (f0-fmod.v0).*t + (delta_t/3).*delta_f.*log(cosh(3.*t./delta_t)) );
+0099             case 1 % after pulse
+0100                 theta = -2*pi*(fmod.v0*t - (delta_t/3)*delta_f*log(cosh(3*t/delta_t)) );
+0101         end
+0102         
+0103     case 'exp'
+0104         delta_f = fmod.v0-fmod.v1;
+0105         delta_t = fmod.t1-fmod.t0;
+0106         switch flag
+0107             case 0 % during pulse
+0108                 theta = 2*pi*(f0.*t + (delta_t*delta_f./fmod.A).*exp(fmod.A.*(-t/delta_t)));
+0109             case 1 % after pulse
+0110                 theta = 2*pi*(fmod.end*t + (delta_t*delta_f./fmod.A)*exp(fmod.A*(-t/delta_t)));
+0111         end
+0112         
+0113     otherwise
+0114         switch flag
+0115             case 0 % during pulse
+0116                 theta = (f0-df)*2*pi.*t;
+0117             otherwise
+0118                 % nothing to do
+0119         end
+0120         
+0121 end
+0122 
+0123 end
+0124 
+0125 %------------- END OF CODE --------------
+0126 
+0127 %% License:
+0128 % GNU GPLv3
+0129 %
+0130 % BLOCHUS
+0131 % Copyright (C) 2019 Thomas Hiller
+0132 %
+0133 % This program is free software: you can redistribute it and/or modify
+0134 % it under the terms of the GNU General Public License as published by
+0135 % the Free Software Foundation, either version 3 of the License, or
+0136 % (at your option) any later version.
+0137 %
+0138 % This program is distributed in the hope that it will be useful,
+0139 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0140 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0141 % GNU General Public License for more details.
+0142 %
+0143 % You should have received a copy of the GNU General Public License
+0144 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getPulseTimeSeries.html b/doc/blochus/functions/blochsim/getPulseTimeSeries.html new file mode 100644 index 0000000..0f8e44f --- /dev/null +++ b/doc/blochus/functions/blochsim/getPulseTimeSeries.html @@ -0,0 +1,268 @@ + + + + Description of getPulseTimeSeries + + + + + + + + + + + +

getPulseTimeSeries +

+ +

PURPOSE ^

+
returns the B-field amplitudes of the pulse either for a
+ +

SYNOPSIS ^

+
function [Bout,df,I,theta] = getPulseTimeSeries(param)
+ +

DESCRIPTION ^

+
getPulseTimeSeries returns the B-field amplitudes of the pulse either for a
+single point or a complete time series
+
+ Syntax:
+       getPulseTimeSeries(param)
+
+ Inputs:
+       param - struct containing the pulse settings
+               PulseType         : pulse type [string]
+               gamma             : gyromagnetic ratio [rad/s/T]
+               omega0            : angular frequency [rad/s]
+               t                 : time [s]
+               Amp               : pulse amplitude
+               phi               : optional phase [rad]
+               PulseAxis         : pulse axis direction [string]
+               PulsePolarization : pulse polarization [string]
+               fmod              : struct containing the frequency modulation
+                                   settings
+               Imod              : struct containing the current modulation
+                                   settings
+               MIDI              : [optional] struct containing the predetermined
+                                   discrete MIDI pulse
+
+ Outputs:
+       Bout - B-field amplitudes
+       df - frequency modulation [Hz]
+       I - current modulation [A]
+       theta - instantaneous phase [rad]
+
+ Example:
+       getPulseTimeSeries(param)
+
+ Other m-files required:
+       modulatePulse
+       getPulseAxisPhase
+       getReferencePhase
+       getPulsePhase
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [Bout,df,I,theta] = getPulseTimeSeries(param)
+0002 %getPulseTimeSeries returns the B-field amplitudes of the pulse either for a
+0003 %single point or a complete time series
+0004 %
+0005 % Syntax:
+0006 %       getPulseTimeSeries(param)
+0007 %
+0008 % Inputs:
+0009 %       param - struct containing the pulse settings
+0010 %               PulseType         : pulse type [string]
+0011 %               gamma             : gyromagnetic ratio [rad/s/T]
+0012 %               omega0            : angular frequency [rad/s]
+0013 %               t                 : time [s]
+0014 %               Amp               : pulse amplitude
+0015 %               phi               : optional phase [rad]
+0016 %               PulseAxis         : pulse axis direction [string]
+0017 %               PulsePolarization : pulse polarization [string]
+0018 %               fmod              : struct containing the frequency modulation
+0019 %                                   settings
+0020 %               Imod              : struct containing the current modulation
+0021 %                                   settings
+0022 %               MIDI              : [optional] struct containing the predetermined
+0023 %                                   discrete MIDI pulse
+0024 %
+0025 % Outputs:
+0026 %       Bout - B-field amplitudes
+0027 %       df - frequency modulation [Hz]
+0028 %       I - current modulation [A]
+0029 %       theta - instantaneous phase [rad]
+0030 %
+0031 % Example:
+0032 %       getPulseTimeSeries(param)
+0033 %
+0034 % Other m-files required:
+0035 %       modulatePulse
+0036 %       getPulseAxisPhase
+0037 %       getReferencePhase
+0038 %       getPulsePhase
+0039 %
+0040 % Subfunctions:
+0041 %       none
+0042 %
+0043 % MAT-files required:
+0044 %       none
+0045 %
+0046 % See also: BLOCHUS
+0047 % Author: Thomas Hiller
+0048 % email: thomas.hiller[at]leibniz-liag.de
+0049 % License: GNU GPLv3 (at end)
+0050 
+0051 %------------- BEGIN CODE --------------
+0052 
+0053 PulseType = param.PulseType;
+0054 gamma = param.gamma;
+0055 t = param.t;
+0056 Amp = param.Amp;
+0057 phi = param.phi;
+0058 fmod = param.fmod;
+0059 Imod = param.Imod;
+0060 
+0061 % if the pulse axis is not given, it is set to '+x'
+0062 if isfield(param,'PulseAxis')
+0063     PulseAxis = param.PulseAxis;
+0064 else
+0065     PulseAxis = '+x';
+0066 end
+0067 % if the pulse polarization is not given, it is set to 'circular'
+0068 if isfield(param,'PulsePolarization')
+0069     PulsePolarization = param.PulsePolarization;
+0070 else
+0071     PulsePolarization = 'circular';
+0072 end
+0073 
+0074 switch PulseType
+0075     % handle the 'discrete' MIDI pulses
+0076     case {'MIDI_OR','MIDI_AP'}
+0077         t = t(:);
+0078         fmod.t = t;
+0079         Imod.t = t;
+0080         df = modulatePulse(fmod,'df');
+0081         I = modulatePulse(Imod,'I');        
+0082         
+0083         % interpolate amplitudes at current time t from the pulse stored in
+0084         % param.MIDI
+0085         xMIDI = interp1(param.MIDI.t,param.MIDI.y(:,1),t,'linear');
+0086         yMIDI = interp1(param.MIDI.t,param.MIDI.y(:,2),t,'linear');
+0087         
+0088         % get instantaneous phase due to frequency modulation
+0089         % here the phase angle theta is simply the integral of the frequency
+0090         % modulation; this obviously only works for a vector (so this is
+0091         % not done during the ode calculation)
+0092         if numel(t)>1
+0093             ft = -param.MIDI.mparam.fL-df;
+0094             theta = cumtrapz(t,ft.*2*pi);
+0095         end        
+0096         
+0097         % I is already incorporated in the MIDI fit
+0098         switch PulsePolarization
+0099             case 'circular'
+0100                 Bout = Amp.*[xMIDI yMIDI];
+0101             case 'linear'
+0102                 Bout = 2.*Amp.*[xMIDI 0.*t];
+0103         end
+0104         
+0105     otherwise % all other (continuous) pulse types
+0106         
+0107         % direction of pulse axis
+0108         phi_ax = getPulseAxisPhase(PulseAxis);
+0109         % reference phase due to gyromagnetic ratio
+0110         % NOTE: due to the reference phase, M flips according to the
+0111         % right-hand-rule in the rotating frame of reference
+0112         % -> also protons with negative gyromagnetic ratio!
+0113         % refer to Levitt, 2002
+0114         phi_ref = getReferencePhase(gamma);
+0115 
+0116         % pulse modulation
+0117         t = t(:);
+0118         fmod.t = t;
+0119         Imod.t = t;
+0120         df = modulatePulse(fmod,'df');
+0121         I = modulatePulse(Imod,'I');
+0122         
+0123         % check for quality factor tuning
+0124         if Imod.useQ && Imod.Q > 0
+0125             % get line (band) width -> f_L/Q (simple bandwidth for bandpass)
+0126             Lwidth = abs(param.omega0/2/pi) / Imod.Q;
+0127             % apply "Breit-Wigner" formula (here already normalized to 1 by
+0128             % multiplying with pi*Lwidth)
+0129             L = 1 ./ ( ((df+Imod.Qdf).^2 ./ Lwidth.^2) + 1 );
+0130             I = I.*L;
+0131         end
+0132            
+0133         % get instantaneous phase due to frequency modulation
+0134         theta = getPulsePhase(t,df,param,0);
+0135         
+0136         switch PulsePolarization
+0137             case 'circular'
+0138                 Bout = I.*Amp.*[cos(theta + phi + phi_ax + phi_ref) ...
+0139                     sin(theta + phi + phi_ax + phi_ref)];
+0140             case 'linear'
+0141                 Bout = 2.*I.*Amp.*[cos(theta + phi + phi_ax + phi_ref) ...
+0142                     0.*t];
+0143         end
+0144         % test:
+0145         if phi ~= 0
+0146             disp(num2str(phi));
+0147         end
+0148         % end test
+0149 end
+0150 % if B-field values are NaN, set them to zero
+0151 % this can happen due to the interpolation at the end of the MIDI-pulses
+0152 Bout(isnan(Bout)) = 0;
+0153 
+0154 end
+0155 
+0156 %------------- END OF CODE --------------
+0157 
+0158 %% License:
+0159 % GNU GPLv3
+0160 %
+0161 % BLOCHUS
+0162 % Copyright (C) 2019 Thomas Hiller
+0163 %
+0164 % This program is free software: you can redistribute it and/or modify
+0165 % it under the terms of the GNU General Public License as published by
+0166 % the Free Software Foundation, either version 3 of the License, or
+0167 % (at your option) any later version.
+0168 %
+0169 % This program is distributed in the hope that it will be useful,
+0170 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0171 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0172 % GNU General Public License for more details.
+0173 %
+0174 % You should have received a copy of the GNU General Public License
+0175 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getRampAmplitude.html b/doc/blochus/functions/blochsim/getRampAmplitude.html new file mode 100644 index 0000000..c337653 --- /dev/null +++ b/doc/blochus/functions/blochsim/getRampAmplitude.html @@ -0,0 +1,216 @@ + + + + Description of getRampAmplitude + + + + + + + + + + + +

getRampAmplitude +

+ +

PURPOSE ^

+
provides pre-polarization switch-off B-field amplitude
+ +

SYNOPSIS ^

+
function Bp = getRampAmplitude(t,param)
+ +

DESCRIPTION ^

+
getRampAmplitude provides pre-polarization switch-off B-field amplitude
+
+ Syntax:
+       getRampAmplitude(t,param)
+
+ Inputs:
+       t - time [s]
+       param - struct containing extra settings:
+               ramp  - struct containing ramp shape: 'exp', 'linexp',
+                       'halfcos', 'lin'
+               gamma  - gyromagnetic ratio [rad/s/T]
+               B0     - Earth magnetic field amplitude [T]
+               Bmax   - maximum pre-polarization amplitude [T]
+               Bstar  - switch magnetic field between linear and
+                        exponential part of the 'linexp' ramp
+               Tramp  - switch-off ramp time [s]
+               Tslope - switch time between linear and
+                        exponential part of the 'linexp' ramp [s]
+
+ Outputs:
+       Bp - pre-polarization B-field amplitude
+
+ Example:
+       getRampAmplitude(t,param)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       getLinExpAmp
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + +

SUBFUNCTIONS ^

+ + +

SOURCE CODE ^

+
0001 function Bp = getRampAmplitude(t,param)
+0002 %getRampAmplitude provides pre-polarization switch-off B-field amplitude
+0003 %
+0004 % Syntax:
+0005 %       getRampAmplitude(t,param)
+0006 %
+0007 % Inputs:
+0008 %       t - time [s]
+0009 %       param - struct containing extra settings:
+0010 %               ramp  - struct containing ramp shape: 'exp', 'linexp',
+0011 %                       'halfcos', 'lin'
+0012 %               gamma  - gyromagnetic ratio [rad/s/T]
+0013 %               B0     - Earth magnetic field amplitude [T]
+0014 %               Bmax   - maximum pre-polarization amplitude [T]
+0015 %               Bstar  - switch magnetic field between linear and
+0016 %                        exponential part of the 'linexp' ramp
+0017 %               Tramp  - switch-off ramp time [s]
+0018 %               Tslope - switch time between linear and
+0019 %                        exponential part of the 'linexp' ramp [s]
+0020 %
+0021 % Outputs:
+0022 %       Bp - pre-polarization B-field amplitude
+0023 %
+0024 % Example:
+0025 %       getRampAmplitude(t,param)
+0026 %
+0027 % Other m-files required:
+0028 %       none
+0029 %
+0030 % Subfunctions:
+0031 %       getLinExpAmp
+0032 %
+0033 % MAT-files required:
+0034 %       none
+0035 %
+0036 % See also: BLOCHUS
+0037 % Author: Thomas Hiller
+0038 % email: thomas.hiller[at]leibniz-liag.de
+0039 % License: GNU GPLv3 (at end)
+0040 
+0041 %------------- BEGIN CODE --------------
+0042 
+0043 % get the different parameter
+0044 ramp = param.ramp;
+0045 gamma = param.gamma;
+0046 B0 = param.B0;
+0047 Bmax = param.Bmax;
+0048 Bstar = param.Bstar;
+0049 Tramp = param.Tramp;
+0050 Tslope = param.Tslope;
+0051 
+0052 switch ramp
+0053     case 'exp' % exponential
+0054         Bp = Bmax .* exp(-t/Tslope);
+0055     case 'linexp' % linear + exponential
+0056         Bp = getLinExpAmp(Bmax,Bstar,Tslope,t);
+0057     case 'halfcos' % half cosine
+0058         Bp = Bmax .* (0.5+(cos(pi*t./Tramp)./2));
+0059     case 'lin' % linear
+0060         Bp = Bmax.*(1-t./Tramp);
+0061 end
+0062 
+0063 return
+0064 % ---
+0065 
+0066 % ---
+0067 function Bp = getLinExpAmp(Bmax,Bstar,T,t)
+0068 % linear + exponential ramp after:
+0069 % Conradi et al., 2017, Journal of Magnetic Resonance 281, p.241-245
+0070 % https://doi.org/10.1016/j.jmr.2017.06.001
+0071 
+0072 if numel(t)>1
+0073     % linear part
+0074     Bplin = (-Bmax/T)*t + Bmax;
+0075     % exponential part
+0076     Bpexp = exp(-t /(Bstar*T/Bmax));
+0077     % find change
+0078     index = find(abs(Bplin-Bstar)==min(abs(Bplin-Bstar)),1,'first');
+0079     % merge the lin- and exp-part and scale the amplitude of the exp-part
+0080     % to that of the lin-part at the switch-over time t(index)
+0081     scale_point = Bplin(index)/Bpexp(index);
+0082     % in case something goes south due to very small numbers set the
+0083     % amplitude to 0
+0084     if isinf(scale_point) || isnan(scale_point)
+0085         scale_point = 0;
+0086     end
+0087     % the final amplitude vector
+0088     Bp = [Bplin(1:index-1); scale_point * Bpexp(index:end)];
+0089 else
+0090     % linear part
+0091     Bplin = (-Bmax/T)*t + Bmax;
+0092     % exponential part
+0093     Bpexp = exp(-t /(Bstar*T/Bmax));
+0094     % Bstar time tstar
+0095     tstar = (Bstar-Bmax)/(-Bmax/T);
+0096     % amplitude at tstar for scaling
+0097     Btstar = exp(-tstar /(Bstar*T/Bmax));
+0098     % apply
+0099     if t<tstar
+0100         Bp = Bplin;
+0101     else
+0102         Bp = (Bstar/Btstar) * Bpexp;
+0103     end
+0104 end
+0105 
+0106 % if due to division by "0" the value is NaN ... set it to 0
+0107 Bp(isnan(Bp)) = 0;
+0108 
+0109 
+0110 return
+0111 
+0112 %------------- END OF CODE --------------
+0113 
+0114 %% License:
+0115 % GNU GPLv3
+0116 %
+0117 % BLOCHUS
+0118 % Copyright (C) 2019 Thomas Hiller
+0119 %
+0120 % This program is free software: you can redistribute it and/or modify
+0121 % it under the terms of the GNU General Public License as published by
+0122 % the Free Software Foundation, either version 3 of the License, or
+0123 % (at your option) any later version.
+0124 %
+0125 % This program is distributed in the hope that it will be useful,
+0126 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0127 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0128 % GNU General Public License for more details.
+0129 %
+0130 % You should have received a copy of the GNU General Public License
+0131 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getReferencePhase.html b/doc/blochus/functions/blochsim/getReferencePhase.html new file mode 100644 index 0000000..9e2c4fd --- /dev/null +++ b/doc/blochus/functions/blochsim/getReferencePhase.html @@ -0,0 +1,136 @@ + + + + Description of getReferencePhase + + + + + + + + + + + +

getReferencePhase +

+ +

PURPOSE ^

+
provides the reference phase after Levitt depending on
+ +

SYNOPSIS ^

+
function phi_ref = getReferencePhase(gamma)
+ +

DESCRIPTION ^

+
getReferencePhase provides the reference phase after Levitt depending on
+the sign of the gyromagnetic ratio
+
+ Syntax:
+       getReferencePhase(gamma)
+
+ Inputs:
+       gamma - gyromagnetic ratio [rad/s/T]
+
+ Outputs:
+       phi_ref - reference phase [rad]
+
+ Example:
+       getReferencePhase(getGyroRatio('1H'))
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function phi_ref = getReferencePhase(gamma)
+0002 %getReferencePhase provides the reference phase after Levitt depending on
+0003 %the sign of the gyromagnetic ratio
+0004 %
+0005 % Syntax:
+0006 %       getReferencePhase(gamma)
+0007 %
+0008 % Inputs:
+0009 %       gamma - gyromagnetic ratio [rad/s/T]
+0010 %
+0011 % Outputs:
+0012 %       phi_ref - reference phase [rad]
+0013 %
+0014 % Example:
+0015 %       getReferencePhase(getGyroRatio('1H'))
+0016 %
+0017 % Other m-files required:
+0018 %       none
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 % reference phase depending on the sign of gamma
+0034 % after M. H. Levitt, Spin Dynamics - Basics of Nuclear Magnetic Resonance
+0035 % (John Wiley & Sons, LTD, 2002) page 244 eq. 10.17
+0036 if gamma > 0
+0037     phi_ref = pi;
+0038 elseif gamma <= 0
+0039     phi_ref = 0;
+0040 end
+0041 
+0042 return
+0043 
+0044 %------------- END OF CODE --------------
+0045 
+0046 %% License:
+0047 % GNU GPLv3
+0048 %
+0049 % BLOCHUS
+0050 % Copyright (C) 2019 Thomas Hiller
+0051 %
+0052 % This program is free software: you can redistribute it and/or modify
+0053 % it under the terms of the GNU General Public License as published by
+0054 % the Free Software Foundation, either version 3 of the License, or
+0055 % (at your option) any later version.
+0056 %
+0057 % This program is distributed in the hope that it will be useful,
+0058 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0059 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0060 % GNU General Public License for more details.
+0061 %
+0062 % You should have received a copy of the GNU General Public License
+0063 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getRotationMatrixFromAngleandAxis.html b/doc/blochus/functions/blochsim/getRotationMatrixFromAngleandAxis.html new file mode 100644 index 0000000..bb6b44e --- /dev/null +++ b/doc/blochus/functions/blochsim/getRotationMatrixFromAngleandAxis.html @@ -0,0 +1,153 @@ + + + + Description of getRotationMatrixFromAngleandAxis + + + + + + + + + + + +

getRotationMatrixFromAngleandAxis +

+ +

PURPOSE ^

+
calculates rotation matrix R to rotate about
+ +

SYNOPSIS ^

+
function R = getRotationMatrixFromAngleandAxis(phi,n)
+ +

DESCRIPTION ^

+
getRotationMatrixFromAngleandAxis calculates rotation matrix R to rotate about
+an axis n by an angle phi
+
+ Syntax:
+       getRotationMatrixFromAngleandAxis(phi,n)
+
+ Inputs:
+       phi - rotation angle [rad]
+       n - rotation axis vector [x y z]
+
+ Outputs:
+       R - 3x3 rotation matrix
+
+ Example:
+       R = getRotationMatrixFromAngleandAxis(pi,[0 0 1]')
+       yields R = -1  0  0
+                   0 -1  0
+                   0  0  1
+       so that R*[1 0 0]' = [-1 0 0]'
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function R = getRotationMatrixFromAngleandAxis(phi,n)
+0002 %getRotationMatrixFromAngleandAxis calculates rotation matrix R to rotate about
+0003 %an axis n by an angle phi
+0004 %
+0005 % Syntax:
+0006 %       getRotationMatrixFromAngleandAxis(phi,n)
+0007 %
+0008 % Inputs:
+0009 %       phi - rotation angle [rad]
+0010 %       n - rotation axis vector [x y z]
+0011 %
+0012 % Outputs:
+0013 %       R - 3x3 rotation matrix
+0014 %
+0015 % Example:
+0016 %       R = getRotationMatrixFromAngleandAxis(pi,[0 0 1]')
+0017 %       yields R = -1  0  0
+0018 %                   0 -1  0
+0019 %                   0  0  1
+0020 %       so that R*[1 0 0]' = [-1 0 0]'
+0021 %
+0022 % Other m-files required:
+0023 %       none
+0024 %
+0025 % Subfunctions:
+0026 %       none
+0027 %
+0028 % MAT-files required:
+0029 %       none
+0030 %
+0031 % See also: BLOCHUS
+0032 % Author: Thomas Hiller
+0033 % email: thomas.hiller[at]leibniz-liag.de
+0034 % License: GNU GPLv3 (at end)
+0035 
+0036 %------------- BEGIN CODE --------------
+0037 
+0038 % make "n" a unit vector
+0039 n = n./norm(n);
+0040 % get the individual components
+0041 nx = n(1);
+0042 ny = n(2);
+0043 nz = n(3);
+0044 % matrix terms needed
+0045 omcos = 1-cos(phi);
+0046 cosp = cos(phi);
+0047 sinp = sin(phi);
+0048 
+0049 % assemble rotation matrix R
+0050 R = [nx*nx*omcos +    cosp  nx*ny*omcos - nz*sinp  nx*nz*omcos + ny*sinp; ...
+0051      ny*nx*omcos + nz*sinp  ny*ny*omcos +    cosp  ny*nz*omcos - nx*sinp; ...
+0052      nz*nx*omcos - ny*sinp  nz*ny*omcos + nx*sinp  nz*nz*omcos +    cosp];
+0053 
+0054 return
+0055 
+0056 %------------- END OF CODE --------------
+0057 
+0058 %% License:
+0059 % GNU GPLv3
+0060 %
+0061 % BLOCHUS
+0062 % Copyright (C) 2019 Thomas Hiller
+0063 %
+0064 % This program is free software: you can redistribute it and/or modify
+0065 % it under the terms of the GNU General Public License as published by
+0066 % the Free Software Foundation, either version 3 of the License, or
+0067 % (at your option) any later version.
+0068 %
+0069 % This program is distributed in the hope that it will be useful,
+0070 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0071 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0072 % GNU General Public License for more details.
+0073 %
+0074 % You should have received a copy of the GNU General Public License
+0075 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/getRotationMatrixFromVectors.html b/doc/blochus/functions/blochsim/getRotationMatrixFromVectors.html new file mode 100644 index 0000000..87c87e3 --- /dev/null +++ b/doc/blochus/functions/blochsim/getRotationMatrixFromVectors.html @@ -0,0 +1,158 @@ + + + + Description of getRotationMatrixFromVectors + + + + + + + + + + + +

getRotationMatrixFromVectors +

+ +

PURPOSE ^

+
calculates rotation matrix R to rotate A into B
+ +

SYNOPSIS ^

+
function R = getRotationMatrixFromVectors(A,B)
+ +

DESCRIPTION ^

+
getRotationMatrixFromVectors calculates rotation matrix R to rotate A into B
+
+ Syntax:
+       getRotationMatrixFromVectors(A,B)
+
+ Inputs:
+       A - start vector
+       B - end vector
+
+ Outputs:
+       R - 3x3 rotation matrix to rotate A into B
+
+ Example:
+       R = getRotationMatrixFromVectors([1 0 0]',[0 0 1]')
+       yields R = 0  0 -1
+                  0  1  0
+                  1  0  0
+       so that R*[1 0 0]' = [0 0 1]'
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: +
    +
  • fcn_BLOCHUS_ode is the objective function for the ode-solver which solves
+ + + + +

SOURCE CODE ^

+
0001 function R = getRotationMatrixFromVectors(A,B)
+0002 %getRotationMatrixFromVectors calculates rotation matrix R to rotate A into B
+0003 %
+0004 % Syntax:
+0005 %       getRotationMatrixFromVectors(A,B)
+0006 %
+0007 % Inputs:
+0008 %       A - start vector
+0009 %       B - end vector
+0010 %
+0011 % Outputs:
+0012 %       R - 3x3 rotation matrix to rotate A into B
+0013 %
+0014 % Example:
+0015 %       R = getRotationMatrixFromVectors([1 0 0]',[0 0 1]')
+0016 %       yields R = 0  0 -1
+0017 %                  0  1  0
+0018 %                  1  0  0
+0019 %       so that R*[1 0 0]' = [0 0 1]'
+0020 %
+0021 % Other m-files required:
+0022 %       none
+0023 %
+0024 % Subfunctions:
+0025 %       none
+0026 %
+0027 % MAT-files required:
+0028 %       none
+0029 %
+0030 % See also: BLOCHUS
+0031 % Author: Thomas Hiller
+0032 % email: thomas.hiller[at]leibniz-liag.de
+0033 % License: GNU GPLv3 (at end)
+0034 
+0035 %------------- BEGIN CODE --------------
+0036 
+0037 % normalize both vectors
+0038 A = A(:)./norm(A);
+0039 B = B(:)./norm(B);
+0040 % cross product of both vectors
+0041 c = cross(A,B);
+0042 % check if A and B are parallel / antiparallel
+0043 if sum(c)==0
+0044     % check if A == B (parallel)
+0045     if all(A==B)
+0046         % in that case the rotation matrix is obviously identity
+0047         R = eye(3);
+0048     else % A == -B (antiparallel)
+0049         R = -eye(3);
+0050     end
+0051 else
+0052     % skew-symmetric cross-product
+0053     ssc = [ 0  -c(3) c(2);
+0054            c(3)  0  -c(1);
+0055           -c(2) c(1)  0 ];
+0056     % rotation matrix R
+0057     R = eye(3) + ssc + ssc^2*(1-dot(A,B))/(norm(c))^2;
+0058 end
+0059 
+0060 return
+0061 
+0062 %------------- END OF CODE --------------
+0063 
+0064 %% License:
+0065 % GNU GPLv3
+0066 %
+0067 % BLOCHUS
+0068 % Copyright (C) 2019 Thomas Hiller
+0069 %
+0070 % This program is free software: you can redistribute it and/or modify
+0071 % it under the terms of the GNU General Public License as published by
+0072 % the Free Software Foundation, either version 3 of the License, or
+0073 % (at your option) any later version.
+0074 %
+0075 % This program is distributed in the hope that it will be useful,
+0076 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0077 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0078 % GNU General Public License for more details.
+0079 %
+0080 % You should have received a copy of the GNU General Public License
+0081 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/menu.html b/doc/blochus/functions/blochsim/menu.html new file mode 100644 index 0000000..c53fb2d --- /dev/null +++ b/doc/blochus/functions/blochsim/menu.html @@ -0,0 +1,29 @@ + + + + Index for Directory blochus\functions\blochsim + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\functions\blochsim

+ +

Matlab files in this directory:

+ + + + + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/blochsim/modulatePulse.html b/doc/blochus/functions/blochsim/modulatePulse.html new file mode 100644 index 0000000..8da79d5 --- /dev/null +++ b/doc/blochus/functions/blochsim/modulatePulse.html @@ -0,0 +1,201 @@ + + + + Description of modulatePulse + + + + + + + + + + + +

modulatePulse +

+ +

PURPOSE ^

+
generates the frequency and current modulation functions
+ +

SYNOPSIS ^

+
function out = modulatePulse(mod,type)
+ +

DESCRIPTION ^

+
modulatePulse generates the frequency and current modulation functions
+
+ Syntax:
+       modulatePulse(mod,type)
+
+ Inputs:
+       mod - struct containing modulation settings
+             shape : shape of the modulation function [string]
+             t     : time (scalar / vector) [s]
+             t0    : pulse start time [s]
+             t1    : pulse end time [s]
+             v0    : start value 
+             v1    : end value
+             A     : modulation parameter (MIDI)
+             B     : modulation parameter (MIDI)
+       type - switch for frequency 'df' or current 'I' modulation [string]
+
+ Outputs:
+       out - modulated signal (either 'df' or 'I' as scalar / vector)
+
+ Example:
+       modulatePulse(fmod,'df')
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function out = modulatePulse(mod,type)
+0002 %modulatePulse generates the frequency and current modulation functions
+0003 %
+0004 % Syntax:
+0005 %       modulatePulse(mod,type)
+0006 %
+0007 % Inputs:
+0008 %       mod - struct containing modulation settings
+0009 %             shape : shape of the modulation function [string]
+0010 %             t     : time (scalar / vector) [s]
+0011 %             t0    : pulse start time [s]
+0012 %             t1    : pulse end time [s]
+0013 %             v0    : start value
+0014 %             v1    : end value
+0015 %             A     : modulation parameter (MIDI)
+0016 %             B     : modulation parameter (MIDI)
+0017 %       type - switch for frequency 'df' or current 'I' modulation [string]
+0018 %
+0019 % Outputs:
+0020 %       out - modulated signal (either 'df' or 'I' as scalar / vector)
+0021 %
+0022 % Example:
+0023 %       modulatePulse(fmod,'df')
+0024 %
+0025 % Other m-files required:
+0026 %       none
+0027 %
+0028 % Subfunctions:
+0029 %       none
+0030 %
+0031 % MAT-files required:
+0032 %       none
+0033 %
+0034 % See also: BLOCHUS
+0035 % Author: Thomas Hiller
+0036 % email: thomas.hiller[at]leibniz-liag.de
+0037 % License: GNU GPLv3 (at end)
+0038 
+0039 %------------- BEGIN CODE --------------
+0040 
+0041 % general parameters
+0042 t = mod.t(:);
+0043 t0 = mod.t0;
+0044 t1 = mod.t1;
+0045 v0 = mod.v0;
+0046 v1 = mod.v1;
+0047 A = mod.A; 
+0048 B = mod.B;
+0049 
+0050 % pulse duration [s]
+0051 tau = t1-t0;
+0052 % modulation range
+0053 delta = v1-v0;
+0054 
+0055 switch mod.shape
+0056     
+0057     case 'const' % no modulation
+0058         out = v1.*ones(size(t));
+0059         
+0060     case 'lin' % linear modulation
+0061         out = v0 + (t.*delta./tau);
+0062         
+0063     case 'tanhMIDI' % tanh-modulation with two parameters A & B
+0064         % slope parameter
+0065         N = tanh( ((2.*pi.*A)./tau).*(t - B.*(tau/2)) );
+0066         N0 = tanh( ((2.*pi.*A)./tau).*(t0 - B.*(tau/2)) );
+0067         N1 = tanh( ((2.*pi.*A)./tau).*(tau - B.*(tau/2)) );
+0068         
+0069         switch type
+0070             case 'df'
+0071                 % sign switch (MMP ;-))
+0072                 delta = -delta;
+0073                 out = v1 + delta*(1-((N-N0)/(N1-N0)));
+0074             case 'I'
+0075                 out = v0 + delta*(N-N0)/(N1-N0);
+0076         end
+0077         
+0078     case 'tanhGMR' % tanh-modulation GMR style
+0079         switch type
+0080             case 'df'
+0081                 tau = 3*t./tau; % (RD: pers. comm. Grunewald 13.10.2016)
+0082             case 'I'
+0083                 tau = pi*t./tau; % (RD: pi is arbitrary.)
+0084         end
+0085         out = v0 + (delta * tanh(tau));
+0086         
+0087     case 'exp' % exponential modulation
+0088         out = v1 - delta .* exp(A.*(-t./tau));
+0089         
+0090     case 'custom' % custom modulation (interpolation)
+0091         switch type
+0092             case 'df'
+0093                 out = interp1(mod.custom_t,mod.custom_df,t,'linear');
+0094             case 'I'
+0095                 out = interp1(mod.custom_t,mod.custom_I,t,'linear');
+0096         end
+0097 end
+0098 
+0099 return
+0100 
+0101 %------------- END OF CODE --------------
+0102 
+0103 %% License:
+0104 % GNU GPLv3
+0105 %
+0106 % BLOCHUS
+0107 % Copyright (C) 2019 Thomas Hiller
+0108 %
+0109 % This program is free software: you can redistribute it and/or modify
+0110 % it under the terms of the GNU General Public License as published by
+0111 % the Free Software Foundation, either version 3 of the License, or
+0112 % (at your option) any later version.
+0113 %
+0114 % This program is distributed in the hope that it will be useful,
+0115 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0116 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0117 % GNU General Public License for more details.
+0118 %
+0119 % You should have received a copy of the GNU General Public License
+0120 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/clearSingleAxis.html b/doc/blochus/functions/interface/clearSingleAxis.html new file mode 100644 index 0000000..35215db --- /dev/null +++ b/doc/blochus/functions/interface/clearSingleAxis.html @@ -0,0 +1,162 @@ + + + + Description of clearSingleAxis + + + + + + + + + + + +

clearSingleAxis +

+ +

PURPOSE ^

+
clears an individual axis
+ +

SYNOPSIS ^

+
function clearSingleAxis(axh)
+ +

DESCRIPTION ^

+
clearSingleAxis clears an individual axis
+
+ Syntax:
+       clearSingleAxis(axh)
+
+ Inputs:
+       axh - axis handle
+
+ Outputs:
+       none
+
+ Example:
+       clearSingleAxis(gca)
+
+ Other m-files required:
+       clearSingleAxis
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function clearSingleAxis(axh)
+0002 %clearSingleAxis clears an individual axis
+0003 %
+0004 % Syntax:
+0005 %       clearSingleAxis(axh)
+0006 %
+0007 % Inputs:
+0008 %       axh - axis handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       clearSingleAxis(gca)
+0015 %
+0016 % Other m-files required:
+0017 %       clearSingleAxis
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI handle
+0033 fig = ancestor(axh,'figure','toplevel');
+0034 
+0035 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0036     % get GUI data
+0037     gui = getappdata(fig,'gui');
+0038     
+0039     % get the parent of the axis and find possible legends
+0040     parent = get(axh,'Parent');
+0041     lgh = findobj('Type','legend','Parent',parent);
+0042     if ~isempty(lgh)
+0043         delete(lgh);
+0044     end
+0045     
+0046     % look for specific tags and clear corresponding objects
+0047     ph = findall(axh,'Tag','MarkerLines');
+0048     if ~isempty(ph); set(ph,'HandleVisibility','on'); end
+0049     
+0050     % clear the axis labels
+0051     xlabel(axh,'');
+0052     ylabel(axh,'');
+0053     zlabel(axh,'');
+0054     
+0055     % reset axis limits and scale
+0056     grid(axh,'off');
+0057     set(axh,'XLim',[0 1],'YLim',[0 1],'ZLim',[0 1]);
+0058     set(axh,'XScale','lin','YScale','lin','ZScale','lin');
+0059     set(axh,'FontSize',gui.myui.axfontsize);
+0060     
+0061     % clear the axis itself
+0062     cla(axh);
+0063     
+0064 else
+0065     warndlg({'clearSingleAxis:','There is no figure with the BLOCHUS Tag open.'},...
+0066         'BLOCHUS error');
+0067 end
+0068 
+0069 end
+0070 
+0071 %------------- END OF CODE --------------
+0072 
+0073 %% License:
+0074 % GNU GPLv3
+0075 %
+0076 % BLOCHUS
+0077 % Copyright (C) 2019 Thomas Hiller
+0078 %
+0079 % This program is free software: you can redistribute it and/or modify
+0080 % it under the terms of the GNU General Public License as published by
+0081 % the Free Software Foundation, either version 3 of the License, or
+0082 % (at your option) any later version.
+0083 %
+0084 % This program is distributed in the hope that it will be useful,
+0085 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0086 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0087 % GNU General Public License for more details.
+0088 %
+0089 % You should have received a copy of the GNU General Public License
+0090 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/findParentOfType.html b/doc/blochus/functions/interface/findParentOfType.html new file mode 100644 index 0000000..13d1470 --- /dev/null +++ b/doc/blochus/functions/interface/findParentOfType.html @@ -0,0 +1,151 @@ + + + + Description of findParentOfType + + + + + + + + + + + +

findParentOfType +

+ +

PURPOSE ^

+
is a "hack" because Matlab changed the parent-child
+ +

SYNOPSIS ^

+
function ph = findParentOfType(h,type)
+ +

DESCRIPTION ^

+
findParentOfType is a "hack" because Matlab changed the parent-child
+hierarchy for some graphical objects
+2018: the minimize checkbox is a child of the uix.BoxPanel
+2014: the minimize checkbox is a child of a uicontainer -> child of a HBox ->
+child of a the BoxPanel
+
+ Syntax:
+       ph = findParentOfType(h,type)
+
+ Inputs:
+       h - handle
+       type - type to look for
+
+ Outputs:
+       ph - handle of parent object
+
+ Example:
+       ph = findParentOfType(h,type)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: +
    +
  • minimizePanel handles the minimization/maximization of all box-panels
+ + + + +

SOURCE CODE ^

+
0001 function ph = findParentOfType(h,type)
+0002 %findParentOfType is a "hack" because Matlab changed the parent-child
+0003 %hierarchy for some graphical objects
+0004 %2018: the minimize checkbox is a child of the uix.BoxPanel
+0005 %2014: the minimize checkbox is a child of a uicontainer -> child of a HBox ->
+0006 %child of a the BoxPanel
+0007 %
+0008 % Syntax:
+0009 %       ph = findParentOfType(h,type)
+0010 %
+0011 % Inputs:
+0012 %       h - handle
+0013 %       type - type to look for
+0014 %
+0015 % Outputs:
+0016 %       ph - handle of parent object
+0017 %
+0018 % Example:
+0019 %       ph = findParentOfType(h,type)
+0020 %
+0021 % Other m-files required:
+0022 %       none
+0023 %
+0024 % Subfunctions:
+0025 %       none
+0026 %
+0027 % MAT-files required:
+0028 %       none
+0029 %
+0030 % See also: BLOCHUS
+0031 % Author: Thomas Hiller
+0032 % email: thomas.hiller[at]leibniz-liag.de
+0033 % License: GNU GPLv3 (at end)
+0034 
+0035 %------------- BEGIN CODE --------------
+0036 
+0037 lookingfor = true;
+0038 child = h;
+0039 while lookingfor
+0040     parent = get(child,'Parent');
+0041     if isa(parent,type) % the parent uix.BoxPanel was found
+0042         lookingfor = false;
+0043         ph = parent;
+0044     elseif isempty(parent) % nothing was found
+0045         ph = [];
+0046         disp('findParentOfType: No parent of specified type found.');
+0047         break;
+0048     else % set the current parent to child and continue
+0049         child = parent;
+0050     end
+0051 end
+0052 
+0053 return
+0054 
+0055 %------------- END OF CODE --------------
+0056 
+0057 %% License:
+0058 % GNU GPLv3
+0059 %
+0060 % BLOCHUS
+0061 % Copyright (C) 2019 Thomas Hiller
+0062 %
+0063 % This program is free software: you can redistribute it and/or modify
+0064 % it under the terms of the GNU General Public License as published by
+0065 % the Free Software Foundation, either version 3 of the License, or
+0066 % (at your option) any later version.
+0067 %
+0068 % This program is distributed in the hope that it will be useful,
+0069 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0070 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0071 % GNU General Public License for more details.
+0072 %
+0073 % You should have received a copy of the GNU General Public License
+0074 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/getAngleBetweenVectors.html b/doc/blochus/functions/interface/getAngleBetweenVectors.html new file mode 100644 index 0000000..9e69ce0 --- /dev/null +++ b/doc/blochus/functions/interface/getAngleBetweenVectors.html @@ -0,0 +1,152 @@ + + + + Description of getAngleBetweenVectors + + + + + + + + + + + +

getAngleBetweenVectors +

+ +

PURPOSE ^

+
calculates the angle theta between two vectors 'x' and 'y'
+ +

SYNOPSIS ^

+
function [theta,sgn] = getAngleBetweenVectors(x,y)
+ +

DESCRIPTION ^

+
getAngleBetweenVectors calculates the angle theta between two vectors 'x' and 'y'
+
+ Syntax:
+       getAngleBetweenVectors(x,y)
+
+ Inputs:
+       x - vector
+       y - vector
+
+ Outputs:
+       theta - angle between x and y [rad]
+       sgn - sign of theta
+
+ Example:
+       getAngleBetweenVectors([1 0 0],[0 0 1])
+
+ Other m-files required:
+       none;
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function [theta,sgn] = getAngleBetweenVectors(x,y)
+0002 %getAngleBetweenVectors calculates the angle theta between two vectors 'x' and 'y'
+0003 %
+0004 % Syntax:
+0005 %       getAngleBetweenVectors(x,y)
+0006 %
+0007 % Inputs:
+0008 %       x - vector
+0009 %       y - vector
+0010 %
+0011 % Outputs:
+0012 %       theta - angle between x and y [rad]
+0013 %       sgn - sign of theta
+0014 %
+0015 % Example:
+0016 %       getAngleBetweenVectors([1 0 0],[0 0 1])
+0017 %
+0018 % Other m-files required:
+0019 %       none;
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 if numel(x)<=3 % vector treatment
+0035     % if x is a vector make x and y column vectors
+0036     x = x(:);
+0037     y = y(:);
+0038     % angle [rad]
+0039     theta = acos(dot(x,y)./(norm(x).*norm(y)));    
+0040     % sign
+0041     sgn = sign(cross(x,y));
+0042     sgn = sgn(3);
+0043 else % matrix treatment
+0044     % angle [rad]
+0045     normx = sqrt(x(:,1).^2+x(:,2).^2+x(:,3).^2);
+0046     normy = sqrt(y(:,1).^2+y(:,2).^2+y(:,3).^2);
+0047     theta = acos(dot(x,y,2)./(normx.*normy));    
+0048     % sign
+0049     sgn = sign(cross(x,y));
+0050     sgn = sgn(:,3);
+0051 end
+0052 
+0053 if ~isreal(theta)
+0054     theta = real(theta);
+0055 end
+0056 
+0057 return
+0058 
+0059 %------------- END OF CODE --------------
+0060 
+0061 %% License:
+0062 % GNU GPLv3
+0063 %
+0064 % BLOCHUS
+0065 % Copyright (C) 2019 Thomas Hiller
+0066 %
+0067 % This program is free software: you can redistribute it and/or modify
+0068 % it under the terms of the GNU General Public License as published by
+0069 % the Free Software Foundation, either version 3 of the License, or
+0070 % (at your option) any later version.
+0071 %
+0072 % This program is distributed in the hope that it will be useful,
+0073 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0074 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0075 % GNU General Public License for more details.
+0076 %
+0077 % You should have received a copy of the GNU General Public License
+0078 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/getPulseParameters.html b/doc/blochus/functions/interface/getPulseParameters.html new file mode 100644 index 0000000..93b6807 --- /dev/null +++ b/doc/blochus/functions/interface/getPulseParameters.html @@ -0,0 +1,347 @@ + + + + Description of getPulseParameters + + + + + + + + + + + +

getPulseParameters +

+ +

PURPOSE ^

+
updates all relevant pulse settings
+ +

SYNOPSIS ^

+
function getPulseParameters(fig)
+ +

DESCRIPTION ^

+
getPulseParameters updates all relevant pulse settings
+
+ Syntax:
+       getPulseParameters(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       getPulseParameters(gui.figh)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       getMIDI_Tx
+       getOmega0
+       getPulseTimeSeries
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • getMIDI_Tx creates discrete on-resonant or adiabatic pulses
  • getOmega0 calculates the angular frequency from a given B-field and
  • getPulseTimeSeries returns the B-field amplitudes of the pulse either for a
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function getPulseParameters(fig)
+0002 %getPulseParameters updates all relevant pulse settings
+0003 %
+0004 % Syntax:
+0005 %       getPulseParameters(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       getPulseParameters(gui.figh)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       getMIDI_Tx
+0024 %       getOmega0
+0025 %       getPulseTimeSeries
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % get GUI data
+0035 gui = getappdata(fig,'gui');
+0036 data = getappdata(fig,'data');
+0037 
+0038 % dummy time vector with sampling freq 50 kHz used mainly for plotting
+0039 pulse_t = 0:1/50000:data.pulse.Ttau/1e3; % [s]
+0040 
+0041 % --- frequency modulation struct ---
+0042 % this is also used when no modulation is done (then all settings are
+0043 % basically constant)
+0044 % pulse type [string]
+0045 fmod.PulseType = data.pulse.Type;
+0046 % shape of the modulation function [string]
+0047 fmod.shape = data.pulse.DFmode;
+0048 % time vector [s]
+0049 fmod.t = pulse_t;
+0050 % pulse start time [s]
+0051 fmod.t0 = pulse_t(1);
+0052 % pulse end time [s]
+0053 fmod.t1 = pulse_t(end);
+0054 % start frequency [Hz]
+0055 fmod.v0 = data.pulse.DFstart;
+0056 % end frequency [Hz]
+0057 fmod.v1 = data.pulse.DFend;
+0058 % modulation parameter (MIDI)
+0059 fmod.A = data.pulse.DFA;
+0060 % modulation parameter (MIDI)
+0061 fmod.B = data.pulse.DFB;
+0062 
+0063 % --- current modulation struct ---
+0064 % this is also used when no modulation is done (then all settings are
+0065 % basically constant)
+0066 % pulse type [string]
+0067 Imod.PulseType = data.pulse.Type;
+0068 % shape of the modulation function [string]
+0069 Imod.shape = data.pulse.Imode;
+0070 % check if quality factor tuning is activated [0/1]
+0071 Imod.useQ = get(gui.check_handles.PulseQ,'Value');
+0072 % quality factor
+0073 Imod.Q = data.pulse.Q;
+0074 % quality factor off-resonance frequency [Hz]
+0075 Imod.Qdf = data.pulse.Qdf;
+0076 % time vector [s]
+0077 Imod.t = pulse_t;
+0078 % pulse start time [s]
+0079 Imod.t0 = pulse_t(1);
+0080 % pulse end time [s]
+0081 Imod.t1 = pulse_t(end);
+0082 % start current [A]
+0083 Imod.v0 = data.pulse.Istart;
+0084 % end current [A]
+0085 Imod.v1 = data.pulse.Iend;
+0086 % modulation parameter (MIDI)
+0087 Imod.A = data.pulse.IA;
+0088 % modulation parameter (MIDI)
+0089 Imod.B = data.pulse.IB;
+0090 
+0091 % adjust some pulse settings depending on the pulse type
+0092 switch data.pulse.Type    
+0093     case {'pi_half','pi','free'}
+0094         % set constant frequency modulation shape
+0095         fmod.shape = 'const';
+0096         % equal start and end frequency
+0097         fmod.v1 = fmod.v0;
+0098         % set constant current modulation shape
+0099         Imod.shape = 'const';
+0100         % equal start and end current
+0101         Imod.v1 = Imod.v0;
+0102         
+0103     case 'MIDI_OR'
+0104         % set constant frequency modulation shape
+0105         fmod.shape = 'const';
+0106         % equal start and end frequency
+0107         fmod.v1 = fmod.v0;
+0108         % set constant current modulation shape
+0109         Imod.shape = 'const';
+0110         % equal start and end current
+0111         Imod.v1 = Imod.v0;
+0112 
+0113         % MIDI parameter settings for discrete pulses
+0114         % pulse type [string]
+0115         mparam.Tx = data.pulse.Type;
+0116         % Larmor frequency [Hz] WIHTOUT SIGN
+0117         mparam.fL = abs(data.basic.Omega0);
+0118         % gyromagnetic ratio [rad/s/T]
+0119         mparam.gamma = data.basic.gamma;
+0120         % frequency offset [Hz]
+0121         mparam.df = data.pulse.DFstart;
+0122         % MIDI sampling frequency [Hz] (default is 50kHz)
+0123         mparam.sf = data.pulse.MIDIsf;
+0124         % number of periods
+0125         mparam.P = data.pulse.MIDINP;
+0126         % Tx-current [A] (within BLOCHUS always "1" because the pulse
+0127         % amplitude is scaled from the GUI)
+0128         mparam.I = 1;
+0129         % duty cycle width - start
+0130         mparam.DCmin = data.pulse.Istart;
+0131         % duty cycle width - end set equal to start
+0132         mparam.DCmax = mparam.DCmin;
+0133         % pulse axis [string]
+0134         mparam.PulseAxis = data.pulse.Axis;
+0135         % assemble the discrete pulse
+0136         [t,y,AP] = getMIDI_Tx(mparam);
+0137         % because the ODE-solver does not like long rows of "zeros" due to
+0138         % the adaptive time stepping, the "zeros" in the pulse are set to a
+0139         % very small number
+0140         ind = find(y==0);
+0141         y(ind) = (2.*rand(numel(ind),1)-1)*1e-7;
+0142         % output struct containing the MIDI pulses
+0143         param.MIDI.mparam = mparam;
+0144         param.MIDI.t = t';
+0145         param.MIDI.y = y';
+0146         param.MIDI.AP = AP;
+0147         % update data
+0148         data.pulse_MIDI = param.MIDI;
+0149         % update dummy time vector
+0150         pulse_t = t;
+0151         
+0152     case 'MIDI_AP'
+0153         % MIDI parameter settings for discrete pulses
+0154         % pulse type [string]
+0155         mparam.Tx = data.pulse.Type;
+0156         % Larmor frequency [Hz] WIHTOUT SIGN
+0157         mparam.fL = abs(data.basic.Omega0);
+0158         % gyromagnetic ratio [rad/s/T]
+0159         mparam.gamma = data.basic.gamma;
+0160         % start frequency [Hz]
+0161         mparam.df = data.pulse.DFstart;
+0162         % MIDI sampling frequency [Hz] (default is 50kHz)
+0163         mparam.sf = data.pulse.MIDIsf;
+0164         % number of periods
+0165         mparam.P = data.pulse.MIDINP;
+0166         % Tx-current [A] (within BLOCHUS always "1" because the pulse
+0167         % amplitude is scaled from the GUI)
+0168         mparam.I = 1;
+0169         % duty cycle width - start
+0170         mparam.DCmin = data.pulse.Istart;
+0171         % duty cycle width - end
+0172         mparam.DCmax = data.pulse.Iend;
+0173         % pulse axis [string]
+0174         mparam.PulseAxis = data.pulse.Axis;
+0175         % frequency modulation struct
+0176         mparam.fmod = fmod;
+0177         % current modulation struct
+0178         mparam.Imod = Imod;
+0179         % assemble the discrete pulse
+0180         [t,y,AP] = getMIDI_Tx(mparam);
+0181         % because the ODE-solver does not like long rows of "zeros" due to
+0182         % the adaptive time stepping, the "zeros" in the pulse are set to a
+0183         % very small number
+0184         ind = find(y==0);
+0185         y(ind) = (2.*rand(numel(ind),1)-1)*1e-7;
+0186         % output struct containing the MIDI pulses
+0187         param.MIDI.mparam = mparam;
+0188         param.MIDI.t = t';
+0189         param.MIDI.y = y';
+0190         param.MIDI.AP = AP;
+0191         % update data
+0192         data.pulse_MIDI = param.MIDI;
+0193         % update dummy time vector
+0194         pulse_t = t;
+0195         
+0196         % update the time vector within the modulation functions
+0197         fmod.t = t;
+0198         fmod.t1 = t(end);
+0199         Imod.t = t;
+0200         Imod.t1 = t(end);
+0201         
+0202         % adjust the pulse length to the actual value
+0203         data.pulse.Ttau = data.pulse_MIDI.t(end)*1e3;
+0204         % in case of pure "Pulse" update the total simulation time
+0205         switch data.basic.type
+0206             case 'pulse'
+0207                 data.basic.Tsim = data.pulse.Ttau;
+0208                 set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim));
+0209             otherwise
+0210                 % nothing to do
+0211         end
+0212     otherwise
+0213         % nothing to do
+0214 end
+0215 
+0216 % --- pulse settings ---
+0217 % pulse type [string]
+0218 param.PulseType = data.pulse.Type;
+0219 % gyromagnetic ratio [rad/s/T]
+0220 param.gamma = data.basic.gamma;
+0221 % Larmor frequency [rad/s]
+0222 param.omega0 = getOmega0(data.basic.gamma,data.basic.B0);
+0223 % pulse amplitude [B0]
+0224 param.Amp = data.basic.B0*data.pulse.B1Factor;
+0225 % pulse frequency modulation [struct]
+0226 param.fmod = fmod;
+0227 % pulse current modulation [struct]
+0228 param.Imod = Imod;
+0229 % auxiliary pulse phase [rad]
+0230 param.phi = 0;
+0231 % pulse axis [string]
+0232 param.PulseAxis = data.pulse.Axis;
+0233 % pulse polarization [string]
+0234 param.PulsePolarization = data.pulse.Polarization;
+0235 % time vector [s]
+0236 param.t = pulse_t;
+0237 % get the actual pulse time series (including frequency and current modulation)
+0238 [pulse_Bxy,df,I] = getPulseTimeSeries(param);
+0239 % dummy time vector [ms]
+0240 data.results.pulse.t = pulse_t'.*1e3;
+0241 
+0242 % update data
+0243 data.results.pulse.fmod = fmod;
+0244 data.results.pulse.Imod = Imod;
+0245 data.results.pulse.df = df;
+0246 data.results.pulse.I = I;
+0247 data.results.pulse.Bxy = pulse_Bxy;
+0248 
+0249 % update GUI data
+0250 setappdata(fig,'data',data);
+0251 
+0252 end
+0253 
+0254 %------------- END OF CODE --------------
+0255 
+0256 %% License:
+0257 % GNU GPLv3
+0258 %
+0259 % BLOCHUS
+0260 % Copyright (C) 2019 Thomas Hiller
+0261 %
+0262 % This program is free software: you can redistribute it and/or modify
+0263 % it under the terms of the GNU General Public License as published by
+0264 % the Free Software Foundation, either version 3 of the License, or
+0265 % (at your option) any later version.
+0266 %
+0267 % This program is distributed in the hope that it will be useful,
+0268 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0269 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0270 % GNU General Public License for more details.
+0271 %
+0272 % You should have received a copy of the GNU General Public License
+0273 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/getRampParameters.html b/doc/blochus/functions/interface/getRampParameters.html new file mode 100644 index 0000000..6637438 --- /dev/null +++ b/doc/blochus/functions/interface/getRampParameters.html @@ -0,0 +1,202 @@ + + + + Description of getRampParameters + + + + + + + + + + + +

getRampParameters +

+ +

PURPOSE ^

+
updates all relevant switch-off ramp settings
+ +

SYNOPSIS ^

+
function getRampParameters(fig)
+ +

DESCRIPTION ^

+
getRampParameters updates all relevant switch-off ramp settings
+
+ Syntax:
+       getRampParameters(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       getRampParameters(gui.figh)
+
+ Other m-files required:
+       getAngleBetweenVectors
+       getRampAmplitude
+       getRotationMatrixFromAngleandAxis
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function getRampParameters(fig)
+0002 %getRampParameters updates all relevant switch-off ramp settings
+0003 %
+0004 % Syntax:
+0005 %       getRampParameters(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       getRampParameters(gui.figh)
+0015 %
+0016 % Other m-files required:
+0017 %       getAngleBetweenVectors
+0018 %       getRampAmplitude
+0019 %       getRotationMatrixFromAngleandAxis
+0020 %
+0021 % Subfunctions:
+0022 %       none
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % get GUI data
+0035 gui  = getappdata(fig,'gui');
+0036 data = getappdata(fig,'data');
+0037 
+0038 % z-axis unit vector
+0039 zunit = [0 0 1]';
+0040 
+0041 % --- switch-off ramp settings ---
+0042 % switch-off ramp type [string]
+0043 rampparam.ramp = data.prepol.Ramp;
+0044 % gyromagnetic ratio [rad/s/T]
+0045 rampparam.gamma = data.basic.gamma;
+0046 % primary (Earth's) magnetic field amplitude B0 [T]
+0047 rampparam.B0 = data.basic.B0;
+0048 % maximum pre-polarization amplitude (factor*B0) [T]
+0049 rampparam.Bmax = data.basic.B0*data.prepol.Factor;
+0050 % switch-over amplitude for the "linexp" ramp (factor*B0) [T]
+0051 rampparam.Bstar = data.basic.B0*data.prepol.SwitchFactor;
+0052 % switch-off ramp time [s]
+0053 rampparam.Tramp = data.prepol.Tramp/1e3;
+0054 % switch-over time for the "linexp" ramp [s]
+0055 rampparam.Tslope = data.prepol.Tslope/1e3;
+0056 % switch-off ramp time vector [s] discretized with 500kHz
+0057 t = (0:1/500000:rampparam.Tramp)';
+0058 % get the amplitude of the pre-polarization field [T]
+0059 % this amplitude decreases over time due to the particular switch-off ramp
+0060 Bp = getRampAmplitude(t,rampparam);
+0061 
+0062 % now adjust the direction of the pre-polarization field
+0063 % 1.) rotation by angle theta [deg] around y-axis for the z-unit vector
+0064 % this means an angle of 90° around the y-axis will turn the z-unit into
+0065 % the x-unit vector
+0066 RM = getRotationMatrixFromAngleandAxis(deg2rad(data.prepol.Theta),[0 1 0]);
+0067 orient = RM * zunit;
+0068 % now this new orientation vector gets rotated by  angle phi [deg] around
+0069 % the z-axis for the x-unit vector
+0070 % this means an angle of 90° around the z-axis will turn the x-unit into
+0071 % the y-unit vector
+0072 RM = getRotationMatrixFromAngleandAxis(deg2rad(data.prepol.Phi),[0 0 1]);
+0073 orient = RM * orient;
+0074 
+0075 % primary (Earth's) magnetic field vector [T]
+0076 Be = rampparam.B0.*zunit;
+0077 % pre-polarization field vector oriented into the correct direction [T]
+0078 Bpre = Bp.*repmat(orient',[numel(Bp) 1]);
+0079 % the effective B-field vector as a combination of primary and
+0080 % pre-polarization field [T]
+0081 Beff = Be' + Bpre;
+0082 
+0083 % angle between primary and pre-polarization field [rad]
+0084 alpha = getAngleBetweenVectors(repmat(Be',[size(Beff,1) 1]),Beff);
+0085 % amplitude of the effective B-field [T]
+0086 Beffn = sqrt(Beff(:,1).^2+Beff(:,2).^2+Beff(:,3).^2);
+0087 % angular frequency of the effective B-field [rad/s]
+0088 omega = rampparam.gamma.*Beffn;
+0089 % rate of change of the angle alpha [rad/s]
+0090 dt = t(2)-t(1);
+0091 dadt = abs(diff(alpha)./dt);
+0092 
+0093 % save data
+0094 data.results.prepol.orient = orient;
+0095 data.results.prepol.t = t;
+0096 data.results.prepol.Bmax = rampparam.Bmax;
+0097 data.results.prepol.Bstar = rampparam.Bstar;
+0098 data.results.prepol.Bp = Bp;
+0099 data.results.prepol.Beff = Beff;
+0100 data.results.prepol.alpha = alpha;
+0101 data.results.prepol.omega = omega;
+0102 data.results.prepol.dadt = dadt;
+0103 
+0104 
+0105 % update GUI data
+0106 setappdata(fig,'data',data);
+0107 end
+0108 
+0109 %------------- END OF CODE --------------
+0110 
+0111 %% License:
+0112 % GNU GPLv3
+0113 %
+0114 % BLOCHUS
+0115 % Copyright (C) 2019 Thomas Hiller
+0116 %
+0117 % This program is free software: you can redistribute it and/or modify
+0118 % it under the terms of the GNU General Public License as published by
+0119 % the Free Software Foundation, either version 3 of the License, or
+0120 % (at your option) any later version.
+0121 %
+0122 % This program is distributed in the hope that it will be useful,
+0123 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0124 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0125 % GNU General Public License for more details.
+0126 %
+0127 % You should have received a copy of the GNU General Public License
+0128 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/menu.html b/doc/blochus/functions/interface/menu.html new file mode 100644 index 0000000..d421ef2 --- /dev/null +++ b/doc/blochus/functions/interface/menu.html @@ -0,0 +1,31 @@ + + + + Index for Directory blochus\functions\interface + + + + + + + + + +
^ Master index ^
+ +

Index for blochus\functions\interface

+ +

Matlab files in this directory:

+ + +

Other Matlab-specific files in this directory:

+
    +
  • BLOCHUS_logo.mat
+ + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/minimizePanel.html b/doc/blochus/functions/interface/minimizePanel.html new file mode 100644 index 0000000..2686db7 --- /dev/null +++ b/doc/blochus/functions/interface/minimizePanel.html @@ -0,0 +1,186 @@ + + + + Description of minimizePanel + + + + + + + + + + + +

minimizePanel +

+ +

PURPOSE ^

+
handles the minimization/maximization of all box-panels
+ +

SYNOPSIS ^

+
function minimizePanel(src,~)
+ +

DESCRIPTION ^

+
minimizePanel handles the minimization/maximization of all box-panels
+
+ Syntax:
+       minimizePanel(src)
+
+ Inputs:
+       src - handle of the calling object
+
+ Outputs:
+       none
+
+ Example:
+       minimizePanel(src)
+
+ Other m-files required:
+       findParentOfType
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: + +This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function minimizePanel(src,~)
+0002 %minimizePanel handles the minimization/maximization of all box-panels
+0003 %
+0004 % Syntax:
+0005 %       minimizePanel(src)
+0006 %
+0007 % Inputs:
+0008 %       src - handle of the calling object
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       minimizePanel(src)
+0015 %
+0016 % Other m-files required:
+0017 %       findParentOfType
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 %% get GUI handle and data
+0033 fig = ancestor(src,'figure','toplevel');
+0034 gui = getappdata(fig,'gui');
+0035 
+0036 % get the corresponding box-panel to be minimized / maximized
+0037 panel = findParentOfType(src,'uix.BoxPanel');
+0038 % panel title
+0039 paneltitle = get(panel,'Title');
+0040 % check if panel is minimized (true)
+0041 isminimized = get(panel,'Minimized');
+0042 
+0043 % minimized height (default value for all box-panels)
+0044 pheightmin = 22;
+0045 % default heights
+0046 def_heights = gui.myui.heights;
+0047 
+0048 if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS')
+0049     
+0050     panel_1 = 'Basics';
+0051     panel_2 = 'Pre-polarization switch-off';
+0052     panel_3 = 'Pulse';
+0053     
+0054     switch paneltitle
+0055         case panel_1
+0056             id = 1;
+0057         case panel_2
+0058             id = 2;
+0059         case panel_3
+0060             id = 3;
+0061         otherwise
+0062             helpdlg({'function: minimizePanel',...
+0063                 'Something is utterly wrong.'},'Info');
+0064     end
+0065     
+0066     switch paneltitle
+0067         case {panel_1,panel_2,panel_3}
+0068             % all heights of the left panels
+0069             heights = get(gui.panels.main,'Heights');
+0070             % default height of this panel
+0071             pheight = def_heights(2,id);
+0072             if isminimized % maximize panel
+0073                 heights(id) = pheight;
+0074                 set(gui.panels.main,'Heights',heights);
+0075                 set(panel,'Minimized',false);
+0076             else % minimize panel
+0077                 heights(id) = pheightmin;
+0078                 set(gui.panels.main,'Heights',heights);
+0079                 set(panel,'Minimized',true)
+0080             end
+0081             onFigureSizeChange(fig);
+0082         otherwise
+0083             helpdlg({'function: minimizePanel',...
+0084                 'Something is utterly wrong.'},'Info');
+0085     end    
+0086 else
+0087     warndlg({'minimizePanel:','There is no figure with the BLOCHUS Tag open.'},...
+0088         'BLOCHUS error');
+0089 end
+0090 % update GUI data
+0091 setappdata(fig,'gui',gui);
+0092 
+0093 end
+0094 
+0095 %------------- END OF CODE --------------
+0096 
+0097 %% License:
+0098 % GNU GPLv3
+0099 %
+0100 % BLOCHUS
+0101 % Copyright (C) 2019 Thomas Hiller
+0102 %
+0103 % This program is free software: you can redistribute it and/or modify
+0104 % it under the terms of the GNU General Public License as published by
+0105 % the Free Software Foundation, either version 3 of the License, or
+0106 % (at your option) any later version.
+0107 %
+0108 % This program is distributed in the hope that it will be useful,
+0109 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0110 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0111 % GNU General Public License for more details.
+0112 %
+0113 % You should have received a copy of the GNU General Public License
+0114 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/onFigureSizeChange.html b/doc/blochus/functions/interface/onFigureSizeChange.html new file mode 100644 index 0000000..ffe5849 --- /dev/null +++ b/doc/blochus/functions/interface/onFigureSizeChange.html @@ -0,0 +1,144 @@ + + + + Description of onFigureSizeChange + + + + + + + + + + + +

onFigureSizeChange +

+ +

PURPOSE ^

+
fixes an ugly Matlab bug when resizing a box-panel
+ +

SYNOPSIS ^

+
function onFigureSizeChange(fig,~)
+ +

DESCRIPTION ^

+
onFigureSizeChange fixes an ugly Matlab bug when resizing a box-panel
+which holds an axis and a legend. This problem occurs even though the
+axis is inside a uicontainer to group all axes elements. And it only
+occurs for box-panels. If the uicontainer, which holds axis and legend, 
+is inside a tab-panel this problem does not occur. They had one job ... m(
+
+ Syntax:
+       onFigureSizeChange(fig,~)
+
+ Inputs:
+       fig - handle of the calling figure
+
+ Outputs:
+       none
+
+ Example:
+       onFigureSizeChange(h)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: +
    +
  • BLOCHUS is a graphical user interface (GUI) to simulate NMR spin dynamics
  • minimizePanel handles the minimization/maximization of all box-panels
+ + + + +

SOURCE CODE ^

+
0001 function onFigureSizeChange(fig,~)
+0002 %onFigureSizeChange fixes an ugly Matlab bug when resizing a box-panel
+0003 %which holds an axis and a legend. This problem occurs even though the
+0004 %axis is inside a uicontainer to group all axes elements. And it only
+0005 %occurs for box-panels. If the uicontainer, which holds axis and legend,
+0006 %is inside a tab-panel this problem does not occur. They had one job ... m(
+0007 %
+0008 % Syntax:
+0009 %       onFigureSizeChange(fig,~)
+0010 %
+0011 % Inputs:
+0012 %       fig - handle of the calling figure
+0013 %
+0014 % Outputs:
+0015 %       none
+0016 %
+0017 % Example:
+0018 %       onFigureSizeChange(h)
+0019 %
+0020 % Other m-files required:
+0021 %       none
+0022 %
+0023 % Subfunctions:
+0024 %       none
+0025 %
+0026 % MAT-files required:
+0027 %       none
+0028 %
+0029 % See also: BLOCHUS
+0030 % Author: Thomas Hiller
+0031 % email: thomas.hiller[at]leibniz-liag.de
+0032 % License: GNU GPLv3 (at end)
+0033 
+0034 %------------- BEGIN CODE --------------
+0035 
+0036 %% get GUI data
+0037 gui = getappdata(fig,'gui');
+0038 
+0039 % proceed if there is data
+0040 if ~isempty(gui)
+0041     if isfield(gui,'panels')
+0042         heights = get(gui.panels.main,'Heights');
+0043         set(gui.left,'Heights',-1,'MinimumHeights',sum(heights)+1);
+0044     end
+0045 end
+0046 
+0047 end
+0048 
+0049 %------------- END OF CODE --------------
+0050 
+0051 %% License:
+0052 % GNU GPLv3
+0053 %
+0054 % BLOCHUS
+0055 % Copyright (C) 2019 Thomas Hiller
+0056 %
+0057 % This program is free software: you can redistribute it and/or modify
+0058 % it under the terms of the GNU General Public License as published by
+0059 % the Free Software Foundation, either version 3 of the License, or
+0060 % (at your option) any later version.
+0061 %
+0062 % This program is distributed in the hope that it will be useful,
+0063 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0064 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0065 % GNU General Public License for more details.
+0066 %
+0067 % You should have received a copy of the GNU General Public License
+0068 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/plotBSphere.html b/doc/blochus/functions/interface/plotBSphere.html new file mode 100644 index 0000000..95545c7 --- /dev/null +++ b/doc/blochus/functions/interface/plotBSphere.html @@ -0,0 +1,174 @@ + + + + Description of plotBSphere + + + + + + + + + + + +

plotBSphere +

+ +

PURPOSE ^

+
plots a (Bloch)-Sphere (basically a unit sphere) with
+ +

SYNOPSIS ^

+
function bsh = plotBSphere(dlat,dlong,ax,varargin)
+ +

DESCRIPTION ^

+
plotBSphere plots a (Bloch)-Sphere (basically a unit sphere) with
+increments 'dlat' [deg] and 'dlong' [deg] for latitude and longitude,
+respectively
+
+ Syntax:
+       plotBSphere
+
+ Inputs:
+       dlat - latitude increment [deg]
+       dlong - longitude increment [deg]
+       ax - axes handle
+        varargin - optional radius R
+
+ Outputs:
+       none
+
+ Example:
+       plotBSphere(30,30)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function bsh = plotBSphere(dlat,dlong,ax,varargin)
+0002 %plotBSphere plots a (Bloch)-Sphere (basically a unit sphere) with
+0003 %increments 'dlat' [deg] and 'dlong' [deg] for latitude and longitude,
+0004 %respectively
+0005 %
+0006 % Syntax:
+0007 %       plotBSphere
+0008 %
+0009 % Inputs:
+0010 %       dlat - latitude increment [deg]
+0011 %       dlong - longitude increment [deg]
+0012 %       ax - axes handle
+0013 %        varargin - optional radius R
+0014 %
+0015 % Outputs:
+0016 %       none
+0017 %
+0018 % Example:
+0019 %       plotBSphere(30,30)
+0020 %
+0021 % Other m-files required:
+0022 %       none
+0023 %
+0024 % Subfunctions:
+0025 %       none
+0026 %
+0027 % MAT-files required:
+0028 %       none
+0029 %
+0030 % See also: BLOCHUS
+0031 % Author: Thomas Hiller
+0032 % email: thomas.hiller[at]leibniz-liag.de
+0033 % License: GNU GPLv3 (at end)
+0034 
+0035 %------------- BEGIN CODE --------------
+0036 
+0037 % radius of the sphere
+0038 R = 1;
+0039 if nargin > 3
+0040     R = varargin{1};
+0041 end
+0042 % gray scale factor
+0043 sf = 0.85;
+0044 
+0045 % lines along longitude
+0046 [lon1,lat1] = meshgrid(-180:dlong:180,linspace(-90,90,181));
+0047 % lines along latitude:
+0048 [lat2,lon2] = meshgrid(-90:dlat:90,linspace(-180,180,361));
+0049 
+0050 % spherical to Cartesian coordinate transform
+0051 [x1,y1,z1] = sph2cart(deg2rad(lon1),deg2rad(lat1),R);
+0052 [x2,y2,z2] = sph2cart(deg2rad(lon2),deg2rad(lat2),R);
+0053 
+0054 % plotting the lines in the current axes
+0055 bsh1 = plot3(x1,y1,z1,'-','Color',sf*[1 1 1],'LineWidth',1,'Parent',ax);
+0056 bsh2 = plot3(x2,y2,z2,'-','Color',sf*[1 1 1],'LineWidth',1,'Parent',ax);
+0057 
+0058 bsh3 = line([-R R],[0 0],[0 0],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax);
+0059 bsh4 = line([0 0],[-R R],[0 0],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax);
+0060 bsh5 = line([0 0],[0 0],[-R R],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax);
+0061 
+0062 bsh6 = line([0 R*1.2],[0 0],[0 0],'Color','r','LineWidth',1.3,'Parent',ax);
+0063 bsh7 = line([0 0],[0 R*1.2],[0 0],'Color','g','LineWidth',1.3,'Parent',ax);
+0064 bsh8 = line([0 0],[0 0],[0 R*1.2],'Color','b','LineWidth',1.3,'Parent',ax);
+0065 
+0066 t1 = text(R*1.4,0,0,'X','HorizontalAlignment','center','Color','r','Parent',ax);
+0067 t2 = text(0,R*1.4,0,'Y','HorizontalAlignment','center','Color','g','Parent',ax);
+0068 t3 = text(0,0,R*1.4,'Z','HorizontalAlignment','center','Color','b','Parent',ax);
+0069 
+0070 % output handles of all lines and text
+0071 bsh.grid = [bsh1; bsh2];
+0072 bsh.axes1 = [bsh3; bsh4; bsh5];
+0073 bsh.axes2 = [bsh6; bsh7; bsh8];
+0074 bsh.label = [t1; t2; t3];
+0075 
+0076 end
+0077 
+0078 %------------- END OF CODE --------------
+0079 
+0080 %% License:
+0081 % GNU GPLv3
+0082 %
+0083 % BLOCHUS
+0084 % Copyright (C) 2019 Thomas Hiller
+0085 %
+0086 % This program is free software: you can redistribute it and/or modify
+0087 % it under the terms of the GNU General Public License as published by
+0088 % the Free Software Foundation, either version 3 of the License, or
+0089 % (at your option) any later version.
+0090 %
+0091 % This program is distributed in the hope that it will be useful,
+0092 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0093 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0094 % GNU General Public License for more details.
+0095 %
+0096 % You should have received a copy of the GNU General Public License
+0097 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/plotBpulse.html b/doc/blochus/functions/interface/plotBpulse.html new file mode 100644 index 0000000..d2a938a --- /dev/null +++ b/doc/blochus/functions/interface/plotBpulse.html @@ -0,0 +1,186 @@ + + + + Description of plotBpulse + + + + + + + + + + + +

plotBpulse +

+ +

PURPOSE ^

+
plots different pulse parameter
+ +

SYNOPSIS ^

+
function plotBpulse(fig)
+ +

DESCRIPTION ^

+
plotBpulse plots different pulse parameter
+
+ Syntax:
+       plotBpulse(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       plotBpulse(gui.figh)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function plotBpulse(fig)
+0002 %plotBpulse plots different pulse parameter
+0003 %
+0004 % Syntax:
+0005 %       plotBpulse(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       plotBpulse(gui.figh)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI data
+0033 data = getappdata(fig,'data');
+0034 gui = getappdata(fig,'gui');
+0035 myui = gui.myui;
+0036 
+0037 % time vector in [ms]
+0038 t = data.results.pulse.t;
+0039 
+0040 %% pulse frequency and current modulation
+0041 value = data.results.pulse.df;
+0042 % min-max-spread
+0043 d = max(value)-min(value);
+0044 if d == 0 % check if min=max
+0045     d = 20;
+0046 end
+0047 ax = gui.axes_handles.PulseSetupF;
+0048 cla(ax);
+0049 plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.pulse,...
+0050     'Parent',ax);
+0051 set(ax,'Xlim',[min(t) max(t)],'Ylim',[min(value)-d/20 max(value)+d/20]);
+0052 grid(ax,'on');
+0053 set(get(ax,'XLabel'),'String','t [ms]');
+0054 set(get(ax,'YLabel'),'String','df [Hz]');
+0055 legend(ax,'df mod.','Location','SouthEast');
+0056 set(ax,'FontSize',myui.axfontsize);
+0057 
+0058 ax = gui.axes_handles.PulseSetupI;
+0059 cla(ax);
+0060 plot(t,data.results.pulse.I,'LineWidth',gui.myui.linewidth,'Color',myui.color.pulse,...
+0061     'Parent',ax);
+0062 set(ax,'Xlim',[min(t) max(t)],'Ylim',[-0.05 1.05]);
+0063 grid(ax,'on');
+0064 set(get(ax,'XLabel'),'String','t [ms]');
+0065 set(get(ax,'YLabel'),'String','I [A]');
+0066 legend(ax,'I mod.','Location','SouthEast');
+0067 set(ax,'FontSize',myui.axfontsize);
+0068 % in case of discrete pulses the modulation is done via the duty cycle
+0069 if strcmp(data.pulse.Type,'MIDI_OR') || strcmp(data.pulse.Type,'MIDI_AP')
+0070     set(ax,'Ylim',[-0.03 0.63]);
+0071     set(get(ax,'YLabel'),'String','duty cycle');
+0072 end
+0073 
+0074 
+0075 %% pulse
+0076 value = data.results.pulse.Bxy./data.basic.B0;
+0077 % min-max-spread
+0078 d = max(value(:))-min(value(:));
+0079 ax = gui.axes_handles.PulseB;
+0080 cla(ax);
+0081 hold(ax,'on');
+0082 plot(t,value(:,1),'r','LineWidth',gui.myui.linewidth,'Parent',ax);
+0083 plot(t,value(:,2),'g','LineWidth',gui.myui.linewidth,'Parent',ax);
+0084 hold(ax,'off');
+0085 set(ax,'Xlim',[min(t) max(t)]);
+0086 set(ax,'Ylim',[min(value(:))-d/20 max(value(:))+d/20]);
+0087 grid(ax,'on');
+0088 set(get(ax,'XLabel'),'String','t [ms]');
+0089 set(get(ax,'YLabel'),'String','B_{1} [B_0]');
+0090 legend(ax,'x','y','Location','SouthWest');
+0091 set(ax,'FontSize',myui.axfontsize);
+0092 
+0093 end
+0094 
+0095 %------------- END OF CODE --------------
+0096 
+0097 %% License:
+0098 % GNU GPLv3
+0099 %
+0100 % BLOCHUS
+0101 % Copyright (C) 2019 Thomas Hiller
+0102 %
+0103 % This program is free software: you can redistribute it and/or modify
+0104 % it under the terms of the GNU General Public License as published by
+0105 % the Free Software Foundation, either version 3 of the License, or
+0106 % (at your option) any later version.
+0107 %
+0108 % This program is distributed in the hope that it will be useful,
+0109 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0110 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0111 % GNU General Public License for more details.
+0112 %
+0113 % You should have received a copy of the GNU General Public License
+0114 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/plotRamp.html b/doc/blochus/functions/interface/plotRamp.html new file mode 100644 index 0000000..840d1a9 --- /dev/null +++ b/doc/blochus/functions/interface/plotRamp.html @@ -0,0 +1,204 @@ + + + + Description of plotRamp + + + + + + + + + + + +

plotRamp +

+ +

PURPOSE ^

+
plots different pre-polarization switch-off ramp parameter
+ +

SYNOPSIS ^

+
function plotRamp(fig)
+ +

DESCRIPTION ^

+
plotRamp plots different pre-polarization switch-off ramp parameter
+
+ Syntax:
+       plotRamp(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       plotRamp(fig)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function plotRamp(fig)
+0002 %plotRamp plots different pre-polarization switch-off ramp parameter
+0003 %
+0004 % Syntax:
+0005 %       plotRamp(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       plotRamp(fig)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI data
+0033 data = getappdata(fig,'data');
+0034 gui = getappdata(fig,'gui');
+0035 myui = gui.myui;
+0036 
+0037 % time vector in [ms]
+0038 t = data.results.prepol.t.*1e3;
+0039 
+0040 %% pre-polarization switch-off ramp amplitude
+0041 % Bp amplitude in units of the Earth's magnetic field B0
+0042 value = data.results.prepol.Bp./data.basic.B0;
+0043 % min-max-spread
+0044 d = max(value)-min(value);
+0045 ax = gui.axes_handles.Bpre;
+0046 cla(ax);
+0047 hold(ax,'on');
+0048 plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.prepolB,...
+0049     'Parent',ax);
+0050 line([min(t) max(t)],[1 1],'Linestyle','--','Color','k','LineWidth',1,...
+0051     'Parent',ax);
+0052 hold(ax,'off');
+0053 set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]);
+0054 grid(ax,'on');
+0055 set(get(ax,'XLabel'),'String','t [ms]');
+0056 set(get(ax,'YLabel'),'String','Bp [B0]');
+0057 legend(ax,'Bp','Bp=B0','Location','NorthEast');
+0058 set(ax,'FontSize',myui.axfontsize);
+0059 
+0060 %% angle alpha between B and B0
+0061 value = rad2deg(data.results.prepol.alpha);
+0062 % min-max-spread
+0063 d = max(value)-min(value);
+0064 ax = gui.axes_handles.alpha;
+0065 cla(ax);
+0066 plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.prepolB,...
+0067     'Parent',ax);
+0068 set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]);
+0069 grid(ax,'on');
+0070 set(get(ax,'XLabel'),'String','t [ms]');
+0071 set(get(ax,'YLabel'),'String','\alpha [deg]');
+0072 legend(ax,'\alpha=\angle B0 B','Location','best');
+0073 set(ax,'FontSize',myui.axfontsize);
+0074 
+0075 %% time derivative of alpha
+0076 value = data.results.prepol.dadt;
+0077 % min-max-spread
+0078 d = max(value)-min(value);
+0079 ax = gui.axes_handles.dadt;
+0080 cla(ax);
+0081 semilogy(t(1:length(data.results.prepol.dadt)),value,'LineWidth',gui.myui.linewidth,...
+0082     'Color',myui.color.prepolB,'Parent',ax);
+0083 set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]);
+0084 grid(ax,'on');
+0085 set(get(ax,'XLabel'),'String','t [ms]');
+0086 set(get(ax,'YLabel'),'String','d\alpha / dt');
+0087 set(ax,'FontSize',myui.axfontsize);
+0088 
+0089 %% ratio of da/dt and omega=gamma*B
+0090 % ratio = dadt./omega
+0091 % ratio << 1 -> adiabatic condition (see Melton 1995, eq. 1)
+0092 value = data.results.prepol.dadt./data.results.prepol.omega(1:numel(data.results.prepol.dadt));
+0093 % min-max-spread
+0094 d = max(value)-min(value);
+0095 ax = gui.axes_handles.wda;
+0096 cla(ax);
+0097 hold(ax,'on');
+0098 plot(t(1:numel(data.results.prepol.dadt)),value,'LineWidth',gui.myui.linewidth,...
+0099     'Color',myui.color.prepolB,'Parent',ax);
+0100 line([min(t) max(t)],[1 1],'Linestyle','--','Color','k','LineWidth',1,...
+0101     'HandleVisibility','off','Tag','MarkerLines','Parent',ax);
+0102 hold(ax,'off');
+0103 set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]);
+0104 grid(ax,'on');
+0105 set(get(ax,'XLabel'),'String','t [ms]');
+0106 set(get(ax,'YLabel'),'String','(d\alpha/dt) / \gammaB');
+0107 lh = legend(ax,'$$\ll$$ 1 $$\rightarrow$$ adiabatic cond.','Location','best');
+0108 set(lh,'Interpreter','Latex');
+0109 set(ax,'FontSize',myui.axfontsize);
+0110 
+0111 end
+0112 
+0113 %------------- END OF CODE --------------
+0114 
+0115 %% License:
+0116 % GNU GPLv3
+0117 %
+0118 % BLOCHUS
+0119 % Copyright (C) 2019 Thomas Hiller
+0120 %
+0121 % This program is free software: you can redistribute it and/or modify
+0122 % it under the terms of the GNU General Public License as published by
+0123 % the Free Software Foundation, either version 3 of the License, or
+0124 % (at your option) any later version.
+0125 %
+0126 % This program is distributed in the hope that it will be useful,
+0127 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0128 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0129 % GNU General Public License for more details.
+0130 %
+0131 % You should have received a copy of the GNU General Public License
+0132 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/plotResults.html b/doc/blochus/functions/interface/plotResults.html new file mode 100644 index 0000000..d0b9010 --- /dev/null +++ b/doc/blochus/functions/interface/plotResults.html @@ -0,0 +1,404 @@ + + + + Description of plotResults + + + + + + + + + + + +

plotResults +

+ +

PURPOSE ^

+
plots results depending on the chosen settings
+ +

SYNOPSIS ^

+
function plotResults(fig)
+ +

DESCRIPTION ^

+
plotResults plots results depending on the chosen settings
+
+ Syntax:
+       plotResults(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       plotResults(fig)
+
+ Other m-files required:
+       plotBSphere
+
+ Subfunctions:
+       plotMag
+       plotSphere
+       plotFFT
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
  • getOmega0 calculates the angular frequency from a given B-field and
  • clearSingleAxis clears an individual axis
  • plotBSphere plots a (Bloch)-Sphere (basically a unit sphere) with
+This function is called by: + + + +

SUBFUNCTIONS ^

+ + +

SOURCE CODE ^

+
0001 function plotResults(fig)
+0002 %plotResults plots results depending on the chosen settings
+0003 %
+0004 % Syntax:
+0005 %       plotResults(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       plotResults(fig)
+0015 %
+0016 % Other m-files required:
+0017 %       plotBSphere
+0018 %
+0019 % Subfunctions:
+0020 %       plotMag
+0021 %       plotSphere
+0022 %       plotFFT
+0023 %
+0024 % MAT-files required:
+0025 %       none
+0026 %
+0027 % See also: BLOCHUS
+0028 % Author: Thomas Hiller
+0029 % email: thomas.hiller[at]leibniz-liag.de
+0030 % License: GNU GPLv3 (at end)
+0031 
+0032 %------------- BEGIN CODE --------------
+0033 
+0034 % get GUI data
+0035 data = getappdata(fig,'data');
+0036 gui = getappdata(fig,'gui');
+0037 
+0038 % update the different plots depending on the simulation type
+0039 switch data.basic.type
+0040     
+0041     case 'std' % only relaxation
+0042         plotMag(data,gui,'lab');
+0043         plotMag(data,gui,'rot');
+0044         plotFFT(data,gui,'M');
+0045         plotSphere(data,gui,'lab');
+0046         plotSphere(data,gui,'rot');
+0047         
+0048     case 'prepol' % pre-polarization switch-off + (relaxation)
+0049         plotMag(data,gui,'lab');
+0050         plotSphere(data,gui,'lab');
+0051         
+0052         % clear rot-frame axis M
+0053         clearSingleAxis(gui.axes_handles.MagR);
+0054         % clear rot-frame axis sphere
+0055         clearSingleAxis(gui.axes_handles.SphereR);
+0056         
+0057     case 'pulse' % pulse + (relaxation)
+0058         plotMag(data,gui,'lab');
+0059         plotMag(data,gui,'rot');
+0060         plotFFT(data,gui,'M');
+0061         plotSphere(data,gui,'lab');
+0062         plotSphere(data,gui,'rot');
+0063         plotFFT(data,gui,'B');
+0064         
+0065     case 'prepolpulse' % pre-polarization switch-off + pulse + (relaxation)
+0066         plotMag(data,gui,'lab');
+0067         plotMag(data,gui,'rot');
+0068         plotFFT(data,gui,'M');
+0069         plotSphere(data,gui,'lab');
+0070         plotSphere(data,gui,'rot');
+0071         plotFFT(data,gui,'B');
+0072 end
+0073 
+0074 end
+0075 
+0076 %% magnetization components
+0077 function plotMag(data,gui,frame)
+0078 myui = gui.myui;
+0079 
+0080 % for plotting everything is in [ms]
+0081 T = data.results.basic.T.*1e3;
+0082 
+0083 % all relevant time marker
+0084 Tsim = data.basic.Tsim;
+0085 Ttau = data.pulse.Ttau;
+0086 Tramp = data.prepol.Tramp;
+0087 Twait = data.pulse.Twait;
+0088 
+0089 % choose reference frame to plot
+0090 switch frame
+0091     case 'lab'
+0092         M = data.results.basic.M;
+0093         ax = gui.axes_handles.MagL;
+0094     case 'rot'
+0095         M = data.results.basic.Mrot;
+0096         ax = gui.axes_handles.MagR;
+0097 end
+0098 % norm of magnetization vector
+0099 Mamp = sqrt(M(:,1).^2+M(:,2).^2+M(:,3).^2);
+0100 
+0101 % normalize M in case of pre-polarization
+0102 % and adjust axis limits
+0103 switch data.basic.type
+0104     case {'prepol','prepolpulse'}
+0105         M = M./data.basic.B0;
+0106         Mamp = Mamp./data.basic.B0;
+0107         d = max(M(:))-min(M(:));
+0108         ymin = min(M(:))-d/20;
+0109         ymax = max(M(:))+d/20;
+0110     otherwise
+0111         ymin = -1.05;
+0112         ymax = 1.05;
+0113 end
+0114 
+0115 % plot the data
+0116 clearSingleAxis(ax);
+0117 hold(ax,'on');
+0118 plot(T,M(:,1),'LineWidth',gui.myui.linewidth,'Color','r','Parent',ax);
+0119 plot(T,M(:,2),'LineWidth',gui.myui.linewidth,'Color','g','Parent',ax);
+0120 plot(T,M(:,3),'LineWidth',gui.myui.linewidth,'Color','b','Parent',ax);
+0121 plot(T,sqrt(M(:,1).^2+M(:,2).^2),'LineWidth',gui.myui.linewidth,...
+0122     'Color','m','Parent',ax);
+0123 plot(T,Mamp,'LineWidth',gui.myui.linewidth,'Color','k',...
+0124     'LineStyle','--','Parent',ax);
+0125 set(ax,'XLim',[min(T) max(T)],'YLim',[ymin ymax]);
+0126 
+0127 % -------------------------------------------------------------------------
+0128 % plot vertical line at end of switch-off ramp
+0129 if (strcmp(data.basic.type,'prepol') || strcmp(data.basic.type,'prepolpulse'))...
+0130         && Tramp < Tsim
+0131     plot([Tramp Tramp],get(ax,'YLim'),'LineStyle','--',...
+0132         'Color',myui.color.prepol,'LineWidth',1,'Tag','MarkerLines',...
+0133         'HandleVisibility','off','Parent',ax);
+0134 end
+0135 % plot vertical line at end of pulse
+0136 if strcmp(data.basic.type,'pulse') && Ttau < Tsim
+0137     plot([Ttau Ttau],get(ax,'YLim'),'LineStyle','--',...
+0138         'Color',myui.color.pulse,'LineWidth',1,'Tag','MarkerLines',...
+0139         'HandleVisibility','off','Parent',ax);
+0140 end
+0141 % plot vertical line at end of pulse
+0142 if strcmp(data.basic.type,'prepolpulse')
+0143     plot([Ttau+Tramp+Twait Ttau+Tramp+Twait],get(ax,'YLim'),'LineStyle','--',...
+0144         'Color',myui.color.pulse,'LineWidth',1,'Tag','MarkerLines',...
+0145         'HandleVisibility','off','Parent',ax);
+0146     if Twait > 0
+0147          plot([Tramp+Twait Tramp+Twait],get(ax,'YLim'),'LineStyle','--',...
+0148              'Color',myui.color.wait,'LineWidth',1,'Tag','MarkerLines',...
+0149              'HandleVisibility','off','Parent',ax);
+0150     end
+0151 end
+0152 % -------------------------------------------------------------------------
+0153 hold(ax,'off');
+0154 
+0155 % axis settings
+0156 grid(ax,'on');
+0157 set(get(ax,'XLabel'),'String','t [ms]');
+0158 set(get(ax,'YLabel'),'String','magnetization M');
+0159 % legend
+0160 lh = legend(ax,'x','y','z','|xy|','|M|','Location','SouthWest');
+0161 
+0162 % adiabatic quality of switch-off ramp
+0163 if strcmp(data.basic.type,'prepol') || strcmp(data.basic.type,'prepolpulse')
+0164     set(get(lh,'Title'),'String',['p=',sprintf('%4.3f',data.results.prepol.p)])
+0165 end
+0166 % font size
+0167 set(ax,'FontSize',gui.myui.axfontsize);
+0168 
+0169 end
+0170 
+0171 %% magnetization components on Bloch sphere
+0172 function plotSphere(data,gui,frame)
+0173 myui = gui.myui;
+0174 
+0175 % for plotting everything is in [ms]
+0176 T = data.results.basic.T.*1e3;
+0177 
+0178 % all relevant time marker
+0179 Tsim = data.basic.Tsim;
+0180 Ttau = data.pulse.Ttau;
+0181 Tramp = data.prepol.Tramp;
+0182 Twait = data.pulse.Twait;
+0183 
+0184 % choose reference frame to plot
+0185 switch frame
+0186     case 'lab'
+0187         M = data.results.basic.M;
+0188         ax = gui.axes_handles.SphereL;
+0189     case 'rot'
+0190         M = data.results.basic.Mrot;
+0191         ax = gui.axes_handles.SphereR;
+0192 end
+0193 % norm of magnetization vector
+0194 Mamp = sqrt(M(:,1).^2+M(:,2).^2+M(:,3).^2);
+0195 
+0196 % for visualization purposes M always gets normalized on Bloch sphere
+0197 M = M./Mamp(1);
+0198 
+0199 % chhose what to plot depending on simulation type
+0200 switch data.basic.type
+0201     case 'std'
+0202         indS1 = 1:numel(T); % relaxation
+0203         indS2 = []; % relaxation at end of "prepolpulse"-type
+0204         indR = []; % switch-off ramp
+0205         indB = []; % switch-off B-field
+0206         indP = []; % pulse
+0207         indE = numel(T); % end point
+0208         Beffn = [0 0 0];
+0209         
+0210     case 'prepol'
+0211         indS1 = T>Tramp;
+0212         indS2 = [];
+0213         indR = T<=Tramp;
+0214         indB = [];
+0215         indP = [];
+0216         indE = numel(T);
+0217         % switch-off B-field trajectory
+0218         Bamp = sqrt(data.results.prepol.Beff(:,1).^2+data.results.prepol.Beff(:,2).^2+data.results.prepol.Beff(:,3).^2);
+0219         Beffn = data.results.prepol.Beff./Bamp;
+0220         
+0221     case 'pulse'
+0222         indS1 = T>Ttau;
+0223         indS2 = [];
+0224         indR = [];
+0225         indB = [];
+0226         indP = T<=Ttau;
+0227         indE = numel(T);
+0228         Beffn = [0 0 0];
+0229         
+0230     case 'prepolpulse'
+0231         indS2 = T>Tramp & T<=Tramp+Twait;
+0232         indS1 = T>Tramp+Twait+Ttau;
+0233         indR = T<=Tramp;
+0234         indB = [];
+0235         indP = T>Tramp+Twait & T<=Tramp+Twait+Ttau;
+0236         indE = numel(T);
+0237         % switch-off B-field trajectory
+0238         Bamp = sqrt(data.results.prepol.Beff(:,1).^2+data.results.prepol.Beff(:,2).^2+data.results.prepol.Beff(:,3).^2);
+0239         Beffn = data.results.prepol.Beff./Bamp;
+0240 end
+0241 
+0242 % plot data
+0243 clearSingleAxis(ax);
+0244 hold(ax,'on');
+0245 plot3(M(indS1,1),M(indS1,2),M(indS1,3),'LineWidth',gui.myui.linewidth,...
+0246     'Color',myui.color.basic,'Parent',ax);
+0247 plot3(M(indS2,1),M(indS2,2),M(indS2,3),'LineWidth',gui.myui.linewidth,...
+0248     'Color',myui.color.wait,'Parent',ax);
+0249 plot3(M(indP,1),M(indP,2),M(indP,3),'LineWidth',gui.myui.linewidth,...
+0250     'Color',myui.color.pulse,'Parent',ax);
+0251 plot3(M(indR,1),M(indR,2),M(indR,3),'LineWidth',gui.myui.linewidth,...
+0252     'Color',myui.color.prepol,'Parent',ax);
+0253 plot3(Beffn(:,1),Beffn(:,2),Beffn(:,3),'LineWidth',gui.myui.linewidth,...
+0254     'Color',myui.color.prepolB,'Parent',ax)
+0255 plot3(M(indE,1),M(indE,2),M(indE,3),'ko','MarkerSize',8,'Parent',ax);
+0256 % plot actual Bloch sphere
+0257 plotBSphere(18,18,ax);
+0258 % axis settings
+0259 view(ax,[-35 30]);
+0260 hold(ax,'off');
+0261 set(ax,'XLim',[-1.05 1.05],'YLim',[-1.05 1.05],'ZLim',[-1.05 1.05])
+0262 set(ax,'Color','w','XColor','none','YColor','none','ZColor','none');
+0263 axis(ax,'equal');
+0264 axis(ax,'tight');
+0265 
+0266 end
+0267 
+0268 %% FFT of magnetization and pulse
+0269 function plotFFT(data,gui,type)
+0270 myui = gui.myui;
+0271 
+0272 % Larmor freq. [Hz]
+0273 fL = getOmega0(data.basic.gamma,data.basic.B0)/2/pi;
+0274 
+0275 % choose what to plot
+0276 switch type
+0277     case 'M'
+0278         ax = gui.axes_handles.MagFFT;
+0279         f = data.results.basic.Mspec.fx;
+0280         X = data.results.basic.Mspec.X;
+0281         lgdstr = {'Mxy','\omega_0'};
+0282     case 'B'
+0283         ax = gui.axes_handles.PulseFFT;
+0284         f = data.results.pulse.Bspec.fx;
+0285         X = data.results.pulse.Bspec.X;
+0286         lgdstr = {'B','\omega_0'};
+0287 end
+0288 
+0289 % plot data
+0290 clearSingleAxis(ax);
+0291 hold(ax,'on');
+0292 plot(f,abs(X),'r','Parent',ax);
+0293 % vertical line indicating Larmor frequency
+0294 line([fL fL],[0 max(abs(X))],'Color','k','LineStyle','--',...
+0295     'LineWidth',0.75,'Parent',ax);
+0296 hold(ax,'off');
+0297 % axis settings
+0298 set(ax,'XLim',[-abs(2*fL) abs(2*fL)],'YLim',[0 max(abs(X))].*1.1);
+0299 grid(ax,'on');
+0300 set(get(ax,'XLabel'),'String','F [Hz]');
+0301 set(get(ax,'YLabel'),'String','amplitude');
+0302 % legend
+0303 legend(ax,lgdstr,'Location','NorthEast');
+0304 % font size
+0305 set(ax,'FontSize',gui.myui.axfontsize);
+0306 
+0307 end
+0308 
+0309 %------------- END OF CODE --------------
+0310 
+0311 %% License:
+0312 % GNU GPLv3
+0313 %
+0314 % BLOCHUS
+0315 % Copyright (C) 2019 Thomas Hiller
+0316 %
+0317 % This program is free software: you can redistribute it and/or modify
+0318 % it under the terms of the GNU General Public License as published by
+0319 % the Free Software Foundation, either version 3 of the License, or
+0320 % (at your option) any later version.
+0321 %
+0322 % This program is distributed in the hope that it will be useful,
+0323 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0324 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0325 % GNU General Public License for more details.
+0326 %
+0327 % You should have received a copy of the GNU General Public License
+0328 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/switchToolTips.html b/doc/blochus/functions/interface/switchToolTips.html new file mode 100644 index 0000000..9176c23 --- /dev/null +++ b/doc/blochus/functions/interface/switchToolTips.html @@ -0,0 +1,161 @@ + + + + Description of switchToolTips + + + + + + + + + + + +

switchToolTips +

+ +

PURPOSE ^

+
switches GUI tool tips either "on" or "off"
+ +

SYNOPSIS ^

+
function switchToolTips(gui,onoff) %#ok
+ +

DESCRIPTION ^

+
switchToolTips switches GUI tool tips either "on" or "off"
+
+ Syntax:
+       switchToolTips(gui,onoff)
+
+ Inputs:
+       gui - figure gui elements structure
+       onoff - 'on' or 'off'
+
+ Outputs:
+       none
+
+ Example:
+       switchToolTips(gui,'on')
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function switchToolTips(gui,onoff) %#ok<INUSL>
+0002 %switchToolTips switches GUI tool tips either "on" or "off"
+0003 %
+0004 % Syntax:
+0005 %       switchToolTips(gui,onoff)
+0006 %
+0007 % Inputs:
+0008 %       gui - figure gui elements structure
+0009 %       onoff - 'on' or 'off'
+0010 %
+0011 % Outputs:
+0012 %       none
+0013 %
+0014 % Example:
+0015 %       switchToolTips(gui,'on')
+0016 %
+0017 % Other m-files required:
+0018 %       none
+0019 %
+0020 % Subfunctions:
+0021 %       none
+0022 %
+0023 % MAT-files required:
+0024 %       none
+0025 %
+0026 % See also: BLOCHUS
+0027 % Author: Thomas Hiller
+0028 % email: thomas.hiller[at]leibniz-liag.de
+0029 % License: GNU GPLv3 (at end)
+0030 
+0031 %------------- BEGIN CODE --------------
+0032 
+0033 %% list of handles that have switchable tool tips
+0034 h = {'check_handles','edit_handles','popup_handles','push_handles'};
+0035 
+0036 %% process all handles
+0037 switch lower(onoff)
+0038     case 'off' % if it is off, switch it on
+0039         for i = 1:numel(h)
+0040             eval(['fnames = fieldnames(gui.',h{i},');']);
+0041             for j = 1:numel(fnames)
+0042                 eval(['ud = get(gui.',h{i},'.',fnames{j},...
+0043                     ',''UserData'');']);
+0044                 if isfield(ud,'Tooltipstr')
+0045                     tstr = ud.Tooltipstr;
+0046                     eval(['set(gui.',h{i},'.',fnames{j},...
+0047                         ',''ToolTipString'',tstr);']);
+0048                 end
+0049             end
+0050         end
+0051         
+0052     case 'on' % if it is on, switch it off
+0053         for i = 1:numel(h)
+0054             eval(['fnames = fieldnames(gui.',h{i},');']);
+0055             for j = 1:numel(fnames)
+0056                 eval(['ud = get(gui.',h{i},'.',fnames{j},...
+0057                     ',''UserData'');']);
+0058                 if isfield(ud,'Tooltipstr')
+0059                     tstr = ud.Tooltipstr;
+0060                     eval(['set(gui.',h{i},'.',fnames{j},...
+0061                         ',''ToolTipString'','''');']);
+0062                 end
+0063             end
+0064         end
+0065 end
+0066 
+0067 end
+0068 
+0069 %------------- END OF CODE --------------
+0070 
+0071 %% License:
+0072 % GNU GPLv3
+0073 %
+0074 % BLOCHUS
+0075 % Copyright (C) 2019 Thomas Hiller
+0076 %
+0077 % This program is free software: you can redistribute it and/or modify
+0078 % it under the terms of the GNU General Public License as published by
+0079 % the Free Software Foundation, either version 3 of the License, or
+0080 % (at your option) any later version.
+0081 %
+0082 % This program is distributed in the hope that it will be useful,
+0083 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0084 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0085 % GNU General Public License for more details.
+0086 %
+0087 % You should have received a copy of the GNU General Public License
+0088 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/blochus/functions/interface/updateStatusInformation.html b/doc/blochus/functions/interface/updateStatusInformation.html new file mode 100644 index 0000000..11dbec1 --- /dev/null +++ b/doc/blochus/functions/interface/updateStatusInformation.html @@ -0,0 +1,164 @@ + + + + Description of updateStatusInformation + + + + + + + + + + + +

updateStatusInformation +

+ +

PURPOSE ^

+
updates all fields inside the bottom status bar
+ +

SYNOPSIS ^

+
function updateStatusInformation(fig)
+ +

DESCRIPTION ^

+
updateStatusInformation updates all fields inside the bottom status bar
+
+ Syntax:
+       updateStatusInformation(fig)
+
+ Inputs:
+       fig - figure handle
+
+ Outputs:
+       none
+
+ Example:
+       updateStatusInformation(fig)
+
+ Other m-files required:
+       none
+
+ Subfunctions:
+       none
+
+ MAT-files required:
+       none
+
+ See also: BLOCHUS
+ Author: Thomas Hiller
+ email: thomas.hiller[at]leibniz-liag.de
+ License: GNU GPLv3 (at end)
+ + +

CROSS-REFERENCE INFORMATION ^

+This function calls: +
    +
+This function is called by: + + + + + +

SOURCE CODE ^

+
0001 function updateStatusInformation(fig)
+0002 %updateStatusInformation updates all fields inside the bottom status bar
+0003 %
+0004 % Syntax:
+0005 %       updateStatusInformation(fig)
+0006 %
+0007 % Inputs:
+0008 %       fig - figure handle
+0009 %
+0010 % Outputs:
+0011 %       none
+0012 %
+0013 % Example:
+0014 %       updateStatusInformation(fig)
+0015 %
+0016 % Other m-files required:
+0017 %       none
+0018 %
+0019 % Subfunctions:
+0020 %       none
+0021 %
+0022 % MAT-files required:
+0023 %       none
+0024 %
+0025 % See also: BLOCHUS
+0026 % Author: Thomas Hiller
+0027 % email: thomas.hiller[at]leibniz-liag.de
+0028 % License: GNU GPLv3 (at end)
+0029 
+0030 %------------- BEGIN CODE --------------
+0031 
+0032 % get GUI data
+0033 data = getappdata(fig,'data');
+0034 gui = getappdata(fig,'gui');
+0035 
+0036 set(gui.text_handles.TimerStat,'String',['Calc. Time: ',sprintf('%5.3f',data.info.Timer),'s']);
+0037 
+0038 switch get(gui.check_handles.PrePol,'Value')
+0039     case 1
+0040         set(gui.text_handles.PrePolStat,'String','Pre-Polarization: ON');
+0041     case 0
+0042         set(gui.text_handles.PrePolStat,'String','Pre-Polarization: OFF');
+0043 end
+0044 
+0045 switch get(gui.check_handles.Pulse,'Value')
+0046     case 1
+0047         set(gui.text_handles.PulseStat,'String','Pulse: ON');
+0048     case 0
+0049         set(gui.text_handles.PulseStat,'String','Pulse: OFF');
+0050 end
+0051 
+0052 switch data.pulse.Type
+0053     case {'MIDI_OR','MIDI_AP'}
+0054         set(gui.text_handles.MIDIStat,'String','Discrete Pulse: ON');
+0055     otherwise
+0056         set(gui.text_handles.MIDIStat,'String','Discrete Pulse: OFF');
+0057 end
+0058 
+0059 switch data.info.ToolTips
+0060     case 1
+0061         set(gui.text_handles.TooltipsStat,'String','Tooltips: ON');
+0062     case 0
+0063         set(gui.text_handles.TooltipsStat,'String','Tooltips: OFF');
+0064 end
+0065 
+0066 set(gui.text_handles.VersionStat,'String',['Version: ',gui.myui.version]);
+0067 
+0068 % Matlab takes some time
+0069 pause(0.001);
+0070 
+0071 end
+0072 
+0073 %------------- END OF CODE --------------
+0074 
+0075 %% License:
+0076 % GNU GPLv3
+0077 %
+0078 % BLOCHUS
+0079 % Copyright (C) 2019 Thomas Hiller
+0080 %
+0081 % This program is free software: you can redistribute it and/or modify
+0082 % it under the terms of the GNU General Public License as published by
+0083 % the Free Software Foundation, either version 3 of the License, or
+0084 % (at your option) any later version.
+0085 %
+0086 % This program is distributed in the hope that it will be useful,
+0087 % but WITHOUT ANY WARRANTY; without even the implied warranty of
+0088 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+0089 % GNU General Public License for more details.
+0090 %
+0091 % You should have received a copy of the GNU General Public License
+0092 % along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/down.png b/doc/down.png new file mode 100644 index 0000000000000000000000000000000000000000..d41104a26f3d09deda6ab54281affd82c981abb1 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^{2gTe~DWM4fiX0)Z literal 0 HcmV?d00001 diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..01d6dbc --- /dev/null +++ b/doc/index.html @@ -0,0 +1,22 @@ + + + + Matlab Documentation by M2HTML + + + + + + + + + + + + +This is a Matlab Documentation by M2HTML.
+Go to menu.html for the documentation of all +the Matlab functions. +
+ diff --git a/doc/left.png b/doc/left.png new file mode 100644 index 0000000000000000000000000000000000000000..404df045f40970496c71ca6b8c1f1357af271e27 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^{2}w1qqB3TN5VEvJYV8 a;bDlI$G>{!EB$9cJq(_%elF{r5}E)JMslDkd7sMUhm~nn@(#}qULHtXTzoc}*_9Non9cn|mMot$6xao(HD{Btemfo7KftJ(gq<~Y~G z@qZoHkA=+tS8)7W&Uw9q`Tr8me+#(&&u0HSm+S9Tw*NEO-*s^O@8dn4!TPz8qu!P4 zK_1Jw46grGoai}Etj@tK_}C@RCk z%#`S6Zs-xzlqxAD$1kf8AM0wN?c%>SMNC?Phc6~Pz{yO{A+R?kRa_)AA;iir?(CQ-4ncIv-nB)Nx{hL?F`wWg|rwizO*(ixxOASOWm3r><21 literal 0 HcmV?d00001 diff --git a/doc/menu.html b/doc/menu.html new file mode 100644 index 0000000..f007348 --- /dev/null +++ b/doc/menu.html @@ -0,0 +1,23 @@ + + + + Matlab Index + + + + + + + + + +

Matlab Index

+

Matlab Directories

+ + + +
Generated by m2html © 2005
+ + \ No newline at end of file diff --git a/doc/right.png b/doc/right.png new file mode 100644 index 0000000000000000000000000000000000000000..067c5baf250318b85ede9047ea56e394244a8712 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^{2x4R4DejLlK(oUf$qpIW2Kdm3mZvz)oC*-0O z>ci#{6EEe5N_g|7y-?!O*shOkfX=?m5pm)0@JFl1sLMxQT@e)+k84Iip|~0BzOow?$K0qF;5O+P z;99XkI@YyukCIUtw{M010eVR_Jx=Lzl`sUlflAwKgfOe2Hy9#m9e9~k-noo zor9Z$qp_8Ov7M8-y|LAIr#SrW5v%APnLc`WA)kR&F1rYJ{Dfx8M0Y?xxfcMo%{Y`t zPFJ@27Y~J?aKV<2SZ5Q{(*+9QyWhg(4nSkSet@=2_&w+OJ#9Q5;zkx9Z5x_c>Iwa* zvu}vZP1(G*$o7X&ACMBKhH)(Y2xypfPH9&fv2YnbP%LF7<0?6RS`3L<*`!T!dE^Aw z(l)`+k%Sd2+dcIr71Za<0n#@IfPQ0ka@V=aT8zGC11c}O;Ki6ZBS@|vDS49c2+z+; z-JruhX_p=I)g#4~L5ubD=pnkH%i`5ib>aQr75V$5$llMQMt)br3k(1N>boMk_QsYD zbhLjzD;7qqd+Fgpw^hSD$xNsUQ2Z3B?246sc=-}wAV#>BSV6XXNuLP#R{)OAgnzuv zxiVu&JGV#j$YGHR3vk+{3y~|NGQ^VYTivW<#to~%Vh|EzFxTiUZ)dOVa zNrQ_*VW?%t7%Q~@LaU+?L~7$&uk7e$@@s2amgr!$qvUWZLrfallbJqI1$odC0LpJ1 zQmRD`>KUZoa?=lh%VFNje!5d43U?#0Di_)WKceP04IY^Ky@bF0k$aFZv0+#U@20s-M1>AsV75 zxCO5|I?=qhcu4vzZU%n0ePLN+@FL=4Wi6#B&TVUUP{r{H{Lh;fC%a<41PlNWiU0sW z_8PB{ja?n>^&RL0Y+U8^t&J^dttQm0Y}Q!eKY8@Nc2x2U zpqJCEjOgs4u=6%H)z~R|l z?P1jg-Cjbx^PkY#eWMtPz&Zu2<&sx{tWX(13lPczJN>xyb5{|keoHkY@DTqzs6+IF z?hyj-l!8H{z-UJ5fi~CXA4g+kqty~t!x~8#m&4Hi*tAD*pd)>U6xW!b*Fj!nmNk<{ zyV9XGAX0e#*u6b&n$y+vLl8l$BqDwgnx#X!sox%o7Q*($$K&_q?+Q$z5)K_1sF?O& zUo51&0e~sZ4<%Y6%tQ%SG+1Lp$3{~a13bx0BaV=lJuOH!iY0^_pjJJ;&uVh6{ha~Ow$F-H4yTW|oJh|w%f(d+ z8}!kde=m=E`~arLln$k7FQK8RsM)H*L!4Wqq=h+kyvOonV>(pDiFs*0_%S48QzuH+g3@Jrfv%kP(oG9ZN^kISYdp^LDXGx`TY;;|CJb_!@Hwzm zEPl9Q#va&n{L!j+m=!BaB^((!n9f=yKTasPHXd)+y(m1%Fgf|2@Tkji_n8akH=Wvd z&Pe=>Q-<9*6~i48&j~hh2sKd@*Sx#wOprcWhkjHbN8(Oh7etwh4i^FzaAR9FJTzhk9k9bAe-UB_??fiH^Q8Q((QGZf2PsbR< zvjcuQ0p&&bk^VS}6&oIixTsj*tT&Zf{{JbYVrC{}6Zlj6B<@)>%#k53gP;UO7#Eq)A)1gCsg zU1iCYH{vSr^L~+=nxLfsbl~S*U#Vn8R(Llp?JA)bR$j$0ncqUCw{v7^eeY>d3xvbKU@XB@}+^T{I0jq8F z9!h0u43@>62hn9~>HR^hS-ED%_v1blT96AYyUB0Uf1MHqjlw)!PxujUal9~pJw1-N z=nbSGP#v*=sad|Ur z_3Jpl(bu!&aWf}Lq<%WZ$V9&X6nE|*UZnEVVNOiv=Kk{Il{|`Nla9yzeEV`=-=d(x z__xXE66TODyOk3Iub3FcV8oc!9#3667|qw$E!;n`_!@Fh00<2LK=dE5D5!65 z^xs@mS+ibahxgLe`_h-oPlO)U7!q?~8wFV-9cY9D@o!z`nVTQp6(MXOHXfpB+}g~! zY+T?3d6oOYPi%iUzLN?y!DJ#839(L(v&9gGp(Q|p+k5%8r0bhiRL~7pmU_YlfLgNZ z8wZ}EA2sVgW$pkNrour#99Z+)ZO}Y*=v@6dM^?Ia`|26_R>v ze(+u_IM<#kA&_JhCKouJu%A#|j*Iapiu(C(Y~qi~d}9FvY`)3MAT5qFFZxKVDj_3v z5L3uOgypobNE#;h_!=U>a8@TPsUCN1f~8*YTId}wN@#F2j;X})Mmfx0*@Q~CQ*z6G zQO<%N8gEs|@7~>}MASL)(jLv9dKP|Ix8h>tf~ftJCP~sTtJgR7Xi{}Q)#}Ro@uB-5 zGDped{POKFNJLs@f&3sVAm^Q-5+gVw>-ox&+l*pIGDsVSKtv17y?mraK(5k|$9>)J*Q#s~?wj03}Mqe3OrSS*TP9Av51 zViL%fbVB{kaP9v%j9PwRB!C7wGE+oJ-z@Nvlu(!LZQTHSXfI@4q9O?S>Fi~ZW4$hy z*K&23U(>p;a-xmp|7me#aNNTy{Ds%&Bd@_iQ~J8Lfe7J=N;>2j=DzGr)98aaL8M?% zi~iXz)eYx75@S5T*3xLqWAZA2FIqVi=^Ny%Y$Cbve*bTedX$mq4ZeqDEM z8WV;9vB)awxRDB9A-wRZGs2_2&Dp?12WRWX3MkQN5-D+o@i27o zCPUm+%=wd9W6?vxJ#8nA8{IJ51C!u}KWTRjrA$qS&{~N1W(+uwcK=V~RU5nQ6{c3* z#?CRisR$EpU)f6lzoNMQytLqv(DuY;ZOTotTVy+`M_yPHY6@Lxah=%<5sDivqbcon z9h6P3tk6I08fl>JTCE`$wMcWvtT9*#--b3byPLwm6?`g92_MZ$P$<N|fI#<kULWL6gY-S709|4og*?*sp*ASG;N>*z*n z^;=OhB3%yN8*ZN$S~7{8MWukEVgtr;F6dD|ryj}+*NM5P43{H$UT$@3^QIX!K12b& zpJU7Tkjv0~Z5@2Yf4sAgW}PjQ!_8JGs1%Xrd2FBoWgaVt(=i0VL)Z+w8pIxCLtiFx z4{TfgC}Zy>hAXa9&yOS9FCzlOZ$Zg7)>oK8LV4Mohn_byMOjg>Vy0Vr!8LC2_&AOqVoRB z)u#&6%9QD+E13t};vacCurptArgD@P%inPi*gb$h%CG2sN)zg>dI}me+Nl1hnYv{u zPT78yWN|nRt&Lsg3pvrp2+gcXBMww;$Hu$yIXsgt#KUeYriZ|`y$XotaLgg^vTyc6 zs^Gb%DijW`N!M=>+u&~&-kdRuZwn)fBDh9_VF4`RUGMAhl#3j3FS59-13i`huHAb~ zp6cqcXQ)uX(|L#DoztbA<=^jMv7c*^Pll53waLNy#i(!xOqz>UBrajK1J~ErT(J{s zP((?$QNgG;eTb%|OZ)})&-UIIZEs1&n@@P=;vOh97g6it?;=`|H zYT|5&L0gO!JFq!e@ngbp*X|KXq$X|MQwwSvfW(aIGMmC3vKHP=%@*12&tBcyRYJr+ zlU`h?X{Pa_hXf@!X{>_Hi!fS7j5N(mZQ{Y!(`a<8;c@1WK*M^EFX|#w6DCY^pj$it zWX{Uz-}z(E4vauKpYGPeTKO|(wSMadilspllX%ngD7s7aq@rTeiD?P~g<*tfsGxwI z^hv390#MgK8SPncv2dHxlYq1auMdcei>T`=03?bU4u(k-aj|IX=I3LOB!zfa>ennP zweUHa3b@cu0nA%i3hiM^CHAogCM!uKo5@ppHs{G_VhQa)rc0D^M$bcLkaHuzBBHux zm9*v){mCZLZ6lVl{pINtT?MYXm=#h}Mx9DOWuUR8NvlLf<4C%zX9v&&#K z6=o-UB9{Xj=y|wg9s+L@dNujKz z;E_t&SOOmnofXW@TP8kN{@$wS9F$yQF5#lrnP<=!AlY8)7Uw;V&dhnwA!oRhoO|{l z1DIelrIU+O63x;&%);%BBCUv-(5LDj%P_Xmqq71`wDFz*TP`DxV+m?_n$zeHfQUu3 zz;$;E>I4PFE|qjO(N85m<0Y@#XS7%*jv{Tizqc9_Zv#9ZDqF-Y@&}|~7I`-z*+*O~->UeaW>}c{J z`aD`uz{&Pr+u)&fYQSx#Y!nQH`(ABxX<+fjB-V+DEdFpg)CyLb>TH%fSlSU4!Wx2! zZX_FO4mVsrIdW5Vf7VtqESFre4$305NIoNI@CLhT-l|0Vw5~T@{+bp%Oj^oBtYSK+ zxB{IC-X=1-kaUzpy;5F*tZV8{$9^rm*wHgq5ZGSwqkExH~0^e981ieRdppT70r_X`>`Jw*v zU$orw-)oSUvKjmlRX`sJrBr=L>gU^;OOKhNAk~i!h}O-QbNFY4@mmAb36yOflO%t2 zLoEy7{U(qbhDO8&*J?`!@lDtm?rn~NktkNfZo?t1rAJ_y%Vq zaql-cmjY=7b~C@h36l~lX9iqJAQV8EM-mKAk?MDXKR@i8>3rCsrF%QIEKqwr1iLBC zS7{VAYWpfyyN{0E*?VsSIRqiw2O2|R={Ij5Y)?bkhz}yrpUBz?(}BTi0b%A(ks<1= zrH>X4r7eU2$1Ys5r2U#qsHvpE3MB|F*&%kCF@LCxiCIhulfa_^qE8QKXhRLk>inAX^_)f00mZ2>(|sJg`N>~+=H1kN!&4FYdXuAs z8;=mLeJle+tN;E2?f3<4ofVv9u2EKsr%K%xg-Sg%2K47a&ohtrn8)kDn)d>xY~A|0 zW5yL4K{HuhdM94u>hMZ~1|-HOOKP7dYrx3P7PBf_&M$w^bRkEosidpi^x45|H&#&7 zsspDpzGbU>yU+cVQh9^N5$aW6m$aCIMFT z~k3Rn5*p+zGT0s9F8>XgT?` zB;5K#_E1)<7H?KS>$_Zv-3EsStecVStOXb8K&~Zf8s<5BsL1Uzo>U$Nl2=0u%)B^! zyHng6_LXyDh484g&Iqq|mxHK|A5&C&9=OVc#;KJ+kW4M5bUE_+$6|Rk$f<)RP0{-v z#BaD0?hRSUn{{g>Hoz^)yc>%XRei@g0>eDx=!K=R&gcJPUCh4dTran+Y-?Skg6&FB(ZMFF1JaO z3)90j%$aZ;Mfq7ds*(}_vUx~fpU_pbj5+p$@&F!ua+_Nox>M@qpDa&*v-D^j$Nms|5?wZ|LpBMX5>n>TbjW z7JOoQdVxvEKrQndY4I`0>C-}>Gr6pK)BehQ6xFTOq=8c$fa=OdWPuIVNx(0lF|Lb5`Q)nrVaInvNOO-2=}Z0Un&IlF?w0G4p~hrzD%_crc(p)lH)I&>{_VsxT{K*B-9(=$ zr4v~ce_Wlacr<>PETNkUz$1oBdk@F6(?IX2V|ZG6G_?Z&J8330XoSm+C7TtMhX((F zfQLH>e7_cmd(C^~1VGGd+A5FL(?cKrDff1*lTR@Upko&`C4acB4d~TF&2FMdDaq>TR!HOa2>2atv062S$)iF+^}yg;zU$`abSTN z;(QW_2PVH*ERHY?(eOv$zrYAdrKAD1E()R zjWpk9l4$ZANuNwwCEn&2hh%I(%zxT6bYPt8qtuPKxoZv_CX_bxvAp zW_^vXJnzfGb0l;2%Fcp}oV7xe?~eVZ5u}8LW*C)e%|ma?tYn4Pz^+FO{%tof5M`T_(+(7y(5)ZUe(j= zR}OTL4O#3|4Yl$vtPxr_sMWoImE~wsY*h95{2Oa@F|p4nzgbiD&6@ud>;AIlzha&0 z)_=bM@BEdie>a&na!Gq;3oYJaa*IO_^_PL9GpT72DPj@~i`2dzag0aejLDp5xg+^v zQrhvhyxv`pt`jhj^r5eG%Lc9}Xt$9eYrs#Vc|QT_v(Nz1RG8{E!J2)|DAY;WCFe-Y zn0KS36$6FL?TYe^De^5#AT@)Ey=S7+K4DC&QD(1xEDcj*>fzrwyS$T1QOzjPlp5Jm zSpx0@a?DW+My&esL#g~o90{LK1Naovup6c#6O}Kj07Q`3-%qB8$`DT>L>X9rYOuOwbc+twqMIRD^~ggOV~pU(4-v^Pf2mdj=~l4z1p zTY@Z@ijqR=M|`9R5Hj?9q&8$Vo}*Xr}Sfyp`9WR%=y(e?Ngrtc_j7SPYPKg}# zEursMhHg>e_(kPR;?t(5o|OxcUf~cfRxo6sVs_v2CidLHJRwykAOh=Os3d!n&NE~4DAZ-V6n(#w?2Kd=5-jzJ z9jV8R-Kz&3Fr#~kZ>lwnf%CB*Q%8YVR9{W-IA((9`?#w2#UJ3JAw(6>u!5CH*N{Sj zI@q@}qW2RUr_B^Xb)0lbVk?EmGv=q-8lKl+3w{0|yo@)89}#7)6?L6oV`C`ZuVR%eA9lNNZn7SK-G{{vS$ssw>(=1ix zhC9`m%u~juKxHgaR51tjhz*Yp1Vt_3*|`j&lgGe4jJ8OFr26XiF$)>xFE?hNfuQ|M zb(M|0*w2hs-z zo85>Fo=K&GSCE}FSDh?up~Eyz4Mz}=dzwm*~szX@gF zcde}F+b|0G%f@GrNxeB?yWaR0F3h?-jn%cUUiGP}@@*;FoyQjDGzDzNtv@Jx#_Ut% zrk&H#j#o;yJW160n~-RS9Wi=XM|v2$+k6SXPc0~LXZKaMeQ1q#9w%2=!U0`PUoH}$ z&`MWAC+YiJAguKBHF2NEnG{iM<&A^x`psrI#y09@RtTK`FogwNI;`O~`BdaA>yFlQ zdg^ZrS*KYCvu_9S!8+Sf!i#hjY^gx_^ory~DKO+5M5$)a@Oez@>(l zcLGLVRj&2|QqB@kwxa!!{z~`HR5Pz)%sL1N0FVj_06_d7G@F=!lcS@J^}n)Brt+Hg z93Q-w=q{d!vK(S;N;6t%T4OFUv1>73y+2rg-!ksdTBXaxC1*0>v-4mS4wv~WpKAE* zipGE zj|yyw7T_F!9!Qo%V38?{jMoTW&h{XtWj`)-|LXIzBo05?5j*O1MPfNfNe1H8dU`dx zZTj;beTk5?N$}i++%~&nG$Vd2(s+n4&_d8VB_VQ6x_QZ@IjJj*J^htIJaa38+3K#3~D@$`Y|M6y_xS6m_R5I|pbn}J6kM9SQ)Z<6QnDB{TSj^i_R&N#%IrVs+{I$Wt<`x%SjKE2VZB3h+L1!*HMd zgo^`meu?*+49xHg_t^9$84{12diJ_jzbzJ%Q0EABPSf8LGw@4ZV^ z&F|$F`Cq%u0)|M_7TDJkq3-BoPNBOCZ=7wpQp_9jqu8-)Jnuc3>Fu*nyfSW9FfRyDSHdVPrDGe*WO+i33LJf~c8IBP2zW z)CX?4kh1DWsxOYe_b;@`eW{+HR58n@;1D z^B)oJ41fbUQ5vsI<}konfC!N?eBFhR7a$J~3vcq|+!^C^C>YzZaPTvl-Q9_MK=Z@_UJS?cM}WC(2w= zSNytUCmIEJg+3G@QGHT&>>eKnC!4ITEwh)T9Yx3t@oM*zu3bBP#md$=%GqJ-9 zqo2WjBW*IaYJVyR1#g$|#HW2&m*JV~Is{<5Mf8ZAD@PMiBgT6jfAa8TM3ISFPj=g^ zn|!b0=y;Vz*p~ZnI(cXAB!cXpH|Vh2+x~~T;4(MU7|#%-qC58?wv0i2HwXns6I3Ta z8&fsq10uH5aJgs5a5@l}OvGNOLuSx+x+?Ot26(j9LaEIhD=PUOw8q@`SqgATn1J5^7AUUaUwA~)8H2a^z#;coJVe#kI`6%gQt{@ z5^%=D=Tqq*3mD#b-pi(MkS!C+iDEl>^dP7Rr{3C?Rvz)Tn23ORR&Z87`SbW! zXm=gwmd;FpHmtSo!*^TR7GTbatGz9FlKtJi+p4EQVfJu6*TLpkmh9gylP-&gATpc; z1JTlZ3G&U#EX$fhCKl5JYX*4@>odZ3!TAkylIr)1$=QP}%}Hmqqt^AhA3rXN{-~pFAPdy^t@Kz-? z`r(SYbZLV!O_znNEb$w_4=4ZnqigE|3>hG7uIg0T!(nBPX?|GsCbEfH)O6J-s%?Ee zw;Ml&6Up`S+-i|#vDmb0vH7jH-pT15AOAOc74HxCx7-b;i!Zk?z<-j*t@F=2`}gX5 zgZZDczLLJdf5S&z-3E&d-kWavi(V|V9JpLrTr8TrF}5FeHk%`ISPVCuFgvLZF@3>a z@N(2SV86*_xC2f*7LO9YTFBmn$2%h;5{J&Kn5RyE#Unqnis(960MG2 zd)Oj|01&jfpB@z9R}TVuza^_6th_Mwo8Z^}IUYO7gewwNA=JZn8irJlOhZ-^Z$`c8 zJd_b zKl9BXi~RfnZ^MF@Q~k(qJsnUzmt|GB^TL%}TU zc!=rHD~&2Oa9xVxXi{n7Qf8sOfReGioj_b#%FAvuNBb!;IE*Yy5 znJ|=|3x(U*LY$CBGw+z8Rk_ubUhnQdA(p84E4%0v_uvS0WEQY;u<=v{1`Pyf+6}Ri zB|+j~4Lv2#XmAGRX+^VlAW%ocy7D|d@F*7q!=28jx(4kr?f%v8hh+L`8FS|vq%kPQ z$}DL53*Oqy55f-Yh3Ki{6^4nfHA)XG`7h!P8i}o4Qk~X{U(8_#c1C+0JS3jar1yx) zOiBxm$!C|pN%tUbrfoEa@nIAoR`1sDBJ$IGAOV-G*HHWYowffgoxz?W+X}0IwP;Q8 z+4+sCVCB#Kv|imn3eXCkz%bjj>CGH0#7^{HO*y7Y~OK)He$JMdhm#7LsQLD%)PkS!rpF_~vCtV&4&rmI4yjG>QSqxq8BR3h z@Fw7p$@apc0y%x)_EIeAgMdbuV3VvdS22rhdWUUJM#q*p?ZiezKCPqa=@`qXM^NKT zwx2nL31Y{7)0_S!I+b9!KeMBb8cipcG(}dLB^#1iw>f8@a3DR7s~p~T$#sH>DO_b9 zJ(3pBtxGD2)Jf-UW@6a~YYjR1htgac@%q2kHERJ@FPh7C;+7QBT^nPs0r#v`nIZDX zSGb;yI{d5rO46@8x0p)UnKNe#u{b*#&(=eld{}FJvS&*5g6=pu#-kH}IB@h&k1{*W z5X{~)=u4f_!oB@^gStfMU)Opm9y2M|p^`)RZ|6qFPR@!{O$$q>7keyT=1gW+&*Ugd+_zFK$BQr* zT9#B4V1ddi`Bq^MD`*DmF}xaz^T_LstipIYEbf)#g(_aSe<~tZ48W!uNN;tJYS;T+ zrZ91~(AZw~TwJ=A0i!L2_6?H^!8j2+l@`vIvfT%eEa14LvM?|0;0oA*>|SDDf!6m_ zb;NJ5bf^+;25byA*mAd!ECRJmTwe%ZI48iE+_hcog!v_O#Nnb@STJ8>OA9;w5Us&w-40COhg9vUL?YTGo5j zO+J<@Gl%I+nFKZm zJ=W?0Ul}M>Pb0?C()7dU&!ba%7FMl-O1x*l($yT$*6p|+UO;Plou}j2Mb2ys8e(Gr zHRgclG7DS~jt$q7pCq_(yBW)y@!R_Jmdfs4sWp|0?0^zUWdjw4=onS&_A0$FKi3vB#`uNk;db zc(MKmpRMv=KKmbjDRLz1ppdGRv?s05;uSvIEc{Xb7)UtN@~>Y~Lah4hmq=FPj7gmR zxuy8v-&}b+-!5Ir?jkYb^&oX+7HF{fDXhsZ_ojG%aLY>iHK{NujsR?$P3&X;U>cX# z09q=p*rpy!`d?m~3AnPBG5L4&A>K#HGaY*{%%4y2W)YK_n1=rJ2GLLoy}_i?dRwA% zKytCO61}toGkGj}vmVN9Y_(K%Cch~t;9AOIx$<__C~yFK1zq~J*Ig-rNI6U?Ukpy6 zqpaBgC3CrZ?KVMf)HuMx$hP-e0r8=3qbg#mZ>2pZ0Zke|5*o)aO2Ecv?c2LAvB&2w zw*oEHB2*rO%b;c^75!&_+=My`ae&Q`mxDn5q;%lhEgh>mD;yjEBAO?KL8nMjnx@kC z%R>gK1X161~XWNi{@(2=nhX?}aC?ZX_GV1j*tN}-K>oG1R z)t>POchyxt+KX^Q{N9p?Vba>Ft?KN|lQCM?6_>(wrd?i({l~RD%g(Mh&CM&~cJ`!A z`-~yloZMtsAi7|bd$b8$;PRwjHG&>j$cOMSHmmM+BJx$#$~u$>6e3=Fdo4M=ShA%1 z`hLl1)3-gB-X}tA2kgf;eD;vFqXu7E2x&jul3;iDV8D!oj`yMMo!r?yL-uav_VtBg ze=rt+y-!6j0>tUkYnS}q&W_0KnCHoeAm+#D#+sZ#|COB^$n16QeE=*tDph~R|QCLA|4erBrZ*qm;}xiy9(utkLtBJ zeOV`djc(3*+pa~J)G@0huTyrE2CQ*l)F$OVrDfa+2n#pq7~yf||X`35&WauI+{A zeV%(lHCId5Mu4HMPH5`Hm0Rb8grHat{YH9u!?QTi3OrTzy$RO=A{S&XZ!x~Wa&dYZ zL_|X~As6>O!za_Ojn7MP@}yT;`#r;_vnA^$Io$D{N^8T9q^Al*7o%$hd9n~Gc74JU zOqcSg>iwN*HC80I7Lt#IiQu-|B=N76(%k3g=rOaK2wk+p;o_);YYE>X9GH|6xFq9} z?|b=3{?71q47n=1+PDyW9&OBOWq*urbkHvB-<2UW2KYUhg}lWeCKt+qQnAH5I7amG z`S3tLnAl)$&7{!`a(mp>!Zk#kH9yt>Wv)PJCy!iGzQ{sYVe_BccZJoq9xi%sD2;TVzy;Im;A-=sRoZ}0v>v(!*}!lGu5y6)6K3IS_+K$GEMT5bubn%V5*x=N(j zWL$9ZM8iRZW(g*ektJZ!J2|~8I<+`MUT}Y07NZ1w9g;D`Tl=YpK@bA#qD)!`c?J;}z`B~j*YF`VKOS9c zql4QEHU}}kSSN8FEo$HqPNjPd@7wNJ4B)1?^tyy6Xv(AIA8^Ml=u|u*EY5fAeUiTl z|D7`|L3%Eu-!ePne~{TK|B%_zHs3P4L-o`LU7258$RN&JZlNBf0KX>(a0U`K^nc52 z>G16)CJVBf_(HH&g#>4p!-;e@yf6}tbUDba&BRIb2brmDWC;eSw1^Fy?YmrLW(QEK zGm!0GbR{JJ;?`Pvl0BhFg-L#LzG?w!V*YaD)H0Ci-EW)S`falT*Uti~&o2)_{2tHQ zQ)tLh$%6`j6|6AP%f)PoAB&0H{(uzx=*Jjv=@Xk8_Ggu%KtqI)f<{d}S_O#B&q%2I zp(WNb3IWq2BqjdigHoQc8|X(Va4tu+qngB#6=q5b!!W&MQnxX1SkGH{CIR$zu#L6k znb2rY<}{>%5`2wVYBJ-GdYFWr82=pqujxv@fET^++I)U^U@ty%7B%~fPC`2V$~8wS z4}(Fum*t_F%CJ%)83abblNFsP83SZe&dou+s|-AeDx<`$6RMw2AZ5L^2CzZp_jfT` zGDl^~=-SVlE2y7+(02lHFzICuBK!A>3=}XAuQrQ1xnzNUmuR$p_8ULAY@QPc7e_H@ z)>LKyT9+nmFP{HgnhI~2HgBw-nYPr-M(^37cqHm)F0eEaVtt|GMQ(2&7lDz}S0Y4V zZaql6I)h{R@mRxh*2_u`74(drE1)?Lk){TG%p4mv^J3zuYOsJOd9__4W0|_~}GF^IefrfptHr{;b(7hs$LB zmf2Ed5q{>CAL5cIs(Z?^5^ZpW>o>t@p!ZmJMK0?k(G`X(d^6letD#_(IJ8edLXz6J zip6)G`%cHIlvkw2ncoK{v~fo4eof0QJ&a{sKr43f>W_UEGnbW#C7%z|7)}>UKV{8K+me$xS*N_Y-a!MaOpj% zm>}-=czyQwh4UXac1(>OX|0T7_$_+*;DfIG-b28CqZ3F#&n`|s=5pW5LH;^%lO{F6 z+R!F#%h7qi(9SCe>h116f7&$EJy6mwP&o#M+B7%43B_4KF9Ifuq;H;?=ySh&>~w<+ z@Qc4URP=aV`qA!Q3;dbxpAW|xa`&G|9~Fso?%@(PgP0zzt5V;)qsp5eh2 z2L9|MC4}&F#$C%3z+TUahs-rW;Th#SuJ4HD>zzpJ7Hb!d0B@K(G~BMcDMebLp=eqW zW?uJuxlA{@kl-e&$t<6z(#{HxV6MH$;Pzqn1w}#(pN{4yi1i18o{3C zCjMsbj!wFWE2D&DIvt4n|UlM)0A{ljqTN0Wv z)Lq{W-vFJn464BmTiUGReqq?~N)C0vL>;xvDF#U=@a$^`Zi2j=Y-Izy1d$L z9iP7zC5kdK_ki5H_m_4e+(K!8tr{B0Y~~TPeisq9J`{1&c5Bfg@W?6`mMHbOy#3rC zg#^j1)!dry@4qnUn_C;(f6u0AoPCFD#4lX@uRcIDRYXdp#(?$= z&SDETK6kesXH8^&TeVm!3yW|im*iR};g6=Rah_*2TH#WN={#OFLQ_){Q*S0NCZ!Ao z3M5uCQ@29$sTBOJSdfXh1a42h?NzF0?fQL}pAnRCm<`@W;upLE0v650^K$X%L2&}L zf#a;i&ct!W8RbHqhY(ci6(!ql1UH}I5Ca(1BZ#@n_K6Au!*M0TS;NEB&aIkquRG~yRk|Yj13EaJH?C=HC?}SNc;fOhLTv3;| z+)VfGOrRQ$X`~-B*CcxXF;Dh3NwPYYRQzHntp@F+8rVA~hYb5eAP=l4nXf;5|yOt!IQ6`Jh3gGG+p;yyVRcfu9P z-Ygor3M2zdj(OH%2`%p?H+!YbCWc8`o*0ddi)7=LSOkzCi1n+6pl z1NtjcSLjC*s=X&%APpBru<;@*EY0`<)ImbS*3@`>mE?RqXt+%pD{m=#k|kuY`2i!u zuKj2d;{=?>P=nc7l32<3E*oAy!;>igE`~@-)Tgkb$9fs8_qHeU6pwnXk(sco{oWM{ z=6C*$x*XTbA`WQ4G!`3a)V5Jg5E*`sbVt=I(qY z%w^|rfd$1QJ$%qT&3*XPh@2Akrp7BHdI6G{^9f;49NH`XY(`90Gn<0p$&>HNK-wbp zV41HkP;1eEJB~B&py;rGC5?D{^)XPj;^Ikv-Z9&Y)M%0GPrbwhT$V))D&6MRPuNYj zvJ+HFXA1iV^67embn0w{?#m~<0mN&7PcOzPAx`W{LI@{0v!RF?uFWLP}5 za0UOUbs@tmGsI7l>07BQ4;g7Io*;A^O{1x&r1e^`JL)XCYc@5OSqk&MQ_!G^D*3Zk zVz<$`)W-^kPdSB?hGm+Ewu!UW1;svQX)K%%a?#5dY!%N}#YGZ4#bIwU8~5obcSLb( zr^zdLL>!MEf+aJEHF-d;QIynq@MZ=BOG@Ee^_mX#v|Y3?H~?yL>|$_u%Y|&7@IvK* z*^gYr^!O3I&bdOmFJ=xY^c_a@UC)+V`*USR_(#(k;LYKT(+&~2pfW~1Mlsd4YNNZv zXqce1&|t642+L9pm*a=1TwP4E=hjPQdL%>`LaHpda+9!rD5k~g;6{(?U3F6k_3J|> z;Qj4akJsruRkGoKV6I82jKfH%`vuF9XjO}tJ^_DE!xAh&%OPJGy%fO-T}5@&Aw>eO}38A-)6At>^`LgZGxi7)FctT9Ara5@`wsS7zqp-%D>4J-lMoAMNTjP zZ%dQ*<36yy*G7Q}-&1Km{?KJvH>_E24xZl+O=o>vxEg6Sq$zelZBR~wEf^(H{+%hj z>{o@xm4w*2&%n`XShr}zR_Si??5&~w4W#Xl3$J5h8fqg`)?2t(;xLKBVX7s6innC6 zz|P)d0dny2RF36i4S&4E1~!&S+caK0-45s0rBh^!v4tfNId3e9vUmbPe>^&)Ru=AK z%b=T%SV(5sKA5n`UkwAU@+#x>-XlLrza+6{yTR)Ulp>kTmKBpA;1S=H62J zTK>b+S)XkgEf*mxU&F3@uKqY`XTA3B;__bfOHhw?t;?2phUZUAlqs$kFO@u>)C8rz z_w$`WqfMW>yjLf?%5aJ(z?)xD&uNkx=Chqv*!`Leri))!6hdH|-Nm?7JsmWnUHH$ON) zolFH3XrJM}q_T*ymTDRvK9Wl%)#RsueS{}OrRrR8+?gJsWpH*Y(D-;6HFLe|ceETW z_H5B{#M+a&P@;Hnw)b$c&6~Ba2TO?FL5AMSdbrq_xtUJ{-|5~5NmrB``zk$K(r9JH zSWB<|cDC32{HJ;i#B~?jqmzjH0sqsp?fc{8WVLsmO!hfCr%xjqo@|!3B^ZZ8_tT%& zA~8m%k`RKnIa)8~0WPhh-ucKZkhN?FyFzaxp)eQ+lEunc z8M9yHM%fVm>`^n>s6u;2Gq}6BKR!Kx z_Y9s0KM?m=TE)x_!f*P~hKDE>s?tZ2G5$5YkgGtSgUQ$*63ic0yTNQ1s&irT&q0>2 z@YcRhvQ7br{7R4)Nxq;JI+BD1Vv2-*OEdguFABH@Wx&S^j`&E)r6`;~jao04xZW|>G~7(+A;)e< zuaoyiZoOp`gD_Rl8~tP>sZ!9M?_eixsz2EgR1X3}^hbx1FM@jV-={hhFzT*2`ETf9^=jLwUz8A1eOkYJ zstRCnY=KT#sOP34&r_HB$i0OG=Sh95Jj?wkNu|sRmibfn3Bn-f{((KJDsOwmkL;+(x!=$l!0apt75(Y`*a1i||{H8M_rwN0rS6#JI zZF3NXO86<_AH6z1MHI5{Y8m}HetXeeGBYwqMk~eD_AV#`Zzw3UqF-Qd>bgMSHG}r4 z?>U02Zz8R?2KgE0)Mi;6toRN5&XDUF5v&XOUx{D;3MWpeGGJo=NO65X&K83IbwB^7 zv1L(x^Is-*@1GR+E?%63h*hsdeBdp?=q!pp1&Xe3I9ps*T^Orc z5^v=glyATWvs4fRa)LP|f_SE&QDCaaKagSl3OA_XzbiuYxZ+7DJ-Z78=)kN0GrcD1oUNj_(pwdqG) z-Qjjm!x`E9@+FPDqt^TJ!SvZ6bOm1SJ}h0o_E56m?R>o%r{7+XybjAVD!@gZs3{`< zVu&INJBZdykV1yP*@`DKMVghp(Pi1@@+g3E*UMH%Gv&q#ILWc5^5$m~Mu1$Ad-|=r zNFr;ccG7G$i_r@KA|q|qI)W+Elto9Q+)273bwSC>-n=Ie$C=Y(hKY?#jHXsK81uX- z)SmWdfoV;MbM)IRiLU9!x*ek^97qh7x~G|xu67fOi^$(al;xlt0B3tvmCtNcByR=> zEOxEqvs&>_%3TJRoC_j=NSnC3B|&jjE6v^O#fpO>LwQ1->5KP{Ky)-sB?>%9iXh<= zzlXmqb@6;43cM71*-CnwI~fZh5jK_nE?KIZfzRRw=0`826!c^kF#6Oyi$lRc3&M0N z$uJNpTJS7Sx zQ_vA*)_}7AioCr-Th;s#k7+E^^La$+<*HgQ)aH?=_PN~J2#rIikn-)Cd<_qRT`*uk zN^X982hF3!f_!Kcu9eI(2z1yf6?OK3bWus3PJ5>17y$P~LIWF)-fabV-nOHYje|Z* zqpo%NXHdX_RSfj0sX;qdO@43;Th|OA1iasg3U7O>t+3SpuD!bOMde!ueWnjJ zSp#V3nT}vM{>tHW77-i5atThCt7^ClREy+n!0#Fqmd{o<2V8Mx- z*8`=;O(}V#Xu?dFd@@qNGmFmQs75c9S+}Hjr{ewVTF>JKx-q@_5O7drNwLpv>x6F{ zh5KBViUc(n?!yHZ{9T{6*%tbWWuPgYjas!8?g@6M^$Ifzn|PD(@R_ke%avQ~xh!$(Cjs>AYK+VrxH_1yA zv!T2s^AP|~^6z8V;36A)F2cUJ+UKnTFg6I!KY$$Ck(xA z{$6tVKTj65O4w@jpPLfvPxKw*e?D3MuWKbxY212^4`oyJj5h-t%}<}}!i z9{@JLCdrs)Fd$`ti(INXPlsi$vCM2{-nmYmZ*teA6&te1!+W2=^_y#0u!7|emJW4^IT{lnT2f*@Nar7K6}? zjn!}Jye+uIWmgexrVHC^WA1mj9&$T4&h*5+OcK9R+=I5@GVQG*!c?%QHT6UW#0Zc!@*h(!`G zt?7hK^H&eB$p!^hR1S$S;)zSo1M)LSYD;#vTyY)`7!vI?POz$6KZiCWq8$izI(s`! zGRC}64Da4JWAYROpaRJ$%F%_@sxppi4=xu)T$rQ-RV@T!9g(!leouRDI<8n>eX&Hw zThTJPJ|AsB8io14>sp~qP#s=k78>|$oB~n+7_|2;p%PO1|2{g0YH4_DKfnbSCsI%GkkClbD)7-poy4vZoHXEpZ*nlRU}#Q^%MK{ zFS52ssOQ}=FXGF_a4{-SUYwLi`4<5((R3&r$J9~${VVZ$dd9VM(flbK3m?V5= zga?*y!bG`DAb5Rw-A3*p?W@J8n=_~0J z5sE?6Dd?F{;4j zP9S|Z`g&Pqw2$841cSZ;e)~ARx|qGX;AD8W_WpA9ev0wr%$_tc`pCM2WnA~h=lRmPBadpK?{$B5-3)=q#DRcVZT8>S>*%fz~%Ua1FJ%~ zd}%?R1s52=^~dzw0xe@m>g#eb<4G_lZN+k1k7>{S3&WB77vTjLTP;Fj{|Y!=gkZxI z5*3Lq2NpqJxQW3pC4f$OrvO}_LB6Z7YW!w9tsvo=qF1GXzLbos*j3C`z$+$#(>#bK z_INuW=V|`5P_Zhe9ZjtA7Ia7RIa-4>&r*RXy%D*%g3&7C`krN2gS%IjKB25)dN^MIPqFzF(bNHvC0bg>3#1n;cRGSn2ye(jkQ#11d0$Jcc^I5M(c}D+H7bg` zTCzw(^gu&z&j>x}Z}7!_f#p+i5usKq_*lL7-xyi`YlfLYY3pY;<5ozvCu9U$U!XW; z8sO#$8As*hv%u)QR*Q<-FomtY`X7!;DprLHj&vmDBK-mr+CJ(7X`rcAl#tF7NpimY zB3g4+6UN;-OuoO&=vFVs?RVJOGm&4eFLEGNlfh9pEIB-+Oy;>i?pFd>g?+c`6ya`8 z9}-Ez3AEv(^E33{kgj5kvnWIfOktcmE?5g?Wp>U}B6I`;Q^=U`q=guQs!pjVbL)e* ze{Bc&B&QkO{P0)D#u1+k^8|-&Xw#PbM2kM1;c$RLtu-V9bceCN6?Rw%VAcVH^xIhm zbmZ3&j1`lMQkOQHR#^045Twyo1Lo2^T?! zx3Y!k{U~VX*ap0HNgWXxKaxnBAp6=@Uh+#Cs>1WDMGGnNM7{AF^;zE7Q9o38*DSL5 zC}Fw<-t|b>NImX{jsApWUI^qa%c-yeX|p&axxDa`8ViSRm!Cc6fXX}p7+YKUE10!P z%)+&>nwXduQGgHCZk?RN?D%lat}ATT;KYbV*39`$&>j!T_p0|zRHX*#znW0J_s&Ao z``-VCdd1>?W}#+tys?Tr@<^bTW-7>MmR6zLV%^*vJL^{-3bGf-0F0nJf{$0`@{tW> zh?$I*+lAft!vIe02tL6c0-*3O>${qL0EQfXDPR>v0ImO*3<90qO@EPRW-)s3AY!CpO);PX zY?xK#4(gO|t4PhF4;H{!^WaQxW5$hl)Vrvr?h=+gIfgZqGkK-cBZymZH2%w1H+UViHps+GQD z&Yy@ZLmwBWtWG?J!}ic*4dSOWc@Lj_l2E8dq(hXMBJyHPTYW+aa&pfp5iof)^eB$1 zNQpGHmrLgKhB+(n>}tbFqscyt19LR5r-|t|cVkg^6$Mw3mD#k@^VgSLVZg@^3_=1K zRe8RB3bYZ{Z9UJAy1_r7Y9;QBh~?OSF6UL`Uaq@k063tw#{l~mWkc3D@YMujXT{8! zv0^8ic8q!t{Ad!S4RW11+MMBulRd7>mQQbsDLY|dYuwd6_;}9Y>xGMD0u!2Q$^KL1Ea6Y)ZC}dxu}tE)#Dsf?fv0m=6-MWvV!j z{-&eF%00@zqXg4$CBnP|uQdklF8OIrovGfwdqZd@zi2=xHq!63&92w=?$aO@E23Qo zJT|^9lYCLXH5;E#X1*+wNLG8}rh9eaU2_CF8UVPOz9T)Y27|L+tox3KWVUqP22<-YC z=A=s^$wLF%bFslmP#cGXAwu$$n^3#yrO)dHA4G)zYif;us`6~BV0gU%t59E%&o0e# zgVahOSUpjNs|MUR&gB}jHjL;lV6`#}TI>)UZyK;*`yjFdFKWZ$cb>Ib^7raaKYBl1 zbFTvzkGhr(j%BswDW3|faX%!AS@=EFmnMp@%pn@w02^(xHIf94?(hZx(zKWsR|?xw z$#Mw;oW;+BWL~%kPEXykJtTEJtqIrNr99Q^&gIOhF1qm*n|Otku8mIi7fVeAQAJ2o z0I5a=IQcPpjo|(KWng)JpLxB2H;Mye9L{b&?c#kGgiVIPQQfRRQO&hhh3ASX}cMOi+hk#e8RY5sei$~b#4o8h5)(hd%I2rD_!S4E^igz896g{ z1jpDUQdRyzL+iUqdJ>#apV1*P6z6a`A^=l_`nRRP*rCLqXHUP3M_U^Ft>kM6H?l8g zowP-+(FK?>S5d@77nK)Ww#w=nQ>lJO_+L?T(oKVc3Fe6N06$ROh$gjaKPGl?Wb4{G z9ON{gSl32mmxc(H^^8c3<4&1BMx;}zK$dYw*jV9@mY*nvblGlFcYk)Qf)Kw0z^zXX z)k0alAheEIu0pfQmDKQ*!0(rbu&BI#c@U`V?*ZCX_kdWoO{A7rLa+da@72Zv=;-Wy z677p}CK`2+Yy5YJ%`m5~jZPHPOaw z6M2)Qj!*T5{(yB)2lzqx!nG0X(aBS)7dNR7=QvFC5YTJ*nsy4VZ)z}I8Lxm!`U&+gD!dcGhhT0Bd1!MtVatTY|! zl$w<0bM}<1=dppc5Y<5@pU=)Cq;Qd;Nj_Q~&Ym{$n8uSHA>|(S_>d2D5DJSc)tnSsLYp(Q*nHObUW871Y26?wv<7DQ(PVkz3n-`&JO!pp_YF*0) z@9IKA8a$GhgoMnEcdTgKJ-kh1Jd-YWk1jkM;_LlqXEDm0vUgJ0{KSxz9^ zaOHD2?y?0_83XWCn|@zb$$48xE<4$>6PbX+TjjkwfMHqX^$PL6ToKYmUPe(F6@8*h z_(-p1GAajv#UZDUc_*h2QzB=Mlrem(l8OHXe62PWK91L>4sd++cG{TivvC`+|cjoLYVdmB`+PDI}L*g-J>cH%ZX;JBi&Hv9w1KFFEsl?<|N8 zEm@}NC>T)awW`aN<-ea1?)(#6bx$dIC;tQ4t@(+z|BocqpZWIx!5t=lKr(A|2wvF@ zKN`HLbfFKBA}8uv@K;I$w^G_tsYglKm>tY5gfkjviKC_W`;@p3fH;(uGBuapluLGZ z`wJ&FnnLAY9-sRG43gcuL@d)@ zOfU+tqJmt3J2ijE65kjZeiE<_CW&Uo640H%u%cQFFtD~NkBzgoOu-jC+m<}im)yNr z=bdn)%Ruja>}&|?gbV&+2S*54Q!Ryl4?QByOzUxOpl88p?kguAfpKm}ZBrexIlu;8 z`=mBpzWfowFy#S5q895uOhX)G_CWGmfnJ=5(3Xc*Cb$eY3YO)K9)7ex*%fHZd$B~V zRKhbalE>2&XwgkvyXxdY_7No*s8khv=tt`@@DmZcF~ju@JT8(M*yBl+ zc~bV8i2Ws|ENET$cd5lOYiz?k0a;VLDnX3>pLdqmvxiS3gZ5ji1HZ8$*`>C>=ZabE zp!w=PMz91zU8Jvm%OxFh%mmq(y%|~q9ir>Z+cSv~Gqx=23G@f-3kX`TjsF1kJF*Ag zDn!=*;Dtm5_Pl#3!`Sx|t0b2i7qMcpzm_!)JnazfST>jo!5WUHl~}Az@ZtRG68NoW z1#cU1cl|e(jp(C#wJLQ>jdhQ&eNzXt9zN9rkU%mipoeXC1&OT$FvVXBy|g9m9t5}LlJ9v6ZY+5_)uzmd724&=wc4YH*;x-V*|`$saFqAZIsRdaY2oS7UUK&nhzms zGU~HbWg}f8%X)y3(0iWp?c}@aD^4g4p|#V?4|UrEc;yAWysmG=+!~|! z<)!EjgqR$pqDRmOJ%%9%QD08kyBNG89f zv9YOi`7vG9g}4vUOL<0VA~Y%UqY%Yw71a-JTB+`sv&zHg%6Hbw_eQ0YTIU{2Dh;^1 zJxolJzGdJ4fi*t$U5%RmQ7-#`I$!?H$M|0m`H9Ngvg2T)R-Ime5xYPv8UBQj$Kq-a{cgMw zc_q+VKOCRYNqo=K7DM-80#q3 zSI|P!2%41$b-Gk{h8$uRF~1ac+Jq>=+A*Q9pbkWoPqTVdj{pcNR`VT)XSZOl7j^2T z3QZR4iXaitIX+nB+loP^`kCnc=uWSUj9zNtuOUn4;sg{ zgA=}E=z6xC%h7k8jcbzPm<(8%X|PdxoI!CMLEB(62qy19!|SEMDGul|x1zZ=_;Ryn zDTz^PP+;aSnM@t0)U^E6EGWp$#OL!lbx8ixrK}`zg_XF)aE`Dqd<)4unINlItKEyZ zedj@nV?+(|1`0V%UlWJLv*Ss~XEwh9Lfb&N^t~^v59{S*#&O0Ts{j-S!fU`aj}8CW z$p-f}Cc&iR68|LVv4_G4(@=)B)edtdb}H3LI5SY&(Vw_VW=@&f0ouG%94AOI{o;k$ z9}e(Ete!~k?yb<=G}J<2@&rVn?XV4;+`Qcim|#Ce5% z0!P7Lqn69hJV6*pVt6B}6x@cbFQKOd>Vax{)}{xF?Asd}HB6}X5+J6D)<`zoO&MrJ zeGH8e?BlPE{txl|nf$g=1MUUVZ;L4eh~~i_Uchss=`l%<#1-#rm*l>SB}ZDIo^0No z;>twnlCBP`F*RU9DdZCw)9%lg<>q486+W>l`1) zsk797tMJjo>j{g)J?@`2x65TUKTrRe*jT~yMwR_B0h9bY2)rw;psAUqk+AbmFBFYc zpM<2(%TX~b^;X{Zz>ozvuPK#6gN6H5>!BNSL5uIRT?=J!7D;CWRQIVMSYP~ z_r10d#(9SGu+BLeeRtlE$^B4_c^M+Q{yljiWSKHlDhQtgBbti073Z`K!n{zb`&}g5 z+Qe^RoLSmBf5fH$k70dD7m&65jq{JhK&8@C(f-eGiJs`+fGGZREo2QGjP0HOWh8FY zko*^jq6>V)J4FyjyriyXj?^j>tYjCZ)R%?c5||r=T~2Fk+(fu+JW&B%*vlh0`tMEc z+?bV9Z70^$e)=w}V3nD8!q_TQ(anz~j`Ya3Uu@JqrB}Fj{Nq!h)_j=a1rUnxE{@v^ zveXBA21bFi+*CRj)5J-!}}f_m@M7aXGZVUs&ZK9DX%LD+?NH;zmtbS2Mk` z#xT@mApIttk{X4Z36KYwL$C~`EdlE@YB#01tC#!RXZ>+;c(QHyn>UHmZF&VyDZ3U_ zTH~E;)oK(a%^)UK*WXuWE?+Vmgmgx&u9vITy@%C%^cq*Yr@h0~aK)E1M>}_@`E>(M zaL=!-B@s(7**BdQIW|Q_w&H}}fo>~Gp26<=CdLoP8e>@6B@ghkB7H(zswVQ8eVpp| zi=RABU@Z>7Poa{rzC1B4&LgZ0G|1xn7Aoirs+mDo&5J5CSo-s&BHkZJz-9*L>@HHE z&3C=o-$i*u%F==O>Z`F?N`=uCH)^V?xAZ$IM|pY=@!triAd51-<&jES#{pE5OGf}% zJb_fu3uiwX)o@aRqTENdj3*pETFpy|cdBUt?O;>_7jN}dlZB8zgDhowM>Abjb6F6H z03uL^bf0~Q0ON0%X2E;Jq0Z&YCL3I@!|_>X^p8H}Nf49UMrl2jHgN0HFR`{wCX~DA zd0GdS{u73YcEoHfvg3)QW6J=WRp$J4iCbJj+H>=99g@7IH>X=EeS1W+6d{$1G&LmZ z0k{G#N0?juont0kks0fx+h1TbJP<>C!#ckV#T2YN)^v9uI<(O)|E{uhF3W9n8b4AG z&2V9tIZj$;?1v4e_H>3~w<)Jmam!6q0C5AQ!ZJ!@XMLbSZNqq zA>cOTx5uJDDT>PfS+S|$yRVdREcuLNnQi1Co|$A1p**me1wwMF62WOBW{Cto^)f^w z6Qf-0b+@cdmE@SOBA@@o)fi_!S!9E88B1yfD+fv!rGVN5NUeTOIwxTEc3-BLb)r)> zFCSWK$PIa+xgr{1&=k!-5|jkZH?$cZvh<8fQHE*Ga3i;=X#-uQCw-M`H1IGYV_Y!$ zxK6UaH}#|!AZ*H=&k-_6KPzAf)rq$^hkNCz3HSN=L+keH7w(h?m$5i5*ULSua2?ke zYgv$kQs`42v{u`kM1;jB(`eT;P!$rYVtyFeaAoJ4eXHN=L;OR;Vdj~Z!rq&PY2fxb zEA>4{_c=7ea$aoUbJ*_rX!_28sUo$}Ie1FKp*l*76xK&9ri`Bs+J5jY>)*)80I%|* zOWGH0sYOc21ZE4RRI31M9UD>*6whGI!<7&|D`)`h&PJ{Q>@O&T^hn>YYqQ%=+CyA2 znR*LQK?F8z=)+CN{Wjx{eBeLJ&4wKG!edIu#ipixp0&(7gN-BVg!p$O{wr!;w^Gdh z9m1h}CnzUWb?TD-oy@A;!bDUyv@Pj|j{NT7B0Z#^tsHpQTpj6cbU}8@L7(l{Ym<$c zUWQDw@u&F2LRa5_p4G%#e`C45x0U&T3{VTWJSQY;(vwWfCoH}7$Ymu!4eG^o!4buN zi~jO@lJiz$^c<0mgE~^_nL4xJ^%j3)ZuvmfEMqmBy;3C8fCwI4g@HO=ijox|YrW|` zdC8i4AOlTq3pG!JBqQ|5ux*1?(2k0&Ms;6hO>lHaO)*6Y!8qC9-rQMsrrV%I%jt`( z^y=Z?7R`Kf*lBD2rFgE&;tmBDS_-u(E%{iI90_>)vO*N@ivaP&f4lPYNB8BJ8fmUD zbU$NhP&C;>`C`iQiQpO?H=6J`iY^^}-7AYNUgYm{?e;M-y9y^TmOfF|_bWT8uyOwE zjCAR)yYTdUl*AtbHis%Fm5pSg5 zbU&nl#$i{n44fb*w|+kCeC@lt<`NE@Xu3Y~H0qm47;~8TWl&u`Jt-WxWVo3Jis(W$ zO{g8@>y*i$U0=`!J~$gWHGN-L5rK)qz}%EQt zn3b8e2&}5>Me)3>X=~|_`8Vglb608dv7Wi;q)&0b!cA1*ZJz>Z>qf+TVjAF5 zT4`ZJJ6F$1B(2TBzL2x4h)7!}68~gtxuS|KD7W5H=NaN@l>=$Z@9mRCx~io`m+kB2 z%Up^+x`g@s1r&}Ms41PByQ$sO6l^u;4gS%dlZLp6_Azz2;UqYnO&n>k;}^4AJCv9U z5>ZUek~!n#=>RU}L#6p$leBk~g#<8J-cl8_tHEXd=6>6*w=04J)4t7C%%6&w&9o|2Fq$ttW-?5REyf zp)``A7(C7{z1~VzW}p_xE!QR+c2-Q8jVEfrvQ5imlHz#%-SpeOt536~mNT6^ulw1S z4WDEGSic$Ga}E#>cn<&;o6K{+o!k(!Eh>n**O^29?d8ArD4?T&Y zm2kJ$-R}ff>b8`|t;CDD%#rA+6eB^#lg7HvG&M(|&QDU*F-60MOyT=Tp2Cby_7sz);0W@zxU|>JqqYUo{YQpW7Y+v0sz4IpKT~YX3l0t|GFz(YFOE9upoVT z@qPCLBs(sbP+dr-HOa8B4O=S!Gb;?pyzA@Zv>>?*YEYgEU2({4em%kcmXH)*7`L_` z`pcF(Ikqri%XV+ehBF5ZdCa5Thu~$HS=g?%#BfU#f5ehNdr(GXSWnW$5Dmke7 z4d9t&y&}q5?0=t7p<;xna8pkzUEmGinc~|^&jmzVC?p3*{Ku}{HLkWEmveMrRR(9- ziJH(yh{u+~mB62D!BA4aWsE=P{7xX_Je#+E%eO&e#2rD#e1OOaCZOo5=JmkBWpqHT|iUX;w zWgX>b+xrV8oMzkSZ_CGZt|+{{!#RYTG}q>GrY)f_b)2E!b2MRSH%jv#pXuPL~+nAb433SlM%9!?DQt6x>HwuyEHeI~OFEa72?B;&T~ zOi3m?rgV=<#&i4AHr&qK5*$EW;_9gT1|H5ZpAv?09r5q$o<#(|u!Sp1F#1M(d)c+) zq{(>>v{2Uor_Ls>N+_vjQBeIz_s3<9LUb^;l|T|sD|F;0h@LrTzEy=W3RH^4zWA>~ z`2$yT$~i^sz4FW=jKX1A?~Lpr?S4Doef@_x(ha^2iseRjT(qp$xWTYCSZq z31ta>>wHAD9niz<%Sg!d(Wy4K;?q1(VF8tCAH`4aNNfZ<`ox0~<-4?p@Qyu)LjW5D&^hoGFtDt< zc}Emz5(9_R1=Ur$^A-~XEwSnZcz-~1Uk%AG9dJ6+FB_4(!Z_^1{GGLqrbH};J&MuJ zLM5Fg*4`_j>r;3w7rQ=}kThd+ju~<( z{)h<31+hylNb!^=az`%43zXg?vOIelT`L#B=2OjjdhMqsFaUE5w;P#c4{Cj#?GzEi zWCD=LAI!N31#S;gNTZIKv}|L2@=qG_vcT(X2w{opsW+dZpGEGrDaf5B~M(ATQ82( zAcfa!UuT65?umjEj>?94BO4-PaZhh-CrYKhxT$@3;dqm4|Khc%TuAvMiFZSa?feVh zGM=((MxYR{Bk zhYQsvbYtX^L&=OAb-2tVwJD>ST0&x@AM=il>V~dXW3ph~2aq3na+`{9dY!vKXecfq z5^7E3Nu%AGnx@pJe{i#saIHCc7}fFNq+Xp*w!pba$HvolxcPNf&7ON)=d;=Y_s}l8 zK>CP;q{cdcs*pUgL5+s!&*5C|%1pnwLXIK6l| z%%gZ}O-ZEKHCoDNl6vZBFO+;b^N)T-!sZ5nt8CGQUy}F0!w|Vo$WaD?-c&e7S3-unCOP z(p!z^0mxG0aTKJM;}$(!{=+s8+I@$9_N}K54#lH|3njDDE8*5+nR+x?olQ>g;(JXa zMittW^32FSpBGWizU#f!_^W2Ne~gjp{lgk`efStCj74Z=A96yq-U<{NDxCF3SIH#+ zWy6tjxJHn6E;Wr>LVQ&e=sn7Pc4LKY6=ZiM)IoFmIp8>5Qv1k8TK_BK#`@^OzS^co ziy3?dPBIKF-LPVGDqb%@_ju7c$Psz)psj8nBc|ywEA5+o$6Dmx>g?^k%9Z;7?SNXJ zSD~!aMU}_!%=V11_4yA7Wy%v|yXV6-%xwK(2s3-9gBMRydl-B)Rgdtkg80weui~bo z5i*CU+G{tIXQ}Vx4aV3a2aSw{adv722K39rw5j?p1Ft{m?H?L`$D<#H5r2!A)R8wJ zmGgFNBhrH`b@PGx=%?8 z;$=0JGM*Id*7Eim67!4lGPP*@6go@uGjqJjWOxFmG*LIlYu`y_%-jgH8))(dxdYaK zHlnYoejKcqNAimnEe zUk~s4u=QByM4CjQzYw7H3pwe=Sv5@%!lNiF`aa4gA z^$oa0yWvb9q;!6n2$)XOyI z78O`u!E)cR*r?^H+GfqsyByapW?MJA+p~{5gD)WK(4S{1OYiuz@~B;rf>2eSchqMs z*AJ2jT^cXXt`<+wZS5KGzI7|qcm$rYPQ~z@iQ%gC zg?tmO91iZ=$-VGYB`&jSBpMis-mru5$udNRtY)fa%+{_#+DS1kDm>i7PBv-5RvEK}q)2S2?PUtzdsWhF*ChFI+TIeVV8kpo65i1n=+)hn!FqcbXczyN@iYlZY_Q|Nca7wRuG@m(8LO;Y;_fx3{WQLaQ#+^7+6W7KGZT@l-U z_1^EkwN~6p8a`!{fI&A0Kud7<)ps7)F8WxhKicD(vqjpz`4QOV>K^)r3(ZU&N!B@v zDry*Lr|9TU-vaD?jFFAtr@TN}LoXmw(}w`DdYlDqhbPKBi%3Jb6ZGj0SBiz!XD`PUk zksIQ8Y~CGr23>$v9#-cIgx-I6p`;4~c#%b;$lr<+jA_;A2@33xS;uB!$EC=a%*=Wl zsxZ&uxr@yC9+VPIxO4yZOL@QchVZ^`%n?d8KaOZz7vgV`IHm`h+M?umW1GWjpz_?V zkZqbUE58i|X}Q5AHIhSea$Ho(gUc4c@&>g(fM}4xF}p8v7J;CbpopUG>*maK=k2h&hQ#C{nsic~=#^xs!Q!U;99-<8MlLi1_=5fKBa*xnq@D54 zv`G5z1%45;KTh_>Li&#SG*(WEvod{jD1TXR@vr)&L;?bTi!l%n<%r-12#I^*o#U2I zB{gi$bU!CeI>B5D)~|cGPo1`^#|>*RO7#YdPGN-cbQok1`QvfjNaxdI-b$P77+^$! zHALzs5^xQZdc>azKJSVX^ZP&R)EuNqBJ#7f;rN5&vGtEE3mxh|u?IO8 z)Yz%6%aaYRi8;hu0*)w9Wu4{A~Fl{ZREG%9j^#8%PN^ezD%ixCEJ@RoVi>h`jvr2JIrby+BUcZ_fh zb;((qY7D;p8xW%uFYZOAW%hCePsNDa)@&-{_LP3Aki(%m?Q2+uJ$_gS%1S8~qqGfC z#fRg2J9eS@tb6|-FOsq|3kGgKtK<0Zn!8@`C1_Vobmw3=&LXT zjJ61XQUPii(q`{VQGj`k2<#8^9jg-_$jcC~4k8v!q>MC;=X0~DQ<@l@1u!BBbvku#5_ z0z(5>nfEtH7bh2~^xF5H?ud?5>d?}Ib?8=KJCntKRPB;Rfr^Np+T2!vY0{ZCgq6(N zkcWyCpXifxdvl}?Ku!t8V!JWnmOPO$6LgBrDz2Cs=BMp*-cNOOy-@j@^;hy@M9PPW zcNVE+0c2zddc6qVDVMqeU8ru^6X}vH3DX-OiZoR|pa=)e5l7{KAeeZRrG({}r-3Ys zeG`S#pbOHgShB=0J*wnsG)IK(Mw(K-zb%ERz}bTFKe9lzcRc|zHtJt zSN~+(7S;lxF?~r4<{I2gCDVwKY0aJK9OCboUqTUEa<|2~N8d!n z;zf~`0bgEaLW=5z$HmT5x=mOiG!_EjUA}C&&tbWT{-Fx94)Q?4vO3>>lDo6aVMZ@X zL?6i)zu@AMdUYF8p+5A3oO&}CHZ9#0V&2@->fAUlpgu0td9P#(SPqVI5^=WNs+f;7 z_GztMVqe@q@ST?va%leRueMG)qMLN^>olDGLfYc7iAL#9ye@0O~RkCLD9VD~Dm~hl-Cc30#zazp;A%DJ81JRSzHc zr~L#^4*-DqpC7gUS32?~)=%c=uLqyLuU+n@#_qA2Ll?GI%GBb`jj*3UiYj;!`8gyT zrxc2m#KgA2r%SG)GHem4hBV`0`C~#Pk1K9&^aNf0#G#+QvIqk{p3q2*8K3BCt{>P- zC;j$PaOO(T8-5>@Y`#CnXpPe;=j}kdHhbf`HIVL5lCrUGCO|+8iC`N%I z7uHAIzFTx*iaN+Yl~RaN6eUC^ESQ5C$MYopDdCMOeca$V3+aydu={=MR7j`PnFA!F zNxiF6a;=b1t|@%N=L_+03~-E{B?3gSF9b;TBE=;VAzy(GXr=}dq*L3S?6a~qil#iRDUQvtqW#I@P(>Q;i(+R#&Z?_nG0$3$~2VF9% z(z^n8m^A1el%!jF^Tj#!$;83fr|^jMqsn0@dgtzGHbH%*@yTytVe{}^vmy?>?}iXn<@2T%07-=)*GXxH_E(xDjxZ; zHX#wp#tM-Y3~i;TSe&#(GeX$pxak>}BhO9E85QI@aZ0kacQSR%cNzBDz{buvet?H%+Ld17Ib5!|N`9xzqWt2{K3 zc}nN>$tgt$T415DsT+`&?8)+~=;f9*dCUa}QQ?>c zgM*&Dpwl`IWw)cnKj@b^ErQk$Yp76#!t!K;+Q++ig8+3Fm6Q@})OGc4dvpq-W*h>h zc64~n3Gu)AoqFx;2jjE!Y1?yE`fJwgjEn=TglEjpG%+xdHW+QfX|Y$khHQ)I#%V<- zNN+fe)kHn5nH5((o1#fP)r@iz-WWGk&zxi~nzsyQ0CRV3&ACpMII58BCWWSfh%r_5 zmnO4EkZ{x=S<>wIZyQVJ*OY*pMc$R6J|`8+3>Ll{euS-#b>yWCz4M0Vxrs~~P921l zofq;6qz^tnN%Rt>%ER-uF-YQYo1|Ros8Whe6^IpEm3;Vcl77{-AT2cRo%5FN!e!vJ zxUujsY9a{u2xXeNEKk8@9R#_7i@h+i8|mNYqSe*=Vw>d=J+jkQ&Xxl!h$E9c>va$HWv&S9#C%eJdPyWjpYN z5;o2KJQH`bANah0gy6)MAnQNXE3ZG+kn}+wLE9TbyWU@M`fAU587(w{x-v>w=Y^4@ zd6a3P4RG$2w=oYrP)0N)0f8Zt8ZbwbD=GGSlx;c%GSf~lF;mCNn0L#ZsG=BAF~zJ} z#)a{StKgnYV>hQjpMeZKNCY3I;FrYQa1O&BUW%#=XwrK$=Uj%+f7z14ywIrrK|8UQ z7(CJmBGe!!>!F8Va#~A!{SBEsG*s!YduT@{e;F)_oma?AvBW3<#zwp9cuoFh{)af= zS+OP@3&#o^!!P7KGpfPN2fK0yrNv&-M@w1{4UYUAlO8&WCb<npVxzZ!nSdbSAR%ui`CQ(t_fb1vVBaO6na( zBMM(_iP<@)$`e=q#dI?qgJ3@?G=YDZ|GGe^CN?cd0D{;by>m$W$x>3jBae$5qlk#& z>fogsqU?9wrQmCvkY=i?^fqi9Dj&%jZiQmvba7)m42$&D(bFjsu@5KCZL$BtT8ZU# z(~Ilu9kk9RfFrgWWK_T!-8S;wlf@eYz9DY`zS&%C=*8`?z)6Iel#|nyUVcnbAhnwP z5ZG3^yz_CALT%$I*1*tN`0`N+N@~vZ#_Z@kqxpz9TKi-4TD=nFszDf3KhJw*bM(Zi zKMD@t`Tj_-^gPM10n9L=^zupdmrAd@zSPr5%dX{5qK=)h+N$diBX(z~t=+aF)(Buf zU8w`|?fvXSv8WI17yf^|uW_E5BW3=GVLj#lr5N`AW{F?^J27lnTcVL>LKg2K=OQY7d#-Qok-dgYn1B_EuRtO-~`NKkxBDYJ$#s(q(V_erYK<0t#7%z6p#)XCeB$ zG2{xXB~kE2)W{ahn>&jq($GrwNK6C{8Rzd4IdIk@qN0!;FvhJm6=fYDE1Diq>Do{L zdIzVDkLkYW4>d&EK_%KqYL^#L=4sqm!|retq??#P=IT>66ht9~v3IJc7Gh1)gC2rP z>?PZ4);%}%Gj|d?;pu7DJp?98NgiE9P8&1`jZ;fXbWt^w?+iDJt+U<{A?5nA^7`oA z*Ma$F9kKadW0}%sEU>i$)W= zV~{Xc@K?W|wjNFl=g#MlIqr)O=guw>p|^k<1Kq)_NVh9!o@+*0wmGA|3N#h;V4&DQt;zTr9Sul=X4HJe zFxPetFcej#4|I>o@lE*^Vg9|kOyOiRR} zuDJBv%!QQ@zq1**j3viocZ7WmjmO9jX~xISJ63u~qz+e`8+D14Uog#`)#N6Afnr ztAo)1frv$fsk3*WQdvB#;07W9Sd7Kh6KITht8U_Fd4sqyfjDkhG>$E~iF%DJks(Kc zJp)89-4yer7x5JV4DZ7}3>#B(miV4UOkjfonp^w*tJp*$(3tu{z(Kn9`Kx%boNdrx z`kL|O8pvE%45Zod)j<_NP96+I?q>UHG#MyyFH_sHFrq$IYo|nAvrrd#lqGnNu2Npa|Z<>uT_hi=>>JpwruDG6rJSz8g~ZE>?H6Tt5zY* zz~4dI1&1a}y;!Qt%JVEJej`$Y0P^V>m@l~Q4ng%LVyI8;^ZN-~3w-H^OgMnr;PHX) z*I{h&xY*5{zZhMbh66l#I;+TgO_OvTF>YOHFa6=J`TeruGHuxy><7Lyuf8qcq zkAeefO2~+D4<@@y3HT_XBh?TG%%4U6D=ZekGPlrj4CqipwIFRYSIBEJeANr9Z{0tk zI6g&nF#Bqc)*8btrZ`Z0prB%uBh+}tANA_&w>R8=A{Zpo!@BwCMj+eR882pSHd=P5 zS=`(GI>4f$F{~nXvwtNf)ii3U#m#eda)dN4yse$5Ops3N^rD*VWr&SmP3IUdoI37g z3iKE7*VVBLYL2fjo7OS*TzInWIdL5*(Px;ER?Yih1pL_AKF&roH2oNyfY0X>3pWSJ zC?ImM7oN5C=_8!GPKDM%xU_e?1O}5ui1p)NUZV3egG2X2F)nHp<-;=oC`tnp)j_QO zcv5%YiFH5^5wsn2++TTBb6DsO-W2`!5tQ&j$_w16I!hP#=j(OV)?l4^~v z3cV6Glqpx3+Me~9xUt;s z0=4QxZmEVCiG1le@^bLxyeI<-uhYaS7mDv9cIq&W8d?Sh@=Ycw$>2us_7PxsCk^^Fn*<2C?Ik|C_ zq8)W!b~?EU;*2+2!^6v6@UXg)fn(*Xbe_?&M3ro%91R!PLrM30q7p-X?Xyuxk1#hp=Tmtua9f*=F`-17NM;jeWj(D_&xbu70@*KVl;4 z5Di*I&is!iXT23EE-I8BZeejIfrYySwC0rt7523}g;P$-Gi_)#_>V9(uw8@gRLL-b z7OE4iom9DQtH9PRP0O{SC`)2c(-1PN7#%TzwXeeXge~^-ELijFm7hklmHF2CeAT_{ z3&H+O0MZsk+tl9v0cpb~O)ES0l?(T-T{J&E4$IxQi2{jXz0`eJ612CkN5 z2CXm}c`CspDiuE{5s9~LVF$VAqwF}ycb7wvCXLY;ffY(wCtPGFR0v9VP$2g7%t{jZ zI|o^w5lo3p$prD)Tux8GQH%ZIG&1doH`KfP{f5!?5m^HsLlOgF&KlVDO7g+X}{Vo4%!o32G~ ztOMcJsur#B@BQBCR*O!{~KNP`G~ieje%Z2pAU*zT>cr#%1IX(wz@w~Jx0v(m%%}yG7E|$pQSeroXBH?4OW)J7p1vIAX|T$|3T8Al#bf+78 z4o`SI*Q0eqX`)murI>pz{CEzxaG76dFnAse@!AF{JCYE}SaorGp z{PGE((SWmjs2L7$KlTlO-of1}oVts<^O_RWbJ9iS@D_C?)?y0E2_g%~jo#G=lg3^GNBDjOUR$#YM zFrW-kMHx3ig5WC^DR!HRI?V>pZIoL<$w1(1Zid|iZE9UI2^T+ItytgfE?tKX=LvS@0u;gbm+!SG#Hc0O%034e$HIyK(QLFCz z*6f!Y>8smMGD4P4pInLBt42JprM4wSDU3C{^?_4yAF;rv(6ud`jckaJd7?s3R2x0K zYuPYi^MriPCLGLlQ`=@z7UgzFXqVyktVc#}kjuKk!J-=HPBk69H?YQr?O6%Xs%@V+aDDRZVu@CmZ2Yg&3de86^O16C1lvkS#^%86^p@^ zl4A2)7u0?D7o?jJUwmc(Gt3xDwFMgx`PEJz0t8VI8SDHg=?Cd0)|lo?74xk{%JM58 zWsP=fLJz2#w~JDpQ}*|PCkvL;TFUHjKK|)aOPlm|%luw;S2F0lX~9axxW_#P2be(wapU4&xDIw?rYbqyX_TK^Y(#fQeMDOS|hp07|4H zicN`4sgxi{!}|9vUqJnWU<%Yl(yliN?ZM~x#&bwso)@T_=eg)eNOw|_PDJe_5VYl{ zci=jIBMOr+4UDQmg5RL$KYBT7Q3S}ErYYiT|GtWR2#7cVg=#7l%mk9+Ovy39IiMAi zamqZwJkHFQP&scO$aM;Y_Ftl`hvtryB2bVzmW476Q7N_-9Hl7Y1w&l~w{Q|5!;AEZ z!vVypR@h+YDPgvihJvrR5j4Vog4|+> zl86cwnJYr=kwla!qh(U*kS)t&@ssM)~! z*o`kT$tH#_unBh~u}UmEKVbK1rWYlpEJr^#E*yoMbAwSbMKeci#&Yf7LL~$C@JkSU zgAp_J;!hH9q1B00sat^0ww7T}W&6_WsS#IUtaDR2;#fj4hW6N4l#?M$n@R3~vgHdG zv>Y~xkQTJ|V7o0ZXnV)Am7Ae{&MjAgHk6xa_M1|wLkIi6o~AWu*{0Et%<2du^BrvE zJs#s;b9;=43kp%^T0+ywAbR9?Y8m-B=cy@cWS1x0viWQP3GwP-@fxjC;Tr z3oH^03d9Kql&yb%1B3!F*R*HR22f^UxNcS~E+^Wjt10aW$M6je#BHTqC15l_${Aq@CZIW`o1r#J@?`#ibK#PzXUh)@`v7-S-if+LgzaoC z#*JS&d+zI6CU^Ze7TqVkmU8}BP|ETr{Bx-+mR^%g zbL_&mZ|m75glaTOYxtGXN)MN)m{|f#>On>0B2SYOfL&DYyX@Nh&?y#2F;piUZJ;2= zsM2E(^L@E^qqb5X+5pV2>$NTfjyTxnWzaKiBh7=hb|SNZ1ZF&L9XTADbrCunx05Nl zF09={h*~j<$q;EqT08UTcJ?}S4sWWi-Qh`{ueaDNi~TM4C>=s#2kR?S)rYBAZ^D!W zb82T>u^##0MQ%At)e7LV{oY?9#eY~Sh$Ng%*U;$0X4(fwPnbKs!>+Mlf{^^=4XiPF zsDmOx`Gh?x?v}J=<8ZPJ*yBbF81OSXe=bsSgSO|zDYfTb(@W+Qs$l_(Z}UR+7I|w} z{h*ZXHEVpB{TQZY-31|@UM>=u2GCe5x?p1sZ65ClHN`33R^n4W z+~E1GNVVeZ*JbHwn#L5gDOznygvSvzy@p!4*C{e6OdA>g}8>znXd-(Gt%{+iEvr6#DKVRs~IoZ1ygn^JI%`W#u0usa0Jl z@fyRUX8KdaG%GNeY7N75x8UTTx0Wbqp8v+43%DULWO@Z{dCaX<@AziO`#(46i@e2io3Y9?2Je*D-WK2Vt6dcqzRP9*^CwxtBr@xBXaE2W_J7$v{l`De|MKs?#Mb$T zm*A)A72kyrlESZQ@eVSZ!wx0#3~f&*3+CHqj~jPR6i^L&@xa3{lTx?W%T{QA6i9!f z!>zxQDH7C>e{^V`yZ}j}1G)9;S-U(4uXM#O;CccQw`ESqxfAq^d`FWYyWj6~0dhx| zy&&Np{Cc7>tc6GTB8ni0)FYu({QzioVKT#YIq&Vvd^w-(j=zkVFoh@*yT&H!#t8kJ zWn9FdG@uhv4`2iq37`#C>tGfzQGjfN%8dP!15kH|4)*@+AQkNJf-9i0c=aQZw9N>^ zAZnot)9$bSHUzp+nrXlpASkCap*hZ7gR}8~ucT?~IT~k0!3LxDom2}quD9>U08yYr zQ^eu3a(KC0)no42_#{$L*`6ps7>|;yVy#aj>Q3Vx@aFt{Gv>|a3G>^zunRK07cj`~`_cVzs;iY;wCMd@lK zx&<8lRwYBShKbA6F3J$sP_<9>vd0UhnN?V{XpeS38Kh2aFb)B_+x4bw*b78uP<4Ok zQWW&WHpW-5Y)Xf4S_RX;B9?LQSI!XzAEg0O&CA!5#VJ+TwXXmm5z zeckqmZ3$7z2J95UlqKSs)Ay)QkA;L(lSL}agGs#B7z)h7m1a?L*D>CX1e!k8uc#Mx zLg0ai_MN06%>0WP^QhdX6z!oI zWB6i$^>gpq3eiizd>N4wqq&CPVi`Wr?@*0BfqO-(cZI4uEbG%XjW!esqn7eu%kDwt z;Kt~NW@>s$kej#x)Ue)PV18rVhaiRp1r%#VsT&}`a_PtZRTM54t-v05dN66G!{R$a z5C@g_%HSTW@69O=lOl6;`8)|%S(BALU>|aJi8zeKlcvua-K>bQPvFT=96@*MEjG}n zye8_?4w-1R(m4gqV!JYib@?p(>Y}wNbC|m^r*q}ILfXLl#lWLmBp@y!=;Q&fi}PnN zF@S$^-L#8eP}wG)uz)MtriKd2?8ds!TW5iy!AtASQ?a^_YVV`vB@NS=fgu!I|5pfV zNm8H$5E&egwW2jsJ zV|$_WAp7z@?}zANEIly%1}H}}mv}xSZI2v6MD0xDIg@I_66|};UFiIn`lk7h5(52z zkT}yF1Or#h@oBuwuKom|<(nOfy}bd?jL01Y)fDkyQ6y!JPpEf8NMh5xcLY_Rz)H83 zv6aeDp{`E9vV>h5RiuI1uW9_CU`lYQ9Ohw-3PjaqUKq$dCLa5I2`0&y4poL5g!~{(wVikOa0>n8c z`EqJPj zyF5kCB$d}uY6IaiO!@7U;7${^CzJNfvX##7@fL)jCEdM-t|GVtO9Tw29{3s#Cqr3l zu>2A|_z0|y-X({9<}V-hvN`8aP-w(bQYu!1&5pE5o&J7D_{~Si8?E$>cC%W)xgb(l z&Ad(0u5}Dq&Mt^;jorCYBR@k?@znF-Ow9S#GE zC5~{lWIMO-jT_-gU)oGhB-HF z(N-Yk14nE0c-wTgEnfrWL(MIbb_ZahLq>GZ$gC|~K7#xZ|Kf^W~K7p!}%U@fqt zfG-{n;d`eGel@LdT1*Y&Mn*h36+fYZHw-6b(guZb+%B8CZ1tyR7&jkja+*VKi+~yl zXf20c#j!4m*>iC5WVAcSZB&+$VkRQhul$Xf9@VVZN|fC_muroV&nKgQdp{UEaK2m8 zZx(VAYI}dG8qRTy@qMDx3YLMhxG3-BwKK1bvA0}E=jxtrrfUalU0e1Hjrv^B9JBa+ zG5=+vVFjS1=CvXM%JV&>X{89vC87e2RZ;d!D9C604qs$KB1GMdL`VYx-ge^D1EyBJ zuJwcIygCPITt)nn(hLRu8q-w;c*04oorfoHt;IDv3~eb57vj77SEEiFZ29ey>34p0 z{=gZ{%ftDX=XIXql{CjnD3+LYo{zkb@Um-L_P#-PsO#O^ORbOZgP(@{mjcc|9{NZj zW(O7^2Q$Iz*sW3fa`&7Ce5KoNui0w*Rb<)hWAt|~v*!dc>Wa)T;r!rrY~`3BD4QuT zLLnsVB~M{6`FwF$z09JV3E~Q+^!Z$BsmfQfJ{0*Rg3V@e91A2#LbQlE?$y>!H77oh zh^@KyQ|p9e#whNj(0%Cw(10=qz`*~O+|m>eR5O2 zW4jr>mjB*w%p5eiEmot{O-Ja6u4>Pota^>}V}kGqXOHoY+=5J^`L7IosD$o{u~fA-n3l?wb=j ze%SD`4ih3Tc4}iv@=Ang848JT0WYs}{R9)p7BcW=QqqkBVSch2cd+S3VeF)1Yz!R= z)=s^|L;+zZC+E(g9f&=6yg~jx<9Ime9l>@5?n8Asaj@QXh)o%@4f7QDT*m!L$4V(! zay1}UbSsq}sfMGR{F_lbt`Ux5c2B~RKUW_A9v(x=&kW^=1xCR4Zqk=k)4-aZ(D|QvGI! zIM9+!^VL?P_*2hP2)@h;K2c| z)YGH6&R*zO7Yt`6sKl~XMhDETJQ8-F4}oQULTf1{R`MHrvw^F|y4wX8dM(ifvI}|> zDNIP*2XrnEPiZ*RHI0Kt+{L}OQD1EPTbs*IM*A=K#|7P%iOp5j);rZRpnz8OMmM+u z!EeOsBA1MZ=PSWAa-=zrj|RPkruz!YELIa!{M<3FY;c{T#t<3s4R^^5 zAKlXPSlo)jmVAPR_&y`?;4NI2Fpvv(&;b|ADy9izC@_gS z{mesi1tG*Bl{#aM2!2mMTKrcE+YU==7fdZ|`C`zIPGgN0Fk;@HX=99Zixiu1zn3o`Sb8Z!?%5?J-iVq*bp{lb=q-NtXmQpKSR3?3mn za^!c#%EB`GMKx=$Jpc8`)CsDuCxeOgzMkHHqLoiaOrg5!d}?<&i+|gFQBf2? zH9!C|5lI^egCGhg{Nis=Jk2txvC3MkLZF_4`K+9i<$hP$`kO>!KoHQ;-w_g*W8S}@ zJmx{`)|&AuSfbyB+Oa+5O(?tBFvVDzh5c7?J+JA=2s}HzAA=5SG7aIzfIBaxIzwu~ zrG8(SzmspZ2&~qV$>y*~TE`{Jo_tXxef)-MQfVo(y8Dd0|jQD$A!Kn^@C_CyV+rTD?7&m*{MQ%&{J_+tsNP%BPQ~JPE!tMh~q0q zj_YSvmsT00fv3L7Kgk>(_%fD50$K9G1IGM26zt#{PK7aNsg=-{e9~A{sFtV+i^>-H zB`xz`296L+hEjQ zPaBy2NaP$lEK;V(R<4(~-O4JppIJ~@^=ihkq*1SGL)8Bn>{7F z{<9gtm!GDtf-~0nsJq2_A#ZKfrW?OX?#PX9k-3``4XR_smEt-vr;OY73;v z>@y`F_GGALq*X0|)bU&YlK#PTd8@wO&zk#2;DHzOU5~+=utB-7>L)pl>6v9F8H`Yz zLiVh(mt##y;W5eyx&aj~*uK>oSQp|<`jU8b)#dK6&13wL4~zClL=^wmyB;~c-jdzS z8}=jhe=H`C6v`|-Kl+WFpSHulXl~2e8Jp1A{7v2dQEecMZYR9pU*&6Q&5NGSg|7TK z&;+D|2yMi>r$5DStgg`1M_no>gMYcwxh9gG(nHxD6i>f;KR>?iJE`Mf4mtqgz7VjB zLF%-r;QY+Y7DprXA8Afc-<$EzDp2`?*e<;ujC_Fe4?sZ0#hw8zVrZ}+1WX-CCxdYb zrHdqvLQt8{xFv`j@eR7iVyTnOOiK}A%7kPEE{h{BgDkyZGfB-P0((%BQJ~Ws4G*X% zm&xQ57o#m^gd{O=U*`q~DZL0*@QS!TshpB824Rl}F7&#DK^p`o3Sq#^$mWAq zTTQS8TbugXFTl?dcyqwah6Sn3!OIOIa6Xq`0It_2aJ14jRZulV7PJ7#fM3n)GKDrx zA+8Sx3JR@un#`KDN-pfCbz-$;MxQf+os{VLm1qMZ@PofxZN$v-`P;PO4w)c zq8*apYv(lyDC|5|32H7eMXGt#G5Q6%mb7V*YJUDMO4Ok8Xt9($ai5@;S7|{VcdWa8 zYYnfVe%P%s9m_cr6-hT+Dg zIAVaNK>gU26?0QSNWKMq@s~Q^g5$cL!fJ8*|ZB%5vulCVG-#V zaGaw7`ep$lAZCgrR;7|@imh#r8-?g}ew%O>m!?jLC*C)!J`}mX)J*rRu4Nz-)48ce zbm7pb+YUqB#QG6pHrsj39saGut(PqqZXNhd5`Fj3F~6c?lGcbXcUi0pa%D?&bF2cL zbt4J#XWNNXu|_W1kJxK9C6UaeC=7 z4ynS`skMAZdq-MEwWT9gRY^0MsvY~N{P-u4s|PnW%=nLsWBiX@+P@IF{#&G3ipu6s z0u6#sT(Vy}_y)$X`mgpT(rF<{)N=Tg0(nY!1r*v&;H{Ml%}y(V>J7W=m%#oJ2_@)$ zUDMet4yToyU=3<}Fg9reAbf*jGT@pNBgK5kiSE|;ahJMytMZAILEyY&nI28i zz9B}^bj0|p3pG9frM6(sH7R00%-7R7J-AN-h&TS%DrQVKG>kPcq&W~8PA#M2sX9M|g!{FA1{gk=Py=VUZHiU3qdhJg zUv>PRvJP4QEn2$b6wMd{P9J^1n-e>F*d8s;Rk7C4$7PLJ5%ORED>d70isJ6f)^IT5-`F_M;w~ z)4BvGJB;B*>LlWdGE=~4xuh8b>{2@Zi7^Svpj^CDW7dU=8_oL0vF@(ey6Lu3ZG#o%EZ2WiaSWQ005j@1LYc&VP>~ZGKL$_{abN#Q(YU zNZ!uE*4e~S#=zFV>>ma=f7Sn8xF6D(;7{C1ufH>%YSATH9&IE`KVB%$9FmDsy+mA5 z7Kp%8>$SK-i?D*?h7Wi24Y0@-Zk!w6R#+pe0#zxf^p08TaWeT$Mk4DpVW?c7gUliL zz<8qM3!ZB5vDMopoBw{BacjAlf>U3KW*G%8PhZB`mPCuT#fvSc7hoDS6n?nwC(%K( z6q6Ot*tT&|p4E^km0C0x38%>)Sg zZsD3n14e8nly&i%VmYP?a#w+Gwuv%j`ab7ozIiw`6Z2NR2_@y3!kR?0fX5cOt@uiD zTZwi)jSYDitQmDAQDK}+E@W*B4O2~V ze05ZT?#eGn_ah+s9hNMNPSRyAiKmkr#*G62WH8GK1@V&VLFa~;pAXnDM^B{|fLd(^ zo+fJ5RC(Y5ZZPQ1#I7hqoMO-x9;;icpjd?w-5#VZ=-J3IwZ?G0U%vq6d9n1GS3P3; zkI9PE_W2*q$EU{5m8y83wiJ0Wu2rdtN1r{(Z}=BlvuLDO29Bjxs2)7GoAFF)(FO+) zyL+s^Az2)l0=KAZ0$*VJS|p(KdwW1Ss*{vqNU!~$zk@a_ZMMWYzoA^cwZjZQwuKcI zO?K5a!6ndnfe~HU+r9e#65hytxB#q4fZVJc5UU|h82ELeOA$aZx=jzmvKjp7qg`2Y z$p|M$2UYKvVK!raslbyL%x0RW#uVXSBDvoquC}+(1D4lH@o}mn7RMw->5C$XsG-=d ziX=>{Q?4m$E9ywb*0@~bGYuFB68_3zk;99?Aq5%H(ipoRx#Pnuz=|qbP1f9a~KzTfj!Q@J8zWlOQ}wZ5(ZyfzzCEYez}9bTUn1ZUA6xz>Fy!6 zGED@V4^I{;mr*;`cE`VU6e6800Kd;?Y9M2hBr3$)0y5(h9)B>H8vdr;tF{uvut~!a zpnqql0!K=~)NRF3UR|se0Nzjaunt;lKuLv?f|t@^yxh8V=-wmN9v>fJNt|DPwb2?J zbHb+fFLzBc^)N~*wyn44wz@IS%}D4) z3YK}zdyr8tf|huk9~E4-c$QmYPiP$KmQTg`zPk6yV2!PRVkKe|`&>c3I@-}Y`~~zM zkH}`6_R>o~RqEhpvHj=OO3}p0&c)Hl#EIV7z)(-tPQ=*ET+zX3&de9v2{fUqkpsL z;l>lcM{^TSW2(P{24)}{s^LW9A9z8U(^GT7*4`d0z22f)Rt*j{p4ujw%zk`)RC1KU zz>Z!_mReLok!+S~Oc88cMAhc?2G%8~Fbz!A^yKUSGtZuzm3XuN?JfEh98?jV7RM?g zm$?Q3lpO;D8J0TRg6N72Yj0ZBkP$y(?Aq$@5*Aq$91IfFr^IVg@<544@a)m?)?Vc# zX$}PNAAw4TR`Qwr0ch=KvHUlH`fs4rLSpBJ9{Nqtrhk1m&W|_)6gOrF24-u3U}~Js zDh5O`rn`4~KH-}p=AR^R{*m~x%}=J|d{PE|{QWp}~alz71;u1>8-Bcn>NPM(1 zsGHoj|1)KU2Y<+~9J*LS)Ye2LB;SwR*`J{i`IOtc`jQ<9Wb$8u{AR>L1Nn!IHo<>| zfwM3xt;vcQGyc-*|IH_&BqZ!7@C=dLkF$FK$>V^@sqv*d&qB)lCvc*Wi`UkFK>2U5 z=>O2?-x&2jV$rvNegD>BQUFmFC|<%a49uSaf~heEt5^{E`0k;_)s#;%wzT+i(Id`F zki2;72rJ@L_SP%>-b+;FaEh|XlZlr}gtK<6Y)0#0XR!|$V z(860FCZ)He-`(DjY|I>t^f1;e+1coVdG7?pJ5%L0EQS# zX%kCk-8(rc-AiI*MJXanDJr2%FiSC^2r?<6{^9Wf-YP9S0z~!n=wJ^u&+_9MPps|t z4?=bv3V3`=AU_Vest0}PM!n#C$@3jT__&^8-5)BUHtwV`|*EN zwWbdI*8l1Nqa@Ng#85cQ%udTpQybXRNy^Yj$S6?E(u~VPjEk$-KR>{_=N4pwE1w*m z?qL)-d|i?V^?(869X$hmf7?Y~bTk;62o59+4{ryXR^FJqzMBl;BsO1VzB>*B&7%{- zIMI*$w%rDBCJF#h*3^BwsIr{B&{05CXb0cJ+P4n)`{ZVkLb^f-L9CiOomTOelZ zr+nL_3R0KBkK_U_^nMEG%#QDL69Crm=3g)kEKS*J?+2%=pY>m2+P}l<|NS-%(UZ}& zhoK{!FJu$ODK1U-lA0aWJV(01<`-WG96~1h4d2yIgc>iNl zB2*g&ihF9{`Jl>f*&udR%)uy_41W08iUM6zmYkAg9Y{fv%Bb%_sw!g2l~1%B9{3DdJ-hmXxp zFE@ZI6L?qNg_F<5?Q)k5Q;fh;Ylil2jPnYc`8)@?a)^vC;;UoVb++}W~X z)(OQT8FpwU{XnYm+?db{@u)bNRYBb9w@AV|vlrnMCeIx zpzjdgRe|ws_uh<$CMYO05KYuXrm3Vjq67e}hm}y!gd_Lj(dRN7VZPGPV*$vs8VM*H zfb*g91L|L1bzG~nKT)z)&6+V1C8p2VwYCp#MU)#p*DvssKG#32o{%3txG4(NG`>18 z8qF-KfkyDU4$>SD%}xRTKfdlUNERSm&~)3jZCj^p+qP}nwrv}yZQHhW+Sc~PY|Ne5 z*@~!$`dR-nBlFAm$?|)c-dzKJ-m{Ru2PVk-@nPD{o9Z!bs)IM(#qnk}@?z##yDc+k z4vo5^)C)Hye&$az%rUddO=F}FoimC z=;1f*=t`=^3X?l((X~;H#Y^o`5TrM_hn{SQNb;jW7t+mboOS^fKOyC#k)7;q!$5(Q z{tu@byf!Jh?w~$8{z&rMy|;f=yRxCpaWOgX_zs%|&*oOar{?7rn=J*1g)E24J=X^6 zo9cl3jTd$X8SjAO7OQh0DwEIA<%dOTH_+NF5qvFq_8=AwS{KEi%D&+!3dvk&@dNc= z@4g4vwVau??}#WtpGUoWj1HZ^C0}cnHhK5@R_=$aMG>^(h3`@yH<_}@BnZG3qZt!+>uY@@S$4XOJQb;Y!bN6DnB;%z;; zz@&bhLk!%4_$H`lddj{ ztOQM$T3hiM1Vdqs^6~XgP1^+#$VsZnnIGsJjeS@U5|4O2|1HfM_eaQrOm&J$TFc8N zY~7YorNx({3lJM+niGa1LuR$S#yd!Q)+pwi)VCN9K=@>&VvGZpXsenZ*W1pTR}pzS zq7fZ9LOFi-{=U-wAh}73+1l91Lx3p~d`%h4AO|s!HhtkE?UfNSd(j=*R#xtcRUy~@ z$qLP|F@P^zxH2XH}nE_7iyW*B^;&fGB>PZ&D%%xh?b-@4BDB^eg({FW)N*ZP z({=*Ft(opZH;S}6%=~3d;^+f`A1sxj0Zd{0R_=kxJ}hlE3e#_k1vh-^ue%g?qv0)H z{Sova&zZ3J3udt`q++QoABifYXyba45ZflDw1-%R={dP|VhFY40@MoBZ6 zb7qdgE}Oi+MHk12@u)zDhQUZaD8f>W0Zv@i*Z-er%QRMUXmq5Y?OqZV{Z8>>Ik&kGZPKjwB_wbIeschyk9nur3 zo1VO`E!=@*C8PWPMn|o{RHgZ57tNW9=r;%?r=G5@oZ}-LR#!o$n%6iM`csIHu-Nep z(GSW{vz@yw1=m_=MBALaszoP!HrBSB#l`Xu-gC}Qk~+DF2#H2eE+5&2ZNNxh*~KUM ziL#vXhiI#|WolcSe_x|HoBUA?I<1!uZQD$Lp1OQmr`Z%nd}%(|>euA6JJ!($!u{m#bjHT2+NZT*;dk!RF85H~v*jG8ixNqwp_+mgv;UA%LYm zFu>P}5BgEuFg`1OZvLC6_h=tiQufMR&NmD(=iYBr;tV5SZog*h6Sji>C}0eaxEkH2 zrW#8a{Y;#Eu{iqBDwG82mvuZY5bL|BT0$sw}GIxS(GYW_$*fOYm6SQ+_=7) z&u@%${2bEt;p{-{&@%RzAsmqqqM?W9%myD@S z@`4=6E{T%ymMG~bf@@aw1ok(Wu}^2ea*unnn9x(#84zpe`Uh+P%zm5zG>xW7yWm+L zQ_tEFb21^^gDWWCZ05vlj&1rLHUA3RUy>tPz5g;seo3FyyORA0iy4#XRuprd|ZgLbWm2*MS5`A5e zf-{y}G7s6w{Tit?!BblwTr*3(Xj?Lht!2&<&^ETewn$aVT%VJrHfDJaG>t@e*yN)b z0&Ha1fix{{xMVmG4-6J3WozkEen+|d#TXz9jehRM-nXx)?nvF@hV|+!VP`laPM94( z3uvV$1@!46U^&>qIO=P8k#y;J*Hy@53vwC_5K)JMQmV( z9@fayD5WWBc34ZDUo&1SJ*)i$U@Y@s_%z)|Zmslr4PohM=6a=z&pq}Av z4j+hRM0*;^?c8qdWXE`1cz>)sAc^?51>8UhtW^3lyMGln2Wwq_)|9xhdx zp8;iL0BoRpR>J(Ye#>0wzgg~HzDDPQ(vc&hCvnCWLM6x2+JBfEMCvWQP?2G?qa@bp zx@6j?wx3pom*O59#SMjQU@6S9(vz4hk$4!EZr-iT9@YX?AE04q_AP>pAw{P7!a5+< ztl~Fd+C`lJtLB&Ed8)UIV4oL1u zn4vYW#jr>=q8n&^hD!l8386KvSRJ@J#7H{CA+-r7cPt$jkFXtBwuX%jTvwpAPDt9P zMWzdOkhQ^a+i==#&vhe)mVApXE3h@C+v#JK=iXMvB43ym3=f+mJv<@rngTo;OtfsS zrVSFuYl#sNh(6J<%bAEB?8o%XL+vTGq>ViS7ayrI}cV<(pSe$~hMuL;e zxHN^#Rrqz)s$4IFP#Z`^@dH{~Kr-&MKTt0lr{-P<(_A1n<7CSZO#|Q05y-Y+kRYkp z>dI)ZIRZ~p>gB)c(ibDLVJIFpC@ePBh%-QO2I=0H*g#L(B@I zjktxBm>{HpR>upzk%0z(&*IWYq2?z_vR{?{U<>8zS#4rXzT01|u7!3#f8!om*w}LV z@o^S+KB5+hUH*9>n+CEwl*h_~%hQDZRO;G|(U_?7MUbn4=uNbluUMkLOiFc8T4+(0 z>wooDe$iU1U3yLPHXQ*9ON*pf`g%}3U7YmqCLRo;W5_Sf+j+HUfjT%eS-c2bvD0$@ zppqTDlJw1y3J0JbZ=+C7g=(mb%S^zINc9Bk5bjsno2v{Drt3JPQLZiR7=&x$K3aZI zoD=EVlQlRIT84s^|IW`lUpyiI6E3Er7kjSK|5Msmt~b6{AK4FVRXlR7=>ydD2OVg> z34N*N9helTPo8{eQ3av~ra8_7W0F5lmv+OZ!-bDuq6XtS5m|4zSS?YNZKjMm;<#j2 zzLJT3|O{YUxGf-)kqZx3wy^?{H1xk&Gg zdFtdQY*|i^5jRUileJszVd(fqEPYlof<=UJ#$AKdn_s2&{97h<0Fg#zYs+$&RF?cx zP7t}Q(MZpzd9=tLWyJMV6|cEgO31QdD~h4iG#Buupqa~^ zJ$wqFyEhQl;eIOAW%=J$!z)o8!Q3(dOax2j!TWDbVCO3}7;3zc_FU>o!;dQoyhgtR zp#U1$;WFbp(JIiS0^wpA+Nt>^)u;eJyR93=_raF?N}3f zBLrFT{ZxYkBbH0ARam7h6o4;#-+I2v;v_*z$XRVF%ln}y!FzgDWhV@DnAWHEZ+4bP z;44$YTsEFi$|1kq9u@T5a%ivDo3w*aH+m|u0J(OMtgp!F9>b=(HE&kSiuqKb_V`iyFTgWLZbW{YlI?{pB+@8OQA zlcSxTGrhHehnE4DgS`h(b`^Fq1f_4~+A- z%&lHb7DC;J6cS-qW!B>43+DO+{f&D=To4LSb&#T*zgewh?mi6-U;rmZ1dJI8P(HAf z@5)U+209HrGK?i1O5k+jGQmQB1y>xn%o(t0DmMgoRKV`|Q1r^h%s^s{1S`Q5h%V(J zF7r&bTn4wVJGXY|HLLDuqm?C?7%eszlxu@jCeK)8jFG??A4QoVog@`L7LI^H1N}#; zvzK3U5a`UMbB&^1z=Y!>0Jpil6s4s#X^lcx(*gpgT2qeGt7dk-Zsu~Pd6M^_bvlyF zSpub6>lRvuEMo`JZN3s=2LJ8bKx>V?uu`KcRJV6?i_)#{0iIW`16fSd*Ysy6=CFdJ z@$D`uSw)E8ldK!fs&;-r-qI=Q68Cs$@@%}HuLB0|L|op z(^BM)FaQ9eLjSL?$&?KY|JTtHkCol#NaHTO{m&p!TWxXXN^k`o-`1Ll$k)k{zcUhnaCLQdhHaNHtcHT`o+ZyrcoQ%)iw5t@&V5>PuBt$(fB zO-~?&esMCp7?SinP*@&bSz``_I#@DQLEK4^W}o(xJ}68e-qavDTWu`Ab(n@>1idL0$E^ZQJu3Vg7<(5E4&usp!k)Ub(XcO1`YxM|Z?QMfTwans~@MTOv z@d<%Yud4`M0k347E`!&bn@}(QR~-V~{uPw$T*;bp&WV}6JYVKlI~T!?y_j;O$8M8D z@d8f6oM-w(kDyba_U9=r#VqJtzYSX+$I_ zT0@s`j~|(v)slvQ_Eh0_I}B=a+vWRd5A_2bHWDW6FBqrbm3rIKxpF@bJ1XZFt5WS^E@{{0G`{c0jz<#^>`T%22Z;>EZxR9S5xgY&uXh&b2Xwfs1LwTbt=+;G7 zaICfR5uktZ7y8Ut9QxFEa#7FU`5u}n7M5o<1Cq+i@6fJ9z2eYNxXxK+Bq336#q#5C zrGa^41`H|l>F(U%RgLFCn@1?;Z}z`9X+w<<68fP#ZYTe~QVKFPvef2-83*gY;rfGt z*+@K1tOTkiLmZ8~j#O~eKp>9A-2N3<)l_g~U|(1y1GO2R$lnrQuM+)DY*zPo+*$$1 zqykWLW+A=am;ndCow7hy-x`0yBK}CDK$+`&*W?A5@`5ug`##xNjs@7if?HRs!VOL* zmWr0cpPqmI^mX}1X3Nyq5Z9`Pwu*6b0C23`AbJA2k2bh7l~%bp*r1Tz*KC>+xPj@D zgMq2dok~1F2sAs^y@uC|xt7Wk-3F09NY@vV`mqMH>#r!*E1FjuP85i?&i8fT%Ungu zSy2bBMnU+*OKTR&Z><1`vP*ygc3FEh+3Z40mE;49t3i2Uh{Sow?dfU&^KKA<2rqG5 zod{i7VuXeJ?TayDlUC02w!OY?%<^HxUSkYtdQ9FzvL%@x4>F*?hu9e$r255itM<`9 z^#oz*ib*t6sio|BQ@=Y5=Rr3pL<&O&%8bO}6O!!Ee&z$r^WRY*pZ8H^8q}k5Uz=c2 z(boCVP6Wg6=3B^19Ipq7<-V&JveOkc)Q2DD#lpST5n|#5yu_3Ga^FI*UK_{HicDlLTj8~83% z^uskptab@3me7i(q>6-fVamRvDIgJ5`(t9Dfs6%*=?Bcy;;`(wgNck<7@{19PFtGp z7{5*_7$YwOFM0!61VTN;i1cZ)m$sRtBc$MYACP8_F%R!ypk#5Cfx8oqptsyg@wgib zvBJW7$rK*-&2yMvv$|FRPii#*KjK*&f=kO~{#7tuWm}z>JwBsr_)dI&YTMqGL57YM zuP0d=K@i-8nm|Z5xh*_2%qU6wcms^~A>alRXQf!94OBbp`b*=^n!jf(*ERhCN5|bY z*fs3Hito@W)SGl%-*yopZ!~I8)gsB3n4)#$UN{k>93UaARmJ!CfJ0&+UWh|Bur7Z< zsOKy33F0lkr&F&Pb&B_96JNXzb^SvCl*a(ICkFMfrzgn;5Wr9Cij5OrxLpKNFTAfs z=d=1FoGjD98!ykGS7#Oh+(_kQ-$%)f8oakhV1bEnO9O@~5OkLxL!1xW8ff99wsMP> z^KOBAATLzM4?6#|?Bmk~#mmTl#UaLUYoJaLy@Cru|gm{$r+~@_)o+G@3o;IUUoRbF+F$)YipDuE>Xlw z!C&fAIOvcs&v5I)_c1esQ>9zCX>J~rw5z{u&I;4?EBY~$w*AxPu|p+Hy8A@o4BNal z+}~}Q%D@`1K-QdvfIfH)uejPJ(jy}Jt3-0Wca-7{Q&*qp?eQlXB>)FwsLlO& zK2pSViSDf?5#m|TK=>5s<$7cy;+xo4^S~NbXAyTsKv@O{mL&&zAX-?gC3Sh@_w3;7 z_>6`5a^B!)!?PqdQEI@mWdub#$6Cx55ck;*ZIL1@nMcRz`P1~Fg)Hs=aR{79rnv;Dv-Fuo#{6VHzwy@ zF{!b$Yru02x}4AaQ0-JvyD_p`I&UHzu11QvtwKpNC$v)pJ8tPpkJ|^bS<2WjRfa%0 zkAsWxMINRGJYVoeH$C5^T#KS1T%`MdAEylY!uq0i+^Y=>S-e@0akUBwv8(iC57S2@de|CMF3Rf@ADYiX+2gCim zVnrxPdS;j`Dn8&#Aa7wO6ymJj0*b#a9f!DMiIO zp`!hH9g;Dy5LMEd2dx=9_=zFWFeb{z_g>&S6p%M7u|zw$EPvO}NE0aLok3bB zV*bHPBRt=BN%!gzat%)l2`ub_z2P~Xw23~Vha_*UG|Z+0HwKQ9kiP5=iuFY3z;kpMiVGuh{(@T-yU_Cf7A?m(3t6o-WjP5V`6-4 z>K_^>dWWgt|NM{B*;ADB&)otgJVdcP~&d%$%79Dnf??t+YyfOJ^#a#9SiJ zv&kAUkJ8)pGCOw*$A&2LsR5NFL&_ncM}?cWIn_(kmcNyeXo}V-{0(EU4XX%ur{22s zq_*beF+_{O`*LhzYD{LD>GdT~l4 zd}#%~stKy`{(DH&YY_kGL{nfnQV_I(St_s%z0=RXMK?uzd4gEb6dWS`Td!M2m*m&J z5=O2$!@hOBEr?ogd|erL-+rJ92*PDg(vvCYY8pYHZS`yJ)f#$%bHg@`t{Ix%R$07% zGX?P5>dZsYALpf2PA?vxsbi6{O9QI5Mg0-#qAUY&fXKUEbG3tCe0C}W&6|&AgEABy zoa(*GhjZaw)x4TxebDy@WQDpiLfpu@H!J@ zLmr!oId-oJ!SuKcbC+E33f6kqZDStt2gjT0C*Ln4OyAk6!otK~%nP@z)MpNeL9==j(~9Cv_BxC4WB=giiy~7fr0aH9+R2 z%Ka(0roAMi;oVRHM|mliR)EFqh#H{-SCq@i)O`iotgPxrBs7sTt6AcRlAFWL=Iq|D zh!~)wapl7KYRP0vz?`Bn1{T3Yo*Q?s%aBoN$KR#{P)tNWKn1OCW2|}oliuvI7N&f$ zl9|rLjN`rEz%^27a-U!YQ|um!wBC~;G}w*<6PSMKLFpb>FUfc#N>IWG|Ii%{vR0Fs zWG&mE5jOOJx*G4n7`gR%{bZ1lL=aY%y+T0DOfeTpXbq8P69n%cLnXim8xj9I_nFyi zn4jL)mS{moo30R_fW_~1Ay@oZt#ZGBF#ixg2oUsEZrI`4W&Nf&G=91Ria9hp6iXt8 zP(xMG;Pa!3++qr7MY+MenGy9mkvW;L;t-)<6@XtFqhV*&kf`@KR_r1F+^es80fq+} z_GLoPs3iSMEXOLFCpW`CJpFjJzr-|qRyn;y0TAo(IRXYB$;tZKzlRL!QR4F^=7Lk5 zsF0_~C`T8r|;^IZ*1U{fr;2xeUJ~;7;IiZ0M^q=<^!BX3sfpl`Pyfil*PlzUOV5;GAmA_5!pbN5!=7a-xy zJxTNi0>w<*~PwjA&tmHrLeh}rslo_H7=F@4ekz7m;Qj&fM5`iw@iMk zdU|i$_@dgo^_IDp)f|qtx+0OQif+mCt#JCcGYBcvGS)nTr+NW;gBOF^9;6Gm>zs?EN~N!S%I+y3qh{g}I}@JRoaD1ejpOD-JjYP+ z?cJ+GF|%?~{<>kYG*q&HXFOh2Eb(s05jnXi`Y)>)sz!H3?+MxGl(R0aRWIZ#Sx1%g zGV>w8wQVIePal*_)NKQ@7pSGVG>SYmkAW0_!P*_ZE&V2~XIG#($>oF$V-oH(d?gx- zdO4A~2PqdvOr<<`kpm5` zn*|3t7L_9ycuknwLAQ8-Il>p6j@c!kSi1tEv)D)rN_|NHLYm)E!z>Vm9;mq*_+S8% z9xgu&mnGVks>;yFF(;q&9NXZ(IdZI+nOKVl(zrf)IcSIY4r8Tlev8#8man6Ptk4Kp zvyS~n3PkL%QgbIViV6Eadq=SdgiOG{K-=u+6BE>ZgCFYg;TN@K*zcB@MB|#3>&Y$Z z>Jahot3lXpW=74!`LE^c^D##}l>%h^hjSCu+6_jR+Si(1y<^)d_WXI!gi z_JEp6nQT?4fqgR2)X}Ck#D|Z_8Z|Sk5Welu^FhCPQ0v05+G#*-bzgWF)(QTSDpf{> zmemFqobosF$e3S>TQdH0qsiOSgShudP>E5qXt{DD;Z(osu+xb4iP~b{89J<0z46lA zXU^N*C)AZSBYSPFt%=m9r6`n~l)3!s8I|@LdF=^QHJ@mVn=6LNNJ>3QGv5 z(QT4$pM$ouM#`j_tg)c+&hfi>ItbWz-JPi^`c(R`-#Ky493ZQAS)|p>g?LL~4}%3E zN=u2<&RpBlXy|SLC>dDk`;YPd3{KN^2fiKJMS|BQ_(-P`!r;Myd^E4Jgzae)Ad=5825mU zWJ(~$C@RY?2~w}-`)^GQDY|XDH!Rx&*>Fr`ZGzp%LtUNqKE(WFm+tr zrXMSeTwB!QJR3KRoLKgJwP-4XfI~{7MX{G8gI0uLtem)E2L;3!6PZO5iwEx{{qc(< z1nhLW7kURuU})#g()Ot=uRT^Tv4ITn&+Xx)eQ+&N?C_77bS!cpD+q zSzZkr!npXfOq!OX2?Z{Pyd2vwuPnv&Af6Z@T9I^^1kuwvG2p;La$xgAth;NHQ?bG} zs^37*r?Quo{1D5(^#sdI1f>`O#Q+~tWZJh+q|ve{TjE;ZC^`4>*hv^rC9bQO5oO&} z$5!H0Tm6%KTpGAQ$*|f4&NA!9Eu86jv(#P0xO$DmoPt1Z)?!DFl=u60WKf#_j!^U7 zu>anjHOu+2?9;mbPsjOb_zcAgT1p#BsP7-k2iQyIiIe;7C(4BCX7Rvqb`76o8x#I zECN8c1n0m0U_X~iryIySQ1>naZ(n)p3+E(pjyF|UzSf{V%qw<|kxQuEBN~o!-9==h z&7Oy1NUsyNOkXcZ54vehhsmj@M_Y6cc;FHo)+H^O(9gUV&D%iB@=XAu3)Q+Uri?Fx z^F2rHj@uRQc6801BoVGi`>=ELMNf7MP?^L^9eq?k$?7f3M)F+erdh4KHu#wK-fo4M zz1(x7$Z~amQ|k!D>qC^4UAPLDmCyXl^g*Z-m&&x$`j6Tb7nXNaS3$c|Mnxm@151ov zlSy2pKkCX%Jo_<)HKe+QwWU_j83jhhBFuvH>3gG;t-yH4j_OU$pFsp-?38!2A)}5q-FQ+MWi1Xdg|9q|D z6$N?}{L9St{`tSYd{;Jccc!x$*7^+8|qTgWR=g{BE zOE2SLoC_of8fJU;NFUNgx&IS*8=rBNK(iOPD?-!uhsxm_l*9COOcC#0*BL2f(tX-c zb_F=s8q5fzTA?8vmO#RQL5@Ri1$g+ATN*R>Y$>X+{Zy}i8fy8N8f+6L>_Du*FGYX| zZoXnVK%0RjuJNe+fNEm`uWbB;4mOP%E^P69Rt~PL34af1e#hPW$tzLU#K;{r4GQo# zzE?X4nm;+jAYHGB;FM4#&8nGh59*?e#(u-Zp zpzc9|Y*?*n@{(b2JjE>{vhGg`Pf5yH(O-+j*O)ZAL5$7&yIyfyy(HTkG-&P0P+}3y zv55+^Y?Re{6(ouPMV};S6u2ut_gL@oAs0GSauxHrGM6vfKbU+sEqJT-=02{PX_rE% z5M`9a0cjO&8X>-=>}ibI%yfRR1_Vq{wcUBVaey9|u8){UNr+xF^YjeED(}&>T{c5} zVZ9^zW{TLpPY9;s8abBl#wuIBJ*OTnCDw zrO25QnXVM$hK%MU;#qhXB(u`HC7wYt?vsVp^J|GOP86S$3!>Bwsfwcv&kTEY4iCl` z@ev@8%PRTlZItrFYX}oeq$Y1*s;2nFjp&|4$jFMbwnC(z(@OM@ByKQQSSA@`NwBb= zrHoO?X#E-@rLOL$_4FM7(2|8K+mH_`m|`XwdDnPp}?KNh)1F?a?K0??a+4k9iTMT zQPXP(#8ukK!$7B7>A&bLZoyh4lQt5EJV`}vLz=+~kA-Hc@n)Tt!N3uNn`hGdlO8^P zX|5k>h*{i;o)R^*L#NE3{i)VT=dwphFY@7-{0#Sbq1Fu>P~zYiN0FomPX9+i$%MLY z_2WVnhy%i`opUZfTehmxxx@$jdTXuXAYxlx?>M+6$oc{{8EqPcZ5tGM1b4}iphO~N zx9OZ##rB#g#nEakK*fW-oW236FCgo9MJb5fMN@WWid~8Jo0ib6Lp^_g`5o0A6U14o zAU2BT0UPcFY#fc!_K-7q<68MqT9p)Ypa6;AUxLI+N7oY2_L zJmGuyDq2`_Hr^Cr@T(0@qtjfe(Ea7rhdT+ly>o;^SnDu3YR$hYd5c{GLPsOBNb-MM zyJ9>6dlY$Z`S~JzA?raREq$MC4%ZCM+ngK3$=`Sj`q^7cw^ya}YA%I7M7l!fC@=rK zRRX3zymV0M>fB@qz+MfBoAJKb*ry7XjbDq|~TluPF3-B4!5p(}G&SN^V$i{iAUd zcnZ=D6(kf-f1{?ymBe}d_s8ox6#Y=dctpvso02PTpI#x3W-?*45$(-x$bv?0BeYGd z&QKU4Xjd3^a9b?UiY7UsTc4pkf&rt?Gs_{J*_xC|nUDA_{M}r_k^%E^!(Sr`ruQDN zTI;X*JZ&Ynm)Y#V4r%eS=K`2%Mt`{&9PQK}<6tnu!k{!Y-3@BC4J$p`L29e3$o{XO zA4?M|6+*nOVj?Q_V|Gc+C>6LppG14KXhJCh6M>8EC03+Sw-6(^)x)R6ZM6a>EkU^U7mzH?(GL zpb8S|-VLCLTpzR@kXqcaKOq{hWF~&LgURdB$eLTw>_)*+m>}y^>!MHh_5%ig@#D2y zF?B*DWf)LB+yj%thx{)sglpI`5TS~4-*AXqXj{FV`dL2_lMIt+~3xW2`)sls`~k444|0PeMWj55^EhcpGfJuYc8sNFckD>&J)7- zGhF)Rx`Om?i&))l=^4ju1uKbj+ICs!L>`&8dPJ=I!JnPwKs%V-fi6#FMnvA+vfhkv z_HRGtd*Kno$LXiT-!5(F{6VuptJ&1-%I!1Xd263&QJU;HvN#q(S7&Z(4PTWRye(5z z)EI_c*8wXK;(AyLEpCW4=UvB}Crm04bF0`B__m2wV5@nvxK_AoE_0@`EldGi81)*= zi>ePq+8yuiFTQuabz96VJ;luYZu%UxeL`T793YZ(-q=L%JeR(8dwgqn^yKrKaAY0$ zmotNK8HBn%nw z;WNX-8|ogkZ~gw~)-|@00+a1mB>2MoziwSs|A$Cm_Fp0a>3@m@6#tt@5Jdj}BN9mH z|L-D!_p5|<|F1|;1M-%@M5Vm>$y41=FZep9`8a zZVZyJCppQz00mKPW$Ay5fwEkwn2ac)SXmKF1464Wlb8)u30zqeVfS2KK}(1YO0+tX zUy3tLTOzI?W2#IWyh3Di&QbDT9>MMJ4D5e<1SyA-y3-hmb;uXl@|0X?>!OVhDWU7m z?}pr2p}PZh)KE9!x;`lPf}pplYB&IJJBzGJ(zl$!v%1_Nz#Q%(EIEhww{Pz6#@t?T zi|gLc+n?(&cwzg_P=j$OjQg*Dh@cw~ah4Q}6^%y-m0|ZOBFhyq(rENZXrT5`rzzs* zX#sI)gO|#b2ghoed)b%t)xxchbB7uojRB&6X=C$3>8Tz>B)Xa<)&4&t8kuEUJQcWW zMYB}=#vc*l1s25?TYw+TGkQvt^551_`{Wpe{-65@`K@sRVR!ON{@m5`g?Km4Ng= zRf5*>UzGsjR9Q~j(6!OLC#6chUi<0IgfApBK$m|47>UEE+a0gZs+!)oibA^{qKJj%2vTf6=PL zeQw7snitI?)e34&JiY%Urx=~+w4tDtODyLEDd$i&DjQO4#vRQi$D!W%w7r?9kh%Z1 zF?f}=DYHq2bojHXx+w{<__;T6Bh_AIoMNy@L=|D{<7c zGgRGl%kx(Zm7^mamnfi#s;kr?0I>&a6IXUVDJSm6)qhvi$|I&vLpEImjWEzNa;Bjb zx}RVYUJem*LJKg$=r;p(cPl184r+9xN0H5(e7((RC{x0-wz(i%%o{opucjFRTF73qv;N@#^Y?!O_MZv|T`Z(imqO4i$V zGQsK^oKqZ*_dw-&ynhCDxsiz-aJ)%rM|1-RI&A0rw@n_qP4zGJH=<6D>>6B^1C96b zzOK5+A_aj5h^>cov+IOUy6yM=3Hv`68(}c$oY&tvATh`Pb&T{s7MuSslt2QmM%*^3 z)iI~yP&#u*dqdjM2A?|@PDB6=DKTGQ0smab_difq5ukkW_SG`#tR=F)o$6OFK;kH2 z9zBLuug4*OeNdaUUeP3d|CFe?7yHV*(#n-RUf=iud*i9@qH@gryfK;DPaF3aF@%7r@y$CYT5`rBjbQT2UksCnHvrQa~Zf0Q$^k&JaQ=WyKwL z{Eo1hPj#zL+&?Cjqc2!vP`|V45hMue=W?NUz+LG$!#; zpzS4dC2RaMPR|aCGyVI{7;pMyc2AGvBddPxlj>-c+aG^H69NE!r@<=MDS=M^`|6U| z9ROZ86jY1g{qu5gy=m|bhmR)Lw09cIK%7z-fwr$`!g4Fr#+eXMv)ypRTe z&;q4_Ta4E1nCV0TfL>!{0TqhEf3YNf*h{rf_;CI~5&B$)g0FDP@n|j_Hqr7-yZ8s~ z@+m}A(D2Ji$~WdeJObIR^a@9#z~AZV#OlA;gKsb==nMj2#eXYY+DLCD3v*%NfNIWL zfG)LX>^N4%i;0ERLlI&7HN~+lqrOFxIlZDnQ+|?8%~d#-A?vM@cUahfVSUXqcZ1{Y zr<>}z-#|>mkt!QDs5mwjY`{mf z5}ZWdKxX`4{DMbzq0Pc<*ThHj_2h$Xj&o88h1Xm2_J681=H227@ z&Qm3fNd6NeXzi_;WKr~vI0iqei7mvqGp1m?XOZzWkKPH@CZx5#Tt@EwZS$V*DCbnq z;hx|cUf17D$Oq*}h$0pa#-vnd!RI)3iFAV}6lv4p0ya^v#Qk ze?v-y-jzcSHWJAATE+|jPL=BMTo>L!gSjaKOot0Nfg~LY1eVh<+4Omke9%Nwh+xp&jE&?Ca6sPZkMrkCZHwy?uu`#(;muQ%(OIEpAiHzv zFVH2R+|Q^4WGtCCKymfbe;bYBM#s#9rArxvV3z1d`o{>tXQ5$F^_IP9V2qk8qKV^D zZlms#YbUTLFDsw{R@S}sAgZkG=snqqSDx)_Q6VSIrSe_ZO+ z!8)Ak+7O98pklT`R%J*ri?#wX!c&;eyVF8DwaqGY-<8=Dq6b8*+gUhWjbCMI=w)iyYMB{;!^H3zyf+^`=*|Rh1(ePdafv!VZ9ii$`=|pFga~E*wDu@CarAZK# zwqqJO01L@O+Ai7lUZr9ZO$}Za!i zdw?6cVzFXbQx&NJZk`4G_The+AE?)-++hn5`hS>v$LPx1txY(#ZQFJ#wr$&1MHSn& zZQHh;3M#JHswBOi?(@Fg=jn4!e?Px9#y!^lx#yU3u6y#jhCYF_=i(4gzNrYR*_Tn) zN|k8db3nvVh|h6a6EO*V+zFRz|50UJ0u9?eL(SSpkV81QeU*xmx?}-O=W|$ce<>cI z{EX}=5QIHgFK|A56urJ%mgaHIPiqN7nEiQ#r<086UN@@;&6T;;z*qVBO1Y|?L9k9! zqrGBSqQwXQ#Mb9x73ink45qNEYIeWZo0A)MlNiE#&ep|rUQyzMz82dlaeotQbike; z{=9P3#9!%b;qcw^$ag2;=ESY=62?K2xjYW+>5_n5-NMZB+cRdU_lghY<^adCj&U6R z4|}f4&*5v5XB+A0rnRx47}CZ^jM&-BHpQc8 zjs^Zu_Gg!4bEbpvG$=cCqe0kk05LPD@A8GMD?8#>jr`gUr;u|t>AFusDst6yMY&;bxQ5^re(D_~fsIpa;iaLc!-{h&pHu~5*$AlKhz&zr zq20qoxC@W;O*~Ui=ttL;2amuOYL6LAm6juS!jWCEyvz@}N@4lEsMj)x4*+IbA|ElPOHx**0UP@7x!ahwat+iRof>OhJqA(ULXekKvnJbp&&mdf2}| zJ%B1LzPf+koV_;}RkMRgNuxXaEE2Vw{z05Y? zQ$G=qWZ+-cJTpr5Jo&=0i#L3t0G}nwWjI%d{)nvYMp_|{UdS{^O^o4DFgTM>oos{3 zg2@PG{u)*WI!8T?FKyxY44hmirBjC!{Q={+37M5`s)d4a z@Z}=25l%xLo#* z1>0c*(BoCRiY26V!hhqgpy2x<9BLIS-TxAB8eRpaJ2BS3lGt!WL;tCLhsPMmJ$X3G zdTcf+{_T#aYs;@SVFg~y!`)7`XeTEy%bonmKJTt+0gOGQ$R!w(y>H*OV$4HqkdTU$ zXQn8o?doCGu&fv4qVay@a6(BUkkzGn&0FCvLMmbH*$>ieuyibhCrNF+o~>*Z76Unb&;k>koF0;^rb_ybTX~rkE_7q!`c_Zy8H} z3OKQ-nBT=;y(~L9kLBVM{!MEM(GtnS z(VR76Bvd){-owuI_Ia}TYV+$&c;CXGzxKDCgV>Hn3?kI#_m$6@V33VyEAkrNLVs7* z0e-O`v!qEs6H9B9MfQuSS)a#6^j7fv1ZGp%@aa}nDiEv`9c_xN#Gbseso7i08MIPf zaI5^GDwuFHJ{^D5R0*aV2fg+M>6)1%!WRH7_kU~&3bkQ5v~SYZNnVky6KP}#i~M-s zY_+lQqus6ND#FK|8lTCrzE=SKg8k=|p*&?D4+MbkDv0oJ84A?@4~Bvf4Y|0#crzi# z{nLjqQr*oolsUH4tzd0As1`*6#M&egqKNXzH_b^CXr#Pq&_1s5r5jCE9weTXfkVZd zx$ci=4#F0*sZtieeLQun=wEai0tgF?v$S^oUO{eNM;|V+1|VtJWuy@9OA(KI%$^~c z!txCLGd08qcwi>EG{**PIqr$k0pO%1+Q0#iLU};J7Wq_}DWZvi)-(mtg0PxN-Gx8& z1Ae=jo3y)ehh#6qh?WF=swME%2{qKQoztPw6;sW-Mf4G42bheEe}R?=I+G_-EInh` z^lao%*-WI;!aHGoGQ|v?LVRi}y~LcZND%jx1Nj~CfBzA+dzMK};R&+v_)M(ZKf+sR z6}VJ%U24P^qc7r`)ZHspsNsk%ZUnU>kqQ3eqi^2Jo$Wl$GNQ26m z7Dci}7|S5>^tjg8Qw{riEKS%RU%Q-2C0Z(o)&ko~`{JJ>mSnc1!-JuDn8ZWE)z9u6MuFpSO!-3&D?N(fUT4iMt&7v83yWU&Pa4QmvgBC=#8e_;1 z?kn@XlD0489pyUI^CV8!L5$lkNDVIgA4v%Pu1@dux!GEn)kC$UrULUlV)3!i{y~^n*q zEg}t%>c|qw-|doV+Rx5toJ1Q_e`*fQq1gM1w%;}dckyQ`Ok&jWK}PC!MfzM`FT2B7 zsg+mWv_hv31TC{e@n$mIs*>sMBg9f_rWcBc!Yqi zkgWmbwc92ClyAvWGnLDq!}TwF&)32(WcS^eufGAV63?8iR{`+RRRJaLe*+I~Vq|Ng zXys{Ut77%t%!R=&MRmqulL@Vl^j4r7G$k=|zF*y~=)AbH=Rr}mCCA+l3{)MTH_{G* z_rYQJ9usWX44EYM{{1^+Ynr-xC@u61?$;FCwopjn_kA6TKcWybT`W|giti`HY;(GI zI94}-QQ&E`I6dr|3s84{*T2#cZv^Mm^Nkd1Iy8SgEoI~3OQHt(Io`DS@bXL;`UGO- zAG5$^TGj=5T>+X*oU8GQYjj&(NAJ+FUxIF#CWhZnRbAg1vS}?2U!0gMJ`b6-79g{Z;WgA5D(~gq zqVDX_wb+_X`#CMd%h0mkV4tR|TckR^dhPWRWbICGPy;VJdFRbcJ+^iupEzf^+Nbs| zq^!`0<8`r@V%J`ZE)a72vIPdgkp@5(vgydl>s56iOww?mGE{Xp2mc50U ztD=L8l`CM+p25ynRmK6p2+&JqX$mLf~krG(E+~X8Hwd5 zV?$$UVk$>E?UZwr+_2YC{521}aLK}`ebnppf_Ur0d+Mc(j?CCIj{?8JpA!sZEax0lr^QyEiNsky*TCQZ_O8Ld(|tT}yJE ziuVS?OK8ZyxV{Yoka!-OIB4NRS9RmDc!=Y1yZW$xEmsHczRi!6H7mq02)9b+9PnS1 z(LZ+YCPlU8aGJorx({@9ea^ZQ@)tHuQ=EpJ%B_u!iIuG4A?u~-6yY+kdvY~yz@Fd5 z*l0RIHC8H}8CUHY{5+CRa?v7s+k&G_WA9VB=dYz}wSs|lpRlBcA7C(1fNoPjF0hvF=B%o(xwt(dMXo6ZUfF-r6h>A^efk-p#I1r`d@JQpf2 zs1V0hTu5e6O^ECW2Z@4g@CGqoNvSc-sHk)mMRR6SS#wr3vcy*zTuyWHbh}~s2XTK( z{LR=!7Qgb%wCn0(ZuKC(H_Vf;3;4@kd-V*6xv6>sw5a45=ISC3>84;l)vXON_0iKp z0KSq=#9XK=)*vKh1 z2xU=g@h6iU-+LN8t&x^ilgp<(G|~iGX5d!9&dBHGt124p1V%=vC)*oaxWqyQ{N=T% zg+J_Tct+R$#QY?|_9A6zeJ>@_2j4e9XR@6nQ@%eRLWwPWmWU@SJDT#Al8ay;@=sSa z+%1y%uZc)-$2~R$)=WN-1F;IVzOe{hrd-pwZ=%G*rTm&OS7_fvwyy(jr&?#p>B^ss z&;mWgR07d&)@D>4>BT-{1|vwq6km#CNUewKH#X-*OiqT-8-T&y#?)1yi}C~Lta=5Y z{jdkdj`v-b&*U~QWjdOC{KxyUhg0-H z)6zY@%Ei_dYnAsrhlP#S&JAT^(<^2NRoc3CJ8Ia_zV@<3HbvZX%ILMga5~TEN{1z%cn&=rb;6fZ<#-B{>;TW~3g> zH^QBQMf%YaEddx<{&0Ohs=~k%JC9BAEi#Iv5t2_2N*l2OBbRFe(wNVR59u)aD?N>TulsZ+7ibguh4EE1f zFZebP2P)Ww#QpxOEV#wBq>sQVff4BdPpwa?9ZkBNqj}NUd@&XsjvmO6Hc=yo3!I%1 zOAH+zSy)sfd{T;QJwxk|8pwnL*=F4Ln*PZTlZ(0VC$43R2gBT3CdZO3M&id z> zVbRXpLk8eG{c5p160`Gka)m9i*zD!@javJM#GlqcQ$>$iQA<@rS5+`nJ4H?Dv#bR(c zf|85;5!CsX#^S&+a;%AALn-houSrH*(5|=B4@R+DaX>B{HFr;v$7s)_gdx_UIat;` z?jo6MlLs=YF+I|VEt{DYbf*-0E2(-Tq4`<+lQ}?o+zpF8Q(RvdJV474;ijBUe2?JI zPtW1DR8A*rdik^;ZlOJ-7>wlFc=bR7FBc;PKJlkPnsthhIAp}srdq3eL&Q~<88H~t z*WX8^wjcvCuRPBQV5B;ECB=oqbZg)DJ9}QPeF(E$IqFBuHDg@-bvHcb%8$5QvM7BE z6E2&@pYyM4mAL3QgXY!75%$pSGdH4UL$4f7lBF0-{hixs))MoI{SzFNFU{Udkyzl3 zH72vYnex%0TG0U1Ax0`u*=cZaoFO*_=~jCk-%DVl*>AM3k~5e-mb9;_?Kxs7b`57*nnhn zO^vLz*ko;4)>rRIe4(tC^1L2txYeC*pGy%Nqgb^Hwc!lFD@-f)L0kuZIaFu{uh`QV zzI^`dw*#HF1ecX;&@1u31(P1Zz(Xm;Ufd_VFg+}Kq>>AD7g0;r4%BxZht0Sbb|4Px zpxahg9>rPhRh$b{-ynzR2ckfruurDYoVOd;kos!qdoOm+0BBcng#1ssqUA*A<^R^iw=s@8V zFOukF3w~vTKU^PRMEP=s%Y!K*r%lssVx5}STs(Mr1904BvW#EJBb@AkxX3zF0(>`a z(!FwqKF&TcgnL8ikvUkkLANi4e`urqbFvBKV-@z&ME(eJ>7~l_Y0S z50bO-%`#Z5-8^`HIC^mRgjT(u9nIix>+gI#xxQ|(`}Fp7^k#9dUlZ>3$(*D&`=p%P zX)>EU0{dOW!D>3@VEPaUGgbXT6i4Di0c-9j3*PTA6Vj5#yrroV-ETlq{v1gFgGgVd zq7v^NPF#}s2!6nCX^MEF&Cw-mxl?r;CsBNV#H{j5?xkDgAU^e1{RTcXlLiRNZ|%j$=IO?x!?!-DFS%>4F@xv zEG0AzVNiL(z1t@?UaU?ANwoofI)3ZSS-Bz$P-s!*QjGiC9|f&qRd<;h7xvc|r=|^2 zSZYjc0Yfh2Hl7$Yw5gRbO>^uxw|QjXAYIAC?u*RsK|iD?*kAta1JSc>a2r$Uc`fHL zhvmXZj7qb_9H+B4ZZ})s4A)~N9O2y7>I+I@g-l&M?5tD9`Y#Me4*IMcJG`1nH)|@b z9Dy^o9jA}Qaht-HseR|pC!Bz96N%^g)-%OQ&x z34XW^E*_o~7sowD7XOG|4~rX`cmt9MBUkZFkq{DQFaQVQD$|C{=th` z@_D}~{40t!#bn<-pEtk1vfH^v=S`ZJx?`$p1EODAq-v3eubCOjkHm?0tGoS=F7X8R zcQE~z4|qEE`>O9;g-q%!l^OEGR#21-;WaWOBbJ!w_dC!c!7`<(1-oW)WI2$%di?qq zJX)6$dK0s#&z>i*iBie)>-*^u6-0N=+s)efTxS_btIxbKMkp>Ert3L(x;ct3%Z|9K0~KH zhqcY+38h<|fa{ZR=4Qp1Ik1jiw(Mu^{0|Ap;z6&rFL^_Y2H)c-yd<#_NKXa?= zULKq{U#xumU0PR#|LoQ>X{-F`gA=pQ#uLcOHMD|VQ)q%k=*R8A(RSr1ap1MK>#jairiRym+rxvSH@$Jj4au)#+z`V_zL`(In~9Pb6^A2^WX5x16SXCrJ;I0Gik7+! z0&d7uYVH7%HCP6c!fo#W_8uO)-sC~}G^XZi@yK7yv9>)irMe3;J5{a&DW%Ho$kMFH zE`y)H*=~S`ca<_IWeg8 zYkLg{CE39LRfI3%0HFV~cLkJoW0I8=wglk-#ItYse-z2)B~x0V#0dl7(>d&n@x9#> zNx7Z)H9X|EZq9D;=ZkS{vdY#Q{6DuacZs+EbOc?mE6y;HvtZYJhYY*P&t5Y%V#7j| z-#_(BMi8(VV7{GnY3u@L&01jG~8s`_KEg+2zvY*|(d z!mfv*FmD0l6ec}v8^evf7l8rTU;$;kHC#f16&UNXL$0e>O=I{QjIoiXb?tCGbvcM; zlM=maTIbzDg7|Rr=#L zh(f1E&Otjm?l+#;maE8YKZ+?!+56359WjZi)cg9RCdF8{PegJ`mAQ-3{5tWPCp0t( zEiSsLb*lo*#h&}D!Pa}8LH9*_MjP|S>zUSOy0_=NRfOqUBk<*zB{2zYrnWpmvfIQ& z;V9B-CLAhqJJd#B?XM79Z2i5jL+Osz`LvDftlG_OYSUK-`tp~FIp%9RAl~V`!PxFG ziLl@#JM%X!jK(J_9$3>0{NZleOiuYU^dTxa#$P#LOVR^~hrby+DE&b^I0%Q=KYL(! zCEP)V?(bDjMZUBTWr?=!CLEKCE#h`2LKQ0b9NB7qqdE7|Ao>{NGfm{|k#$830SlVCSYNX9EIA1YtkJJTy1-6eFUVGnE;iKnr@x?HKiy zb5=^2wGwR?{C7rl)9I+(XpITejl|_=~xIPtLTsOKsY_`RVLc3{NsHLzZO?7{rO6bt-*bJa{6# zD<>Yw@n-z-ow2CpNeELZjH#+yt8v;E_oog;~gN21fL3V{emjiCyHajy1PiV;5=<0Hj%_g z`8_y?sk&N^ro{B^IuA2Z+6VwBh}eSSEsYeWC{oI-Tilvd~Z+TsMwt6T@K+71GP+B#G*?*x+1(DR9RGb@)PmLjJwo6U3Co{GaU^K zsX`ViH-e7k{gMHYtQ`{FiVv|4ukrGYd0&Qx_2j zTL))jBWIU?NZAFD66-H13(oc^#InKuOUl0H229&893OA7n5f*_Ltac_KQ-Fs(CF26 zO>yS$V->=9(xc6684syFx|@K;@Y*tlVtj<=Ap03^nKu_?cqGahexQi_Jq`F!9J25h zJI!O%d#{H9f1R5%Ov>r5P zED--$g`SLd`8fdTb^wR!Ur7m=#{HkDuHr`aCSEG8Zsz9yrAZh7Ja34{fCm)zwryqm zI)^Wao~TpuyuNqPYsEy&a@$%ZRGonM7ePk}xNQO*cAY z+8TPG_4yHDe@cMjj*nAtd( z#jXEKdqn?Aw0}6CkfYbb+(lneSo5@vAFtF zPn|^pA1NF>2m;J+vN^CsZCuz88S;?Z@L#LHXB$C!fSB()T89j?Nw;D0zDh5Hf^hTT zbG1u1>1wi%{jdOS-oDTt+U^IKgQyTHIN->^P6Kd))dZKWhFbs12~mrwl%y8M1gcc6#v4ls+jPWtMsa~i@`PCA zT8zKx@0}f5-pL?I6oqnYnYUxz5HIbCrV&t(kcUdB!=UpSK+Av1FYTg+W7D^|N^6Q( zU&K}tI;Re&J+C>ErhY#*s&0{f0Fj5NgD6u}4vo|hZ~z{-sk>s> z5eV@2^@h&7nhhIpBQ8A^4nbwCUbzpTE(7lVaD2Y{RSUw~iH!(qa;x+^15{+ybrL;Q zKbCgj;#N12kF(oeT=M55u~JqDl1DJ=(HNj_mKwq8(3+P@SGs50DbCJ{FNuE(MPBA= z*Tb<*QD9&#Df$M)3fd{E_!4d%lguGt>4uY$?l3G$TXIs&(GP(I6=hiMmyB&rlrDNM zq|kq|2>kO{E1(2Z|F<*HiF7Gqi-^LGv=UKPq;tm|r2dfVy#a@0OUr3AgVr8;LJ$=j zJ_N4gtJNQMu8c*sVsqB?3WgPID_OP+J*now($_|#HsZzv%ihcwVIjWx!P+dkUJp2N zwNV7qGpakcv>&M08+2k+%|}q4LExsR;XZ?DHDH2rE$oS#eVT@Img1%z*y9qHWT-oD z8>mqC*%K3B^f@YK2&Gzc1z64cg}BS(&w}j()TtS~C%BnV=QwnHVw07}r}<4h0`&t3 zsv6&C>1L^~7k@r`!B3nFiV&xg>6Q^=#;v>ISZ}@IKTvLjqo^rl3N&7#(=36x%Uea& zdB}_K3S+B9WW=kb3h>ZnXavsM7_J7)k8FedjNMmHZOlL1+S7ESb%t#y=ivp)(J9Uv zugw3skm$*;J$ui-#GaaYu9_SlAC7yC-Q|!|^EB}ZbK}9|Ybof`1S0DI7@EV`-o!5; zSNX}~BB>?isV@O>uZLoFbX(<`*ytpI{a(DF>7YNTzzv-tGEFUT0Tpjo`C{F~v&@sC zYLdtzU6Q-#AZ;qLMt_mOoNQEOdj8$mL2zjj;(04W6+V&23)!ylaf_DvJHOZ@ZEF@n zTi2GCmPQ4I^re33eKvBwW(ptMK32~7j%RE@ zsB6h5o$deLLC}y4?C*(w{PJ08VfVp`GwBsEkjrzk{`Y{J9b`>^7SUt@rhMx z5h>6A?FICo@9^y;x1x1GYXcTA;zIeKK9!6{fOyR8AMu!7iK?8jNdYh@P z4UC++8=i=_pSuuaij|au+D}cnklKxwfvO*yk(|X~#oZKYsXU0C`PD_TxNU`_m3Y^q z;2609&Ip720^pCeD&Q4-C#N9brV^Z9Og10WHPE3yn@+^v=VKJ9WiMbaq0@ySFKrIk z>}cQ(VOqZvZ45{N&7V>ix)Y*gN)^bU+qD;)TMFt@l;c^)qEvJql-`@GfotpQ`R3Bs zVXU2jA=0SUUF>dAe>ieiD)|U0#JEQoo9GVU5=#<`$vc#@Rh@cpE7uam`PRA#gPCVh z=MA>FBTo^+^da;^#}KO3jH%%G=c5naa~~7^8AT*&SJRiq=k-nWKEw4*_l|Ze{fL6* zXxVSXTRKYHcl6K~d1kZSZE734g1@icsAbk%cXWtmBZMQK^SUPc1M6C{9x0Kmn5^y~ z2jQW1F+=Dsq&4Zu%O#d(q&}gHLb``CfFMGi1odgs_8@ME(?GR*k({TD;T=S#rcfSI z4ep{p(Dq~WXu7mQxqJ0y)(3-2APx#~}!YhISQmCpP=rvpn0>9t{ zg4<1TvPdP1_C8YOQCqOxGshV^!U8W9tcF5GjF%Wp<(f6Q1+tNio`pWQZu3YoM&8?q zsDV5RUV|Ns7Bj-=M%Wl_tp13xrddg35?!xDe4T=Jv($^p!uK#q9*xKN79e$Pblwg* zZz4G5#;)`a;5+CDSIXq6pvE)wS39QHF13tSl51R&pH^V;egEtnKVOMhzyQv{0*EDO z|D$sN#=vZi0X>8Nc90MiBO5@!>4RY0znxJGnu|hyDW(Q)6|5C~lb)`?EZI-7x{1D0 zQarUnWWw*AOhy}(Dobdu>-p;EnG}t725v3cp=vn&OkRCam-e0|A08Z}MZM~y{(U10 z6JTyd)_my#j{|*>o_(cfQ9%x5jYR=eiugpaMx0>!mRILK>#{xt>0B5Gjkg)uX%Ud`LC2)&olVW0`Cpt+hJFc0;KiXOYrqq(ropN;rvv2|yc;r1PIiw5LueF0?C-C+#wH3lR>ga@ji^ zr@lJnS5f^}nvJa&ZgMURGPrtV2*z}xK(*bS`!Q$a&g3!b_Qfq5@6^E~t(Bw`3CA1( zY;r>l)iF=jbsBqE`s=tSk$DlK@+bgah<4L#&DYuEdq?2eJK=ZPqSQILrV=uc`3T;R}74Lb@{(e zsD8=t7DVSO)yy&n>@q!xK0B>yp-Qij|0>?ieWqUggSFFqNSLbGv6IZ%Q@=<2BtEfs z;VRq*ig-bl=Kr^Ndz5S^93NmzZ2xa#`bS3i-^P@qDi;MXroVd2p&@%V26oQbH5aVjni?5qxK*F8=YsGYpd`9U%8DT|T2IE3S! zhP0)t*{0$9M^VsrIJn_)rRO@Ok-SdC-%)|>4h5Bfo^q$wbH&lHFL7~EE111k2`Ip* z=>^eSbepO`BKkVrybCv{=5;hc$MH8;qcIgk=F=A_g6K!YOz_{qXK}vAe;(TX6xC+b zsAHm8DvFpvycHPA{?>&OQl2&MGAGX)R9khJzmCRo_#()wgZP|RS4_6=_;HScqdViJeh#-}D-}2V*<(jOVyUe&p5Jo~wNa|u z&9lNSwWK?z-Xo_5%lsY1>%@wjJ`?@Qj^U#15!4xkx2{iL+QC?A+|n;vCWb)ORE)#k z$I{?OsGl@q;B`Ptln=ej1~YCeV%O;l*lnMPx`_|9mG!sl4yg32`fe|#V=e1igrjPl z8p{Pi=Aeo+GV&G){rqr#oN@~*cvH)EJx-d0cI_i^Bjxee?6)NRmK9bqU%GO{5F0J!CTN>KCiIIA~-RS|5$gwh( z`_2Q(cF~gfv@r}V#5&rolVZR`v|me5W!2^!l;BbnWuQ5D(N9$F8Zfhu#HST<={r<>+>_6e^&rUeda4DwUwHjrAEf&E){ZvE#je)( z9U%KI5B%pgEXr>Ky8eh~>F^p|N4etk8@P;R1gkjP8=rIPMO`!|1SicDKD{d1 zU7bAyj7<83#<8k)&wVlEN_;b-T2a*>ikSg9A^8Fi$H<12LCp(qe_$rnjDePh+KOU( z7LzE9nK5u7<-BkJ+Ru5;PEU8XhoR}<|b~Rwvfjfs<(qS zMYcr6hR`q<$qaI;m_7k&`gi>I#fFd{-y0>>QU(^BQN0LnxA{AZf z^ZtDaZ)yLDj?zunG20{fY*&UQ<)6s*ixMm;%7d;ybc){^!|p?I(-4jKl;@8U(|n6z z^{`7#oz8925}5sjA-_&d{>VTV_sjB@iRS4zYwRpO`f}O2GF>^|VnOOqjW^&=0);Sm zL#2H$@F1b;ydc(18yE0YZaCk=d5Xnd_RgT7YalN)^jaV5KrR(r%sq2UT!*MT&aD1( z1m~ewoi}#rL5tRCV2bt*mAYG0#Um^-9<%PsbIH70?8RavkQt7PFK0NHmxO0rR#$g*8j~_GmM)$3n2x8I z$LdO;kZ;dMgug)#rP*cYgNNElQ!!NVfPoFu=s=+rsvMEqf+l9hD_Y74d=Wfz1Tq~a z{9_xjjm&{t4T!CY35Hyx_KzmL#h_1Wa+%=5{VUNrB$V@Lgs5`xatQ3uAVWKO4JLHs9i5t2~98kJLhuDpmXhTA~6F0#~@Wh{L< z;Xy`b@iANxP_Yvu&qtbVx!s(zF4*QnWSMVHI3fLwMT>3|DsZ-3etrs?qAjI|A&N>I zCU-94RSK@Utl$b?Zd6sA%FTrc=0-`A12t51Xh0HrS)2uTn%xl`wl2c}q!V^s$i0rJ zW+?mO-iD(|@nIKDXj!FFsp;ld_qt@g$I-DGo6cG8na}EYg{*d{F755G1!I$xB;1US z?9D^McgUoVA%_d#{Wa*o&9g0|dFb9cM{zt)r*gQAdsH5A{HSM9ii{8%;Bbd%=t@J^ z%hdrVn6)4TUXev3w~ELMUE0g2Kh{X~jQ3ZT9qts88}fJu#O-yuYGm63^JZ;CNGWpM z=T-8=?x7_JA@*TUc{Ev&;RYp{h^__`2JxwkkZ100Skn-M5&W(Ba=51WF&8(_4rsr< zHLD#&suNh5DVC$s>3P8&EP@wdCA_r;)paVk;!Dds(*5MI#sr-9b_{Y4uy1{Jk_cTC zw>M2qczvL!nE1&~CkqX6FUr%e#_2BOsXk<6BAm3?>Yxv|(&uI8Y4VPj-5by97y6pB z+C0$U{g$C4N*^6KZgF;u_KJunkEOE6{8su1aK_u(m50ol;*lbG>^)RUs8I+md-4BZ z8QwGzmi;u%5YbHoCKG3rCA8aA1+>G5fJlI;*hxX(Dsua<8-;{$#6X*{yx> zZEA4hVO8MQgSh=yiZju%MjZ9Y0}1#u*;d8x1-@{}26n{Q4nv!uOz;V?wz}pHvt@Ag z4%vGo_{9kF5s{Kp?&ySUlFVs7Q+_X_F3GeKJiCW%um)VCLCqDFUUZM<0`@B@0xK-# z)-j6JcnyWcE+6@+p6!0ZIXPogo5L^Yr7xNA$$b7ZK6qCaDT@?+~B{x z?xeLE`BLsfBC+B0W(oCIB*19dI3XmPXJpf)1Q{xFtekSol5;6ayHu&2WBZO6y+b>X zki&5rJv&-V_tg3VPp0RLL#d2IbbFgyeX8ownFA;Ld})qUgrJfKcFdf=K(=#l8z@mCzM z@7T`u^R4`OxOmmLp`6XP-rZrB!)?p*xo7|V+b!i^Tic9IB4aFvp<`}fauK9YYxR#V z_SkI?I->WwStE0z3E*y`fKSMFDY}oSBP@k%bw99s5)ROb`Fa$er!Eg5b2gRve+rJnDzlMNCtZ^0jb*{eA>4hFI*pDRAX(qb$ z*CRHIY6Y7qqfTtvC;YkOk6a!?o;` zRwWT$jGqsF>?o?IU@&gsqC#Q1OuPE+yt4sDGL<%sCd;rc$UZY2)Ioeg%lzas3P%uY zzk%NTw+H))z$cJXy#hZLF3W{++@-Z>Vm?ni#qV%B+E_CJrp)$@nE%8Iq| z3+={S(I+QP(e{|jV(Nh?W>|`w&yz)U2b5t!OdiKz4b~o$pjcZPVGeA#KC}eAbOZ!Q zdEIp1HfZ&|C`ST?$=Zb*ANXgcy@}ywd$f7+=$Bw?l9`-_4?w17x;L8WpMRHQ(U0|q zc<&9C(O8+BT<7U%RSoUG48~rhB8_FXqD~$Z?AVHgNQivY6Hc1G^j{e|Clm~V!had^WdVy&t{Oa+&%yL&D~&UAjd<+{utmln!XLI zC(2e&s3DpFlu8}7xG0I$KjC5gxiq#l_I{p6AL*4jPmZ0zezMvm{%K{&wt!W2*%9^B zifkc8DLiEQxN8M28!&;!bagDxZogHX&2agU!(QMpz}ccC-a}7qfMi)JrbAPTt;Thj zv%`T+N%r&UAYi(}3G9-?LoE%nBYrg`yT&rqV4BQ1&WrbH`BS4!!56kU@3-`CxWt@H zCaBIsM157iXTo)-{6^r zpM0I)%x~t9#ni0UuP;a~q%-5UBaH)Sr!a9mAWH3iL5VYk-j)g_cl8cpR*$e)e%&8d zv_^m9gS>$YdXn`@Zth2yF6CmXFCrb%b_bidj}{vy0`nvvN;FQUOESL2aoy=}2Ckdb z2g^RSXH5b|h@x6**nqn1m%yT9;0{*sTtIEoER?1&>a-^{iYd2_a+T31fypP6w&Os? zOlI)xcu!&NuV-DEj6ycNu=SaI9JD2|AGD`HkRVFRV{UL#qlh-T9IVo~p;JSqcU~od zW2CBVupceGl-;;e2U%5#43YN?rYDKS0GeFysMonVt_anFuAfoVn429FS5m{~3^9wd zpSIRb3BLCITR|C&)xL!vFeGsUD0MLY$B&wYvz4j2t(m9eKX%Ig=e%u7qMXc-AX4ac z$Y)qba?E@(*)O5tAoP|%;err?$S@yU4w)s}^&G*%m))GpQiDK42iEKE`{}7hQcqR4 zvJxt!LZbG^BBJh4vw?m7QR9+_(SBU>qV`wrCdhRiTh6#9S@pn4TrNio3_d(E{>9d^_RJ>?x9lfx ze$|qP*bgmi z$!V|*4bGchh9N-!zbrsbu-f|{=~G_5+%*68gJOJ5oyB6hOTs-Zn80?GfP23r{O9WB za0#}(9iS9o2{;u0Srcwnre=TjdCjdXfGwfZp5%m7Wrc)^*cq6J06*!?t!&Nch!ky& zT+JPv?Rbb3MKq-3>4-#}&5T^lOo<%qd5AOsZ)rDMA{J&MCQcq!4jvW`A{HiQCZhk( zk1Q16KmPRqOUWSuUc-P9ZO`lr%^3$=F*HJ6dr4&!Zj|umGDkrv#o%lt)pDv0A2j2N z*L-;zV!Djm@3x3q*R}5EdeasDAQE6{1RX@Tl#ZtXA_-iMdqBz|is1i)vUltfC5o~H zGhf=aZQHi(d}-UZZQHiDCvd^Z%jwG) zHY`u;(j-Zr`Pa9pY0r;sTi)%B^gjSmU68%xCsoD%a%e$WitE6ZPn!8joe74-BgVZV zcb|}!O~yp}1+Y^Qdr&QgYoqz-2ze{@3ifeh9^uhW&@i@x$dbuKHzCIAF`WGuX8c^I zqnXG{ag8XuDQub0%`~UVP7^luG1f*M7xKTlHZ1XG2$xM!433X9$U|?wXX*fomdU(A zKR%epe=%Qn+kTwug_&XG2N-X(+x@_)_5S8i*zku|f{=j-mMzwLI1WrcKfG1`==*J! zc@O{O{GQ!U8gxTp7bzUX9k|elT-vIL68AwNq3yY}@*X%b0k1C1LYnD%cAc6$)(Q)k zq;S9L$FGh=XIe^!R-r(79v-JEW_nOQx%zzJKgIfd5kF1)@W8(-cY7edY6^j0$sVd*J$K)lI~Mj$jB`tzB!^!e@)iH!W2S34V-!&>;pokI=8aHp?Oq}kOh0C zH^0E%XRf$f>-r+<@eA4t0IBs8CT;X&o=trx#q}6OFXgm_OFI8h1hZJF(l9I=sB{jb zw9;{m^2d#yubER7=hqM+BF{xrvi4JI5uUCT181@TDJUc*qRzdo0DZjcE3VZ&3O#SG z9Q2{;A*pO1EqCnEQNaGxE8D(~zP}s8`=l~7=qS>4CVgBRU}cQTZ)X~Lm)%G-`kwJV zG5*|ryhqzIirz@%j&xnFl=YPJ9(buf`pq_W?!Lph8_Lp;#A$h`3a$0A-eq z!j|sCtTt#%Mre)JJ(OI{??1`u4Y0yfjBmbb60LQOI>x^^tnK(pofQ1+7B|iSwu2r_ z`wQFzHqrXTihUk8L^@9t#gNRT30wyQ@Nd6-Oq$uA=&6q4`7gW(Vj1L0aCodJ=E>S6 zI7Vz23fC%3KYSlfi<^;ckjU1`Vw}ODUE2aF0;S+g6nr}dSRKQ|*o=brq$((iEU`Gl z3QANJ5Zh0@jJ3IMv}tbYZuHc*=>BWZ(i%@r%xWxW<)V-W9-BTX%OQO<`Qczw|a#-mL&iaxl|Ahv*z5hp6IgZyefq=lcjw z{8X#V*e=i`yR0`m^~%rD9<@MOP(97oLl8vt>TuZUX^KFhQKFE^s5MfDBbt`6#q@>~ z;a~aced5^Rfqf&=zOu01{i`^OrFD9oX<4+UA|kv?Yg-pNPxr;vjnDw9fzbv$>{S%9cxAq1>X!wG_z`LOC&l3pX5 zv^7m#09p2wP7|8!eNg}8Y4YyIKL!yuNL5%#83_xCxAX`9La+ym;aTZE`Z?_G(}MH- zn7V#A*1Z|(dUx3Z&hdbZwf7(4=c)e@Ij9SxGDcmH$@wcX2S~vBY@H9|Jh;F`#}4Uj zF!b&vtFdD#gV(!vYlEXE3U;iuVZibcgg4-KqVq&w0F+5)SbQnAHyVZhu$kRGdF*hd zC=5gRO5R?vH0GPqwKDj$c~_4%)|ph&!<;NO?5(hGWBC9*-L%7b3eX)$d!)msz`o~M za%*jNF=}}N(T2?TJx0FMV34&*#oVb|P2rU{h5GWBug_**uJi;?Zsz6y{bql}G&8z! zsz=UmMa?am;@|t%FwVhNH0Anu~BW95Lm%2O(!jh zrP}%qGp@Jt#}xCnB_`c&*gNp}mc>^E{h8VhS`}U6yGkmfhPFY~6J8fzGxqt1B-p~o zhRSm#f+ltD!Zbpp040YXB;ode#N&pfA6gC!DH|oaWECZrBW=ExUFH@71** z%Pkza7z~i_$M}^iSnSk&xQ0(q=@wC)uMSKj(SOWx3@m-%Au3f2*~Gyd}*i8uZKJO_X*%5qSVsSJvj+?$UgwwU*xC% z6|gn$6g@NjiqOw~kBs>D)c*H;fa(7Y*sPb-c5D~K;eBTQG6?=5Bd~cyA2N_?JBiamo0}Yzv zo_UW;%EGAe_djga;tnEDpLNqu!G6u26%~&yy5l$z9XruKF?W2$%zk_)VN;>Veoh!; zKG9o*C3?BWDry42BDiGJq5c_*S*Vg zIRJaL>2DC@+P+kRA(`Rg(Q_^R`Ot0MQ-nfXMigTD$$>=S8bz9 zflCaK681?JSGOyqG36G?thbV<)VLR>DSC~P-zJV1V*n2y7SZgiGsvaKr!&G4N3Xwv z8Y>Ifeb}_Oz!6<(c8R&Zx1vF3=9xA4ej{-ekb!K-6IjB4W}Zyy-!!bDWOn(dEa~Vb z*npnfK{DqR=*z7lXfa@9VA)bd?BxB&LoQ2#aoC|6HY>XOE8^Ev;)e4#D@rUC2guZY)Vy_W+*DW!g>+O!Tggia3~W?Pv9V<)hS5BAxY54{^dn<$3ZpsgQ# za>Fzei%l5Rj?q7I3|f@Tv=Mgw&2G)k&l?w~gD9{$im#cXa?lBgv$Izb{5?iY-I(x1 z8QZ(}{HC`xcNdqLVw=lN-Bt^w>~$r^;4Q|(xb8U1MXQU$N8NLhb=>mrPVd0{h`NPi zidVy;_Rb?L7vVrlK4FOI4F9Rom?YmukMLhl)bU2_76I%dp$wfDWmqoll59|nu153~ zpJ=ae*z?F*Hk)EEbq0b)VVAD_-*yT*FjR(>&CYvo^QPEj>IFP49A#!C zK2`O;pA3mn=xKyS9VnV(4md6!gPT#;R*gS;t^AT&02wR*S5q8Xgms~sj4+D+4e6zQ zG4q&Oo2h?XcotU&hg^#He5x;_o-If}TE5|GH)Um79Rh=vEGWJ*+2 z>1-Qzxt$Z^H6wtpuFY+3p(usHEXymmCJV=e1XutIdeWEU_ct1)LV;jx-V4RxXSU)KX6~C@twulyRGXQ zjIgkB8s%=3s;_Ndh7T=5=04xA``G4w0Tp#DF8bj{3-9rPUx&D{S}mr<D|{zI`+Trn2VN`+?I{y6}es2aXmiQxvcaU_~W2a~i=nRL+OF zCRC7t&Bxz6D_Zui2i(#`0VnZjtmlED2V-xX1GHEOugG=~J=)Y=Q%qYf89@B!exw9G zRsiEOOfj}S@3NEnH!Ihdx05~h?;Qy|uJSD1p^s-997!MsSHO){Q@y^Wl|=R8NZg-D z8n$)j>$t@0-MSK-;Rt@^qwyiT=$5-uG6=V9$dNdn3d}|dBet=1|E)2@>1h*cu-6IP zG}H1dW%cf*&drLO7yaw{az`gBB*MR<7f+p!NbX3`8n6vyxozvQCkvGj(%r;(HaHct zJC@d2aONTO+xbu>@+gOkGJ`p`%bALCpVT1|W(Y0G&`RRUp_e1F`zy0)HqV9>hNT zt@c*8_Js+1Ijh6;=uPtAoMP;mfp*ba){s-Sns=hOu5|l^T9)!Hmb~F|f724O1rGw( zOF>X*qwSHvbQa*@tm)9`ulFFvKc?$xLMdmMjvDUt!Cevd))I56pB(O>&~L&1D+T}& zO%7lBeH|-**^mFTcEZRix=IEBUeK!8frJ0KO3mdPl@q20Frz#Xu*!OA>s(1Fr7o4<`B?N3BeYz z1sb_6a4#gc8UDdUaOkEjXjU%jS1KMSOLbQu8whGfXFcqh9I zxx%7wqsbCE8g{0kW@v-dq9Wd z0(tm&hv{!;R0Ee2cc*v@%t$w!qA>Dt02OhfDwXkj7WkEO1#9q%GALQOV!*|QG6}o) zd(s3hN?}F*^F21FD_Hi27pE;)_KW<|E>m(Fb@bT~FL*eO`nkitnOReubge~c%>z*| zP-|HKIV_yc21DfGDD$}i*SiSQW#{-wJ3N)R;X%`;R$3xFm`67yc9O9$U1I;CRSnKo z&q;Bwf59Y7P$$^lckt~q{<*=^_eyOx-Fbo6A1Yg&JidAbrFc?DCu>@~FhbZWAXYf( zUOl0YVD&DXzuVGu+egyxp$}Q6z<}}eg~++f`!tVmC)S02iTs`pc{%qNq=eiqtlk26R5v#;t<&{CyuIdS)L+)Sj#;|(lHqN$s0T_ZG($Lwa0%(ri6ux*D}HQ1z-ZG-^* z>yT86XBYsClaM8<+_7`Q%jvW)qE(P!V{V^&gcx!q>JXux#}RnzRafBG$|2jQ+TtVMA;mS(Emgh9RT)L=%#EJXhF#tp0?;^VGq_io!c1 z+aM1uu!~~)<(}dm)TR^26|3yDfV=B9@hE2|Wd_^f(#=m81D~YISThYs$n0aTBW0|2 z`^#(5v~C7evLp>o1)y+*I^Fz?=>NIRG}N`qm#5MLZb_nS_= zF2GmeMh~G2PU3zU25CkO3tfaIR{A=G(s9sa3=f zg`3`o(03pBPCoF@2*Y8hkRlu*A&7n_Kwqp+h*>|@BZM0c|HgC6tob{_7_>fKn@wcn zR3GdU-j{RYb+)yVyEGbc*&lX5A|XK=Zv7>ZqwG$;thv=>iZXvz)K(AxC z2{CUX!U`I$he^Z!lJG14lg!X$FQ$EJu@M-I09KDk`~Xb%BNeozGukIhg1%$942dmj z5LQjYSK(hb^PN-r{Pmmqks7WL6m-Vp$a|SXY1lSC-ia$BLUZEOz`wb&PTZs`TWd?) z9~&(q2tZQX(%gSJJ`Mps4rv{S&X1+GrF`BzUuO{S3w|%TQjXZ8rMHF~+rTkpYX{b% zFKMNg_2Z_MYl4$saNK{WgY%(6i?d$`?)5$o@BiDDcltw_vEldso%a_Y{V%TgQ*~2i5!i(S?job0$h zh7sX8z#~7dFTJF_iDpdQDv!oreOvaWZ|lipNF6ybE&%nm=)rNO3#lL$5niC|x9cqD zY{G2t)3R~(#|zy}i|MA45Z?&Ta{|}%4nygiQVR;8>PBO!S)|}&tt!ZwK-C9z4XR7! z$r2-zHqDODQAu6x1wv>lZ(l#-&N`svC3h*J9&C=lm2YF;MEZ#&Z0=Aeyj4Gox-sXw zA-t^oJt*B8S_tnqeJzf*pu&_U6+_SLGg=d4<+!;6=vt1cfv=wOFR&Dzx#U>Ves6Q4 zicwM6La-im)T{4!^UNVOn=uX;Vtiv7>%j zd%gGOJp1F#KUL~RQYzE9n7}q{z8|qjitKaTe8XjeHCO_B>wrFJ`SmgSPOr%E^gdIG zTEr?8S`#2zf1JI#dsqNaTzR8p_x{9!;)IzdR!9+fm$cEhN^5{cbZ^aV{Kn^X1M0Zm z!De(Rqshv5r^lJouk!L4evmHf0=&U`==)!>NMtE5-|a6Sq4Mi|{9pPzMV)O7|050Z zuY<9Pv4gRV;s12%4ry51u5%)PZ~xuPJi9*H)*>g!W(5_$x?Yz#Zz?zJ!YeU%KulD3 z-XCQ}e!jS=N0KH76f|coVvTY1^2&KQPxYxn3^9R_GM3xNkOPygQeL)fHSg5~lv^)Z z!NA2K2zqDe+mmm7gep9vK@5VyE5OFoqhuKq{@oH_nIJ52U#i4&G}PCUK0as?_yWX>`tj{z2 zT&PoQb~0E;L}R@H-+BxOdXu09qEd8IVSppd$ zMoV)?p_8;y$Y^_j4qhZ=CR1*rSUU|T0!gg_xt?)NMCSSL=C!mggM_vW9 zL5_zv==N%xiHp`R{hn&Fz!8kkayy-4L6ogj6hX7QoxeSuZDik}v8ksMPaFOZ1bqnc z)}q6ZP<=O=8kiiXp9@btH#O09rfP-$i4cs%UW5vui+Z+169ISqn|xL6Tzs6Fq>MF9 z#wEzuuEr@UgSQsZpw?ID0|`V=2eQF0JTl(tUF9uAGK9n;dPkW?BzuxJ!5Go_O(-)? zSOI$pM0jAWW(fp2h=Zd^^i)h?_Dzqw^FQBsBO|A^fxf4&Zq@+_2|j(qVwHXEi;Fb? zKtDmZz$zVi-cgEK{PIqDIGqEsaNffd`iRV@0hspb7_^gY`Hd<0>qdgPqRarUli{k+ zYYeFCqt7&``ZUW@{obp&4;nPrDK>b=M3*ZDHfPWJ-z4x^0^bo9GWM|@9tHj7myQpH zXRcZaeWb3LDSuqe7_6lS17>iKoxWX*N4Rn zRR8fFhL`78fyU(|B4E5o5*2VqO=<;h4jbnYK>6J=ppT9tMz`}Lit`6C3%WAE7zmSO zC`x>V2;^wSl}g1`y6@c;jMuRkpXS@EXe4d^BX8#crWJEpE_&f_reea(@J76mfhl48 zU|dqvuA8#VYiJ6w`5S&g-{TJc@N$Aw?4~KTkmA61b|Gu09%&|p;nw8!m&ud@7VqkGWF<3wTB);MfgpcC9Td#U93=*Nk&FmJsfpMQ_r)iIYx z=VWbsnnD$r@|l-h-Ejb)K1-m_IVo?1&I&%zOuwmu9%_^wEsx6pq2ke=>e;>`l&dTa zjENQ|_1*1K*SKvVznAlbReQ;HlOR21Y4K5wuioc^FCrW(_zvAR#uH=eJxKKthREI) zEUlt+9#3x?hWMvTL8DW3*}%GYQvcyM+_a=(f&fp!Rc0qADAwKo-c@?m2pQU(*_|uz>S}xiklQfJ} zIvZA(T|3JIaQwM|J70tZTcRBATBw35Ze=D~9lxA96#Oe%}FYxS+gnZFG zl7E^7TM_Vx+^A^CT<^mmCQ6bvd45t}z{TT!xGhcPY4ug+6`7tcKcGxsIedMAr{#f! z67=}3(qpYw0)FD_g?+Z5CgAJd=e5Ot{+j?KHjyGr?zhgIn(cps(f{95gW)g3|FD=} zY5h8}*%5ySN1u|tbAZ%mf(u+{xHY~^CNn=P3}Wk0KKXC&vD81sf|vqC&)Sb2*N`Nm zwR-GU#cPit5OG3DB8TnQ$vA8nAsh(CNZ~Bp5+~AwcqEH#>}QWnBpo?X9>*07K7t@< zAyIF~V3@vx8DRzn2Spw zg?wcqQ$)sls--=!a^BKI!H+E!NjXx-p+NcAtibPGw1zvFsb;-{sF@BmW)p+eMz*L! z9x6^q&mpITV^;($z|(i`|#h%nG=ut)4l~`nv~l%B ziYNZ|kqD)|&6|*-Pgl23wq5c_e>Hme#?K=s?+2jl_Ja=~7|(0B)dBt89fnVfAKr_0 z(VQResax`)%!`%M%p&%mr>ITs+^DRFFi`3%2-YQK3ilP6{aymP9o-%eZ)-Q+?zE^Z z;d(9F#w22X7#G&4rC7$-t2`V013@g&h(7&PQ4LhQjADX4%{F_hNPp#rWd=bmiOMqJ|0JTK(xP ziG9TzrZGf9Ls8&P(ET{Z&-ja5ry`eKGtEB<+3+6DXFNREMWV-uz3892gHKu4%w z8+{GJYB?62uWpRk2=JhO4yjFve#<$0zN%pCCJ{n(pHJE92lp7ooL`lmsth3Oq%>R_ zsUm{F3FCrJ;J@$$2&D|7lh!1tzzk)7Lj@FihMpaU=ZtyqGDXKL6KylxRx0aMFL3?w zIPrcwocUGuPBe!-q?~P2$hwR-Pt|?tKJ5hqSsV9p8Tiq^M7#^qBBEFroF(}^fIG|! zO|wJ)piG`u(%$&a15Q#)h%S6b*N(rRaW4;2BBEHXiZ-rVnE#fElSrh?MjQ80MVCV% z!4Ft>WRv)rq2MhCjE!sUJ%|`6q=Wet%&gp9`YSQ8Od~~>2T;&EXmdD*jpJ)HsH>A7 zp1)r$U0jUuk&e*O=>~pSdNEYFdn7}_*pqMaKW}5&5lvC0ctnt$PNy`OiVpw9bM62q zWr@OU>Bc+9s7PrF7PPq7QgkGrb@n}Lcilhtg&Uj_Vm3lORe(4D58+eM7Y2_mm&B9yca)|}EZO8p_2{wf$c;o}~$`U^xFs$JQKucrl${>G*X_Yez>@qtIoRGyZ5uZd|fZXZps#;$TkB+nq@h7uOiJ_)vYq+d63V45DcEnnvyFL z5nRkPf|TH8o(d4EMIO>pK;&c>=a~;2=}_1mHj!0~N?IE~oxvTitymPkVYdkk>Ioo0 zI*c2%Wt)GRV%2lft!+1M0N#P3c`Uohdxl8@xk$uM58f34nBZI(Ls}Jm!l~bRe6WcJ zOFfA5X@4XPf5E^R1#`~wU=&g(bFN5zH=mXV{O6F?$ety@Z(S$IVw4+3wY79z$?nEb zTazVJ7)1flW|HOKfj+ez$dB6cpWQuG7={gOWDaY!SE;aS8Dlwupb>%009C^7wZ%0e z+qAaex>E&c7Mc=(vOuhFPeYuhm@5?P-Dj0f#GXiZNAVMe!B1pv93>Cjy#jbG7gB%; zUS>py_ufv3T!uO9aVpI*dC){J(Kttw(}38#ayV$V(Toa7J+fk(-F{Pqkw<^?{z%AG*p7C?bdy&si$Lxb)09N8Ve@F>1dGfHn*Or{HWL{vge z)%As~WFG0)>)v<9NNtnN;eBk~`gGN#U3>7#8b$nE2G3S0%R^R{piYp4KrLS0spSh?oizN~|#H)-20Q z!H<(IQ4o|UU4XLs!JsrQIOAW9s3`0Gyp~$HiMHuAR#nYp7rvGp;e!M!i$d$q`}Gni;y8Ec=n;(d;aT zSm_rFaF`sr(`6(aB&KU2qqho6foCKQqWAZHkV(ztO=2(EJD7elXJ|TDT|7h?6kwy) zs=Gg_RZq(>-RA>vhA>`FyS;1jT}rrFwW>HY7117%Z<+(X6#J^i7(cmrKSW4Q6z*E^ zuCh@~(nj+dg%GYPNVdA;YXcGd6|5)c(bZ_xeiLfFvxW!qC!jn%Ko!W`!9`BX<)$_o zx~;0Zi3>E~KV3PO+Kpk*k_|AzU?6jNJ7AP6lHEL%olwf#vIR+Jni{)n3CPW#=?jle zeH$YJJ#x=rxqjirtGDupLLee&&@2sI9CpmXTKgsK-0>$3Y#H zhN!LAu@VpWu#KI7?d?3Tl2_k4y8i9TrRExE#v&p+4m^&`;U#ckFe{p48#If|w8HS_CbvasC_8q!nJ=b1l+T zuPxbDS~ID&h}O>2RX%79oaQM#Q0*fQTdoAFo8OVyS52?be8HTA7d-*v&6-g>=~1~n zIR9Rcz}o^Ymb3%(^gZ8Q-f4r4hkma-T#7A9F|$}tNEH9{Px#`qZOeqf zHkioOAw4o&pY0;vfetyv{h} z>Lz0=Ek#kr51A98;p7PkvIjBylk~7Kz!Im~ghD7jmIRBq;{*rS$tR?kiFqOG9R#a+ zIy~xHT-3ew3Rm-DW7_LsOZE(u5L3=1(N77SLjlq|EJ@je-Y8zyL-%BNcLx_(aDO1j zbyq-~LyZGMgSBjgBfP*to1xju*w6@17#>=%FB)un*7Z){Gx5Y#PU^1?vPN0@sLu#O zGBcFMe@a+KW-2bTOLRrfcXg|bl@6=*o;mt+UfN9g3ApY}W(uG>y) zBG8}geKD~a6*?Y=#{=xU;fTN2eA<(Z1rMI3jECndQf_U0H|}Z_81hTU%*(=(3|2>L zy@8DzA1`><)$64zUpc8#?}Nhm_+l2&txMMFd4(bYR-`oXN&4He66wzXuovq4u8DLm zZ7Mua#K&+XrwILT#0>e8?2UimzGN?M(MuX0tx?N9i=R)gzF>?Mj?lvu7qVO%U%mYC921oXHD3qIY~Q zbGQF`bc27dSZAUw)Y9>8XT8+g*mC1}EbOgo$X*w;Yaui%Tyt9!@+BpiRm_$}!S<<# zkA;5fr`6F5usJX&yHp7NT}|@yJ0~c{Faz!n8)D^S4uUv9$RiLhwyQVI*d333#wUpd zmk8sY+MBA3TL0Gjxg&gj^&c%($eg&^jG6 ziy`~DiSO>HpVUrsq_{uge$hR=6Lu3=F`l<*W=%>7qVi7<2sctC5T!*)2w+H(X$ z)}+A{XYNEkso6-^7@K>f)rBxsCQ!whTHqQy%%7)oy;Dy>X6xpU;*JARC4;r5EZyAN z+4gR``Dyj_aQUs-QOOJ+3utvM-V1vjLu`QMVt_OwNoh`fJNYG1vAUTfgXd6fkanN;6)PQGjao9G`IT zSAj6&b+Gl>4;56LI%ZaZ7PViuWn zps31UlAga6%w$R6FlFml+w(-$`GOPGKFa)AxZY>piT`Mwww+=gUl8p_tj%icMh3b~-%WC{}d@l20OvpK5?JAw@*S>-3fZazWJeB-`P^aaaj8^CC*Is)11jpPGig-%uo+I zuYb}g;KcLP);a?=?qT73eAlMaOvS|hakcHpChoVT@6Q!~ZW`R>%?HDyp3RV{tKU#? zj`vpCjf;z1i;4S*%(hbL+qsJi??d{up^#_eoRPe=RXr*&(vZEBJy{0$9pQ}AZc zJy=@dGq)@9ae|Umz4TeaJ{R&d8U;7UiCox;(s;x!o}t2RY@=D-WWhg`6_GY8Sh;gr z=zxB~f9e6K2;T}FpqkjY9#S@|7aJ{WA-zsSc{~DBAisfv-EN7mRgtr-JXK&3U^q2{ z_0~Eln>P+EvkTxK#A10HQh`#t8L5C z-wYbtd@jkyQap#l9Tcf|P$oDvRw+W!A^OlP7+om@xgUf-4HXELBg2B1P<UYn4QoS;8$r1`Gz&7Xrj&FR{h52`J#p$&;kHvVakpbdS7odY=2<0xip=BMXkbO^f151#RccAf2e&W2 zUNSKx8$RO>mdADHI{|D+EX1cXnUKYBc7g!0LIsN8nDIswR_>xDU^QvZKxNoqwHD7G zbLfXTyLWMQ_GIu2>7>K+F3gx9f}VrvVVM$zop6YTOO7nA=>LZ6uiP25hPPJVoa>yU zLJnZaMdMZ0EWChtPDKAOsQzWI&!+F)!)x&NDPi1z==?Uv7 z0)HCR$%u*a0`c|k6YG2bky8w#Qg(ing)zn_kSkyK zFoIMP9Y4h0Xf>|0cZZ0?eU}<`py?9`_XmYulBgHOh?v?3V-xqQPcLwLUpRX?Z^e9% z`F024GpaSrV>tfASBsHH@$UHi)d&OSYUkNeaC$qZ;i6Ja=Y;x@C|}DT9kWK+YeTvq zen7Xo)5F_K#0)R{rBk+GFgi+U3egYL9Lc7V)I)&ED|6*QCE< zH2RlQ3Ct!4l+3?Q`=(4sgf5R*L(ox9*EYj`DB3}Nh!7TljtrL$cmn>10edos+L<^{ zr`}I)f0234UGYbFC|q82--=Be^zg0iPxGz?aR3BNkvn*FMh#dwG_-i$tU?-&2TpHA z?{=;Zt`2rCmkRV~4jS}sijS01qW7b~hz9xq-|z{7dFjPOuOVXH1NYvQdWRxNiylBb zRyhg2bRlwF4!vNouxmtykavxM`)HCw1epxHU#l>HZ;MZs&aApB2YmaI(Df$AFbtex z{Tcq0Nh7K8v42cDs%Rp&0Ek3yJ2JX{i}<4w%)PK4tLha7R@ZS*qF%ZEWrP&naFPHy`L0+v;4cn@9Q_Ok_yUpUc4H zJ;}5c!A?oivPIMe5vGF~p%&RKACLm#_S8D$C}n7dek$$0MiBB;N@|ab7}0=B8b>H( z%v0gE`pSjW$=3cfcf)7=?=n4BXrN%BAwuUua*(F+!X*qe%lYAV^w)9NN;czMaHQMm z(g?C{rzc~8u@F446wD#AUWyMsd5&?vhG1=5oA$P(0Yo`{*s#$&0ZpMTe{RRYWH8+{ z=~tLKMtD4W*f{?nmF)V+Re1n?E51}h2yoQi41Em2Pyk$ZX#snET1;U~ngIQ1M)2Ml z?eHCaeI_y+Cp=!~G*eJshP?U4>At12zYmAN9OwN3qc+|M@d+F9OCq%N(opo2jzDKV z2)jC^`|(1enk@qb?18vN!|HBVBdrQkgl8iRgEeC;ZVzTn<;u*_4ed3hn1pV-1o^|4 zWlh@29E>9^93VnIU*=g&Qgc5Anx^@G>YV&68Hq8Q$X7}_~xL_(3jEb(} zng!l94g|v{s|2JRWenR(wjw=@xtBRY{R!Y12B~;Rd3EU@#PE|wj)Et&w=V3jjS3FB%{@Ub2P8ja46VufwsN25cikg?rH3wI&+ z#2y}}$3)@NEasiHT@VRv@(glWLija+u}MIG_AU#@j0r4{BqN*St04&zrX?Jd=PKcW zble8**Kla$Q8wl&Z8ANt$iw{GotXWI(x zE{l3|gUF?DXS_lVxZ=U z?EX2$0ex^pq@jGeyQaaLfJdz!DfY>a0>6lO<@NmszuPl~OHF?I>Gwos&if>^O+xn02%(>Bi$Y%7R7R0FE!0Z)4hBI$}xG+|ykVyQ6Ze06}+=5Ej!J5qTaT z4`*_AX+=B;@5}xM9$VhB@ZYUDr(C|IBN+O=RiIr1H9=}qw9k%gFlz&DZ7QA`GuI)@2C#>O%buqe z0DteAw#d4tA(qGeJl<=sI?JCx4g+=Gh2S@e_q6^u<5ApL_cUO44QbRaehdC;5kX0? zn43w-MoQScUs&9ApnSKFae%~WAgP3>j7?2CE4=s42yrWJzenLZmX2Fj`sX`jKxhb~Aos)6zYk%^~%Y05+Lc!7^7ljyExkhFE&NtBOA1Fs!=>rV37h5#AN-2Zx z#`+9m!w&zlH&@0m%Q*{u2ZFdY=$#wLjOiJU^1PJ54)X2aXeJ`TWt+>@$gklZypWHo zB0cXHjzCwlMMYIL4mI}MK|vaML^(u4O)hoAQ*AstGUynCg_e6B3V1g$NhE-DzThVEN| zC`)Anb;;sX))@}Q#;-ftS~)sZMsz#{u`h%ffDTxPmqNsF)ikQjN`o7#IS!~!S@|sI zS}cyk#wWJa?TNZg_j&OqXENDnWVw`{q3$|(*ov=sEmhCbO#z$A%@xdx-Pd-ltR2fi z-%daOeLnf!g8_sv99F-)0Qz~Y{>46q`fv|?o|%ArpIBP#LLu2NzJKorIGn$KPp7nR ztooO;0bLGxhBg|pUQg@2j#8t0FPeeRzO%rB3kYHPY3;kAE#lfI+|+Xg0lNcDaWrTa_>Zk^w3+{=dh zOrN~t1X|zbNl}$=n_oURYYWejf8hYB+Hzuz&{1bETnAn-72|nz4}8crQAj>4qx?gg zZHn5q-i@@7+vc)GsrHm}R+$YKUjJP^(q4JP5Md4R0NxFxp6z}WP~h$Od=2?r6)y;u z%MCpp{

iJ!6%XhhH!M^lw(o|7QY|`G5Qk9BKX7Zge30boqjm8ps5YxO6uSc>XTd zB{G}%Gl0W449FwEBsrzD%@qpER<}KGe0Ojt#u^N{%&V%Jet3pFC#J4YSeR%xcRBMDCN#<8RP)N}-iG z=LjQYRyKCFK9Z}w2Ed8(QzPvwXTB_R{4Sfec&NNKB;;0}qho4+lb(#PrS$v{HA3JC zNz7uSh0XSBT3b6m)MDQx52k8bFX{n`CKYkRh%449;06kGTr578np3(E82KQRhyij2 zCi<>-(P~#XX!AHH5_`duKSO9{*JhrGZ3 z;^^$+xbnCO;SQ*x(bsERwpf%*95p0UW2@cSRBwr;d)J{`vLjQ@sYfnX*hpzr0qW9Z zjbkZ7AtEtrVJe&?^qZ1Qb(48E$ebDX>=yk1j0v-&D0LZ=3@n6b+u5+};x=+7@{WJi z@L1fdq}hGLl_U;9m~fJpNGfHqw|E{a4x2?nPo8Iy&2b#^!u2wCA6Nb(-H#(qMKS`% z_+%9#(^BSaYxh@}ke^qI0~>8773~8LI7lmam)R#bf-( zv{VMp1TWXSjr*#nv*XdD>UZBZwX`U^rbVKF6{<5Ry$Z!_2ekI*tX-L$r5vFj{BlEd zPp4dzgpyL9Hw}TmAKGJ59=eJG19ea^1lm}z0(wi(fc-tJE;uR(3jNLY;PHC?`G{Y# zSyIil{YwweRr|QkhOAn(lAzcjonjF|Q0`oa3YQWl3K+zibkZS{M;1ez*>(gf+UL6Z zRnNqqdIU8tACFyq(8bRMs6&l94rnU0t>o3>k|Fz`ZQHgwwr$%+$L`pZ`~I)zIG$NE8?#=+wekI2RcBR6 zQfcm`NmcC|+^lX_5_u*|;X4qw`GyH3X?`!~f!L-q{6byo{Zkl;*ApCW7a=h-E@VSA z)7vhGS^6_D&fba1EE@EjoFunwb2YiYZ?@kL7T2*U_gR&LtwH7P_izi1)f) zyZOmDGAdp3)L{zH7{C7#(o-h_p?xp}ed`Sa;`CfIH-ZJVvV`zD$|rx*x4x?3GkRze zlF4l;yRPIk(+E{fMG2?mM0=c3+Nx->0x%p^lZZl-f6I_Vf_REnK|&Kg1k`o!%>@KX z#cKC}(TJJJO;0!5zaiP<7NFFjKc|qpeZ-^N69%U@VslMU)4wVTaC$g0Z*A5&rv6u>$gQn@dt)sLx`7?Bsv3^Ml1!72PrWJZw% z+<&!DX_%ksG9};{a^#&Q3|J0kRqz-k&8VY)mgQeqPuLyy|4PU$4AL zJt133<`J^Z5|)9{aNKsuZJXK-=oCW4u!A5oo6SUlXlXUn#sJkC3qp4F%LE5SJ|UaS z!*y-|_=*p{(rS|kL}do@VTzam z{bLj$=eJ0n2mjVCFL74X4?!o03G@Ef9@+|!7=PF-0cPj^P8m3dZPx62U#0(}M++3= z_9J^mgf&nBrh-Fyry!z|=iMp}kHEmia(G`+ctp~1b!(VgxiA-_b#i=#*V1I5 zKJ{f5l51`Aj9-nOVTu*ITz&)`R2olSC|7n$S3#TE z)I;;1;PXQ`1HXV7C)0#(B}4En+w?6buEt2COmc+xWBN6*o4F$r5-B0?4L}NCX(p5b z5kT0|5D#s(cLIiYcnMyY@L<_$vJ1Ta=U9dA7akwa2>IntqpbE0-k1 zjx7I=(?A|`3IX>p1#3kLbZut{tEL&o5&*dwtKaW<{zz+dlTCTv=r5{$eZ1=ceH+~1 zs|r&jz?iVSvytbq9#Zddk&3}XFuZ4Y>I4PX=F2WWh?D0d#mp2#%edRw3Vw9(Pyws|VIiJp01DO_RXO z;viNf`eLskbowr+sH}0jD3uB~T8i$#JtwSzg@wPAw+52hfOlrV3tzVI+|TfN6*TVs zq8D#_M7En<0`e0$`~r>@API^4V8KDzRJne1)dsbZ7R=INMAt9H=1v6+YufO zx?s6kDQ9sOhZ^TYOdkGHZHHT zyDnC}v#V4KqZwUAWLmo<1gnKqyO+%u%wlnFQFSx%o7!6}{tTvcK}b5Thxoqrl3Q@| z*|=L4_cp=s=tfh5@+%F&Z%t1yR;^)AXwdw*9TMq^XwwPfmLKQVCv;f5q{EBsOIE+` z(oj~@syVx;qWD#n{G#$mi=Of_tz3~IV%*)?QV;e*Dlo^s()81^yM25eyaVx<#>~1r zLnwZn)z@4CN2)@i3<1+YX~LnSZm}*N)!@OB;nq3mtNTOJYa6`Xl1Ri!X5;;d#GTCF zshNzIjE5IN5CL)h24VPwsBu4s@YhYO#cr~Q}h3EkK@s?MC) zG)#>L`VMTbQTpNQ1(wV3IuRn?=2%Q44|2W6m$j|A6R8%qb;=eIXBsBfAG*z*+f9~i zvki0HU{P4zvRv1yE#seCatfPra&`^D8oA}?YyZ7`+_SO|CjOfpyXpQ1?8x$8=C|iR zN10!5e<>k;R?FJ`#y5AV%Up$+XSIeYl8I~omXa0Z0miqI;UE&EE_L{yAw?t;F&C|t zrZb+vQDKNvcO!do89tRL2#GqGvQACsdUQN$2(kbtoU4ucvqeyL z5_5i1|8WIR<+P%kh7)E@w!%60cU`>vK%m;0m3HKuTr2t@j0-3XIL-Zo7bKG_2fucD6Neuk=_c|8z zH#!2EoQ$iCxdd-U{C9`p+CkWonP8>H|6vmSB0rR5pr2XpbVnak7t*uVZo;rhE?HC9h zvQrwAwg5QO!kH?o2`pUia~eaVy~Y5gh~4Z1Mq6MjmF_{)K#Yw|syDCj=X@|4LH68y z6v^InV>jlDCSMN!H+k=j*PmRMiA(Hm^Fm!}j1Z)Ok~Q2Fl)r>1_pG861R^K74+K4k zd&&D;N12c)!DVeJTiOBd`DUJu{env8c#gTz>V6K>mIp?ZVDtz%Y$Kq{j00;o(vk@= zlt@9&oWnyB95NKNASpl5Gd?G4zk8$OBO6yARm$4T=E5Y9laJ@x@HpY&-LBz80?2{9pD~zNdO|y1G2B;q_;C-#?bF z*{yJr5;;dZC5r4Y#U+`4nPntxqYd-pO+#6GF<80X`W9|&Jf##U!EdEjk$F86L~Hgt zwo}HtbaaubB2|M?lqYLj2nrIBu&_^+Eh^Q1FKTK9B%(8{Lahe3>>tB(8BhWj!lb_6 zk?nzMp(-Op;xZ(V^vMijpdcE>Y;1^qrQEXP7KM2Ufo;3F1hZy1|B1J&TKo(+8#Cr_7W1`8kr zVK@ySCRd8L?4V?4YGjz{SHsc^yJzSxvAa70HzSD%}yG2_ANnr4(^JtKu=2=1n!b~*1~ajC@M6qR=1LukQ2iYdsrKqln}aJ z3OI769yf~^?E*9wYa8d_q~-U3j7?DbSTaS&FP?`lx7v&wCdKU$6yk;5J7oC+sUxn@p_9iZ5 z!Sn6H#dE102HURG#u7OfMif*=fvdrdKgnox38|`HF*5EN)aAJ>WLj3g(1%geE_`Ds z508IybX>{~TahxQL*Vh7wg70oLq6g}Nsh5Kh_;T__SUsWZD>Fk?^n`n5U4%-%V|Mw zIMA>S;$gx&68UHtb%jhboB6}eM)*{Pt+J#d5dERAsJ8;zvQF;EmuawvJyfl-E`8H` zQLhL-+uOQ>g=_gZvhY^32124fItHHexPPI!44)`sd3dtE_=Wq{!WUB0;u6;k%?^vc zMgc`dR!$0QIEMUj@+8BIk3I^H=GKU-lTf$MflA{L#RRkR#)>Mz+CmFfND9de zzdU_qFwQi!p@ui$-qg<<*c}9LQ%EiJ6XXy?<719}`AHL8$=Jqo?EXm;2c)%az@oG% zn0hY17}16X;_|#F_kVzk^|ZEQr18B?y}I7qsIHr)#`+{9e(6B=$k{}$r6;w!Shus_ zy53?wwsl&*@O9--!9dS$UNvlh>ONfg9(Y>wUB!_c+#8LNcloCM#yW~@)-&Cm>VD#G zz|WQ4g&yjm;1ogolU6)4N&beyerA$bKA|Gl+Fg%btfMl2?mhqoG3$0|-LQ1nvgOk1 zGS-Dy^+b|iC1l3p)z_KF9q3qU4~roCRN&Hvb;ZZW!OKq=)3LSCRY^PL&1sx0-XJa0 zB<%dM`5TNhDhkXfeBVfLNfF(|4tj19>4T9Y=#=pNxjo2DbnNMH@zN}tTT!_!>d_xZ zPyh?zQT&aXzKo7W&8I*lr>gSAGW&|GiDK;$U_F2<(`{DSmFu?6&3Ol&)1JpPR9)nG_ks94&x`7@P5@$^-% zske(UGluf%m7g*#AqYkDF!@eDx50QiQ=Z#ikl&ob5QHNh%i21 zD&`e;z)Z%3?zTxJw=bzB8vP!(%XT8#8ddc*f}EC>7nxKt3o^;x zM$Sunbqqtx#nosk2}{ArS58mz_Qk+6Vb9=h5zcRZCSsPBNBzPwY|?rsf9jlG7y)Z5 z&dF*!Jgl|V_i|NHcMR{2{uQ3uP0Knz`HGkJHPoqPwY8}4hJHT@>!@T|WSpxa)R^{` zmax8|W=zz>R-|-_749vNcOC4=Dg5-(nIs0P%POllDeS+uGs=-!j-n~tZ)Y};hO))# z+W6Y{AQ7D%P$4I#eON}>diB_auhI5|O==<`9KzXqi+V0Q`+3@t;izgD#DhGubizSKMYx!&`2H6XVM_w_mP=iyx8Mx`n45V_m!#Ldd`` zZ(|8fFfoxmJeR}Xh-+5%?dEA!cKx2TSaSl+ReWpz&nmC&XSU(nJs_EpSz4X!i4^Z| z6D6A0m=6coZ#q78k9w@5&3H}O&!ayn80PLU|bDOUts@(=OT zJmI*q>mY8k(~>u(F3T;&0{Z@7$<`CDz@WTXHBw)P+g}BaXw4>+pgFN%(I`uAgcx^VFGf*W(A*IT`{3A>1p7*C3tyhNj-2DBSa4F- z^DE?d`=cY1z=}(0Vo(s}P@?VuIeAi0m`uOZi_hEMy!7-c!~@sp;TybAovt4tLfmz| zgnLw9KWOp5zq>;5p-ngFSp0eTLYJ;7ezyDgG>S*frn99InC8tX$UHyjc1+n%6Hkp7 z*C%`yqM9*)#MRd6@$|J`<>kh|&(@0b9ES~e$b*pjv7JGF=5xv_W0Yk!CXLm4u}Hmu z?RT`Aa#Q&+#H_1)?FIZPL~jPh#Cj{C%#o$zrCqaec2PJkpljSciRj_h_Mqz`fSoZc z9-&7q6Tc$-`-RMe83Ih6du689OqS!X{S6u#$3B)o)Fz4v$>0rWh>mn!*io9!r^)LQ zPAYG-IS`1sK1~Iw@A}ySr-yLxtK$_ejDJHKLBF^pBPp^U)CUAF>^-qCQ;JrNS9g!s@5H@yQw1Ghm~@Ctd-Jn;~RK1U){a1RMoMVw%gesHCF z7M^wpnUi!OQ;leC1PH+dpjR@rd?3?N^0GJ*VYPlP5Lgf#yirzp=!nEES%DiuqiZU6K?>x=W1#XHvi2!c(fx^I8f!fE( zyw%loHQTy~pV&Bf**%b>O6`X8HxK1WSb6N~f{$zKwvHWmtug74EqTG;+?mu33?hUK#^9&m_(gK2MR`@4Sezz>9WR5WP!;h5=T=GqgW=< ziM=C}^@q!H6URbesJ%i!jnW@O5CK*6q7Z|kl4d;{vNQrY16fH*`}@|&#l{5)^r19M zP}$^fuv!#OZ^gJ6Srt)%jrWR;Uu%9Y$G99})2W2zG9meo-XIW#6797w?_s?n1c+Il zFW-P7ivO&HY2z@DCA2V8)=^bVI0B+B1v!R>|APiPDaRgY1zJgW1GT941xXhsRlry@ z`hZK9PaSk)2!aRZTKqBgx<+foZ9pvugnZzSZwE1x`@4wOSUFk)O50AvN=+#l|1VrU znB6d=8i-#J_zCV2W1u`KbR?@O=(!cSz$2<2(yuWC17X{sAgp#75TWE63vCEae0Oni z6-ZF|jv7_mB2tqzYuP4zbI}E&52b6d<;UAN3{LK?zy*i8W);ch3mu8$A`V=D2~N~5 z!S5SJitG;K1g0+M23>yB6yzjyMZ#M4dj*yR3u9Z^bXAw@_G)ZG3VD%h==n8$>E)F_ zBJr<4%mj`y!9t`2V>8ZI;WAkaNg99=E4Ucfc9%7IKtD=kGEIJ z#!9|)gQ%&ObtqRZVPdei?2d;+8V%yL#$G84&&hL{VF5%eH~~NAQ5B)`HL)-#qi*4w33e2wf4j_GCo6&42Y@3m zUmo=q&F)*ta*-(*TXGEyHxo7ux*Ia`j%-feEM|pk|B8dXBD?>MJtc^3#vRt%Wv8umej)3n zAseNkYlPBj{^6_tZ~Dv#&cz{SUQ8;d%K?q zYex)ZlbL7^fCIA^8^>Z-w&9F@l+C%F)Afk0>)M7wVWa0uy(h^=-b3=}V$%0?C%OCf zvIF0pT`Hp6^A;P@XktG;P`uv%NeJbJP;$oVV8v<}n|@j*A7Pq(jHb>?r1V4?C{-vn zC6c;=q|WKuaJ#R7=^f&KkXFh&1yw0P#D>Rz6hWh<4ecZZHNP_c_MN@b(}|rU`@xcb z4;J%K74Q(o({RXe2=@vBG=MHfv5LdsxSBq6WcK^`Y)mCfUT6WD_(7sVRf@bCO<}R5 zS&Tcs*WQY@RLDb4$k8Nk%|7z=@YyL^x=Q-+=DkzLTZN7&l3n$CFh>Rcts@X%Fmb?X zi-8ur1Z&etS}fWGsH#()4<^-6S`xKT2uIh^;e8aXFgVa!`T6JOFARsL&%Ii5)?-a3 z&@LLqK2;VntBz&t=!&*FZ%3mgKvB>9SsAc};O5g(j#TkujDJs&YN`BhPQN6&hYE`2 zA^4q;;#76on#RByDU-G(`-p>5RlZHN4pe&vi0&!K254hzbMvAF%ah)2m&cm>-3YK9 z_)G&Kod2 z|A=WlxdEm78DJQE3p^KO&Hg0Tc;7zk?~MUMsPBNYM5kgAzha&C{lHF~hnml*y@hG~ zIk+8_q>zKo`&3+(PLW~AFvG!_{9fIzH~Bm#hgDPANJdVW=3^C;TOiVz2-w@>7&GSK zP8><)H3g5put<;@$cNM9z^Nl*rM&%P8->Lv*UOf7NQW8xNJQ+VfHo2O;x*9(hhf4zdfsO z$QNQ(jltaEsKC!aC5dpE3%X-oWlOg{I|8)`_l$SUxkibjeuH@?g&K49b?3H33S73< z&)3s={Rzp@6Mb&^<2{Su;|kGrpe18U`NWL&E@y@;(JGcP+|G{-RjuI1GkaNAl*SP` zKp@gHaO?{tMhU6Y$4hcRS8BPzhdGH$ExTyh7N|2J4f=&UAomtod5q2Re4KC^jf&xl zKa(Oc_tBsPJo$5UH88?8@p!vbdrgwStr-6^ z35Z2){cp2HL124$B}!FVc;LkJBx41zSxR$|=>c8yONraDTGLqfiBX?v~^@KHr(q7ECx`fGVCLAOVpCV80{G;k3)W+b%u}=E!9Fe zgLxQH#1k>>_-i0XH}dmB+l@C`OvhLgpm>nYrlS)d2l|H%26iJaj}G9pffYwQLs7Yj z>2dh|0J(w+2Wu>Tq4<$xNd%AXUvL1{2_roRmi|u4_>p|p-PwF#)XuuD&a?TMXvl4l zk{|nA&rY zeVhQX+JBH?kod+3at!rvuvI$7Yin0W+lL$5`_s+ypEF{h99G=IjGC6VNua?wnEIOZ z50!Z@g7HLVhSp4l=8MUr;~&YgdyOFqmQ5&rtMV{m9i?PHk9u{~P(jAp3)P7c#^aC- zr)oW+##GUVehG4yPRC0|I2Z)pzJ$%__vfA&=^Zlcf=KOv0ArE&3xW}#xf$sB6NRF* zC<~#;L-vx5pguocy@Q!!qH^n}G7pfo+ZM8(abIAG4Xd;(6Cv;>`0m)dK1MOAx{U=r zbATd4!Q&IyneBgvlKbWmk+@gYT2k=c_$3Xq%P%E7Va&4x4rNG5?Lm4SXzc+Ca$AhO z@8a~MEWNJ)Iez%HuU&9`*`!d^rnUo-q!%O~tKPtq>S#V=pJv337$hlt{y~pj@S~ge zmSdXF{?wz(>KV5xDEeI2q!o<3m4lXQpvorMcyKF!e-q1 zUf$wR9@j_xq|?6sdJ=jdvkvnG9wxP6kY8F#c4)vF(ED{KJox_u&rM zrMDH#D$_qA7z>j%YS?xpt3J`rI;UhYS(gkITl2^Eh3eaW)-0?B`vEbkDzh>nxk4 zi1jiN)eeDvQk*5O73pVUGj=4W#<~N;D~Wgd^3V6Plz72PPOAAb45?*CMib9{V9Lxw zi6CZ9WI6`9jJzfCj3P3<3w0EJnAL-^Cr51O$nu&(x_voLKo`&uW0EB4etlCurKrEz@P$;H6VO z5sAwIA@sqU!~M=-rlB>0GxQ2wJc5)2W1)R5w6h?HsU6J8-@;2P63x0aAF-iW9iFaj zx->8jRH8EUVT9i_38j?Q^;FfeRlcU=#C3aX5k1f@i=9Md!43p^n46!9i$;0y zBzSA9e^}e%@?hd?*2L{#KloV2Hrgdr7)q>eVX~# zW#=SMwj&yQE3}>0U6l3m?nh<9UrE4C33`MIP&}edR<#n-^(5BQ`;w~r;ZlZy zJ^Wj7kfnC+d&2ISLiHS4w^*ikk%1ANs9eww4TD8<_UB{N%CPc?U2SJeUQ)7e$q7Q zWGQP-{}mN~);Ls=tdv@enjGE$3Z}bH->ACC>s{2n6_0JAVg3-|)ht`0SmEI1{Huz; z0zCm-@C1XJgev4?Yiy=&@1?~!SbwQJvoFG-P%>TRG}*~KeOY=aUPq-QST!}Si>-W> zb0zsFM`ybvEmyW%xuVV4;tPzYVENU$qA_ec5eB&EFdga0hdc@5IZR!*IW-Wker8~5 zvrO~f6%^~s;=j~mM=RrA#e44t=~c{HdTrJ7v&<`WpxScb*V68n$QnB8nU+myp6ocC zo*V98Bgo%`bvK9W&o^>L_FSOHM$bHRbOO*29dsTEgOb9d#Jb!zwIv}q`IM#VTQknU zJI@Z~F}2HVYN4-BStUoB>5+lNPpOHxZ2;M?)N5T~RLRXapYjF%-;*!h+Jw#@-(lS^ z%Kw3?^`GR+md4w^B{Dp|Ls=1)0Im11OgtBq4gPsnbAMK7Kue^M0yRZ=id(U;e-WVL z1iwc}vA*~jxkUxR6Mk1E={fDiYjv^TP8I))1u{lW9fjghfcn&JH<-vQ)8M#NLp6g` z8HJ!NCK$)9Fs&c5;D9gay?nO|VFS?;f+$lGeaK_?p*^%`U>!ZfTsD*=vvDUUe2k+s z(PyNqVca$A@o262M5(gzPTb28V;^*Qz9Q4Y3j`d_!w*C1Rn1ESHII*MhO zXo;Q-c;E9U*50-OTiz<$`#W6{g`9#)BeL^fw1@UbM6SEgNYDqa&)OY^fnDFy=Y_q3 z6L2EB&n_dk!l8{!w&RJ$laDnjH20@H5F1+^_)b^o@Uk;I&hNag{m%6KXkbG{=8CON z_I)yV>Eqeng?+@R)q3plebaTEG z0>V(ojy*y1dy`-n@Sc|#Bl6Dk$G>ap6M5CIfoD9*kfn&^8Pm*@OwpWweoC-M#z8lZ zPBO{nzyk9^cMInDi&NTph_x*x>>>uQ{|<+S4PbjW5kSrrq2|w)lFkwh#vT?pv*QhD ze#wHDD<&})_IJpbRi@&f*58@!s{2I6RUbi;1cs;XR`M-7DbzKr)pe z=*KeF^2W*D)^Zct`)b)?z(32K;nV5H?)pA&3!yJl_qFx5KE`=7E=EA;kWTxLFUe0( z{Dk&vj)tsvO!<#T@-+YathbO6K_XG1BGZMG0=x#l_z20dM$4-R4-xdrJ}~LIFMXjM(}iMVVqk_M!?BAvTfBCWQmL@Zm4Z zz|M|FZw^b$pk-J08#8>@pkt>E+4V~op>3g7!0_hyJm@+pazaWqJvh~6$Z)SDBKf32 z;*iR1q{g4>RzkpHq_F|yBKu@**ruTb0M6y)5^od-1uz0jO18qL`u#OUzp%1%x_kqr z%Vh@KhE~o6ZH->sWSZorLoClbOMb>tGX-5)xLk~WJDqCB++Bk5mTgRbuEb&B&T6Db zX^2G4e?=)~KAOODWDR8mnaREzPF`t6i-6Lf$Orjf-cNM^Mw%lu?8tox{Ln)bhHo0>=KbvE4HEVgV*)D&{Fp?nhB*s zo0d=npR)VRjFqM)0`Q;r71>ykLxGzHunE#ah7vf>*^aZTy$2I zFptG)(UOcApqE+3Y~sVl5JFecjiKt>eHCH|ixd+zmR;h~nQ#x%8-e0W%}vebX654U zwv!Pt3Ipo!p3x78OLNlBw|_*)S6LB&<+od ztah_5xy5q>;D(J6ur-%d75f7{WB@|x5I?9v6H_-wn5z=LuirA&Lr=rAUEl@J{}vz$ z`wV@yJpLU%y0fOfBBU$=*_%~Mn7%}V{&5k}D3S2itC;d<4BrI0mE~vtX!NWrdwTFD zc7`Bx3paSyG*+g(4LKgEfYxw)UfR8NW@pAy{aZlyA25FsRcwakRZ-RQq^K2~v=y5U zJxxpoHO8qcinI%kf(>H#baGw*{h5}(T>&X@!=8WL@~|!}!n9y8o+{$J43Uuvv>d+S zF!eaY+DD882yL3$I#8JGJvr#`x|Y?{doH=(xn5Y0RgEnn@`VgS$(sw0x#{%whd`&U z=qiY5mJw54=D?rj%i)h58S*HbEC9}I>1&QbQ0Apdtwv*}{p$n-w6}0GgtY#Awy5Sn zPy!}JZ4MM>-{!cD7&DK(=t9(|HmayX%AcmGf84?i@{@13upEx1K&l>Wf!bX1cO3NN zEqto^4k5~9>-p1sU!8+A33TI@jAewHL!qqW$*NI~?Im1vu}kvzoIU3!?j1AL!dc}- zdy%dao4E^tI(B{UO&@0V1UMRt+%*EhP;iFzu1nd`1L@(_01r#Y=lB(kcm(e5g*V9u z@q3Q+lAN*sP#sYJC2J|(+JnX>C|8Rn0m&FUk51jKafJz{#AV+`Z{~GG;|2N@19#yw z8(wbOkl^5a${Igkhz?ukq|RCc(o;3JW;q@J7jJ*Vw^3t;*xSHo)&hQn-mf@PeZAnJ{^iNmQx$Y{j6eTVo}*GiotV*e3mUaZ%9klccl}>pDzm-k)8~}1$0&Y%Gs3=JMLTp#tNay6&P%&x(3J}yDAh@88xpV+!W`-I?dV zWu1Aq^(QWP*-wpDqb(x^CaH1CGs59q*sQQsJ|l1~dvUpEbA_)Km$R-%BvfUHov&c) zPzz%fp=J*UFXMAhr*BV7u=Gn@)P{ujDBJp!9UoJHY3)BaL+MhtB!1)VBd%;Zlx-rV zyOU^o2o<@^3D9*A3NG*Ha4^a<(>fmpAgKEaj8x^~brdOitXPHc6#TL^tlA8!J_$Cz z<0iGxh@Byh_g+&DpOP^gyZ*kSwm zXyXHF&4iSjx#3M-`);7?Z^7|s#_aWZadYy7k_3~BPX^-m`E3r~iUq^Q$GfwhvruE9 zv0W0EaCaEq`&>7862}W5x^Q9HNAmK_b?82J?KM$--+iT!6dm!KZoim4mS5~_X*;>1 z*^7j!3cdctI-AhABysVH}zr4!s3Mpm*tRF%K0rMQbP2@BYgQq zzh(qv8(w(5p=sL;76<~GH2;GUe7e4dfD+$Ba)$jEbn!YU&&28Mf>XJtzakzH60U=x;fK{ZNXL1TQ3tAyLrJj7~0}-oEa8 zF#uGdIy-@W4%H5TTI!rsM?i>i8{M}zav$`rr6ox;n^-75y+>b9FXP99w?_;6T0m#X;AKwC7K~l zNw&ou$;1BQ_HcBWZ2b28;dXMEu+6COJxtGLvGI>srD~0$E~LSr6k@WGRvZq5e%wCz zy&&A&`fKS0a2W~^4zla6l`4aqrtS@#6L>l#T#UYVKdN{)<5$t_Z2(OQD`ud;nk4=C zH-nw!jU;R6V5V#fzqE?G}ozSApC z#nV@q(2xs4nfV!_6c7?%J)^>i2ob=XQ&iJ6nmZW@2K3f{M=}Q(Ws2=>PRi$TWKbWL zMBE2R|9&o=vG>$AX3@e4R!Cg&h##cf1XN3Xm*{@XP>k^_S{d9OWDX|A-K)tyCg<&qo@k;K>`37c#1eB@|)q%#QNJ zfgce}qbbX4>3DZ~d9r+7KR^HZ&~(aKhm+ROpp#Oct0Sjs_qH$BTswyUyH{;G zGi~LQ@9(gep^4c9!zJK~E9Gzh-V|PM99NbU?tfahSov4`LLgp%o|p!knp2u?;!6?;q5`nL){Z$V29(O(vhhTehos56`|G(S=n(p%PMJkMqcBK|#67qC#X%5v)Pa8$b4r}Ul#YE@$=tsT7GWA#nZ$-*z zFDs$qLd7Zpm_->^3PUEKhjC3ChtpS4#Ilxxnp%~98-~*a<@3{n5!+{gtNV>2!!kzQ zz+#C7y@c7yD>$ToZp9`gza=b!Mq1og{y(ZkJs z&qw4XXabX58ZV}OuHH63Wqt}ep{7yfD`lMADX^c!D%Pd#O{MTbwcF`L&T+nK6hxyCk5F_+4JQdf(*zQ`NR#PD~<3xb*<@dV#e0}DB*n6J6WYi!~H?t!u`_o z%;X|jyX=M=vOcxJL{(BQ_*lu$kE5#ai`CId(#rEJg%gb^O9tkX7zve%Zs8ZQuH#@$ zCLcVFcUL(G6TsH-oNdPIP(`z*@(tOvy{rva)nIfsz?#R^wjl^wuKdpY6Kj5vI{tLA zKok+raP(MpKsD(&I%&AP+?dtON_4u&pCbH*Dhv@ZlQ*P>N<-N>#J#*+x#M4tf`d!H zFr*(c3qHInKg3G!xR=F_AhV|_0tl(Mc-NukyDb~1nx^&kFtiOmQUs&D;4 zdgZZdbpQPlUBshwTSCNoERBbw5U#N`bXZ7l`Jh;@o}xWuHXf0BUxK_pe_Pp1X|GZ# z;!qz!bm~9rd)yC!5q)|z9vO>$lKC`lm-8QGjcnqrPPyWT9U;3evZ2&JLJo`l|FHpc zPUDtloV3b6XO*%`ypt;~fX5K@s>V9|A)XvBEu59k zY8Wj)aLcxe(WT)hTwX=Az3rY}C7AQNwU0P#1d=Oxy<0Yp^gVBO-g5;U#=c7`SG0{B z%-xy3(fRTTR^PnY@B*35{eH#tR%yk@%Cv3B{C<>g>zD!KcbcN)Tr1V01^8PVSBHby zEa$(syVo8>Q>#0H$2Ah-GBR_(Z@;H63$C{r+Fc`C8HB6o7XOc47Gm=unfY&Zs*(JE zz*YabreD(Vl-q1Y|H_rKw<*`;hh+k7T%w&64rt~kK}VAAXcsg)B$3_UA8cy|W%|YU z&f}7hKAE^C+o~8}B9nD+aQF8bhp)X(mK_d|Q!XR|L3GJcx4fp`G3B-WS7g4qDy9P% zXe%wDmp2__dj6j#Ih^9qtnxI)OFul5#$z+iS!-QNNCSz192BS?W1S7YrH*Bq{0yKm zXKJIF(-G8963$PlQL*n^dNUcNSE3)^(p3BLh3n&|Uop>jlUzH;kH%>^hbj>dB8V-Q zIg2G*jMq%ljneaQJ@zYEZrQ$LVM=BqMa9!zCRnFU$4Aa=U#?x~@MxaW13x(qRjgZe z?C5PK0NA1D(Bj|ZCbkVEKa7`vA1Iyq*Zs239S1J4Qij<_ziZOPzlPa*?giLa{xa3CYQ;R3IR2%jFywupEA@d3Gig26Z3S=~XHN?964dEDX?FvoqfP+v#Bh;Q3 zPP#mJR(inOmCyMHp>)XU#-h@iLMnBvKigXw%C|N(kAIqE$`WjWEXf{;1plu#mB$2( zcZ*Lr!(a4om)x1eO{jsjG!zU|0iA8SRYv^0A@ZF>KYsj4<(%~4Ov}w?+zl1gWkJAXsr@?6woRHL3Xj>JjOF(5PA_% zsNl+WWJ^S4tWyPJA)O2p$oI6@*p3`bd2qo3eZX*dkaz;M3GW^n;<&k>Qk90?RDmxuAk>;$^=}7JzsF~AtX^kos zp+3=8Kwg;&Iw`#(z`vULkGO(!kj3^we9o6+A zKq;W&NkevfT1?6F;weS@(XB;jTCe#bAMu)H*#DKVhA=66Y&|kJ$cilMQ6=BA0x1Ny z$Ojc<0-d`8SD!)A5LcS3l1KQfzOVGl1*|Wry9T^!tE-=8koYRA$|Pu6xzd3cZxxGc zX@dOP+$#lEd$~yWTz6JH@p#C#W;6!Io;q0WjmQdy#@}Z<||oA zu3^S>WRse zML|JFaE?mUA1f@PgvTgD_38^@<4u=#$>ew$XiL+pehyqacF|P!`bmT(1QBUq7S;jr zg=+ld4OWTh3Gl)b6Rnu_6k<^$VT{$L=Afd~!oDm6Np)>5k2t+Z*kgIg!nG``ST-BK za%9RhXSi-%lF=l&3}bMy+Bq^e(YP#oHk|~8kCJx%@Rnv4QLzpU+BG2AaJjwfo8wVc z#?2df_Y+3TVx9U;!7PDL$fwS^CYNcMG8J1lW7ErfG8P`B#+T_x)Xzqglc7^c)eyw* zQee^vVy|19U;WqO(~&+Dz#kAB5Q)QW%`!m~H_H~XoVznVfO`4_!6@bLg22_P_X5dl zg~hQcg>xhobbH|HlG$}VLztUSDy!ho&(y983mb>fr(rvU8azcxT?+k3S~vN$YI%$# zn50!7E6b0go)BCvMTZGH^Pe$7#Nv>!>YP@RibHF6#vlsGG}FHNToV z-dN|qNvWg528t)GBcgW9@piw@r@9KOxjB}##NE?*JMqnU>2}2HY5~&dKtZoyMEmP; z|7_BpE%Md0p=i?|=_rgzZfeu&#gZ~*Oi}SY2y=THq@N4+#;||tJjv$Mg7GPLsD_+L zvbnt&Z3*^p$QC7mHc7wpjXCAO=QcM;-n(4NUL#y~7uS zs6(@toj$V+?g<)P!`$7Sl{>0sy6jNFvo&sec?NGCpbRv$$`@U^uKsyG1n0CIan-oT zv4ROxJkz=CiOY8}cVmAmAg-e*u~XY!G6Sf4WE4;*=(frz3e@3bIdG%M)?hO(Ybw9&5`16&)i)yRe@xH|?KTg;N&eRowcY@iq%gCa*f<_etrUsf@&b z3p^>0oFAlwD$;MO+7g_>?raT{RjP)sp0-+SAGbg3gB17foREPq=fc|&dMK!a-;UP! zIlHmYR1cAra(EbCJDqhK#RuoIr(8rYIHaWz?~ewW54KUS;q8_az)+Q557OLy7nN`6 zsx#46ChTMabnrVY5B}R`Q0f9;cljHQn*Jwf#QJa0@c)8F720XxVAlEHExT#;?Sf?v z0CIc#eXR}u^m6=9Jgzb6qcJOTt>5AcWHH`eIX#Z=C&Qe3^x|&i2xwSgjmLu;rlFUt zckUAy5*y8&R}er>hLRv}Mmp?L_yUUCj!Ae9XpdM*+IfbYEE#AdAVWjY$vIOrb z?$%$6C+oFA79b=mb#XkU_)5=_C(pKo_-I-uc`REC7;EzN6w5rOJq=If)VTTSM~hQy zdCsm0mNfGy3@6QzDpWolaXZ`_4BB#F1Gjej_AtEUlKFr-@?-?=2L2Hq)0%~s7SNoy z)m2AMgy$s3WaQl9xf32@0r_rKVH$09&jxs4w|Kf%g}xuJv=>3X>^4uW%FE_CuNmR@ zRNddD;JM9F(RE@JitvQD3IqQrPLm11L){0*J8^~FB06)Djl189Q{A`XPJMz5HM}1x_ir|yW)D^#fH&wdeu6W_=tqbk&xq`L1?RCO&{O#IVIAU866}#CO zoB!z@Tbde?V@tU_i1e8mBk?vMQjOEMZEQKTz7>YleL|Np(l#HHrsTXDq)x={U5Tf; zU3-rF?yg+t4*wK_wg|H0eUvW4nGV|R?$~+#KqA|^w?6xQQ6`o0)|=^_6i$jvaT;qh z-jKo1f=HSr5(c4Rbc6+ZBJC&kt?m7rGR&oDaR9s%YW_fp>WBOOMv zRNd-cB|blkjCrXXd?YKjQHmrujAst@#MiN(W*JBVc`5{HHtvsBCNCN?K4sn=#4swh zJy+bHH3u?Eb9Iuh6sjq~tkq}EXA*G4Ce$B^5d6v_;`>f;&`t6}eK_zRUovh!=D*P% zCyGW>P`2FThf(%8v{S_^mMlhhpj1Inm&S>}JtT={A4TQiY6;bBmMo5XWfufkxr|(t zz37uiE7q`ng{eT^VbbAD)1bIhNCdPYW^Vzf8wM-pi5DlIXI7lcv3-2q$I8+25>{F; z(d*niv?t*R@afE7R@d&&^Wy*hOF9uXg2A)lV)6|~1|xZ0ehQY~aP;>Zj&AX#A!z>> zW$zSZYqxD_r){ltuC#62wr$(CZQHhObFH*(Tb1A5=hXl2in=%zG2e@M_s*CRZ9Jp* z)>~f`HCC02T zfv3}vnd%8*FfpnPjLRLY9W@HTg2^EeOTzT~+Rn)E5z0RVQLja4*lqj6U2t1rxwh<( zIY5%XiM@I+u5Yl=Xzv#z>>a}hA)fIN#8_ZfS>g|V!aHzscSQb8@ z-S>AiZ1DBD(PO7H4oPdM6HH-?M@OX24ft4iM|Gs0gZ z;GI&IARv2)jsNgb^1t~A#ZjB;ds$he|9|t*qg^^FZUyS_KYWB`+cuNj#x;SUh#)Kl z)Xc#@D^Hb|sNNzDI}X-$XsiXJo z0n>U(F-x*keVpyqIRRCiLq8gWvY91g6S>)}OOu5V&;C;~5`AQ378YqwtNGh6%_*B( zRZSF}?0{Jv+eXB&XUMzD7{Kgzn|O4HV`7<_E)A(=GcNT<_s7gmY<&JJf$Gt)Vgh6m zi3+^PT{2iIZp2kf^Rw?_EGqJ=EbA?FH8g&R)%zbl3R}!_xth4_8G%B)@c*eZ_Bp`f zarqMqEQsMNTuSx$U>H!^_qYW87amQhT@@3y{$KH^($7#yk8R4ubrZpZ&J|TZ@px}I z@KZ~Z(aIXnT59p>tcmn_vVt(~b*U77e5A2&C~W;}`t>k<-v;e*)@0QYTp(?5hKt^@ z@v^p9ZA5Z)pLFHM13%VIQx=a$oGHw`qSDGS zOj&__jU_9^*c}$CaQ(+Zb%ePs&EN&->XT|pb=X;k6U-_`R|?a!cRY6$#n2g81A5z% zKrCxZ+hp*|z zF~*4Urz3~=Kkvvf{_knMpA0V!xPLOdW(TXOYor%ku6MgxAm>~xRrP8qJFMVC^U+Z> zTbvWA1rsujR`7g_tVm~;O(b1bs`*%a^U3c7BZ`Px3^T>hNf?+*LtuaM=L{?x7flpj z8g?s-PIEjqaRAIlvp}yRY>LEq1CJW^F*p-8hO#u_FUaMz|!s|$Jc4}Ynsjd!-A zv(z+0tWEE2k#A8km0F5!URCNby~aHfgX=OFBJdO)tOfc*SZ&X}tTNP0$9993Pu+6V-Ai?1aj|BmW~(A>q-Y4z3_a7r%iL8bT%a@D$D zI)-haQ3#@FMqt3J=UxsFx6Oe?zXjF(hW=OG=yLF%x>3rzpvmXe2j8Vh@4C$b-OD!n zmlYkYNBG$IHFO9mwa#{LhepxxZRs|pu+3LTi0gAI&NYcXBCGVc;AE3Zph$`cu2xsK z@9WuCxc67d@-4$OUho90kyvz!O9M6D$-&}ngMSusH9EO)YBr`ZCSVuNI#TVp?#89e zV^!_EFPorHS`u<@(8R9U9geFkrf8`g`^kNiZ9^lAruC;OX<4)w0o@v&WuhswvPI8$ zQ5YSNTJk)zOok<>_mOW17jUve+(*1*DgGcHR1+gH!4#x+IWHxjuF!y}x_GQWgo7Ew zNz}_37?LXhLo#M15y1L!H-4~l(-H#n}80!|c%*Of?pAlu@f;31(CvO>yldu-4 zcmD73D!*674$(-{q7lU)(^W8*Rel%mqEP|$3#Ld~V$y(=xGx-IDnXopj#0xNg$_by zke27iIu7!qALzHs(9wV(SS0&p?rg`TD!~!T_%$NVyO>bcR)CQVKGMAWHG2VB@wu0?)C!77;01S~v5i0hhDrgl z+6WQQtKH|)zJ7)Zv5d^XgP$q1!T!_oIzyPm|^{e8Uc;$bplOJMPlBjobtD%*yD&tx^0aJ%HQ6qqh{K{;eCmrfW2Jrd>T-JA`Z1)8Ziv z(?#@?OZ~f=6{YvyOd0ewVpBG~+;zaw8=l65t&aPLm66{VQFZ1`^h{)s<*`l^zfjya z;YR*G;uwFJ%A*Ub%Z*vfE7H|JJbIWkPESRa0^$;!1QW8HdnS ziP2oO`xwg>K$)#j%znF_nn&dM9Npc$AIq7ChlB6LchcM48!6s9w8VVwXh~XK=Uq=f z#QEc{>Z$Sva>Ae|aj_ZFG_AmUxwE&u`>CT-7_?ba0hiCME~rlG19@Uw&%Z8`Z|oFd zz@k}V>t{IvNK6VO*XmdX0&U3>D&WO8Ce))Zb8vw(3PG)}aAjO6X(-`4uCfm*->2@h zpvZPv+^$PG#fyzZc<~;pa-UFBY^bQ+l12aS?O=oK1Z-}*EiPR~%i(QPC93?je_eC=ZwEhyo|P@5KX5w zdCICIji-({4^^Phr+j_7n%jJSrNxFgo%Kik9z+`#Y;mw*eFPL!B!Md#N|-2OTSFFz zd4UioCnLpFD}Gk5yP|D$xocaH#46s(u0s9iU|`y>Zcfo&>NB8B!P z?D4700`r$|+7{>jFIgSmGkW&>y5SbgF15?vUl%7o{TMP-o!KMfyqRD3EMB&D<4c8> z8pC@ykTesdyz?I~xmkF^zr5rIohPx|KU)+Im)n{>Pni8Q;|oF5u;cb56L8HhP(5_R!-FWrX6;%J~Fl zOkclsJgE;*1E;L3oyIIjvUeG>d?}vJf^Dtk(Q_`Su8KvHwcuR0IX`e#eGEWRy0iWo z9BD@DPd*rQX*_WpV1+(CUG<*-7j~un7j_9?k2iw@Bd)aV<1}l0KjhUix%~gJ%f^%n zV!}muY5pfO^&BD(?^OZ`VD`m)1oKi|$k{ZxV;Dc{6BL-%%hgK|`;OF7U!MQm8W4HfcAA^>gKpX_5UIM84 z*9O!}w!P1Fy0txZRD5r{BifyY#tpjMVIMnf;6`*YF4XjRX=c>iNiMt-B{+)m72AN(?VHcS04{7R6b%^QVk zg!nBN*krVf;Y!w24?Z;1mKhcNFZ_D6lp%^&ObpGx0hMV00w_?-lUYK9aC+b}lk(-S zDByBNpVC3Yb+`g2cxJaBQ02-60U2tw9jki`F?4j3-z*xQve_8VnbA zH^c1*x_{Btyq>NuR8FHgwPPL+BsKpReTDx+U)0Pb(LjUqH)6YGsY3b9Nh2IUqn8;I zef*7E#`%O9Klqg{VQ2vj+Wk0A(Bdrvwn)90Cf5i;=&K9MJ;!ch8f;rl*Y4Za>H9hN zE_=OqxW0_8LgkH4>+Y#L5sgo)Lw^w~5K1}PwKuX%P`U{~dF|RpDzO+3R zeT<-*Zm_-RqYx%HS%u!HR&tuWffKF^vN7RtmhKPr9kGMh7K0&XEV`^zd{fa2wG;@l zREJE?#D0R{&Y%>#s{hP(Tq<#>d`I#ZI+(-RiIc>3z&DRpFG!@&JktNiUyD2#jE)P3 zmmm%~!t0gNDJ0bI`c)Q+HZ`*kOnKRJGN5A%tGehCQ~j0j0*yA^{()6|_mzLlbc z>$I<^2iBIm>gwa?dQ3hA2ha*WLw>NXUpH}w3j;M0t)~YQPA-aEK*`9Rv29VwTj)tY zGpjL-yfr{z#ILYzsv>eeuqRba#Tx{$L9w1tQfZ;+h9?(&#@84u#q513ECyGB1iR@` z%UWo(V8#-%`B2Dix1i4T+(Floz{%2xGZgLQ#W62Ozqezaxj+@*uJZrDoQQ?BprIt; z+_f>mX6!m0Y>@~wIltWclcLDSVBDxqVJl49fw!@Tfu8fipqDx}+q1o}1tG%x{%UIP zA{MP<&ggl~6o zqH8rj`MfgXhw;$z!)j7vko^ApNwj0oorJm8v{_qZ`@E5TKdGZeuAU7(V#7zbnngZQ z^@!Sp8AW0zVNn|83y=#h0rroSMiO!DKGiVT;G zy4PY1Eg8^8<9Jn}j@>e*cP1Lga({G^)l+1OObarw5Y>62R(TeR3u-l*DZ_Gf4@e1_sq*5E#s(+G7MZLfW=NUpsLwyqaBSp_F0DgE4=!e(* z3!Fg+CVizj6H9-EVLfpdd{Fqk^=1S|^~nDoyi}0C*-S!^T%~OAhqT0lkKHNz6EL_h zJIO;1?_bi}e|sYJvs40oj6~i+y-pMH4CrIuD^SkW>w>!XGiL*PTIWDkdxw=2(Kj5z z&_1^dIddHHtwa2g?3x|C!;RC?n5_MxrC6!SO)l=rUu&RxP zmNwQLZ`Ec&NIJ{j)HG!Hbs#3P)%F}z^f4n}j{F_iGUOj06~cW1!P&`h0cM^@xv;CS zvUoLtX_ZHP9f4^@-4IR1n0{qtunc5GwWBs=m_a3ULB!^YqOd&jIl1&JWO>YTN`)Fb zb2}Y$u944r%D$njaqeGK1Mfd9uPdG3KNcMTEglD8q=HS&bhpt9G{=q?E}ZFVbDt8MppyyV64L29wpus zEn-8?=0jR0u>tT;JZRjQo5%e&jD}YX%|8y&=f$4oZrU}?JS%2sHf?n2u;&qN)XxIB zCNh}eO>&EFT+}bH|D-Z^Ol7veU;qGa*#BcHWBRX3*dL5{*>$!T*RP1{fS6D?OdU?^ z;%E>oIwG*Lq->c*ruOi}7rXtjpIw}nvAwf03nj(WIMmO46=9dOxxLSn(Q2;j51m}{ z&cbg5<{b5Z%{QIXXDxe9I$V}-{{rM8Dk80rHttZl1BkmX%6s&cN09%4JK>kej4AQH ze3M{Dki=xk=6hjobkcorIc%o+10q&ph@UCLS#lG8@&b>KhoW_w#{zj8>GWG2<-EkP zuJs%4sOO&^;iOux%U|ioyxk+L6h~ImO)kwF5mAu9`OKn0@|T|s(mO#h3Y?RAzENpY zU)yU{a1Mbzlf_lXzS6A9q!+62knbUDmz`kuWi7g)`N1|sILWxIV_uK7c=()ESpErL zaoJSWHwyGJ1L{Hae346Bh3i@nCkWqw4Jbka{)?g$)R7>*V)JY0(KkV70Z&VwKQ(F; zF`%V6xDn7fD~0RR%0o%OT!$5ixgjq^n9s|j9`A(?JFfZH%H52>+x`3Z^XJRSOv};0 zBQYnoWd zJ7PZhrLcN?{CrBHV5Nv8iKX&l7k=g6b47n-0ER*fu@$%a%LHsWvP5*w(uLyhIS-KyI||p)`|J zGu|3$*ZGiGh_Z)>rC$ZodMzhmJ-`fuPC23V3dF6|nd^-z@3T+ir++X+2(5LZOtZGo z3`XfNW&z)`GUv3?;FVqzib=?h;%d5AKY$AV$X8|ZmoaB4MlgK&;g*}r1#K)8(2dYW zOkl>7BE0|-z+l<*e37H{hvCdF1j6Sr&8IWZOqjWx!ਓTnpZs-;~M3*^Q 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

?C#fnhx$1Q*f)DXAb2N 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

W1U=~~ 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�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%0D#3Z(`)M(fk#s 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

t)9BT&KKkS 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

?i1q&4PHOGn@v4iapibT#r)OT#J1!@n75jR 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 z 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

e$LT!&COx;VJl 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 P(ly#(Fu@ftxWoJpC_XLa literal 0 HcmV?d00001 diff --git a/externals/findjobj/findjobj.m b/externals/findjobj/findjobj.m new file mode 100644 index 0000000..13dd435 --- /dev/null +++ b/externals/findjobj/findjobj.m @@ -0,0 +1,3437 @@ +function [handles,levels,parentIdx,listing] = findjobj(container,varargin) %#ok<*CTCH,*ASGLU,*MSNU,*NASGU> +%findjobj Find java objects contained within a specified java container or Matlab GUI handle +% +% Syntax: +% [handles, levels, parentIds, listing] = findjobj(container, 'PropName',PropValue(s), ...) +% +% Input parameters: +% container - optional handle to java container uipanel or figure. If unsupplied then current figure will be used +% 'PropName',PropValue - optional list of property pairs (case insensitive). PropName may also be named -PropName +% 'position' - filter results based on those elements that contain the specified X,Y position or a java element +% Note: specify a Matlab position (X,Y = pixels from bottom left corner), not a java one +% 'size' - filter results based on those elements that have the specified W,H (in pixels) +% 'class' - filter results based on those elements that contain the substring (or java class) PropValue +% Note1: filtering is case insensitive and relies on regexp, so you can pass wildcards etc. +% Note2: '-class' is an undocumented findobj PropName, but only works on Matlab (not java) classes +% 'property' - filter results based on those elements that possess the specified case-insensitive property string +% Note1: passing a property value is possible if the argument following 'property' is a cell in the +% format of {'propName','propValue'}. Example: FINDJOBJ(...,'property',{'Text','click me'}) +% Note2: partial property names (e.g. 'Tex') are accepted, as long as they're not ambiguous +% 'depth' - filter results based on specified depth. 0=top-level, Inf=all levels (default=Inf) +% 'flat' - same as specifying: 'depth',0 +% 'not' - negates the following filter: 'not','class','c' returns all elements EXCEPT those with class 'c' +% 'persist' - persist figure components information, allowing much faster results for subsequent invocations +% 'nomenu' - skip menu processing, for "lean" list of handles & much faster processing; +% This option is the default for HG containers but not for figure, Java or no container +% 'print' - display all java elements in a hierarchical list, indented appropriately +% Note1: optional PropValue of element index or handle to java container +% Note2: normally this option would be placed last, after all filtering is complete. Placing this +% option before some filters enables debug print-outs of interim filtering results. +% Note3: output is to the Matlab command window unless the 'listing' (4th) output arg is requested +% 'list' - same as 'print' +% 'debug' - list found component positions in the Command Window +% +% Output parameters: +% handles - list of handles to java elements +% levels - list of corresponding hierarchy level of the java elements (top=0) +% parentIds - list of indexes (in unfiltered handles) of the parent container of the corresponding java element +% listing - results of 'print'/'list' options (empty if these options were not specified) +% +% Note: If no output parameter is specified, then an interactive window will be displayed with a +% ^^^^ tree view of all container components, their properties and callbacks. +% +% Examples: +% findjobj; % display list of all javaelements of currrent figure in an interactive GUI +% handles = findjobj; % get list of all java elements of current figure (inc. menus, toolbars etc.) +% findjobj('print'); % list all java elements in current figure +% findjobj('print',6); % list all java elements in current figure, contained within its 6th element +% handles = findjobj(hButton); % hButton is a matlab button +% handles = findjobj(gcf,'position',getpixelposition(hButton,1)); % same as above but also return hButton's panel +% handles = findjobj(hButton,'persist'); % same as above, persist info for future reuse +% handles = findjobj('class','pushbutton'); % get all pushbuttons in current figure +% handles = findjobj('class','pushbutton','position',123,456); % get all pushbuttons at the specified position +% handles = findjobj(gcf,'class','pushbutton','size',23,15); % get all pushbuttons with the specified size +% handles = findjobj('property','Text','not','class','button'); % get all non-button elements with 'text' property +% handles = findjobj('-property',{'Text','click me'}); % get all elements with 'text' property = 'click me' +% +% Sample usage: +% hButton = uicontrol('string','click me'); +% jButton = findjobj(hButton,'nomenu'); +% % or: jButton = findjobj('property',{'Text','click me'}); +% jButton.setFlyOverAppearance(1); +% jButton.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR)); +% set(jButton,'FocusGainedCallback',@myMatlabFunction); % some 30 callback points available... +% jButton.get; % list all changeable properties... +% +% hEditbox = uicontrol('style','edit'); +% jEditbox = findjobj(hEditbox,'nomenu'); +% jEditbox.setCaretColor(java.awt.Color.red); +% jEditbox.KeyTypedCallback = @myCallbackFunc; % many more callbacks where this came from... +% jEdit.requestFocus; +% +% Technical explanation & details: +% http://undocumentedmatlab.com/blog/findjobj/ +% http://undocumentedmatlab.com/blog/findjobj-gui-display-container-hierarchy/ +% +% Known issues/limitations: +% - Cannot currently process multiple container objects - just one at a time +% - Initial processing is a bit slow when the figure is laden with many UI components (so better use 'persist') +% - Passing a simple container Matlab handle is currently filtered by its position+size: should find a better way to do this +% - Matlab uipanels are not implemented as simple java panels, and so they can't be found using this utility +% - Labels have a write-only text property in java, so they can't be found using the 'property',{'Text','string'} notation +% +% Warning: +% This code heavily relies on undocumented and unsupported Matlab functionality. +% It works on Matlab 7+, but use at your own risk! +% +% Bugs and suggestions: +% Please send to Yair Altman (altmany at gmail dot com) +% +% Change log: +% 2017-04-13: Fixed two edge-cases (one suggested by H. Koch) +% 2016-04-19: Fixed edge-cases in old Matlab release; slightly improved performance even further +% 2016-04-14: Improved performance for the most common use-case (single input/output): improved code + allow inspecting groot +% 2016-04-11: Improved performance for the most common use-case (single input/output) +% 2015-01-12: Differentiate between overlapping controls (for example in different tabs); fixed case of docked figure +% 2014-10-20: Additional fixes for R2014a, R2014b +% 2014-10-13: Fixes for R2014b +% 2014-01-04: Minor fix for R2014a; check for newer FEX version up to twice a day only +% 2013-12-29: Only check for newer FEX version in non-deployed mode; handled case of invisible figure container +% 2013-10-08: Fixed minor edge case (retrieving multiple scroll-panes) +% 2013-06-30: Additional fixes for the upcoming HG2 +% 2013-05-15: Fix for the upcoming HG2 +% 2013-02-21: Fixed HG-Java warnings +% 2013-01-23: Fixed callbacks table grouping & editing bugs; added hidden properties to the properties tooltip; updated help section +% 2013-01-13: Improved callbacks table; fixed tree refresh failure; fixed: tree node-selection didn't update the props pane nor flash the selected component +% 2012-07-25: Fixes for R2012a as well as some older Matlab releases +% 2011-12-07: Fixed 'File is empty' messages in compiled apps +% 2011-11-22: Fix suggested by Ward +% 2011-02-01: Fixes for R2011a +% 2010-06-13: Fixes for R2010b; fixed download (m-file => zip-file) +% 2010-04-21: Minor fix to support combo-boxes (aka drop-down, popup-menu) on Windows +% 2010-03-17: Important release: Fixes for R2010a, debug listing, objects not found, component containers that should be ignored etc. +% 2010-02-04: Forced an EDT redraw before processing; warned if requested handle is invisible +% 2010-01-18: Found a way to display label text next to the relevant node name +% 2009-10-28: Fixed uitreenode warning +% 2009-10-27: Fixed auto-collapse of invisible container nodes; added dynamic tree tooltips & context-menu; minor fix to version-check display +% 2009-09-30: Fix for Matlab 7.0 as suggested by Oliver W; minor GUI fix (classname font) +% 2009-08-07: Fixed edge-case of missing JIDE tables +% 2009-05-24: Added support for future Matlab versions that will not support JavaFrame +% 2009-05-15: Added sanity checks for axes items +% 2009-04-28: Added 'debug' input arg; increased size tolerance 1px => 2px +% 2009-04-23: Fixed location of popupmenus (always 20px high despite what's reported by Matlab...); fixed uiinspect processing issues; added blog link; narrower action buttons +% 2009-04-09: Automatic 'nomenu' for uicontrol inputs; significant performance improvement +% 2009-03-31: Fixed position of some Java components; fixed properties tooltip; fixed node visibility indication +% 2009-02-26: Indicated components visibility (& auto-collapse non-visible containers); auto-highlight selected component; fixes in node icons, figure title & tree refresh; improved error handling; display FindJObj version update description if available +% 2009-02-24: Fixed update check; added dedicated labels icon +% 2009-02-18: Fixed compatibility with old Matlab versions +% 2009-02-08: Callbacks table fixes; use uiinspect if available; fix update check according to new FEX website +% 2008-12-17: R2008b compatibility +% 2008-09-10: Fixed minor bug as per Johnny Smith +% 2007-11-14: Fixed edge case problem with class properties tooltip; used existing object icon if available; added checkbox option to hide standard callbacks +% 2007-08-15: Fixed object naming relative property priorities; added sanity check for illegal container arg; enabled desktop (0) container; cleaned up warnings about special class objects +% 2007-08-03: Fixed minor tagging problems with a few Java sub-classes; displayed UIClassID if text/name/tag is unavailable +% 2007-06-15: Fixed problems finding HG components found by J. Wagberg +% 2007-05-22: Added 'nomenu' option for improved performance; fixed 'export handles' bug; fixed handle-finding/display bugs; "cleaner" error handling +% 2007-04-23: HTMLized classname tooltip; returned top-level figure Frame handle for figure container; fixed callbacks table; auto-checked newer version; fixed Matlab 7.2 compatibility issue; added HG objects tree +% 2007-04-19: Fixed edge case of missing figure; displayed tree hierarchy in interactive GUI if no output args; workaround for figure sub-menus invisible unless clicked +% 2007-04-04: Improved performance; returned full listing results in 4th output arg; enabled partial property names & property values; automatically filtered out container panels if children also returned; fixed finding sub-menu items +% 2007-03-20: First version posted on the MathWorks file exchange: http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=14317 +% +% See also: +% java, handle, findobj, findall, javaGetHandles, uiinspect (on the File Exchange) + +% License to use and modify this code is granted freely to all interested, as long as the original author is +% referenced and attributed as such. The original author maintains the right to be solely associated with this work. + +% Programmed and Copyright by Yair M. Altman: altmany(at)gmail.com +% $Revision: 1.50 $ $Date: 2017/04/13 20:47:08 $ + + % Ensure Java AWT is enabled + error(javachk('awt')); + + persistent pContainer pHandles pLevels pParentIdx pPositions + + try + % Initialize + handles = handle([]); + levels = []; + parentIdx = []; + positions = []; % Java positions start at the top-left corner + %sizes = []; + listing = ''; + hg_levels = []; + hg_handles = handle([]); % HG handles are double + hg_parentIdx = []; + nomenu = false; + menuBarFoundFlag = false; + hFig = []; + + % Force an EDT redraw before processing, to ensure all uicontrols etc. are rendered + drawnow; pause(0.02); + + % Default container is the current figure's root panel + if nargin + if isempty(container) % empty container - bail out + return; + elseif ischar(container) % container skipped - this is part of the args list... + varargin = [{container}, varargin]; + origContainer = getCurrentFigure; + [container,contentSize] = getRootPanel(origContainer); + elseif isequal(container,0) % root + origContainer = handle(container); + container = com.mathworks.mde.desk.MLDesktop.getInstance.getMainFrame; + contentSize = [container.getWidth, container.getHeight]; + elseif ishghandle(container) % && ~isa(container,'java.awt.Container') + container = container(1); % another current limitation... + hFig = ancestor(container,'figure'); + origContainer = handle(container); + if isa(origContainer,'uimenu') || isa(origContainer,'matlab.ui.container.Menu') + % getpixelposition doesn't work for menus... - damn! + varargin = {'class','MenuPeer', 'property',{'Label',strrep(get(container,'Label'),'&','')}, varargin{:}}; + elseif ~isa(origContainer, 'figure') && ~isempty(hFig) && ~isa(origContainer, 'matlab.ui.Figure') + % For a single input & output, try using the fast variant + if nargin==1 && nargout==1 + try + handles = findjobj_fast(container); + if ~isempty(handles) + try handles = handle(handles,'callbackproperties'); catch, end + return + end + catch + % never mind - proceed normally using the slower variant below... + end + end + + % See limitations section above: should find a better way to directly refer to the element's java container + try + % Note: 'PixelBounds' is undocumented and unsupported, but much faster than getpixelposition! + % ^^^^ unfortunately, its Y position is inaccurate in some cases - damn! + %size = get(container,'PixelBounds'); + pos = fix(getpixelposition(container,1)); + %varargin = {'position',pos(1:2), 'size',pos(3:4), 'not','class','java.awt.Panel', varargin{:}}; + catch + try + figName = get(hFig,'name'); + if strcmpi(get(hFig,'number'),'on') + figName = regexprep(['Figure ' num2str(hFig) ': ' figName],': $',''); + end + mde = com.mathworks.mde.desk.MLDesktop.getInstance; + jFig = mde.getClient(figName); + if isempty(jFig), error('dummy'); end + catch + warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame'); % R2008b compatibility + jFig = get(get(hFig,'JavaFrame'),'FigurePanelContainer'); + end + pos = []; + try + pxsize = get(container,'PixelBounds'); + pos = [pxsize(1)+5, jFig.getHeight - (pxsize(4)-5)]; + catch + % never mind... + end + end + if size(pos,2) == 2 + pos(:,3:4) = 0; + end + if ~isempty(pos) + if isa(handle(container),'uicontrol') && strcmp(get(container,'style'),'popupmenu') + % popupmenus (combo-box dropdowns) are always 20px high + pos(2) = pos(2) + pos(4) - 20; + pos(4) = 20; + end + %varargin = {'position',pos(1:2), 'size',size(3:4)-size(1:2)-10, 'not','class','java.awt.Panel', varargin{:}}; + varargin = {'position',pos(1:2)+[0,pos(4)], 'size',pos(3:4), 'not','class','java.awt.Panel', 'nomenu', varargin{:}}; + end + elseif isempty(hFig) + hFig = handle(container); + end + [container,contentSize] = getRootPanel(hFig); + elseif isjava(container) + % Maybe a java container obj (will crash otherwise) + origContainer = container; + contentSize = [container.getWidth, container.getHeight]; + else + error('YMA:findjobj:IllegalContainer','Input arg does not appear to be a valid GUI object'); + end + else + % Default container = current figure + origContainer = getCurrentFigure; + [container,contentSize] = getRootPanel(origContainer); + end + + % Check persistency + if isequal(pContainer,container) + % persistency requested and the same container is reused, so reuse the hierarchy information + [handles,levels,parentIdx,positions] = deal(pHandles, pLevels, pParentIdx, pPositions); + else + % Pre-allocate space of complex data containers for improved performance + handles = repmat(handles,1,1000); + positions = zeros(1000,2); + + % Check whether to skip menu processing + nomenu = paramSupplied(varargin,'nomenu'); + + % Traverse the container hierarchy and extract the elements within + traverseContainer(container,0,1); + + % Remove unnecessary pre-allocated elements + dataLen = length(levels); + handles (dataLen+1:end) = []; + positions(dataLen+1:end,:) = []; + end + + % Process persistency check before any filtering is done + if paramSupplied(varargin,'persist') + [pContainer, pHandles, pLevels, pParentIdx, pPositions] = deal(container,handles,levels,parentIdx,positions); + end + + % Save data for possible future use in presentObjectTree() below + allHandles = handles; + allLevels = levels; + allParents = parentIdx; + selectedIdx = 1:length(handles); + %[positions(:,1)-container.getX, container.getHeight - positions(:,2)] + + % Debug-list all found compponents and their positions + if paramSupplied(varargin,'debug') + for origHandleIdx = 1 : length(allHandles) + thisObj = handles(origHandleIdx); + pos = sprintf('%d,%d %dx%d',[positions(origHandleIdx,:) getWidth(thisObj) getHeight(thisObj)]); + disp([repmat(' ',1,levels(origHandleIdx)) '[' pos '] ' char(toString(thisObj))]); + end + end + + % Process optional args + % Note: positions is NOT returned since it's based on java coord system (origin = top-left): will confuse Matlab users + processArgs(varargin{:}); + + % De-cell and trim listing, if only one element was found (no use for indented listing in this case) + if iscell(listing) && length(listing)==1 + listing = strtrim(listing{1}); + end + + % If no output args and no listing requested, present the FINDJOBJ interactive GUI + if nargout == 0 && isempty(listing) + + % Get all label positions + hg_labels = []; + labelPositions = getLabelsJavaPos(container); + + % Present the GUI (object tree) + if ~isempty(container) + presentObjectTree(); + else + warnInvisible(varargin{:}); + end + + % Display the listing, if this was specifically requested yet no relevant output arg was specified + elseif nargout < 4 && ~isempty(listing) + if ~iscell(listing) + disp(listing); + else + for listingIdx = 1 : length(listing) + disp(listing{listingIdx}); + end + end + end + + % If the number of output handles does not match the number of inputs, try to match via tooltips + if nargout && numel(handles) ~= numel(origContainer) + newHandles = handle([]); + switchHandles = false; + handlesToCheck = handles; + if isempty(handles) + handlesToCheck = allHandles; + end + for origHandleIdx = 1 : numel(origContainer) + try + thisContainer = origContainer(origHandleIdx); + if isa(thisContainer,'figure') || isa(thisContainer,'matlab.ui.Figure') + break; + end + try + newHandles(origHandleIdx) = handlesToCheck(origHandleIdx); %#ok + catch + % maybe no corresponding handle in [handles] + end + + % Assign a new random tooltip to the original (Matlab) handle + oldTooltip = get(thisContainer,'Tooltip'); + newTooltip = num2str(rand,99); + set(thisContainer,'Tooltip',newTooltip); + drawnow; % force the Java handle to sync with the Matlab prop-change + try + % Search for a Java handle that has the newly-generated tooltip + for newHandleIdx = 1 : numel(handlesToCheck) + testTooltip = ''; + thisHandle = handlesToCheck(newHandleIdx); + try + testTooltip = char(thisHandle.getToolTipText); + catch + try testTooltip = char(thisHandle.getTooltipText); catch, end + end + if isempty(testTooltip) + % One more attempt - assume it's enclosed by a scroll-pane + try testTooltip = char(thisHandle.getViewport.getView.getToolTipText); catch, end + end + if strcmp(testTooltip, newTooltip) + newHandles(origHandleIdx) = thisHandle; + switchHandles = true; + break; + end + end + catch + % never mind - skip to the next handle + end + set(thisContainer,'Tooltip',oldTooltip); + catch + % never mind - skip to the next handle (maybe handle doesn't have a tooltip prop) + end + end + if switchHandles + handles = newHandles; + end + end + + % Display a warning if the requested handle was not found because it's invisible + if nargout && isempty(handles) + warnInvisible(varargin{:}); + end + + return; %debug point + + catch + % 'Cleaner' error handling - strip the stack info etc. + err = lasterror; %#ok + err.message = regexprep(err.message,'Error using ==> [^\n]+\n',''); + if isempty(findstr(mfilename,err.message)) + % Indicate error origin, if not already stated within the error message + err.message = [mfilename ': ' err.message]; + end + rethrow(err); + end + + %% Display a warning if the requested handle was not found because it's invisible + function warnInvisible(varargin) + try + if strcmpi(get(hFig,'Visible'),'off') + pos = get(hFig,'Position'); + set(hFig, 'Position',pos-[5000,5000,0,0], 'Visible','on'); + drawnow; pause(0.01); + [handles,levels,parentIdx,listing] = findjobj(origContainer,varargin{:}); + set(hFig, 'Position',pos, 'Visible','off'); + end + catch + % ignore - move on... + end + try + stk = dbstack; + stkNames = {stk.name}; + OutputFcnIdx = find(~cellfun(@isempty,regexp(stkNames,'_OutputFcn'))); + if ~isempty(OutputFcnIdx) + OutputFcnName = stkNames{OutputFcnIdx}; + warning('YMA:FindJObj:OutputFcn',['No Java reference was found for the requested handle, because the figure is still invisible in ' OutputFcnName '()']); + elseif ishandle(origContainer) && isprop(origContainer,'Visible') && strcmpi(get(origContainer,'Visible'),'off') + warning('YMA:FindJObj:invisibleHandle','No Java reference was found for the requested handle, probably because it is still invisible'); + end + catch + % Never mind... + end + end + + %% Check existence of a (case-insensitive) optional parameter in the params list + function [flag,idx] = paramSupplied(paramsList,paramName) + %idx = find(~cellfun('isempty',regexpi(paramsList(cellfun(@ischar,paramsList)),['^-?' paramName]))); + idx = find(~cellfun('isempty',regexpi(paramsList(cellfun('isclass',paramsList,'char')),['^-?' paramName]))); % 30/9/2009 fix for ML 7.0 suggested by Oliver W + flag = any(idx); + end + + %% Get current figure (even if its 'HandleVisibility' property is 'off') + function curFig = getCurrentFigure + oldShowHidden = get(0,'ShowHiddenHandles'); + set(0,'ShowHiddenHandles','on'); % minor fix per Johnny Smith + curFig = gcf; + set(0,'ShowHiddenHandles',oldShowHidden); + end + + %% Get Java reference to top-level (root) panel - actually, a reference to the java figure + function [jRootPane,contentSize] = getRootPanel(hFig) + try + contentSize = [0,0]; % initialize + jRootPane = hFig; + figName = get(hFig,'name'); + if strcmpi(get(hFig,'number'),'on') + figName = regexprep(['Figure ' num2str(hFig) ': ' figName],': $',''); + end + mde = com.mathworks.mde.desk.MLDesktop.getInstance; + jFigPanel = mde.getClient(figName); + jRootPane = jFigPanel; + jRootPane = jFigPanel.getRootPane; + catch + try + warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame'); % R2008b compatibility + jFrame = get(hFig,'JavaFrame'); + jFigPanel = get(jFrame,'FigurePanelContainer'); + jRootPane = jFigPanel; + jRootPane = jFigPanel.getComponent(0).getRootPane; + catch + % Never mind + end + end + try + % If invalid RootPane - try another method... + warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame'); % R2008b compatibility + jFrame = get(hFig,'JavaFrame'); + jAxisComponent = get(jFrame,'AxisComponent'); + jRootPane = jAxisComponent.getParent.getParent.getRootPane; + catch + % Never mind + end + try + % If invalid RootPane, retry up to N times + tries = 10; + while isempty(jRootPane) && tries>0 % might happen if figure is still undergoing rendering... + drawnow; pause(0.001); + tries = tries - 1; + jRootPane = jFigPanel.getComponent(0).getRootPane; + end + + % If still invalid, use FigurePanelContainer which is good enough in 99% of cases... (menu/tool bars won't be accessible, though) + if isempty(jRootPane) + jRootPane = jFigPanel; + end + contentSize = [jRootPane.getWidth, jRootPane.getHeight]; + + % Try to get the ancestor FigureFrame + jRootPane = jRootPane.getTopLevelAncestor; + catch + % Never mind - FigurePanelContainer is good enough in 99% of cases... (menu/tool bars won't be accessible, though) + end + end + + %% Traverse the container hierarchy and extract the elements within + function traverseContainer(jcontainer,level,parent) + persistent figureComponentFound menuRootFound + + % Record the data for this node + %disp([repmat(' ',1,level) '<= ' char(jcontainer.toString)]) + thisIdx = length(levels) + 1; + levels(thisIdx) = level; + parentIdx(thisIdx) = parent; + try newHandle = handle(jcontainer,'callbackproperties'); catch, newHandle = handle(jcontainer); end + try handles(thisIdx) = newHandle; catch, handles = newHandle; end + try + positions(thisIdx,:) = getXY(jcontainer); + %sizes(thisIdx,:) = [jcontainer.getWidth, jcontainer.getHeight]; + catch + positions(thisIdx,:) = [0,0]; + %sizes(thisIdx,:) = [0,0]; + end + if level>0 + positions(thisIdx,:) = positions(thisIdx,:) + positions(parent,:); + if ~figureComponentFound && ... + strcmp(jcontainer.getName,'fComponentContainer') && ... + isa(jcontainer,'com.mathworks.hg.peer.FigureComponentContainer') % there are 2 FigureComponentContainers - only process one... + + % restart coordinate system, to exclude menu & toolbar areas + positions(thisIdx,:) = positions(thisIdx,:) - [jcontainer.getRootPane.getX, jcontainer.getRootPane.getY]; + figureComponentFound = true; + end + elseif level==1 + positions(thisIdx,:) = positions(thisIdx,:) + positions(parent,:); + else + % level 0 - initialize flags used later + figureComponentFound = false; + menuRootFound = false; + end + parentId = length(parentIdx); + + % Traverse Menu items, unless the 'nomenu' option was requested + if ~nomenu + try + for child = 1 : getNumMenuComponents(jcontainer) + traverseContainer(jcontainer.getMenuComponent(child-1),level+1,parentId); + end + catch + % Probably not a Menu container, but maybe a top-level JMenu, so discard duplicates + %if isa(handles(end).java,'javax.swing.JMenuBar') + if ~menuRootFound && strcmp(class(java(handles(end))),'javax.swing.JMenuBar') %faster... + if removeDuplicateNode(thisIdx) + menuRootFound = true; + return; + end + end + end + end + + % Now recursively process all this node's children (if any), except menu items if so requested + %if isa(jcontainer,'java.awt.Container') + try % try-catch is faster than checking isa(jcontainer,'java.awt.Container')... + %if jcontainer.getComponentCount, jcontainer.getComponents, end + if ~nomenu || menuBarFoundFlag || isempty(strfind(class(jcontainer),'FigureMenuBar')) + lastChildComponent = java.lang.Object; + child = 0; + while (child < jcontainer.getComponentCount) + childComponent = jcontainer.getComponent(child); + % Looping over menus sometimes causes jcontainer to get mixed up (probably a JITC bug), so identify & fix + if isequal(childComponent,lastChildComponent) + child = child + 1; + childComponent = jcontainer.getComponent(child); + end + lastChildComponent = childComponent; + %disp([repmat(' ',1,level) '=> ' num2str(child) ': ' char(class(childComponent))]) + traverseContainer(childComponent,level+1,parentId); + child = child + 1; + end + else + menuBarFoundFlag = true; % use this flag to skip further testing for FigureMenuBar + end + catch + % do nothing - probably not a container + %dispError + end + + % ...and yet another type of child traversal... + try + if ~isdeployed % prevent 'File is empty' messages in compiled apps + jc = jcontainer.java; + else + jc = jcontainer; + end + for child = 1 : jc.getChildCount + traverseContainer(jc.getChildAt(child-1),level+1,parentId); + end + catch + % do nothing - probably not a container + %dispError + end + + % TODO: Add axis (plot) component handles + end + + %% Get the XY location of a Java component + function xy = getXY(jcontainer) + % Note: getX/getY are better than get(..,'X') (mem leaks), + % ^^^^ but sometimes they fail and revert to getx.m ... + % Note2: try awtinvoke() catch is faster than checking ismethod()... + % Note3: using AWTUtilities.invokeAndWait() directly is even faster than awtinvoke()... + try %if ismethod(jcontainer,'getX') + %positions(thisIdx,:) = [jcontainer.getX, jcontainer.getY]; + cls = getClass(jcontainer); + location = com.mathworks.jmi.AWTUtilities.invokeAndWait(jcontainer,getMethod(cls,'getLocation',[]),[]); + x = location.getX; + y = location.getY; + catch %else + try + x = com.mathworks.jmi.AWTUtilities.invokeAndWait(jcontainer,getMethod(cls,'getX',[]),[]); + y = com.mathworks.jmi.AWTUtilities.invokeAndWait(jcontainer,getMethod(cls,'getY',[]),[]); + catch + try + x = awtinvoke(jcontainer,'getX()'); + y = awtinvoke(jcontainer,'getY()'); + catch + x = get(jcontainer,'X'); + y = get(jcontainer,'Y'); + end + end + end + %positions(thisIdx,:) = [x, y]; + xy = [x,y]; + end + + %% Get the number of menu sub-elements + function numMenuComponents = getNumMenuComponents(jcontainer) + + % The following line will raise an Exception for anything except menus + numMenuComponents = jcontainer.getMenuComponentCount; + + % No error so far, so this must be a menu container... + % Note: Menu subitems are not visible until the top-level (root) menu gets initial focus... + % Try several alternatives, until we get a non-empty menu (or not...) + % TODO: Improve performance - this takes WAY too long... + if jcontainer.isTopLevelMenu && (numMenuComponents==0) + jcontainer.requestFocus; + numMenuComponents = jcontainer.getMenuComponentCount; + if (numMenuComponents == 0) + drawnow; pause(0.001); + numMenuComponents = jcontainer.getMenuComponentCount; + if (numMenuComponents == 0) + jcontainer.setSelected(true); + numMenuComponents = jcontainer.getMenuComponentCount; + if (numMenuComponents == 0) + drawnow; pause(0.001); + numMenuComponents = jcontainer.getMenuComponentCount; + if (numMenuComponents == 0) + jcontainer.doClick; % needed in order to populate the sub-menu components + numMenuComponents = jcontainer.getMenuComponentCount; + if (numMenuComponents == 0) + drawnow; %pause(0.001); + numMenuComponents = jcontainer.getMenuComponentCount; + jcontainer.doClick; % close menu by re-clicking... + if (numMenuComponents == 0) + drawnow; %pause(0.001); + numMenuComponents = jcontainer.getMenuComponentCount; + end + else + % ok - found sub-items + % Note: no need to close menu since this will be done when focus moves to the FindJObj window + %jcontainer.doClick; % close menu by re-clicking... + end + end + end + jcontainer.setSelected(false); % de-select the menu + end + end + end + end + + %% Remove a specific tree node's data + function nodeRemovedFlag = removeDuplicateNode(thisIdx) + nodeRemovedFlag = false; + for idx = 1 : thisIdx-1 + if isequal(handles(idx),handles(thisIdx)) + levels(thisIdx) = []; + parentIdx(thisIdx) = []; + handles(thisIdx) = []; + positions(thisIdx,:) = []; + %sizes(thisIdx,:) = []; + nodeRemovedFlag = true; + return; + end + end + end + + %% Process optional args + function processArgs(varargin) + + % Initialize + invertFlag = false; + listing = ''; + + % Loop over all optional args + while ~isempty(varargin) && ~isempty(handles) + + % Process the arg (and all its params) + foundIdx = 1 : length(handles); + if iscell(varargin{1}), varargin{1} = varargin{1}{1}; end + if ~isempty(varargin{1}) && varargin{1}(1)=='-' + varargin{1}(1) = []; + end + switch lower(varargin{1}) + case 'not' + invertFlag = true; + case 'position' + [varargin,foundIdx] = processPositionArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case 'size' + [varargin,foundIdx] = processSizeArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case 'class' + [varargin,foundIdx] = processClassArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case 'property' + [varargin,foundIdx] = processPropertyArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case 'depth' + [varargin,foundIdx] = processDepthArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case 'flat' + varargin = {'depth',0, varargin{min(2:end):end}}; + [varargin,foundIdx] = processDepthArgs(varargin{:}); + if invertFlag, foundIdx = ~foundIdx; invertFlag = false; end + case {'print','list'} + [varargin,listing] = processPrintArgs(varargin{:}); + case {'persist','nomenu','debug'} + % ignore - already handled in main function above + otherwise + error('YMA:findjobj:IllegalOption',['Option ' num2str(varargin{1}) ' is not a valid option. Type ''help ' mfilename ''' for the full options list.']); + end + + % If only parent-child pairs found + foundIdx = find(foundIdx); + if ~isempty(foundIdx) && isequal(parentIdx(foundIdx(2:2:end)),foundIdx(1:2:end)) + % Return just the children (the parent panels are uninteresting) + foundIdx(1:2:end) = []; + end + + % If several possible handles were found and the first is the container of the second + if length(foundIdx) == 2 && isequal(handles(foundIdx(1)).java, handles(foundIdx(2)).getParent) + % Discard the uninteresting component container + foundIdx(1) = []; + end + + % Filter the results + selectedIdx = selectedIdx(foundIdx); + handles = handles(foundIdx); + levels = levels(foundIdx); + parentIdx = parentIdx(foundIdx); + positions = positions(foundIdx,:); + + % Remove this arg and proceed to the next one + varargin(1) = []; + + end % Loop over all args + end + + %% Process 'print' option + function [varargin,listing] = processPrintArgs(varargin) + if length(varargin)<2 || ischar(varargin{2}) + % No second arg given, so use the first available element + listingContainer = handles(1); %#ok - used in evalc below + else + % Get the element to print from the specified second arg + if isnumeric(varargin{2}) && (varargin{2} == fix(varargin{2})) % isinteger doesn't work on doubles... + if (varargin{2} > 0) && (varargin{2} <= length(handles)) + listingContainer = handles(varargin{2}); %#ok - used in evalc below + elseif varargin{2} > 0 + error('YMA:findjobj:IllegalPrintFilter','Print filter index %g > number of available elements (%d)',varargin{2},length(handles)); + else + error('YMA:findjobj:IllegalPrintFilter','Print filter must be a java handle or positive numeric index into handles'); + end + elseif ismethod(varargin{2},'list') + listingContainer = varargin{2}; %#ok - used in evalc below + else + error('YMA:findjobj:IllegalPrintFilter','Print filter must be a java handle or numeric index into handles'); + end + varargin(2) = []; + end + + % use evalc() to capture output into a Matlab variable + %listing = evalc('listingContainer.list'); + + % Better solution: loop over all handles and process them one by one + listing = cell(length(handles),1); + for componentIdx = 1 : length(handles) + listing{componentIdx} = [repmat(' ',1,levels(componentIdx)) char(handles(componentIdx).toString)]; + end + end + + %% Process 'position' option + function [varargin,foundIdx] = processPositionArgs(varargin) + if length(varargin)>1 + positionFilter = varargin{2}; + %if (isjava(positionFilter) || iscom(positionFilter)) && ismethod(positionFilter,'getLocation') + try % try-catch is faster... + % Java/COM object passed - get its position + positionFilter = positionFilter.getLocation; + filterXY = [positionFilter.getX, positionFilter.getY]; + catch + if ~isscalar(positionFilter) + % position vector passed + if (length(positionFilter)>=2) && isnumeric(positionFilter) + % Remember that java coordinates start at top-left corner, Matlab coords start at bottom left... + %positionFilter = java.awt.Point(positionFilter(1), container.getHeight - positionFilter(2)); + filterXY = [container.getX + positionFilter(1), container.getY + contentSize(2) - positionFilter(2)]; + + % Check for full Matlab position vector (x,y,w,h) + %if (length(positionFilter)==4) + % varargin{end+1} = 'size'; + % varargin{end+1} = fix(positionFilter(3:4)); + %end + else + error('YMA:findjobj:IllegalPositionFilter','Position filter must be a java UI component, or X,Y pair'); + end + elseif length(varargin)>2 + % x,y passed as separate arg values + if isnumeric(positionFilter) && isnumeric(varargin{3}) + % Remember that java coordinates start at top-left corner, Matlab coords start at bottom left... + %positionFilter = java.awt.Point(positionFilter, container.getHeight - varargin{3}); + filterXY = [container.getX + positionFilter, container.getY + contentSize(2) - varargin{3}]; + varargin(3) = []; + else + error('YMA:findjobj:IllegalPositionFilter','Position filter must be a java UI component, or X,Y pair'); + end + else + error('YMA:findjobj:IllegalPositionFilter','Position filter must be a java UI component, or X,Y pair'); + end + end + + % Compute the required element positions in order to be eligible for a more detailed examination + % Note: based on the following constraints: 0 <= abs(elementX-filterX) + abs(elementY+elementH-filterY) < 7 + baseDeltas = [positions(:,1)-filterXY(1), positions(:,2)-filterXY(2)]; % faster than repmat()... + %baseHeight = - baseDeltas(:,2);% -abs(baseDeltas(:,1)); + %minHeight = baseHeight - 7; + %maxHeight = baseHeight + 7; + %foundIdx = ~arrayfun(@(b)(invoke(b,'contains',positionFilter)),handles); % ARGH! - disallowed by Matlab! + %foundIdx = repmat(false,1,length(handles)); + %foundIdx(length(handles)) = false; % faster than repmat()... + foundIdx = (abs(baseDeltas(:,1)) < 7) & (abs(baseDeltas(:,2)) < 7); % & (minHeight >= 0); + %fi = find(foundIdx); + %for componentIdx = 1 : length(fi) + %foundIdx(componentIdx) = handles(componentIdx).getBounds.contains(positionFilter); + + % Search for a point no farther than 7 pixels away (prevents rounding errors) + %foundIdx(componentIdx) = handles(componentIdx).getLocationOnScreen.distanceSq(positionFilter) < 50; % fails for invisible components... + + %p = java.awt.Point(positions(componentIdx,1), positions(componentIdx,2) + handles(componentIdx).getHeight); + %foundIdx(componentIdx) = p.distanceSq(positionFilter) < 50; + + %foundIdx(componentIdx) = sum(([baseDeltas(componentIdx,1),baseDeltas(componentIdx,2)+handles(componentIdx).getHeight]).^2) < 50; + + % Following is the fastest method found to date: only eligible elements are checked in detailed + % elementHeight = handles(fi(componentIdx)).getHeight; + % foundIdx(fi(componentIdx)) = elementHeight > minHeight(fi(componentIdx)) && ... + % elementHeight < maxHeight(fi(componentIdx)); + %disp([componentIdx,elementHeight,minHeight(fi(componentIdx)),maxHeight(fi(componentIdx)),foundIdx(fi(componentIdx))]) + %end + + varargin(2) = []; + else + foundIdx = []; + end + end + + %% Process 'size' option + function [varargin,foundIdx] = processSizeArgs(varargin) + if length(varargin)>1 + sizeFilter = lower(varargin{2}); + %if (isjava(sizeFilter) || iscom(sizeFilter)) && ismethod(sizeFilter,'getSize') + try % try-catch is faster... + % Java/COM object passed - get its size + sizeFilter = sizeFilter.getSize; + filterWidth = sizeFilter.getWidth; + filterHeight = sizeFilter.getHeight; + catch + if ~isscalar(sizeFilter) + % size vector passed + if (length(sizeFilter)>=2) && isnumeric(sizeFilter) + %sizeFilter = java.awt.Dimension(sizeFilter(1),sizeFilter(2)); + filterWidth = sizeFilter(1); + filterHeight = sizeFilter(2); + else + error('YMA:findjobj:IllegalSizeFilter','Size filter must be a java UI component, or W,H pair'); + end + elseif length(varargin)>2 + % w,h passed as separate arg values + if isnumeric(sizeFilter) && isnumeric(varargin{3}) + %sizeFilter = java.awt.Dimension(sizeFilter,varargin{3}); + filterWidth = sizeFilter; + filterHeight = varargin{3}; + varargin(3) = []; + else + error('YMA:findjobj:IllegalSizeFilter','Size filter must be a java UI component, or W,H pair'); + end + else + error('YMA:findjobj:IllegalSizeFilter','Size filter must be a java UI component, or W,H pair'); + end + end + %foundIdx = ~arrayfun(@(b)(invoke(b,'contains',sizeFilter)),handles); % ARGH! - disallowed by Matlab! + foundIdx(length(handles)) = false; % faster than repmat()... + for componentIdx = 1 : length(handles) + %foundIdx(componentIdx) = handles(componentIdx).getSize.equals(sizeFilter); + % Allow a 2-pixel tollerance to account for non-integer pixel sizes + foundIdx(componentIdx) = abs(handles(componentIdx).getWidth - filterWidth) <= 3 && ... % faster than getSize.equals() + abs(handles(componentIdx).getHeight - filterHeight) <= 3; + end + varargin(2) = []; + else + foundIdx = []; + end + end + + %% Process 'class' option + function [varargin,foundIdx] = processClassArgs(varargin) + if length(varargin)>1 + classFilter = varargin{2}; + %if ismethod(classFilter,'getClass') + try % try-catch is faster... + classFilter = char(classFilter.getClass); + catch + if ~ischar(classFilter) + error('YMA:findjobj:IllegalClassFilter','Class filter must be a java object, class or string'); + end + end + + % Now convert all java classes to java.lang.Strings and compare to the requested filter string + try + foundIdx(length(handles)) = false; % faster than repmat()... + jClassFilter = java.lang.String(classFilter).toLowerCase; + for componentIdx = 1 : length(handles) + % Note: JVM 1.5's String.contains() appears slightly slower and is available only since Matlab 7.2 + foundIdx(componentIdx) = handles(componentIdx).getClass.toString.toLowerCase.indexOf(jClassFilter) >= 0; + end + catch + % Simple processing: slower since it does extra processing within opaque.char() + for componentIdx = 1 : length(handles) + % Note: using @toChar is faster but returns java String, not a Matlab char + foundIdx(componentIdx) = ~isempty(regexpi(char(handles(componentIdx).getClass),classFilter)); + end + end + + varargin(2) = []; + else + foundIdx = []; + end + end + + %% Process 'property' option + function [varargin,foundIdx] = processPropertyArgs(varargin) + if length(varargin)>1 + propertyName = varargin{2}; + if iscell(propertyName) + if length(propertyName) == 2 + propertyVal = propertyName{2}; + propertyName = propertyName{1}; + elseif length(propertyName) == 1 + propertyName = propertyName{1}; + else + error('YMA:findjobj:IllegalPropertyFilter','Property filter must be a string (case insensitive name of property) or cell array {propName,propValue}'); + end + end + if ~ischar(propertyName) + error('YMA:findjobj:IllegalPropertyFilter','Property filter must be a string (case insensitive name of property) or cell array {propName,propValue}'); + end + propertyName = lower(propertyName); + %foundIdx = arrayfun(@(h)isprop(h,propertyName),handles); % ARGH! - disallowed by Matlab! + foundIdx(length(handles)) = false; % faster than repmat()... + + % Split processing depending on whether a specific property value was requested (ugly but faster...) + if exist('propertyVal','var') + for componentIdx = 1 : length(handles) + try + % Find out whether this element has the specified property + % Note: findprop() and its return value schema.prop are undocumented and unsupported! + prop = findprop(handles(componentIdx),propertyName); % faster than isprop() & enables partial property names + + % If found, compare it to the actual element's property value + foundIdx(componentIdx) = ~isempty(prop) && isequal(get(handles(componentIdx),prop.Name),propertyVal); + catch + % Some Java classes have a write-only property (like LabelPeer with 'Text'), so we end up here + % In these cases, simply assume that the property value doesn't match and continue + foundIdx(componentIdx) = false; + end + end + else + for componentIdx = 1 : length(handles) + try + % Find out whether this element has the specified property + % Note: findprop() and its return value schema.prop are undocumented and unsupported! + foundIdx(componentIdx) = ~isempty(findprop(handles(componentIdx),propertyName)); + catch + foundIdx(componentIdx) = false; + end + end + end + varargin(2) = []; + else + foundIdx = []; + end + end + + %% Process 'depth' option + function [varargin,foundIdx] = processDepthArgs(varargin) + if length(varargin)>1 + level = varargin{2}; + if ~isnumeric(level) + error('YMA:findjobj:IllegalDepthFilter','Depth filter must be a number (=maximal element depth)'); + end + foundIdx = (levels <= level); + varargin(2) = []; + else + foundIdx = []; + end + end + + %% Convert property data into a string + function data = charizeData(data) + if isa(data,'com.mathworks.hg.types.HGCallback') + data = get(data,'Callback'); + end + if ~ischar(data) && ~isa(data,'java.lang.String') + newData = strtrim(evalc('disp(data)')); + try + newData = regexprep(newData,' +',' '); + newData = regexprep(newData,'Columns \d+ through \d+\s',''); + newData = regexprep(newData,'Column \d+\s',''); + catch + %never mind... + end + if iscell(data) + newData = ['{ ' newData ' }']; + elseif isempty(data) + newData = ''; + elseif isnumeric(data) || islogical(data) || any(ishandle(data)) || numel(data) > 1 %&& ~isscalar(data) + newData = ['[' newData ']']; + end + data = newData; + elseif ~isempty(data) + data = ['''' data '''']; + end + end % charizeData + + %% Prepare a hierarchical callbacks table data + function setProp(list,name,value,category) + prop = eval('com.jidesoft.grid.DefaultProperty();'); % prevent JIDE alert by run-time (not load-time) evaluation + prop.setName(name); + prop.setType(java.lang.String('').getClass); + prop.setValue(value); + prop.setEditable(true); + prop.setExpert(true); + %prop.setCategory(['' category ' callbacks']); + prop.setCategory([category ' callbacks']); + list.add(prop); + end % getTreeData + + %% Prepare a hierarchical callbacks table data + function list = getTreeData(data) + list = java.util.ArrayList(); + names = regexprep(data,'([A-Z][a-z]+).*','$1'); + %hash = java.util.Hashtable; + others = {}; + for propIdx = 1 : size(data,1) + if (propIdx < size(data,1) && strcmp(names{propIdx},names{propIdx+1})) || ... + (propIdx > 1 && strcmp(names{propIdx},names{propIdx-1})) + % Child callback property + setProp(list,data{propIdx,1},data{propIdx,2},names{propIdx}); + else + % Singular callback property => Add to 'Other' category at bottom of the list + others(end+1,:) = data(propIdx,:); %#ok + end + end + for propIdx = 1 : size(others,1) + setProp(list,others{propIdx,1},others{propIdx,2},'Other'); + end + end % getTreeData + + %% Get callbacks table data + function [cbData, cbHeaders, cbTableEnabled] = getCbsData(obj, stripStdCbsFlag) + % Initialize + cbData = {'(no callbacks)'}; + cbHeaders = {'Callback name'}; + cbTableEnabled = false; + cbNames = {}; + + try + try + classHdl = classhandle(handle(obj)); + cbNames = get(classHdl.Events,'Name'); + if ~isempty(cbNames) && ~iscom(obj) %only java-based please... + cbNames = strcat(cbNames,'Callback'); + end + propNames = get(classHdl.Properties,'Name'); + catch + % Try to interpret as an MCOS class object + try + oldWarn = warning('off','MATLAB:structOnObject'); + dataFields = struct(obj); + warning(oldWarn); + catch + dataFields = get(obj); + end + propNames = fieldnames(dataFields); + end + propCbIdx = []; + if ischar(propNames), propNames={propNames}; end % handle case of a single callback + if ~isempty(propNames) + propCbIdx = find(~cellfun(@isempty,regexp(propNames,'(Fcn|Callback)$'))); + cbNames = unique([cbNames; propNames(propCbIdx)]); %#ok logical is faster but less debuggable... + end + if ~isempty(cbNames) + if stripStdCbsFlag + cbNames = stripStdCbs(cbNames); + end + if iscell(cbNames) + cbNames = sort(cbNames); + if size(cbNames,1) < size(cbNames,2) + cbNames = cbNames'; + end + end + hgHandleFlag = 0; try hgHandleFlag = ishghandle(obj); catch, end %#ok + try + obj = handle(obj,'CallbackProperties'); + catch + hgHandleFlag = 1; + end + if hgHandleFlag + % HG handles don't allow CallbackProperties - search only for *Fcn + %cbNames = propNames(propCbIdx); + end + if iscom(obj) + cbs = obj.eventlisteners; + if ~isempty(cbs) + cbNamesRegistered = cbs(:,1); + cbData = setdiff(cbNames,cbNamesRegistered); + %cbData = charizeData(cbData); + if size(cbData,2) > size(cbData(1)) + cbData = cbData'; + end + cbData = [cbData, cellstr(repmat(' ',length(cbData),1))]; + cbData = [cbData; cbs]; + [sortedNames, sortedIdx] = sort(cbData(:,1)); + sortedCbs = cellfun(@charizeData,cbData(sortedIdx,2),'un',0); + cbData = [sortedNames, sortedCbs]; + else + cbData = [cbNames, cellstr(repmat(' ',length(cbNames),1))]; + end + elseif iscell(cbNames) + cbNames = sort(cbNames); + %cbData = [cbNames, get(obj,cbNames)']; + cbData = cbNames; + oldWarn = warning('off','MATLAB:hg:JavaSetHGProperty'); + warning('off','MATLAB:hg:PossibleDeprecatedJavaSetHGProperty'); + for idx = 1 : length(cbNames) + try + cbData{idx,2} = charizeData(get(obj,cbNames{idx})); + catch + cbData{idx,2} = '(callback value inaccessible)'; + end + end + warning(oldWarn); + else % only one event callback + %cbData = {cbNames, get(obj,cbNames)'}; + %cbData{1,2} = charizeData(cbData{1,2}); + try + cbData = {cbNames, charizeData(get(obj,cbNames))}; + catch + cbData = {cbNames, '(callback value inaccessible)'}; + end + end + cbHeaders = {'Callback name','Callback value'}; + cbTableEnabled = true; + end + catch + % never mind - use default (empty) data + end + end % getCbsData + + %% Get relative (0.0-1.0) divider location + function divLocation = getRalativeDivlocation(jDiv) + divLocation = jDiv.getDividerLocation; + if divLocation > 1 % i.e. [pixels] + visibleRect = jDiv.getVisibleRect; + if jDiv.getOrientation == 0 % vertical + start = visibleRect.getY; + extent = visibleRect.getHeight - start; + else + start = visibleRect.getX; + extent = visibleRect.getWidth - start; + end + divLocation = (divLocation - start) / extent; + end + end % getRalativeDivlocation + + %% Try to set a treenode icon based on a container's icon + function setTreeNodeIcon(treenode,container) + try + iconImage = []; + iconImage = container.getIcon; + if ~isempty(findprop(handle(iconImage),'Image')) % get(iconImage,'Image') is easier but leaks memory... + iconImage = iconImage.getImage; + else + a=b; %#ok cause an error + end + catch + try + iconImage = container.getIconImage; + catch + try + if ~isempty(iconImage) + ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment; + gd = ge.getDefaultScreenDevice; + gc = gd.getDefaultConfiguration; + image = gc.createCompatibleImage(iconImage.getIconWidth, iconImage.getIconHeight); % a BufferedImage object + g = image.createGraphics; + iconImage.paintIcon([], g, 0, 0); + g.dispose; + iconImage = image; + end + catch + % never mind... + end + end + end + if ~isempty(iconImage) + iconImage = setIconSize(iconImage); + treenode.setIcon(iconImage); + end + end % setTreeNodeIcon + + %% Present the object hierarchy tree + function presentObjectTree() + persistent lastVersionCheck + if isempty(lastVersionCheck), lastVersionCheck = now-1; end + + import java.awt.* + import javax.swing.* + hTreeFig = findall(0,'tag','findjobjFig'); + iconpath = [matlabroot, '/toolbox/matlab/icons/']; + cbHideStd = 0; % Initial state of the cbHideStdCbs checkbox + if isempty(hTreeFig) + % Prepare the figure + hTreeFig = figure('tag','findjobjFig','menuBar','none','toolBar','none','Name','FindJObj','NumberTitle','off','handleVisibility','off','IntegerHandle','off'); + figIcon = ImageIcon([iconpath 'tool_legend.gif']); + drawnow; + try + mde = com.mathworks.mde.desk.MLDesktop.getInstance; + jTreeFig = mde.getClient('FindJObj').getTopLevelAncestor; + jTreeFig.setIcon(figIcon); + catch + warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame'); % R2008b compatibility + jTreeFig = get(hTreeFig,'JavaFrame'); + jTreeFig.setFigureIcon(figIcon); + end + vsplitPaneLocation = 0.8; + hsplitPaneLocation = 0.5; + else + % Remember cbHideStdCbs checkbox & dividers state for later + userdata = get(hTreeFig, 'userdata'); + try cbHideStd = userdata.cbHideStdCbs.isSelected; catch, end %#ok + try + vsplitPaneLocation = getRalativeDivlocation(userdata.vsplitPane); + hsplitPaneLocation = getRalativeDivlocation(userdata.hsplitPane); + catch + vsplitPaneLocation = 0.8; + hsplitPaneLocation = 0.5; + end + + % Clear the figure and redraw + clf(hTreeFig); + figure(hTreeFig); % bring to front + end + + % Traverse all HG children, if root container was a HG handle + if ishghandle(origContainer) %&& ~isequal(origContainer,container) + traverseHGContainer(origContainer,0,0); + end + + % Prepare the tree pane + warning('off','MATLAB:uitreenode:MigratingFunction'); % R2008b compatibility + warning('off','MATLAB:uitreenode:DeprecatedFunction'); % R2008a compatibility + tree_h = com.mathworks.hg.peer.UITreePeer; + try tree_h = javaObjectEDT(tree_h); catch, end + tree_hh = handle(tree_h,'CallbackProperties'); + hasChildren = sum(allParents==1) > 1; + icon = [iconpath 'upfolder.gif']; + [rootName, rootTitle] = getNodeName(container); + try + root = uitreenode('v0', handle(container), rootName, icon, ~hasChildren); + catch % old matlab version don't have the 'v0' option + root = uitreenode(handle(container), rootName, icon, ~hasChildren); + end + setTreeNodeIcon(root,container); % constructor must accept a char icon unfortunately, so need to do this afterwards... + if ~isempty(rootTitle) + set(hTreeFig, 'Name',['FindJObj - ' char(rootTitle)]); + end + nodedata.idx = 1; + nodedata.obj = container; + set(root,'userdata',nodedata); + root.setUserObject(container); + setappdata(root,'childHandle',container); + tree_h.setRoot(root); + treePane = tree_h.getScrollPane; + treePane.setMinimumSize(Dimension(50,50)); + jTreeObj = treePane.getViewport.getComponent(0); + jTreeObj.setShowsRootHandles(true) + jTreeObj.getSelectionModel.setSelectionMode(javax.swing.tree.TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); + %jTreeObj.setVisible(0); + %jTreeObj.getCellRenderer.setLeafIcon([]); + %jTreeObj.getCellRenderer.setOpenIcon(figIcon); + %jTreeObj.getCellRenderer.setClosedIcon([]); + treePanel = JPanel(BorderLayout); + treePanel.add(treePane, BorderLayout.CENTER); + progressBar = JProgressBar(0); + progressBar.setMaximum(length(allHandles) + length(hg_handles)); % = # of all nodes + treePanel.add(progressBar, BorderLayout.SOUTH); + + % Prepare the image pane +%disable for now, until we get it working... +%{ + try + hFig = ancestor(origContainer,'figure'); + [cdata, cm] = getframe(hFig); %#ok cm unused + tempfname = [tempname '.png']; + imwrite(cdata,tempfname); % don't know how to pass directly to BufferedImage, so use disk... + jImg = javax.imageio.ImageIO.read(java.io.File(tempfname)); + try delete(tempfname); catch end + imgPanel = JPanel(); + leftPanel = JSplitPane(JSplitPane.VERTICAL_SPLIT, treePanel, imgPanel); + leftPanel.setOneTouchExpandable(true); + leftPanel.setContinuousLayout(true); + leftPanel.setResizeWeight(0.8); + catch + leftPanel = treePanel; + end +%} + leftPanel = treePanel; + + % Prepare the inspector pane + classNameLabel = JLabel([' ' char(class(container))]); + classNameLabel.setForeground(Color.blue); + updateNodeTooltip(container, classNameLabel); + inspectorPanel = JPanel(BorderLayout); + inspectorPanel.add(classNameLabel, BorderLayout.NORTH); + % TODO: Maybe uncomment the following when we add the HG tree - in the meantime it's unused (java properties are un-groupable) + %objReg = com.mathworks.services.ObjectRegistry.getLayoutRegistry; + %toolBar = awtinvoke('com.mathworks.mlwidgets.inspector.PropertyView$ToolBarStyle','valueOf(Ljava.lang.String;)','GROUPTOOLBAR'); + %inspectorPane = com.mathworks.mlwidgets.inspector.PropertyView(objReg, toolBar); + inspectorPane = com.mathworks.mlwidgets.inspector.PropertyView; + identifiers = disableDbstopError; %#ok "dbstop if error" causes inspect.m to croak due to a bug - so workaround + inspectorPane.setObject(container); + inspectorPane.setAutoUpdate(true); + % TODO: Add property listeners + % TODO: Display additional props + inspectorTable = inspectorPane; + try + while ~isa(inspectorTable,'javax.swing.JTable') + inspectorTable = inspectorTable.getComponent(0); + end + catch + % R2010a + inspectorTable = inspectorPane.getComponent(0).getScrollPane.getViewport.getComponent(0); + end + toolTipText = 'hover mouse over the red classname above to see the full list of properties'; + inspectorTable.setToolTipText(toolTipText); + jideTableUtils = []; + try + % Try JIDE features - see http://www.jidesoft.com/products/JIDE_Grids_Developer_Guide.pdf + com.mathworks.mwswing.MJUtilities.initJIDE; + jideTableUtils = eval('com.jidesoft.grid.TableUtils;'); % prevent JIDE alert by run-time (not load-time) evaluation + jideTableUtils.autoResizeAllColumns(inspectorTable); + inspectorTable.setRowAutoResizes(true); + inspectorTable.getModel.setShowExpert(1); + catch + % JIDE is probably unavailable - never mind... + end + inspectorPanel.add(inspectorPane, BorderLayout.CENTER); + % TODO: Add data update listeners + + % Prepare the callbacks pane + callbacksPanel = JPanel(BorderLayout); + stripStdCbsFlag = true; % initial value + [cbData, cbHeaders, cbTableEnabled] = getCbsData(container, stripStdCbsFlag); + %{ + %classHdl = classhandle(handle(container)); + %eventNames = get(classHdl.Events,'Name'); + %if ~isempty(eventNames) + % cbNames = sort(strcat(eventNames,'Callback')); + % try + % cbData = [cbNames, get(container,cbNames)']; + % catch + % % R2010a + % cbData = cbNames; + % if isempty(cbData) + % cbData = {}; + % elseif ~iscell(cbData) + % cbData = {cbData}; + % end + % for idx = 1 : length(cbNames) + % cbData{idx,2} = get(container,cbNames{idx}); + % end + % end + % cbTableEnabled = true; + %else + % cbData = {'(no callbacks)',''}; + % cbTableEnabled = false; + %end + %cbHeaders = {'Callback name','Callback value'}; + %} + try + % Use JideTable if available on this system + %callbacksTableModel = javax.swing.table.DefaultTableModel(cbData,cbHeaders); %#ok + %callbacksTable = eval('com.jidesoft.grid.PropertyTable(callbacksTableModel);'); % prevent JIDE alert by run-time (not load-time) evaluation + try + list = getTreeData(cbData); %#ok + model = eval('com.jidesoft.grid.PropertyTableModel(list);'); %#ok prevent JIDE alert by run-time (not load-time) evaluation + + % Auto-expand if only one category + if model.getRowCount==1 % length(model.getCategories)==1 fails for some unknown reason... + model.expandFirstLevel; + end + + %callbacksTable = eval('com.jidesoft.grid.TreeTable(model);'); %#ok prevent JIDE alert by run-time (not load-time) evaluation + callbacksTable = eval('com.jidesoft.grid.PropertyTable(model);'); %#ok prevent JIDE alert by run-time (not load-time) evaluation + + %callbacksTable.expandFirstLevel; + callbacksTable.setShowsRootHandles(true); + callbacksTable.setShowTreeLines(false); + %callbacksTable.setShowNonEditable(0); %=SHOW_NONEDITABLE_NEITHER + callbacksPane = eval('com.jidesoft.grid.PropertyPane(callbacksTable);'); % prevent JIDE alert by run-time (not load-time) evaluation + callbacksPane.setShowDescription(false); + catch + callbacksTable = eval('com.jidesoft.grid.TreeTable(cbData,cbHeaders);'); % prevent JIDE alert by run-time (not load-time) evaluation + end + callbacksTable.setRowAutoResizes(true); + callbacksTable.setColumnAutoResizable(true); + callbacksTable.setColumnResizable(true); + jideTableUtils.autoResizeAllColumns(callbacksTable); + callbacksTable.setTableHeader([]); % hide the column headers since now we can resize columns with the gridline + callbacksLabel = JLabel(' Callbacks:'); % The column headers are replaced with a header label + callbacksLabel.setForeground(Color.blue); + %callbacksPanel.add(callbacksLabel, BorderLayout.NORTH); + + % Add checkbox to show/hide standard callbacks + callbacksTopPanel = JPanel; + callbacksTopPanel.setLayout(BoxLayout(callbacksTopPanel, BoxLayout.LINE_AXIS)); + callbacksTopPanel.add(callbacksLabel); + callbacksTopPanel.add(Box.createHorizontalGlue); + jcb = JCheckBox('Hide standard callbacks', cbHideStd); + set(handle(jcb,'CallbackProperties'), 'ActionPerformedCallback',{@cbHideStdCbs_Callback,callbacksTable}); + try + set(jcb, 'userdata',callbacksTable, 'tooltip','Hide standard Swing callbacks - only component-specific callbacks will be displayed'); + catch + jcb.setToolTipText('Hide standard Swing callbacks - only component-specific callbacks will be displayed'); + %setappdata(jcb,'userdata',callbacksTable); + end + callbacksTopPanel.add(jcb); + callbacksPanel.add(callbacksTopPanel, BorderLayout.NORTH); + catch + % Otherwise, use a standard Swing JTable (keep the headers to enable resizing) + callbacksTable = JTable(cbData,cbHeaders); + end + cbToolTipText = 'Callbacks may be ''strings'', @funcHandle or {@funcHandle,arg1,...}'; + callbacksTable.setToolTipText(cbToolTipText); + callbacksTable.setGridColor(inspectorTable.getGridColor); + cbNameTextField = JTextField; + cbNameTextField.setEditable(false); % ensure that the callback names are not modified... + cbNameCellEditor = DefaultCellEditor(cbNameTextField); + cbNameCellEditor.setClickCountToStart(intmax); % i.e, never enter edit mode... + callbacksTable.getColumnModel.getColumn(0).setCellEditor(cbNameCellEditor); + if ~cbTableEnabled + try callbacksTable.getColumnModel.getColumn(1).setCellEditor(cbNameCellEditor); catch, end + end + hModel = callbacksTable.getModel; + set(handle(hModel,'CallbackProperties'), 'TableChangedCallback',{@tbCallbacksChanged,container,callbacksTable}); + %set(hModel, 'UserData',container); + try + cbScrollPane = callbacksPane; %JScrollPane(callbacksPane); + %cbScrollPane.setHorizontalScrollBarPolicy(cbScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + catch + cbScrollPane = JScrollPane(callbacksTable); + cbScrollPane.setVerticalScrollBarPolicy(cbScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + end + callbacksPanel.add(cbScrollPane, BorderLayout.CENTER); + callbacksPanel.setToolTipText(cbToolTipText); + + % Prepare the top-bottom JSplitPanes + vsplitPane = JSplitPane(JSplitPane.VERTICAL_SPLIT, inspectorPanel, callbacksPanel); + vsplitPane.setOneTouchExpandable(true); + vsplitPane.setContinuousLayout(true); + vsplitPane.setResizeWeight(0.8); + + % Prepare the left-right JSplitPane + hsplitPane = JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, vsplitPane); + hsplitPane.setOneTouchExpandable(true); + hsplitPane.setContinuousLayout(true); + hsplitPane.setResizeWeight(0.6); + pos = getpixelposition(hTreeFig); + + % Prepare the bottom pane with all buttons + lowerPanel = JPanel(FlowLayout); + blogUrlLabel = 'Undocumented
Matlab.com
'; + jWebsite = createJButton(blogUrlLabel, @btWebsite_Callback, 'Visit the UndocumentedMatlab.com blog'); + jWebsite.setContentAreaFilled(0); + lowerPanel.add(jWebsite); + lowerPanel.add(createJButton('Refresh
tree', {@btRefresh_Callback, origContainer, hTreeFig}, 'Rescan the component tree, from the root down')); + lowerPanel.add(createJButton('Export to
workspace', {@btExport_Callback, jTreeObj, classNameLabel}, 'Export the selected component handles to workspace variable findjobj_hdls')); + lowerPanel.add(createJButton('Request
focus', {@btFocus_Callback, jTreeObj, root}, 'Set the focus on the first selected component')); + lowerPanel.add(createJButton('Inspect
object', {@btInspect_Callback, jTreeObj, root}, 'View the signature of all methods supported by the first selected component')); + lowerPanel.add(createJButton('Check for
updates', {@btCheckFex_Callback}, 'Check the MathWorks FileExchange for the latest version of FindJObj')); + + % Display everything on-screen + globalPanel = JPanel(BorderLayout); + globalPanel.add(hsplitPane, BorderLayout.CENTER); + globalPanel.add(lowerPanel, BorderLayout.SOUTH); + [obj, hcontainer] = javacomponent(globalPanel, [0,0,pos(3:4)], hTreeFig); + set(hcontainer,'units','normalized'); + drawnow; + hsplitPane.setDividerLocation(hsplitPaneLocation); % this only works after the JSplitPane is displayed... + vsplitPane.setDividerLocation(vsplitPaneLocation); % this only works after the JSplitPane is displayed... + %restoreDbstopError(identifiers); + + % Refresh & resize the screenshot thumbnail +%disable for now, until we get it working... +%{ + try + hAx = axes('Parent',hTreeFig, 'units','pixels', 'position',[10,10,250,150], 'visible','off'); + axis(hAx,'image'); + image(cdata,'Parent',hAx); + axis(hAx,'off'); + set(hAx,'UserData',cdata); + set(imgPanel, 'ComponentResizedCallback',{@resizeImg, hAx}, 'UserData',lowerPanel); + imgPanel.getGraphics.drawImage(jImg, 0, 0, []); + catch + % Never mind... + end +%} + % If all handles were selected (i.e., none were filtered) then only select the first + if (length(selectedIdx) == length(allHandles)) && ~isempty(selectedIdx) + selectedIdx = 1; + end + + % Store handles for callback use + userdata.handles = allHandles; + userdata.levels = allLevels; + userdata.parents = allParents; + userdata.hg_handles = hg_handles; + userdata.hg_levels = hg_levels; + userdata.hg_parents = hg_parentIdx; + userdata.initialIdx = selectedIdx; + userdata.userSelected = false; % Indicates the user has modified the initial selections + userdata.inInit = true; + userdata.jTree = jTreeObj; + userdata.jTreePeer = tree_h; + userdata.vsplitPane = vsplitPane; + userdata.hsplitPane = hsplitPane; + userdata.classNameLabel = classNameLabel; + userdata.inspectorPane = inspectorPane; + userdata.callbacksTable = callbacksTable; + userdata.jideTableUtils = jideTableUtils; + try + userdata.cbHideStdCbs = jcb; + catch + userdata.cbHideStdCbs = []; + end + + % Update userdata for use in callbacks + try + set(tree_h,'userdata',userdata); + catch + setappdata(handle(tree_h),'userdata',userdata); + end + try + set(callbacksTable,'userdata',userdata); + catch + setappdata(callbacksTable,'userdata',userdata); + end + set(hTreeFig,'userdata',userdata); + + % Select the root node if requested + % Note: we must do so here since all other nodes except the root are processed by expandNode + if any(selectedIdx==1) + tree_h.setSelectedNode(root); + end + + % Set the initial cbHideStdCbs state + try + if jcb.isSelected + drawnow; + evd.getSource.isSelected = jcb.isSelected; + cbHideStdCbs_Callback(jcb,evd,callbacksTable); + end + catch + % never mind... + end + + % Set the callback functions + set(tree_hh, 'NodeExpandedCallback', {@nodeExpanded, tree_h}); + set(tree_hh, 'NodeSelectedCallback', {@nodeSelected, tree_h}); + + % Set the tree mouse-click callback + % Note: default actions (expand/collapse) will still be performed? + % Note: MousePressedCallback is better than MouseClickedCallback + % since it fires immediately when mouse button is pressed, + % without waiting for its release, as MouseClickedCallback does + handleTree = tree_h.getScrollPane; + jTreeObj = handleTree.getViewport.getComponent(0); + jTreeObjh = handle(jTreeObj,'CallbackProperties'); + set(jTreeObjh, 'MousePressedCallback', {@treeMousePressedCallback,tree_h}); % context (right-click) menu + set(jTreeObjh, 'MouseMovedCallback', @treeMouseMovedCallback); % mouse hover tooltips + + % Update userdata + userdata.inInit = false; + try + set(tree_h,'userdata',userdata); + catch + setappdata(handle(tree_h),'userdata',userdata); + end + set(hTreeFig,'userdata',userdata); + + % Pre-expand all rows + %treePane.setVisible(false); + expandNode(progressBar, jTreeObj, tree_h, root, 0); + %treePane.setVisible(true); + %jTreeObj.setVisible(1); + + % Hide the progressbar now that we've finished expanding all rows + try + hsplitPane.getLeftComponent.setTopComponent(treePane); + catch + % Probably not a vSplitPane on the left... + hsplitPane.setLeftComponent(treePane); + end + hsplitPane.setDividerLocation(hsplitPaneLocation); % need to do it again... + + % Set keyboard focus on the tree + jTreeObj.requestFocus; + drawnow; + + % Check for a newer version (only in non-deployed mode, and only twice a day) + if ~isdeployed && now-lastVersionCheck > 0.5 + checkVersion(); + lastVersionCheck = now; + end + + % Reset the last error + lasterr(''); %#ok + end + + %% Rresize image pane + function resizeImg(varargin) %#ok - unused (TODO: waiting for img placement fix...) + try + hPanel = varargin{1}; + hAx = varargin{3}; + lowerPanel = get(hPanel,'UserData'); + newJPos = cell2mat(get(hPanel,{'X','Y','Width','Height'})); + newMPos = [1,get(lowerPanel,'Height'),newJPos(3:4)]; + set(hAx, 'units','pixels', 'position',newMPos, 'Visible','on'); + uistack(hAx,'top'); % no good... + set(hPanel,'Opaque','off'); % also no good... + catch + % Never mind... + dispError + end + return; + end + + %% "dbstop if error" causes inspect.m to croak due to a bug - so workaround by temporarily disabling this dbstop + function identifiers = disableDbstopError + dbStat = dbstatus; + idx = find(strcmp({dbStat.cond},'error')); + identifiers = [dbStat(idx).identifier]; + if ~isempty(idx) + dbclear if error; + msgbox('''dbstop if error'' had to be disabled due to a Matlab bug that would have caused Matlab to crash.', 'FindJObj', 'warn'); + end + end + + %% Restore any previous "dbstop if error" + function restoreDbstopError(identifiers) %#ok + for itemIdx = 1 : length(identifiers) + eval(['dbstop if error ' identifiers{itemIdx}]); + end + end + + %% Recursively expand all nodes (except toolbar/menubar) in startup + function expandNode(progressBar, tree, tree_h, parentNode, parentRow) + try + if nargin < 5 + parentPath = javax.swing.tree.TreePath(parentNode.getPath); + parentRow = tree.getRowForPath(parentPath); + end + tree.expandRow(parentRow); + progressBar.setValue(progressBar.getValue+1); + numChildren = parentNode.getChildCount; + if (numChildren == 0) + pause(0.0002); % as short as possible... + drawnow; + end + nodesToUnExpand = {'FigureMenuBar','MLMenuBar','MJToolBar','Box','uimenu','uitoolbar','ScrollBar'}; + numChildren = parentNode.getChildCount; + for childIdx = 0 : numChildren-1 + childNode = parentNode.getChildAt(childIdx); + + % Pre-select the node based upon the user's FINDJOBJ filters + try + nodedata = get(childNode, 'userdata'); + try + userdata = get(tree_h, 'userdata'); + catch + userdata = getappdata(handle(tree_h), 'userdata'); + end + %fprintf('%d - %s\n',nodedata.idx,char(nodedata.obj)) + if ~ishghandle(nodedata.obj) && ~userdata.userSelected && any(userdata.initialIdx == nodedata.idx) + pause(0.0002); % as short as possible... + drawnow; + if isempty(tree_h.getSelectedNodes) + tree_h.setSelectedNode(childNode); + else + newSelectedNodes = [tree_h.getSelectedNodes, childNode]; + tree_h.setSelectedNodes(newSelectedNodes); + end + end + catch + % never mind... + dispError + end + + % Expand child node if not leaf & not toolbar/menubar + if childNode.isLeafNode + + % This is a leaf node, so simply update the progress-bar + progressBar.setValue(progressBar.getValue+1); + + else + % Expand all non-leaves + expandNode(progressBar, tree, tree_h, childNode); + + % Re-collapse toolbar/menubar etc., and also invisible containers + % Note: if we simply did nothing, progressbar would not have been updated... + try + childHandle = getappdata(childNode,'childHandle'); %=childNode.getUserObject + visible = childHandle.isVisible; + catch + visible = 1; + end + visible = visible && isempty(findstr(get(childNode,'Name'),'color="gray"')); + %if any(strcmp(childNode.getName,nodesToUnExpand)) + %name = char(childNode.getName); + if any(cellfun(@(s)~isempty(strmatch(s,char(childNode.getName))),nodesToUnExpand)) || ~visible + childPath = javax.swing.tree.TreePath(childNode.getPath); + childRow = tree.getRowForPath(childPath); + tree.collapseRow(childRow); + end + end + end + catch + % never mind... + dispError + end + end + + %% Create utility buttons + function hButton = createJButton(nameStr, handler, toolTipText) + try + jButton = javax.swing.JButton(['

' nameStr]); + jButton.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR)); + jButton.setToolTipText(toolTipText); + try + minSize = jButton.getMinimumSize; + catch + minSize = jButton.getMinimumSize; % for HG2 - strange indeed that this is needed! + end + jButton.setMinimumSize(java.awt.Dimension(minSize.getWidth,35)); + hButton = handle(jButton,'CallbackProperties'); + set(hButton,'ActionPerformedCallback',handler); + catch + % Never mind... + a= 1; + end + end + + %% Flash a component off/on for the specified duration + % note: starts with 'on'; if numTimes is odd then ends with 'on', otherwise with 'off' + function flashComponent(jComps,delaySecs,numTimes) + persistent redBorder redBorderPanels + try + % Handle callback data from right-click (context-menu) + if iscell(numTimes) + [jComps,delaySecs,numTimes] = deal(numTimes{:}); + end + + if isempty(redBorder) % reuse if possible + redBorder = javax.swing.border.LineBorder(java.awt.Color.red,2,0); + end + for compIdx = 1 : length(jComps) + try + oldBorder{compIdx} = jComps(compIdx).getBorder; %#ok grow + catch + oldBorder{compIdx} = []; %#ok grow + end + isSettable(compIdx) = ismethod(jComps(compIdx),'setBorder'); %#ok grow + if isSettable(compIdx) + try + % some components prevent border modification: + oldBorderFlag = jComps(compIdx).isBorderPainted; + if ~oldBorderFlag + jComps(compIdx).setBorderPainted(1); + isSettable(compIdx) = jComps(compIdx).isBorderPainted; %#ok grow + jComps(compIdx).setBorderPainted(oldBorderFlag); + end + catch + % do nothing... + end + end + if compIdx > length(redBorderPanels) + redBorderPanels{compIdx} = javax.swing.JPanel; + redBorderPanels{compIdx}.setBorder(redBorder); + redBorderPanels{compIdx}.setOpaque(0); % transparent interior, red border + end + try + redBorderPanels{compIdx}.setBounds(jComps(compIdx).getBounds); + catch + % never mind - might be an HG handle + end + end + for idx = 1 : 2*numTimes + if idx>1, pause(delaySecs); end % don't pause at start + visible = mod(idx,2); + for compIdx = 1 : length(jComps) + try + jComp = jComps(compIdx); + + % Prevent Matlab crash (java buffer overflow...) + if isa(jComp,'com.mathworks.mwswing.desk.DTSplitPane') || ... + isa(jComp,'com.mathworks.mwswing.MJSplitPane') + continue; + + % HG handles are highlighted by setting their 'Selected' property + elseif isa(jComp,'uimenu') || isa(jComp,'matlab.ui.container.Menu') + if visible + oldColor = get(jComp,'ForegroundColor'); + setappdata(jComp,'findjobj_oldColor',oldColor); + set(jComp,'ForegroundColor','red'); + else + oldColor = getappdata(jComp,'findjobj_oldColor'); + set(jComp,'ForegroundColor',oldColor); + rmappdata(jComp,'ForegroundColor'); + end + + elseif ishghandle(jComp) + if visible + set(jComp,'Selected','on'); + else + set(jComp,'Selected','off'); + end + + else %if isjava(jComp) + + jParent = jComps(compIdx).getParent; + + % Most Java components allow modifying their borders + if isSettable(compIdx) + if visible + jComp.setBorder(redBorder); + try jComp.setBorderPainted(1); catch, end %#ok + else %if ~isempty(oldBorder{compIdx}) + jComp.setBorder(oldBorder{compIdx}); + end + jComp.repaint; + + % The other Java components are highlighted by a transparent red-border + % panel that is placed on top of them in their parent's space + elseif ~isempty(jParent) + if visible + jParent.add(redBorderPanels{compIdx}); + jParent.setComponentZOrder(redBorderPanels{compIdx},0); + else + jParent.remove(redBorderPanels{compIdx}); + end + jParent.repaint + end + end + catch + % never mind - try the next component (if any) + end + end + drawnow; + end + catch + % never mind... + dispError; + end + return; % debug point + end % flashComponent + + %% Select tree node + function nodeSelected(src, evd, tree) %#ok + try + if iscell(tree) + [src,node] = deal(tree{:}); + else + node = evd.getCurrentNode; + end + %nodeHandle = node.getUserObject; + nodedata = get(node,'userdata'); + nodeHandle = nodedata.obj; + try + userdata = get(src,'userdata'); + catch + try + userdata = getappdata(java(src),'userdata'); + catch + userdata = getappdata(src,'userdata'); + end + if isempty(userdata) + try userdata = get(java(src),'userdata'); catch, end + end + end + if ~isempty(nodeHandle) && ~isempty(userdata) + numSelections = userdata.jTree.getSelectionCount; + selectionPaths = userdata.jTree.getSelectionPaths; + if (numSelections == 1) + % Indicate that the user has modified the initial selection (except if this was an initial auto-selected node) + if ~userdata.inInit + userdata.userSelected = true; + try + set(src,'userdata',userdata); + catch + try + setappdata(java(src),'userdata',userdata); + catch + setappdata(src,'userdata',userdata); + end + end + end + + % Update the fully-qualified class name label + numInitialIdx = length(userdata.initialIdx); + thisHandle = nodeHandle; + try + if ~ishghandle(thisHandle) + thisHandle = java(nodeHandle); + end + catch + % never mind... + end + if ~userdata.inInit || (numInitialIdx == 1) + userdata.classNameLabel.setText([' ' char(class(thisHandle))]); + else + userdata.classNameLabel.setText([' ' num2str(numInitialIdx) 'x handles (some handles hidden by unexpanded tree nodes)']); + end + if ishghandle(thisHandle) + userdata.classNameLabel.setText(userdata.classNameLabel.getText.concat(' (HG handle)')); + end + userdata.inspectorPane.dispose; % remove props listeners - doesn't work... + updateNodeTooltip(nodeHandle, userdata.classNameLabel); + + % Update the data properties inspector pane + % Note: we can't simply use the evd nodeHandle, because this node might have been DE-selected with only one other node left selected... + %nodeHandle = selectionPaths(1).getLastPathComponent.getUserObject; + nodedata = get(selectionPaths(1).getLastPathComponent,'userdata'); + nodeHandle = nodedata.obj; + %identifiers = disableDbstopError; % "dbstop if error" causes inspect.m to croak due to a bug - so workaround + userdata.inspectorPane.setObject(thisHandle); + + % Update the callbacks table + try + stripStdCbsFlag = getappdata(userdata.callbacksTable,'hideStdCbs'); + [cbData, cbHeaders, cbTableEnabled] = getCbsData(nodeHandle, stripStdCbsFlag); %#ok cbTableEnabled unused + try + % Use JideTable if available on this system + list = getTreeData(cbData); %#ok + callbacksTableModel = eval('com.jidesoft.grid.PropertyTableModel(list);'); %#ok prevent JIDE alert by run-time (not load-time) evaluation + + % Expand if only one category + if length(callbacksTableModel.getCategories)==1 + callbacksTableModel.expandFirstLevel; + end + catch + callbacksTableModel = javax.swing.table.DefaultTableModel(cbData,cbHeaders); + end + set(handle(callbacksTableModel,'CallbackProperties'), 'TableChangedCallback',{@tbCallbacksChanged,nodeHandle,userdata.callbacksTable}); + %set(callbacksTableModel, 'UserData',nodeHandle); + userdata.callbacksTable.setModel(callbacksTableModel) + userdata.callbacksTable.setRowAutoResizes(true); + userdata.jideTableUtils.autoResizeAllColumns(userdata.callbacksTable); + catch + % never mind... + %dispError + end + pause(0.005); + drawnow; + %restoreDbstopError(identifiers); + + % Highlight the selected object (if visible) + flashComponent(nodeHandle,0.2,3); + + elseif (numSelections > 1) % Multiple selections + + % Get the list of all selected nodes + jArray = javaArray('java.lang.Object', numSelections); + toolTipStr = ''; + sameClassFlag = true; + for idx = 1 : numSelections + %jArray(idx) = selectionPaths(idx).getLastPathComponent.getUserObject; + nodedata = get(selectionPaths(idx).getLastPathComponent,'userdata'); + try + if ishghandle(nodedata.obj) + if idx==1 + jArray = nodedata.obj; + else + jArray(idx) = nodedata.obj; + end + else + jArray(idx) = java(nodedata.obj); + end + catch + jArray(idx) = nodedata.obj; + end + toolTipStr = [toolTipStr ' ' class(jArray(idx)) ' ']; %#ok grow + if (idx < numSelections), toolTipStr = [toolTipStr '
']; end %#ok grow + try + if (idx > 1) && sameClassFlag && ~isequal(jArray(idx).getClass,jArray(1).getClass) + sameClassFlag = false; + end + catch + if (idx > 1) && sameClassFlag && ~isequal(class(jArray(idx)),class(jArray(1))) + sameClassFlag = false; + end + end + end + toolTipStr = [toolTipStr '']; + + % Update the fully-qualified class name label + if sameClassFlag + classNameStr = class(jArray(1)); + else + classNameStr = 'handle'; + end + if all(ishghandle(jArray)) + if strcmp(classNameStr,'handle') + classNameStr = 'HG handles'; + else + classNameStr = [classNameStr ' (HG handles)']; + end + end + classNameStr = [' ' num2str(numSelections) 'x ' classNameStr]; + userdata.classNameLabel.setText(classNameStr); + userdata.classNameLabel.setToolTipText(toolTipStr); + + % Update the data properties inspector pane + %identifiers = disableDbstopError; % "dbstop if error" causes inspect.m to croak due to a bug - so workaround + if isjava(jArray) + jjArray = jArray; + else + jjArray = javaArray('java.lang.Object', numSelections); + for idx = 1 : numSelections + jjArray(idx) = java(jArray(idx)); + end + end + userdata.inspectorPane.getRegistry.setSelected(jjArray, true); + + % Update the callbacks table + try + % Get intersecting callback names & values + stripStdCbsFlag = getappdata(userdata.callbacksTable,'hideStdCbs'); + [cbData, cbHeaders, cbTableEnabled] = getCbsData(jArray(1), stripStdCbsFlag); %#ok cbHeaders & cbTableEnabled unused + if ~isempty(cbData) + cbNames = cbData(:,1); + for idx = 2 : length(jArray) + [cbData2, cbHeaders2] = getCbsData(jArray(idx), stripStdCbsFlag); %#ok cbHeaders2 unused + if ~isempty(cbData2) + newCbNames = cbData2(:,1); + [cbNames, cbIdx, cb2Idx] = intersect(cbNames,newCbNames); %#ok cb2Idx unused + cbData = cbData(cbIdx,:); + for cbIdx = 1 : length(cbNames) + newIdx = find(strcmp(cbNames{cbIdx},newCbNames)); + if ~isequal(cbData2,cbData) && ~isequal(cbData2{newIdx,2}, cbData{cbIdx,2}) + cbData{cbIdx,2} = ''; + end + end + else + cbData = cbData([],:); %=empty cell array + end + if isempty(cbData) + break; + end + end + end + cbHeaders = {'Callback name','Callback value'}; + try + % Use JideTable if available on this system + list = getTreeData(cbData); %#ok + callbacksTableModel = eval('com.jidesoft.grid.PropertyTableModel(list);'); %#ok prevent JIDE alert by run-time (not load-time) evaluation + + % Expand if only one category + if length(callbacksTableModel.getCategories)==1 + callbacksTableModel.expandFirstLevel; + end + catch + callbacksTableModel = javax.swing.table.DefaultTableModel(cbData,cbHeaders); + end + set(handle(callbacksTableModel,'CallbackProperties'), 'TableChangedCallback',{@tbCallbacksChanged,jArray,userdata.callbacksTable}); + %set(callbacksTableModel, 'UserData',jArray); + userdata.callbacksTable.setModel(callbacksTableModel) + userdata.callbacksTable.setRowAutoResizes(true); + userdata.jideTableUtils.autoResizeAllColumns(userdata.callbacksTable); + catch + % never mind... + dispError + end + + pause(0.005); + drawnow; + %restoreDbstopError(identifiers); + + % Highlight the selected objects (if visible) + flashComponent(jArray,0.2,3); + end + + % TODO: Auto-highlight selected object (?) + %nodeHandle.requestFocus; + end + catch + dispError + end + end + + %% IFF utility function for annonymous cellfun funcs + function result = iff(test,trueVal,falseVal) %#ok + try + if test + result = trueVal; + else + result = falseVal; + end + catch + result = false; + end + end + + %% Get an HTML representation of the object's properties + function dataFieldsStr = getPropsHtml(nodeHandle, dataFields) + try + % Get a text representation of the fieldnames & values + undefinedStr = ''; + hiddenStr = ''; + dataFieldsStr = ''; % just in case the following croaks... + if isempty(dataFields) + return; + end + dataFieldsStr = evalc('disp(dataFields)'); + if dataFieldsStr(end)==char(10), dataFieldsStr=dataFieldsStr(1:end-1); end + + % Strip out callbacks + dataFieldsStr = regexprep(dataFieldsStr,'^\s*\w*Callback(Data)?:[^\n]*$','','lineanchors'); + + % Strip out internal HG2 mirror properties + dataFieldsStr = regexprep(dataFieldsStr,'^\s*\w*_I:[^\n]*$','','lineanchors'); + dataFieldsStr = regexprep(dataFieldsStr,'\n\n+','\n'); + + % Sort the fieldnames + %fieldNames = fieldnames(dataFields); + try + [a,b,c,d] = regexp(dataFieldsStr,'(\w*): '); + fieldNames = strrep(d,': ',''); + catch + fieldNames = fieldnames(dataFields); + end + try + [fieldNames, sortedIdx] = sort(fieldNames); + s = strsplit(dataFieldsStr, sprintf('\n'))'; + dataFieldsStr = strjoin(s(sortedIdx), sprintf('\n')); + catch + % never mind... - ignore, leave unsorted + end + + % Convert into a Matlab handle() + %nodeHandle = handle(nodeHandle); + try + % ensure this is a Matlab handle, not a java object + nodeHandle = handle(nodeHandle, 'CallbackProperties'); + catch + try + % HG handles don't allow CallbackProperties... + nodeHandle = handle(nodeHandle); + catch + % Some Matlab class objects simply cannot be converted into a handle() + end + end + + % HTMLize tooltip data + % First, set the fields' font based on its read-write status + for fieldIdx = 1 : length(fieldNames) + thisFieldName = fieldNames{fieldIdx}; + %accessFlags = get(findprop(nodeHandle,thisFieldName),'AccessFlags'); + try + hProp = findprop(nodeHandle,thisFieldName); + accessFlags = get(hProp,'AccessFlags'); + visible = get(hProp,'Visible'); + catch + accessFlags = []; + visible = 'on'; + try if hProp.Hidden, visible='off'; end, catch, end + end + %if isfield(accessFlags,'PublicSet') && strcmp(accessFlags.PublicSet,'on') + if (~isempty(hProp) && isprop(hProp,'SetAccess') && isequal(hProp.SetAccess,'public')) || ... % isequal(...'public') and not strcmpi(...) because might be a cell array of classes + (~isempty(accessFlags) && isfield(accessFlags,'PublicSet') && strcmpi(accessFlags.PublicSet,'on')) + % Bolden read/write fields + thisFieldFormat = ['' thisFieldName ':$2']; + %elseif ~isfield(accessFlags,'PublicSet') + elseif (isempty(hProp) || ~isprop(hProp,'SetAccess')) && ... + (isempty(accessFlags) || ~isfield(accessFlags,'PublicSet')) + % Undefined - probably a Matlab-defined field of com.mathworks.hg.peer.FigureFrameProxy... + thisFieldFormat = ['' thisFieldName ':$2']; + undefinedStr = ', undefined'; + else % PublicSet=='off' + % Gray-out & italicize any read-only fields + thisFieldFormat = ['' thisFieldName ':$2']; + end + if strcmpi(visible,'off') + %thisFieldFormat = ['' thisFieldFormat '']; %#ok + thisFieldFormat = regexprep(thisFieldFormat, {'(.*):(.*)','<.?b>'}, {'$1:$2',''}); %'(.*):(.*)', '$1:$2'); + hiddenStr = ', hidden'; + end + dataFieldsStr = regexprep(dataFieldsStr, ['([\s\n])' thisFieldName ':([^\n]*)'], ['$1' thisFieldFormat]); + end + catch + % never mind... - probably an ambiguous property name + %dispError + end + + % Method 1: simple
list + %dataFieldsStr = strrep(dataFieldsStr,char(10),' 
  '); + + % Method 2: 2-column + dataFieldsStr = regexprep(dataFieldsStr, '^\s*([^:]+:)([^\n]*)\n^\s*([^:]+:)([^\n]*)$', '', 'lineanchors'); + dataFieldsStr = regexprep(dataFieldsStr, '^[^<]\s*([^:]+:)([^\n]*)$', '', 'lineanchors'); + dataFieldsStr = ['(documented' undefinedStr hiddenStr ' & read-only fields)

  

 $1 $2    $3 $4 
 $1 $2  
' dataFieldsStr '
']; + end + + %% Update tooltip string with a node's data + function updateNodeTooltip(nodeHandle, uiObject) + try + toolTipStr = class(nodeHandle); + dataFieldsStr = ''; + + % Add HG annotation if relevant + if ishghandle(nodeHandle) + hgStr = ' HG Handle'; + else + hgStr = ''; + end + + % Prevent HG-Java warnings + oldWarn = warning('off','MATLAB:hg:JavaSetHGProperty'); + warning('off','MATLAB:hg:PossibleDeprecatedJavaSetHGProperty'); + warning('off','MATLAB:hg:Root'); + + % Note: don't bulk-get because (1) not all properties are returned & (2) some properties cause a Java exception + % Note2: the classhandle approach does not enable access to user-defined schema.props + ch = classhandle(handle(nodeHandle)); + dataFields = []; + [sortedNames, sortedIdx] = sort(get(ch.Properties,'Name')); + for idx = 1 : length(sortedIdx) + sp = ch.Properties(sortedIdx(idx)); + % TODO: some fields (see EOL comment below) generate a Java Exception from: com.mathworks.mlwidgets.inspector.PropertyRootNode$PropertyListener$1$1.run + if strcmp(sp.AccessFlags.PublicGet,'on') % && ~any(strcmp(sp.Name,{'FixedColors','ListboxTop','Extent'})) + try + dataFields.(sp.Name) = get(nodeHandle, sp.Name); + catch + dataFields.(sp.Name) = 'Error!'; + end + else + dataFields.(sp.Name) = '(no public getter method)'; + end + end + dataFieldsStr = getPropsHtml(nodeHandle, dataFields); + catch + % Probably a non-HG java object + try + % Note: the bulk-get approach enables access to user-defined schema-props, but not to some original classhandle Properties... + try + oldWarn3 = warning('off','MATLAB:structOnObject'); + dataFields = struct(nodeHandle); + warning(oldWarn3); + catch + dataFields = get(nodeHandle); + end + dataFieldsStr = getPropsHtml(nodeHandle, dataFields); + catch + % Probably a missing property getter implementation + try + % Inform the user - bail out on error + err = lasterror; %#ok + dataFieldsStr = ['

' strrep(err.message, char(10), '
')]; + catch + % forget it... + end + end + end + + % Restore warnings + try warning(oldWarn); catch, end + + % Set the object tooltip + if ~isempty(dataFieldsStr) + toolTipStr = [' ' char(toolTipStr) '' hgStr ': ' dataFieldsStr '']; + end + uiObject.setToolTipText(toolTipStr); + end + + %% Expand tree node + function nodeExpanded(src, evd, tree) %#ok + % tree = handle(src); + % evdsrc = evd.getSource; + evdnode = evd.getCurrentNode; + + if ~tree.isLoaded(evdnode) + + % Get the list of children TreeNodes + childnodes = getChildrenNodes(tree, evdnode); + + % Add the HG sub-tree (unless already included in the first tree) + childHandle = getappdata(evdnode.handle,'childHandle'); %=evdnode.getUserObject + if evdnode.isRoot && ~isempty(hg_handles) && ~isequal(hg_handles(1).java, childHandle) + childnodes = [childnodes, getChildrenNodes(tree, evdnode, true)]; + end + + % If we have a single child handle, wrap it within a javaArray for tree.add() to "swallow" + if (length(childnodes) == 1) + chnodes = childnodes; + childnodes = javaArray('com.mathworks.hg.peer.UITreeNode', 1); + childnodes(1) = java(chnodes); + end + + % Add child nodes to the current node + tree.add(evdnode, childnodes); + tree.setLoaded(evdnode, true); + end + end + + %% Get an icon image no larger than 16x16 pixels + function iconImage = setIconSize(iconImage) + try + iconWidth = iconImage.getWidth; + iconHeight = iconImage.getHeight; + if iconWidth > 16 + newHeight = fix(iconHeight * 16 / iconWidth); + iconImage = iconImage.getScaledInstance(16,newHeight,iconImage.SCALE_SMOOTH); + elseif iconHeight > 16 + newWidth = fix(iconWidth * 16 / iconHeight); + iconImage = iconImage.getScaledInstance(newWidth,16,iconImage.SCALE_SMOOTH); + end + catch + % never mind... - return original icon + end + end % setIconSize + + %% Get list of children nodes + function nodes = getChildrenNodes(tree, parentNode, isRootHGNode) + try + iconpath = [matlabroot, '/toolbox/matlab/icons/']; + nodes = handle([]); + try + userdata = get(tree,'userdata'); + catch + userdata = getappdata(handle(tree),'userdata'); + end + hdls = userdata.handles; + nodedata = get(parentNode,'userdata'); + if nargin < 3 + %isJavaNode = ~ishghandle(parentNode.getUserObject); + isJavaNode = ~ishghandle(nodedata.obj); + isRootHGNode = false; + else + isJavaNode = ~isRootHGNode; + end + + % Search for this parent node in the list of all nodes + parents = userdata.parents; + nodeIdx = nodedata.idx; + + if isJavaNode && isempty(nodeIdx) % Failback, in case userdata doesn't work for some reason... + for hIdx = 1 : length(hdls) + %if isequal(handle(parentNode.getUserObject), hdls(hIdx)) + if isequal(handle(nodedata.obj), hdls(hIdx)) + nodeIdx = hIdx; + break; + end + end + end + if ~isJavaNode + if isRootHGNode % =root HG node + thisChildHandle = userdata.hg_handles(1); + childName = getNodeName(thisChildHandle); + hasGrandChildren = any(parents==1); + icon = []; + if hasGrandChildren && length(hg_handles)>1 + childName = childName.concat(' - HG root container'); + icon = [iconpath 'figureicon.gif']; + end + try + nodes = uitreenode('v0', thisChildHandle, childName, icon, ~hasGrandChildren); + catch % old matlab version don't have the 'v0' option + try + nodes = uitreenode(thisChildHandle, childName, icon, ~hasGrandChildren); + catch + % probably an invalid handle - ignore... + end + end + + % Add the handler to the node's internal data + % Note: could also use 'userdata', but setUserObject() is recommended for TreeNodes + % Note2: however, setUserObject() sets a java *BeenAdapter object for HG handles instead of the required original class, so use setappdata + %nodes.setUserObject(thisChildHandle); + setappdata(nodes,'childHandle',thisChildHandle); + nodedata.idx = 1; + nodedata.obj = thisChildHandle; + set(nodes,'userdata',nodedata); + return; + else % non-root HG node + parents = userdata.hg_parents; + hdls = userdata.hg_handles; + end % if isRootHGNode + end % if ~isJavaNode + + % If this node was found, get the list of its children + if ~isempty(nodeIdx) + %childIdx = setdiff(find(parents==nodeIdx),nodeIdx); + childIdx = find(parents==nodeIdx); + childIdx(childIdx==nodeIdx) = []; % faster... + numChildren = length(childIdx); + for cIdx = 1 : numChildren + thisChildIdx = childIdx(cIdx); + try thisChildHandle = hdls(thisChildIdx); catch, continue, end + childName = getNodeName(thisChildHandle); + try + visible = thisChildHandle.Visible; + if visible + try visible = thisChildHandle.Width > 0; catch, end %#ok + end + if ~visible + childName = ['' char(childName) '']; %#ok grow + end + catch + % never mind... + end + hasGrandChildren = any(parents==thisChildIdx); + try + isaLabel = isa(thisChildHandle.java,'javax.swing.JLabel'); + catch + isaLabel = 0; + end + if hasGrandChildren && ~any(strcmp(class(thisChildHandle),{'axes'})) + icon = [iconpath 'foldericon.gif']; + elseif isaLabel + icon = [iconpath 'tool_text.gif']; + else + icon = []; + end + try + nodes(cIdx) = uitreenode('v0', thisChildHandle, childName, icon, ~hasGrandChildren); + catch % old matlab version don't have the 'v0' option + try + nodes(cIdx) = uitreenode(thisChildHandle, childName, icon, ~hasGrandChildren); + catch + % probably an invalid handle - ignore... + end + end + + % Use existing object icon, if available + try + setTreeNodeIcon(nodes(cIdx),thisChildHandle); + catch + % probably an invalid handle - ignore... + end + + % Pre-select the node based upon the user's FINDJOBJ filters + try + if isJavaNode && ~userdata.userSelected && any(userdata.initialIdx == thisChildIdx) + pause(0.0002); % as short as possible... + drawnow; + if isempty(tree.getSelectedNodes) + tree.setSelectedNode(nodes(cIdx)); + else + newSelectedNodes = [tree.getSelectedNodes, nodes(cIdx).java]; + tree.setSelectedNodes(newSelectedNodes); + end + end + catch + % never mind... + end + + % Add the handler to the node's internal data + % Note: could also use 'userdata', but setUserObject() is recommended for TreeNodes + % Note2: however, setUserObject() sets a java *BeenAdapter object for HG handles instead of the required original class, so use setappdata + % Note3: the following will error if invalid handle - ignore + try + if isJavaNode + thisChildHandle = thisChildHandle.java; + end + %nodes(cIdx).setUserObject(thisChildHandle); + setappdata(nodes(cIdx),'childHandle',thisChildHandle); + nodedata.idx = thisChildIdx; + nodedata.obj = thisChildHandle; + set(nodes(cIdx),'userdata',nodedata); + catch + % never mind (probably an invalid handle) - leave unchanged (like a leaf) + end + end + end + catch + % Never mind - leave unchanged (like a leaf) + %error('YMA:findjobj:UnknownNodeType', 'Error expanding component tree node'); + dispError + end + end + + %% Get a node's name + function [nodeName, nodeTitle] = getNodeName(hndl,charsLimit) + try + % Initialize (just in case one of the succeding lines croaks) + nodeName = ''; + nodeTitle = ''; + if ~ismethod(hndl,'getClass') + try + nodeName = class(hndl); + catch + nodeName = hndl.type; % last-ditch try... + end + else + nodeName = hndl.getClass.getSimpleName; + end + + % Strip away the package name, leaving only the regular classname + if ~isempty(nodeName) && ischar(nodeName) + nodeName = java.lang.String(nodeName); + nodeName = nodeName.substring(nodeName.lastIndexOf('.')+1); + end + if (nodeName.length == 0) + % fix case of anonymous internal classes, that do not have SimpleNames + try + nodeName = hndl.getClass.getName; + nodeName = nodeName.substring(nodeName.lastIndexOf('.')+1); + catch + % never mind - leave unchanged... + end + end + + % Get any unique identifying string (if available in one of several fields) + labelsToCheck = {'label','title','text','string','displayname','toolTipText','TooltipString','actionCommand','name','Tag','style'}; %,'UIClassID'}; + nodeTitle = ''; + strField = ''; %#ok - used for debugging + while ((~isa(nodeTitle,'java.lang.String') && ~ischar(nodeTitle)) || isempty(nodeTitle)) && ~isempty(labelsToCheck) + try + nodeTitle = get(hndl,labelsToCheck{1}); + strField = labelsToCheck{1}; %#ok - used for debugging + catch + % never mind - probably missing prop, so skip to next one + end + labelsToCheck(1) = []; + end + if length(nodeTitle) ~= numel(nodeTitle) + % Multi-line - convert to a long single line + nodeTitle = nodeTitle'; + nodeTitle = nodeTitle(:)'; + end + if isempty(char(nodeTitle)) + % No title - check whether this is an HG label whose text is gettable + try + location = hndl.getLocationOnScreen; + pos = [location.getX, location.getY, hndl.getWidth, hndl.getHeight]; + %dist = sum((labelPositions-repmat(pos,size(labelPositions,1),[1,1,1,1])).^2, 2); + dist = sum((labelPositions-repmat(pos,[size(labelPositions,1),1])).^2, 2); + [minVal,minIdx] = min(dist); + % Allow max distance of 8 = 2^2+2^2 (i.e. X&Y off by up to 2 pixels, W&H exact) + if minVal <= 8 % 8=2^2+2^2 + nodeTitle = get(hg_labels(minIdx),'string'); + % Preserve the label handles & position for the tooltip & context-menu + %hg_labels(minIdx) = []; + %labelPositions(minIdx,:) = []; + end + catch + % never mind... + end + end + if nargin<2, charsLimit = 25; end + extraStr = regexprep(nodeTitle,{sprintf('(.{%d,%d}).*',charsLimit,min(charsLimit,length(nodeTitle)-1)),' +'},{'$1...',' '},'once'); + if ~isempty(extraStr) + if ischar(extraStr) + nodeName = nodeName.concat(' (''').concat(extraStr).concat(''')'); + else + nodeName = nodeName.concat(' (').concat(num2str(extraStr)).concat(')'); + end + %nodeName = nodeName.concat(strField); + end + catch + % Never mind - use whatever we have so far + %dispError + end + end + + %% Strip standard Swing callbacks from a list of events + function evNames = stripStdCbs(evNames) + try + stdEvents = {'AncestorAdded', 'AncestorMoved', 'AncestorRemoved', 'AncestorResized', ... + 'ComponentAdded', 'ComponentRemoved', 'ComponentHidden', ... + 'ComponentMoved', 'ComponentResized', 'ComponentShown', ... + 'FocusGained', 'FocusLost', 'HierarchyChanged', ... + 'KeyPressed', 'KeyReleased', 'KeyTyped', ... + 'MouseClicked', 'MouseDragged', 'MouseEntered', 'MouseExited', ... + 'MouseMoved', 'MousePressed', 'MouseReleased', 'MouseWheelMoved', ... + 'PropertyChange', 'VetoableChange', ... + 'CaretPositionChanged', 'InputMethodTextChanged', ... + 'ButtonDown', 'Create', 'Delete'}; + stdEvents = [stdEvents, strcat(stdEvents,'Callback'), strcat(stdEvents,'Fcn')]; + evNames = setdiff(evNames,stdEvents)'; + catch + % Never mind... + dispError + end + end + + %% Callback function for checkbox + function cbHideStdCbs_Callback(src, evd, callbacksTable, varargin) %#ok + try + % Store the current checkbox value for later use + if nargin < 3 + try + callbacksTable = get(src,'userdata'); + catch + callbacksTable = getappdata(src,'userdata'); + end + end + if evd.getSource.isSelected + setappdata(callbacksTable,'hideStdCbs',1); + else + setappdata(callbacksTable,'hideStdCbs',[]); + end + + % Rescan the current node + try + userdata = get(callbacksTable,'userdata'); + catch + userdata = getappdata(callbacksTable,'userdata'); + end + nodepath = userdata.jTree.getSelectionModel.getSelectionPath; + try + ed.getCurrentNode = nodepath.getLastPathComponent; + nodeSelected(handle(userdata.jTreePeer),ed,[]); + catch + % ignore - probably no node selected + end + catch + % Never mind... + dispError + end + end + + %% Callback function for button + function btWebsite_Callback(src, evd, varargin) %#ok + try + web('http://UndocumentedMatlab.com','-browser'); + catch + % Never mind... + dispError + end + end + + %% Callback function for button + function btRefresh_Callback(src, evd, varargin) %#ok + try + % Set cursor shape to hourglass until we're done + hTreeFig = varargin{2}; + set(hTreeFig,'Pointer','watch'); + drawnow; + object = varargin{1}; + + % Re-invoke this utility to re-scan the container for all children + findjobj(object); + catch + % Never mind... + end + + % Restore default cursor shape + set(hTreeFig,'Pointer','arrow'); + end + + %% Callback function for button + function btExport_Callback(src, evd, varargin) %#ok + try + % Get the list of all selected nodes + if length(varargin) > 1 + jTree = varargin{1}; + numSelections = jTree.getSelectionCount; + selectionPaths = jTree.getSelectionPaths; + hdls = handle([]); + for idx = 1 : numSelections + %hdls(idx) = handle(selectionPaths(idx).getLastPathComponent.getUserObject); + nodedata = get(selectionPaths(idx).getLastPathComponent,'userdata'); + try + hdls(idx) = handle(nodedata.obj,'CallbackProperties'); + catch + if idx==1 % probably due to HG2: can't convert object to handle([]) + hdls = nodedata.obj; + else + hdls(idx) = nodedata.obj; + end + end + end + + % Assign the handles in the base workspace & inform user + assignin('base','findjobj_hdls',hdls); + classNameLabel = varargin{2}; + msg = ['Exported ' char(classNameLabel.getText.trim) ' to base workspace variable findjobj_hdls']; + else + % Right-click (context-menu) callback + data = varargin{1}; + obj = data{1}; + varName = data{2}; + if isempty(varName) + varName = inputdlg('Enter workspace variable name','FindJObj'); + if isempty(varName), return; end % bail out on + varName = varName{1}; + if isempty(varName) || ~ischar(varName), return; end % bail out on empty/null + varName = genvarname(varName); + end + assignin('base',varName,handle(obj,'CallbackProperties')); + msg = ['Exported object to base workspace variable ' varName]; + end + msgbox(msg,'FindJObj','help'); + catch + % Never mind... + dispError + end + end + + %% Callback function for button + function btFocus_Callback(src, evd, varargin) %#ok + try + % Request focus for the specified object + object = getTopSelectedObject(varargin{:}); + object.requestFocus; + catch + try + object = object.java.getPeer.requestFocus; + object.requestFocus; + catch + % Never mind... + %dispError + end + end + end + + %% Callback function for button + function btInspect_Callback(src, evd, varargin) %#ok + try + % Inspect the specified object + if length(varargin) == 1 + object = varargin{1}; + else + object = getTopSelectedObject(varargin{:}); + end + if isempty(which('uiinspect')) + + % If the user has not indicated NOT to be informed about UIInspect + if ~ispref('FindJObj','dontCheckUIInspect') + + % Ask the user whether to download UIINSPECT (YES, no, no & don't ask again) + answer = questdlg({'The object inspector requires UIINSPECT from the MathWorks File Exchange. UIINSPECT was created by Yair Altman, like this FindJObj utility.','','Download & install UIINSPECT?'},'UIInspect','Yes','No','No & never ask again','Yes'); + switch answer + case 'Yes' % => Yes: download & install + try + % Download UIINSPECT + baseUrl = 'http://www.mathworks.com/matlabcentral/fileexchange/17935'; + fileUrl = [baseUrl '?controller=file_infos&download=true']; + %file = urlread(fileUrl); + %file = regexprep(file,[char(13),char(10)],'\n'); %convert to OS-dependent EOL + + % Install... + %newPath = fullfile(fileparts(which(mfilename)),'uiinspect.m'); + %fid = fopen(newPath,'wt'); + %fprintf(fid,'%s',file); + %fclose(fid); + [fpath,fname,fext] = fileparts(which(mfilename)); + zipFileName = fullfile(fpath,'uiinspect.zip'); + urlwrite(fileUrl,zipFileName); + unzip(zipFileName,fpath); + rehash; + catch + % Error downloading: inform the user + msgbox(['Error in downloading: ' lasterr], 'UIInspect', 'warn'); %#ok + web(baseUrl); + end + + % ...and now run it... + %pause(0.1); + drawnow; + dummy = which('uiinspect'); %#ok used only to load into memory + uiinspect(object); + return; + + case 'No & never ask again' % => No & don't ask again + setpref('FindJObj','dontCheckUIInspect',1); + + otherwise + % forget it... + end + end + drawnow; + + % No UIINSPECT available - run the good-ol' METHODSVIEW()... + methodsview(object); + else + uiinspect(object); + end + catch + try + if isjava(object) + methodsview(object) + else + methodsview(object.java); + end + catch + % Never mind... + dispError + end + end + end + + %% Callback function for button + function btCheckFex_Callback(src, evd, varargin) %#ok + try + % Check the FileExchange for the latest version + web('http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=14317'); + catch + % Never mind... + dispError + end + end + + %% Check for existence of a newer version + function checkVersion() + try + % If the user has not indicated NOT to be informed + if ~ispref('FindJObj','dontCheckNewerVersion') + + % Get the latest version date from the File Exchange webpage + baseUrl = 'http://www.mathworks.com/matlabcentral/fileexchange/'; + webUrl = [baseUrl '14317']; % 'loadFile.do?objectId=14317']; + webPage = urlread(webUrl); + modIdx = strfind(webPage,'>Updates<'); + if ~isempty(modIdx) + webPage = webPage(modIdx:end); + % Note: regexp hangs if substr not found, so use strfind instead... + %latestWebVersion = regexprep(webPage,'.*?>(20[\d-]+).*','$1'); + dateIdx = strfind(webPage,'class="date">'); + if ~isempty(dateIdx) + latestDate = webPage(dateIdx(end)+13 : dateIdx(end)+23); + try + startIdx = dateIdx(end)+27; + descStartIdx = startIdx + strfind(webPage(startIdx:startIdx+999),''); + descEndIdx = startIdx + strfind(webPage(startIdx:startIdx+999),''); + descStr = webPage(descStartIdx(1)+3 : descEndIdx(1)-2); + descStr = regexprep(descStr,'',''); + catch + descStr = ''; + end + + % Get this file's latest date + thisFileName = which(mfilename); %#ok + try + thisFileData = dir(thisFileName); + try + thisFileDatenum = thisFileData.datenum; + catch % old ML versions... + thisFileDatenum = datenum(thisFileData.date); + end + catch + thisFileText = evalc('type(thisFileName)'); + thisFileLatestDate = regexprep(thisFileText,'.*Change log:[\s%]+([\d-]+).*','$1'); + thisFileDatenum = datenum(thisFileLatestDate,'yyyy-mm-dd'); + end + + % If there's a newer version on the File Exchange webpage (allow 2 days grace period) + if (thisFileDatenum < datenum(latestDate,'dd mmm yyyy')-2) + + % Ask the user whether to download the newer version (YES, no, no & don't ask again) + msg = {['A newer version (' latestDate ') of FindJObj is available on the MathWorks File Exchange:'], '', ... + ['\color{blue}' descStr '\color{black}'], '', ... + 'Download & install the new version?'}; + createStruct.Interpreter = 'tex'; + createStruct.Default = 'Yes'; + answer = questdlg(msg,'FindJObj','Yes','No','No & never ask again',createStruct); + switch answer + case 'Yes' % => Yes: download & install newer file + try + %fileUrl = [baseUrl '/download.do?objectId=14317&fn=findjobj&fe=.m']; + fileUrl = [baseUrl '/14317?controller=file_infos&download=true']; + %file = urlread(fileUrl); + %file = regexprep(file,[char(13),char(10)],'\n'); %convert to OS-dependent EOL + %fid = fopen(thisFileName,'wt'); + %fprintf(fid,'%s',file); + %fclose(fid); + [fpath,fname,fext] = fileparts(thisFileName); + zipFileName = fullfile(fpath,[fname '.zip']); + urlwrite(fileUrl,zipFileName); + unzip(zipFileName,fpath); + rehash; + catch + % Error downloading: inform the user + msgbox(['Error in downloading: ' lasterr], 'FindJObj', 'warn'); %#ok + web(webUrl); + end + case 'No & never ask again' % => No & don't ask again + setpref('FindJObj','dontCheckNewerVersion',1); + otherwise + % forget it... + end + end + end + else + % Maybe webpage not fully loaded or changed format - bail out... + end + end + catch + % Never mind... + end + end + + %% Get the first selected object (might not be the top one - depends on selection order) + function object = getTopSelectedObject(jTree, root) + try + object = []; + numSelections = jTree.getSelectionCount; + if numSelections > 0 + % Get the first object specified + %object = jTree.getSelectionPath.getLastPathComponent.getUserObject; + nodedata = get(jTree.getSelectionPath.getLastPathComponent,'userdata'); + else + % Get the root object (container) + %object = root.getUserObject; + nodedata = get(root,'userdata'); + end + object = nodedata.obj; + catch + % Never mind... + dispError + end + end + + %% Update component callback upon callbacksTable data change + function tbCallbacksChanged(src, evd, object, table) + persistent hash + try + % exit if invalid handle or already in Callback + %if ~ishandle(src) || ~isempty(getappdata(src,'inCallback')) % || length(dbstack)>1 %exit also if not called from user action + if isempty(hash), hash = java.util.Hashtable; end + if ~ishandle(src) || ~isempty(hash.get(src)) % || length(dbstack)>1 %exit also if not called from user action + return; + end + %setappdata(src,'inCallback',1); % used to prevent endless recursion % can't use getappdata(src,...) because it fails on R2010b!!! + hash.put(src,1); + + % Update the object's callback with the modified value + modifiedColIdx = evd.getColumn; + modifiedRowIdx = evd.getFirstRow; + if modifiedRowIdx>=0 %&& modifiedColIdx==1 %sanity check - should always be true + %table = evd.getSource; + %object = get(src,'userdata'); + modifiedRowIdx = table.getSelectedRow; % overcome issues with hierarchical table + cbName = strtrim(table.getValueAt(modifiedRowIdx,0)); + try + cbValue = strtrim(char(table.getValueAt(modifiedRowIdx,1))); + if ~isempty(cbValue) && ismember(cbValue(1),'{[@''') + cbValue = eval(cbValue); + end + if (~ischar(cbValue) && ~isa(cbValue, 'function_handle') && (~iscell(cbValue) || iscom(object(1)))) + revertCbTableModification(table, modifiedRowIdx, modifiedColIdx, cbName, object, ''); + else + for objIdx = 1 : length(object) + obj = object(objIdx); + if ~iscom(obj) + try + try + if isjava(obj) + obj = handle(obj,'CallbackProperties'); + end + catch + % never mind... + end + set(obj, cbName, cbValue); + catch + try + set(handle(obj,'CallbackProperties'), cbName, cbValue); + catch + % never mind - probably a callback-group header + end + end + else + cbs = obj.eventlisteners; + if ~isempty(cbs) + cbs = cbs(strcmpi(cbs(:,1),cbName),:); + obj.unregisterevent(cbs); + end + if ~isempty(cbValue) && ~strcmp(cbName,'-') + obj.registerevent({cbName, cbValue}); + end + end + end + end + catch + revertCbTableModification(table, modifiedRowIdx, modifiedColIdx, cbName, object, lasterr) %#ok + end + end + catch + % never mind... + end + %setappdata(src,'inCallback',[]); % used to prevent endless recursion % can't use setappdata(src,...) because it fails on R2010b!!! + hash.remove(src); + end + + %% Revert Callback table modification + function revertCbTableModification(table, modifiedRowIdx, modifiedColIdx, cbName, object, errMsg) %#ok + try + % Display a notification MsgBox + msg = 'Callbacks must be a ''string'', or a @function handle'; + if ~iscom(object(1)), msg = [msg ' or a {@func,args...} construct']; end + if ~isempty(errMsg), msg = {errMsg, '', msg}; end + msgbox(msg, ['Error setting ' cbName ' value'], 'warn'); + + % Revert to the current value + curValue = ''; + try + if ~iscom(object(1)) + curValue = charizeData(get(object(1),cbName)); + else + cbs = object(1).eventlisteners; + if ~isempty(cbs) + cbs = cbs(strcmpi(cbs(:,1),cbName),:); + curValue = charizeData(cbs(1,2)); + end + end + catch + % never mind... - clear the current value + end + table.setValueAt(curValue, modifiedRowIdx, modifiedColIdx); + catch + % never mind... + end + end % revertCbTableModification + + %% Get the Java positions of all HG text labels + function labelPositions = getLabelsJavaPos(container) + try + labelPositions = []; + + % Ensure we have a figure handle + try + h = hFig; %#ok unused + catch + hFig = getCurrentFigure; + end + + % Get the figure's margins from the Matlab properties + hg_labels = findall(hFig, 'Style','text'); + units = get(hFig,'units'); + set(hFig,'units','pixels'); + outerPos = get(hFig,'OuterPosition'); + innerPos = get(hFig,'Position'); + set(hFig,'units',units); + margins = abs(innerPos-outerPos); + + figX = container.getX; % =outerPos(1) + figY = container.getY; % =outerPos(2) + %figW = container.getWidth; % =outerPos(3) + figH = container.getHeight; % =outerPos(4) + + % Get the relevant screen pixel size + %monitorPositions = get(0,'MonitorPositions'); + %for monitorIdx = size(monitorPositions,1) : -1 : 1 + % screenSize = monitorPositions(monitorIdx,:); + % if (outerPos(1) >= screenSize(1)) % && (outerPos(1)+outerPos(3) <= screenSize(3)) + % break; + % end + %end + %monitorBaseY = screenSize(4) - monitorPositions(1,4); + + % Compute the labels' screen pixel position in Java units ([0,0] = top left) + for idx = 1 : length(hg_labels) + matlabPos = getpixelposition(hg_labels(idx),1); + javaX = figX + matlabPos(1) + margins(1); + javaY = figY + figH - matlabPos(2) - matlabPos(4) - margins(2); + labelPositions(idx,:) = [javaX, javaY, matlabPos(3:4)]; %#ok grow + end + catch + % never mind... + err = lasterror; %#ok debug point + end + end + + %% Traverse an HG container hierarchy and extract the HG elements within + function traverseHGContainer(hcontainer,level,parent) + try + % Record the data for this node + thisIdx = length(hg_levels) + 1; + hg_levels(thisIdx) = level; + hg_parentIdx(thisIdx) = parent; + try + hg_handles(thisIdx) = handle(hcontainer); + catch + hg_handles = handle(hcontainer); + end + parentId = length(hg_parentIdx); + + % Now recursively process all this node's children (if any) + %if ishghandle(hcontainer) + try % try-catch is faster than checking ishghandle(hcontainer)... + allChildren = allchild(handle(hcontainer)); + for childIdx = 1 : length(allChildren) + traverseHGContainer(allChildren(childIdx),level+1,parentId); + end + catch + % do nothing - probably not a container + %dispError + end + + % TODO: Add axis (plot) component handles + catch + % forget it... + end + end + + %% Debuggable "quiet" error-handling + function dispError + err = lasterror; %#ok + msg = err.message; + for idx = 1 : length(err.stack) + filename = err.stack(idx).file; + if ~isempty(regexpi(filename,mfilename)) + funcname = err.stack(idx).name; + line = num2str(err.stack(idx).line); + msg = [msg ' at ' funcname ' line #' line '']; %#ok grow + break; + end + end + disp(msg); + return; % debug point + end + + %% ML 7.0 - compatible ischar() function + function flag = ischar(data) + try + flag = builtin('ischar',data); + catch + flag = isa(data,'char'); + end + end + + %% Set up the uitree context (right-click) menu + function jmenu = setTreeContextMenu(obj,node,tree_h) + % Prepare the context menu (note the use of HTML labels) + import javax.swing.* + titleStr = getNodeTitleStr(obj,node); + titleStr = regexprep(titleStr,'


.*',''); + menuItem0 = JMenuItem(titleStr); + menuItem0.setEnabled(false); + menuItem0.setArmed(false); + %menuItem1 = JMenuItem('Export handle to findjobj_hdls'); + if isjava(obj), prefix = 'j'; else, prefix = 'h'; end %#ok + varname = strrep([prefix strtok(char(node.getName))], '$','_'); + varname = genvarname(varname); + varname(2) = upper(varname(2)); % ensure lowerCamelCase + menuItem1 = JMenuItem(['Export handle to ' varname]); + menuItem2 = JMenuItem('Export handle to...'); + menuItem3 = JMenuItem('Request focus (bring to front)'); + menuItem4 = JMenuItem('Flash component borders'); + menuItem5 = JMenuItem('Display properties & callbacks'); + menuItem6 = JMenuItem('Inspect object'); + + % Set the menu items' callbacks + set(handle(menuItem1,'CallbackProperties'), 'ActionPerformedCallback', {@btExport_Callback,{obj,varname}}); + set(handle(menuItem2,'CallbackProperties'), 'ActionPerformedCallback', {@btExport_Callback,{obj,[]}}); + set(handle(menuItem3,'CallbackProperties'), 'ActionPerformedCallback', {@requestFocus,obj}); + set(handle(menuItem4,'CallbackProperties'), 'ActionPerformedCallback', {@flashComponent,{obj,0.2,3}}); + set(handle(menuItem5,'CallbackProperties'), 'ActionPerformedCallback', {@nodeSelected,{tree_h,node}}); + set(handle(menuItem6,'CallbackProperties'), 'ActionPerformedCallback', {@btInspect_Callback,obj}); + + % Add all menu items to the context menu (with internal separator) + jmenu = JPopupMenu; + jmenu.add(menuItem0); + jmenu.addSeparator; + handleValue=[]; try handleValue = double(obj); catch, end; %#ok + if ~isempty(handleValue) + % For valid HG handles only + menuItem0a = JMenuItem('Copy handle value to clipboard'); + set(handle(menuItem0a,'CallbackProperties'), 'ActionPerformedCallback', sprintf('clipboard(''copy'',%.99g)',handleValue)); + jmenu.add(menuItem0a); + end + jmenu.add(menuItem1); + jmenu.add(menuItem2); + jmenu.addSeparator; + jmenu.add(menuItem3); + jmenu.add(menuItem4); + jmenu.add(menuItem5); + jmenu.add(menuItem6); + end % setTreeContextMenu + + %% Set the mouse-press callback + function treeMousePressedCallback(hTree, eventData, tree_h) %#ok hTree is unused + if eventData.isMetaDown % right-click is like a Meta-button + % Get the clicked node + clickX = eventData.getX; + clickY = eventData.getY; + jtree = eventData.getSource; + treePath = jtree.getPathForLocation(clickX, clickY); + try + % Modify the context menu based on the clicked node + node = treePath.getLastPathComponent; + userdata = get(node,'userdata'); + obj = userdata.obj; + jmenu = setTreeContextMenu(obj,node,tree_h); + + % TODO: remember to call jmenu.remove(item) in item callback + % or use the timer hack shown here to remove the item: + % timerFcn = {@menuRemoveItem,jmenu,item}; + % start(timer('TimerFcn',timerFcn,'StartDelay',0.2)); + + % Display the (possibly-modified) context menu + jmenu.show(jtree, clickX, clickY); + jmenu.repaint; + + % This is for debugging: + userdata.tree = jtree; + setappdata(gcf,'findjobj_hgtree',userdata) + catch + % clicked location is NOT on top of any node + % Note: can also be tested by isempty(treePath) + end + end + end % treeMousePressedCallback + + %% Remove the extra context menu item after display + function menuRemoveItem(hObj,eventData,jmenu,item) %#ok unused + jmenu.remove(item); + end % menuRemoveItem + + %% Get the title for the tooltip and context (right-click) menu + function nodeTitleStr = getNodeTitleStr(obj,node) + try + % Display the full classname and object name in the tooltip + %nodeName = char(node.getName); + %nodeName = strrep(nodeName, '',''); + %nodeName = strrep(nodeName, '',''); + nodeName = char(getNodeName(obj,99)); + [objClass,objName] = strtok(nodeName); + objName = objName(3:end-1); % strip leading ( and trailing ) + if isempty(objName), objName = '(none found)'; end + nodeName = char(node.getName); + objClass = char(obj.getClass.getName); + nodeTitleStr = sprintf('Class name: %s
Text/title: %s',objClass,objName); + + % If the component is invisible, state this in the tooltip + if ~isempty(strfind(nodeName,'color="gray"')) + nodeTitleStr = [nodeTitleStr '
*** Invisible ***']; + end + nodeTitleStr = [nodeTitleStr '
Right-click for context-menu']; + catch + % Possible not a Java object - try treating as an HG handle + try + handleValueStr = sprintf('#: %.99g',double(obj)); + try + type = ''; + type = get(obj,'type'); + type(1) = upper(type(1)); + catch + if ~ishandle(obj) + type = ['Invalid ' char(node.getName) '']; + handleValueStr = '!!!
Perhaps this handle was deleted after this UIInspect tree was
already drawn. Try to refresh by selecting any valid node handle'; + end + end + nodeTitleStr = sprintf('%s handle %s',type,handleValueStr); + try + % If the component is invisible, state this in the tooltip + if strcmp(get(obj,'Visible'),'off') + nodeTitleStr = [nodeTitleStr '
Invisible']; + end + catch + % never mind... + end + catch + % never mind... - ignore + end + end + end % getNodeTitleStr + + %% Handle tree mouse movement callback - used to set the tooltip & context-menu + function treeMouseMovedCallback(hTree, eventData) + try + x = eventData.getX; + y = eventData.getY; + jtree = eventData.getSource; + treePath = jtree.getPathForLocation(x, y); + try + % Set the tooltip string based on the hovered node + node = treePath.getLastPathComponent; + userdata = get(node,'userdata'); + obj = userdata.obj; + tooltipStr = getNodeTitleStr(obj,node); + set(hTree,'ToolTipText',tooltipStr) + catch + % clicked location is NOT on top of any node + % Note: can also be tested by isempty(treePath) + end + catch + dispError; + end + return; % denug breakpoint + end % treeMouseMovedCallback + + %% Request focus for a specific object handle + function requestFocus(hTree, eventData, obj) %#ok hTree & eventData are unused + % Ensure the object handle is valid + if isjava(obj) + obj.requestFocus; + return; + elseif ~ishandle(obj) + msgbox('The selected object does not appear to be a valid handle as defined by the ishandle() function. Perhaps this object was deleted after this hierarchy tree was already drawn. Refresh this tree by selecting a valid node handle and then retry.','FindJObj','warn'); + beep; + return; + end + + try + foundFlag = 0; + while ~foundFlag + if isempty(obj), return; end % sanity check + type = get(obj,'type'); + obj = double(obj); + foundFlag = any(strcmp(type,{'figure','axes','uicontrol'})); + if ~foundFlag + obj = get(obj,'Parent'); + end + end + feval(type,obj); + catch + % never mind... + dispError; + end + end % requestFocus + +end % FINDJOBJ + +% Fast implementation +function jControl = findjobj_fast(hControl, jContainer) + try jControl = hControl.Table; return, catch, end % fast bail-out for old uitables + try jControl = hControl.JavaFrame.getGUIDEView; return, catch, end % bail-out for HG2 matlab.ui.container.Panel + oldWarn = warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame'); + if nargin < 2 || isempty(jContainer) + % Use a HG2 matlab.ui.container.Panel jContainer if the control's parent is a uipanel + try + hParent = get(hControl,'Parent'); + catch + % Probably indicates an invalid/deleted/empty handle + jControl = []; + return + end + try jContainer = hParent.JavaFrame.getGUIDEView; catch, jContainer = []; end + end + if isempty(jContainer) + hFig = ancestor(hControl,'figure'); + jf = get(hFig, 'JavaFrame'); + jContainer = jf.getFigurePanelContainer.getComponent(0); + end + warning(oldWarn); + jControl = []; + counter = 100; + oldTooltip = get(hControl,'Tooltip'); + set(hControl,'Tooltip','!@#$%^&*'); + while isempty(jControl) && counter>0 + counter = counter - 1; + pause(0.001); + jControl = findTooltipIn(jContainer); + end + set(hControl,'Tooltip',oldTooltip); + try jControl.setToolTipText(oldTooltip); catch, end + try jControl = jControl.getParent.getView.getParent.getParent; catch, end % return JScrollPane if exists +end +function jControl = findTooltipIn(jContainer) + try + jControl = []; % Fix suggested by H. Koch 11/4/2017 + tooltipStr = jContainer.getToolTipText; + %if strcmp(char(tooltipStr),'!@#$%^&*') + if ~isempty(tooltipStr) && tooltipStr.startsWith('!@#$%^&*') % a bit faster + jControl = jContainer; + else + for idx = 1 : jContainer.getComponentCount + jControl = findTooltipIn(jContainer.getComponent(idx-1)); + if ~isempty(jControl), return; end + end + end + catch + % ignore + end +end + +%% TODO TODO TODO +%{ +- Enh: Improve interactive-GUI performance - esp. expandNode() +- Enh: Add property listeners - same problem in MathWork's inspect.m +- Enh: Display additional properties - same problem in MathWork's inspect.m +- Enh: Add axis (plot, Graphics) component handles +- Enh: Add figure thumbnail image below the java tree (& indicate corresponding jObject when selected) +- Enh: scroll initially-selected node into view (problem because treenode has no pixel location) +- Fix: java exceptions when getting some fields (com.mathworks.mlwidgets.inspector.PropertyRootNode$PropertyListener$1$1.run) +- Fix: use EDT if available (especially in flashComponent) +%} \ No newline at end of file diff --git a/externals/findjobj/license.txt b/externals/findjobj/license.txt new file mode 100644 index 0000000..cba4567 --- /dev/null +++ b/externals/findjobj/license.txt @@ -0,0 +1,24 @@ +Copyright (c) 2017, Yair Altman +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/functions/blochsim/fcn_BLOCHUS_ode.m b/functions/blochsim/fcn_BLOCHUS_ode.m new file mode 100644 index 0000000..04e557e --- /dev/null +++ b/functions/blochsim/fcn_BLOCHUS_ode.m @@ -0,0 +1,148 @@ +function dM = fcn_BLOCHUS_ode(t,m,param) +%fcn_BLOCHUS_ode is the objective function for the ode-solver which solves +%the Bloch equation in the laboratory frame of reference +% +% Syntax: +% fcn_BLOCHUS_ode(t,m,param) +% +% Inputs: +% t - instantaneous time +% m - instantaneous magnetization +% param - struct that holds additional settings: +% type : flag between 'std', 'prepol', +% 'pulse', 'prepolpulse' +% M0 : equilibrium magnetization [A/m] +% B0 : Earth magnetic field [T] +% T1 : relaxation times [s] +% T2 : relaxation times [s] +% gamma : gyromagnetic ratio [rad/s/T] +% rampparam : struct holding switch-off settings +% pulseparam : struct holding pulse settings +% +% Outputs: +% dM - time derivative of m +% +% Example: +% fcn_BLOCHUS_ode(t,m,param) +% +% Other m-files required: +% getRampAmplitude +% getPulseTimeSeries +% getRotationMatrixFromVectors +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% unit vectors +xunit = [1 0 0]'; +yunit = [0 1 0]'; +zunit = [0 0 1]'; + +% basic parameters +M0 = param.M0; +B0 = param.B0; +T1 = param.T1; +T2 = param.T2; +gamma = param.gamma; + +switch param.type + case 'std' + B = B0*zunit; + % dM/dt + dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 ); + + case 'prepol' + % switch-off ramp parameters + rampparam = param.rampparam; + rampparam.B0 = B0; + rampparam.gamma = gamma; + % decreasing Bp amplitude over time + Bp = getRampAmplitude(t,rampparam); + % B0 - Earth field + Be = B0*zunit; + % check if we are during the switch-off or not + if t <= rampparam.Tramp + % during the switch-off we need to account for the decreasing + % Bp-field amplitude + B1 = Bp*param.orient; + B = Be + B1; + % if RDS = 0 (switched-off) ignore T1 and T2 during switch-off + % ramp + if param.RDS == 0 + T1 = T1*1e6; + T2 = T2*1e6; + end + % if the B-field vector is not parallel to B0 + % rotate B and m into z-axis to apply relaxation + if any(B./norm(B) ~= zunit) + % get rotation matrix from Beff to z-axis + R = getRotationMatrixFromVectors(B,zunit); + B = R*B; m = R*m; + % dM/dt + dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 ); + % rotate dM back + dM = R'*dM; + else + % dM/dt + dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 ); + end + else + % pure B0 evolution after the switch-off + B = Be; + % dM/dt + dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 ); + end + + case 'pulse' + pulseparam = param.pulseparam; + pulseparam.t = t; + % check if we are during the pulse or not + if t <= param.Ttau + % get pulse amplitude over time + B1 = getPulseTimeSeries(pulseparam); + B = [B1 B0]'; + % if RDP = 0 (switched-off) ignore T1 and T2 during pulse + if param.RDP == 0 + T1 = T1*1e6; + T2 = T2*1e6; + end + else + % pure B0 evolution after the pulse + B = B0*zunit; + end + % dM/dt + dM = gamma*cross(m,B) - ( (m(1)*xunit+m(2)*yunit) / T2 ) - ( ((m(3)-M0(3))*zunit) / T1 ); +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . \ No newline at end of file diff --git a/functions/blochsim/getB0.m b/functions/blochsim/getB0.m new file mode 100644 index 0000000..b0ae98e --- /dev/null +++ b/functions/blochsim/getB0.m @@ -0,0 +1,59 @@ +function B = getB0(gamma,omega0) +%getB0 calculates the magnetic field from a given angular frequency and +%gyromagnetic ratio +% +% Syntax: +% getB0(gamma,omega0) +% +% Inputs: +% gamma - gyromagnetic ration [rad/s/T] +% omega0 - angular frequency [rad/s] +% +% Outputs: +% B - magnetic field [T] +% +% Example: +% getB0(getGyroRatio('1H'),2000*2*pi) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% even though the original formula is sign-sensitive, as a precaution +% I make the output B-field always positive +B = abs(omega0/-gamma); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getFFT.m b/functions/blochsim/getFFT.m new file mode 100644 index 0000000..81eb9a5 --- /dev/null +++ b/functions/blochsim/getFFT.m @@ -0,0 +1,86 @@ +function [Y,f] = getFFT(t,s) +%getFFT calculates the FFT for a given time and signal pair +% +% Syntax: +% getFFT(t,m) +% +% Inputs: +% t - time [s] +% s - signal +% +% Outputs: +% Y - amplitudes of the FFT +% f - frequency [Hz] +% +% Example: +% getFFT(t,s) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% length of the time series [s] +Tmax = t(end); +% NOTE: because the ode-solver uses adaptive time-stepping, the time vector +% may be irregularly spaced, so we use the shortest time step +dt = diff(t); +dt = max([1e-6 abs(min(dt))]); % [s] max. 1MHz +% dt = 1e-7; +% sampling frequency [Hz] +FS = 1/dt; +% new time vector with regular time stepping [s] +tt=0:1/FS:Tmax; +% number of time steps [-] +Nt = numel(tt); +% if the signal is complex we need to interpolate both parts +if size(s,2)== 2 + % interpolate signal to new time steps + SxI = interp1(t,s(:,1),tt); + SyI = interp1(t,s(:,2),tt); + % new complex signal + y = complex(SxI,SyI); +else + % interpolate signal to new time steps + y = interp1(t,s,tt); +end +% complex FFT +YY = fft(y); +% apply fftshift to center the spectrum correctly +Y = fftshift(YY)./Nt; +% frequency sampling [Hz] +f = FS/2*linspace(-1,1,Nt); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getGyroRatio.m b/functions/blochsim/getGyroRatio.m new file mode 100644 index 0000000..28bc847 --- /dev/null +++ b/functions/blochsim/getGyroRatio.m @@ -0,0 +1,97 @@ +function gamma = getGyroRatio(nuc) +%getGyroRatio provides the gyromagnetic ratio of different nuclei +%all values are from https://en.wikipedia.org/wiki/Gyromagnetic_ratio +% +% Syntax: +% getGyroRatio(nuc) +% +% Inputs: +% nuc - nucleus type [string] +% +% Outputs: +% gamma - gyromagnetic ration [rad/s/T] +% +% Example: +% getGyroRatio('1H') +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% all freq values are in [MHz/T] and /2pi +switch nuc + case '1H' + freq = 42.57747892; + case '2H' + freq = 6.536; + case '3He' + freq = -32.434; + case '7Li' + freq = 16.546; + case '13C' + freq = 10.705; + case '14N' + freq = 3.077; + case '15N' + freq = -4.316; + case '17O' + freq = -5.772; + case '19F' + freq = 40.053; + case '23Na' + freq = 11.262; + case '27Al' + freq = 11.103; + case '29Si' + freq = -8.465; + case '31P' + freq = 17.235; + case '57Fe' + freq = 1.382; + case '63Cu' + freq = 11.319; + case '67Zn' + freq = 2.669; + case '129Xe' + freq = -11.777; + otherwise + freq = NaN; +end + +% transform to [rad/s/T] +gamma = 2*pi*freq*1e6; + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getMIDI_Tx.m b/functions/blochsim/getMIDI_Tx.m new file mode 100644 index 0000000..2281f42 --- /dev/null +++ b/functions/blochsim/getMIDI_Tx.m @@ -0,0 +1,300 @@ +function [t,Bxy,AP] = getMIDI_Tx(param) +%getMIDI_Tx creates discrete on-resonant or adiabatic pulses +% +% Syntax: +% getMIDI_Tx(param) +% +% Inputs: +% param - struct containing the pulse settings +% +% Outputs: +% t - time vector [s] +% Bxy - pulse amplitudes (x,y) +% AP - struct containing adiabatic pulse settings +% +% Example: +% [t,y,~] = getMIDI_Tx(param) +% +% Other m-files required: +% getPulseTimeSeries +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% input data +% Larmor freq. [Hz] +fL = param.fL; +% gyromagnetic ratio [rad/s/T] +gamma = param.gamma; +% sampling freg. [Hz] +sf = param.sf; +% number of periods +P = param.P; +% Tx current +I = param.I; +% duty cycle min +DCmin = param.DCmin; +% duty cycle max +DCmax = param.DCmax; + +% time sampling due to sampling frequency [s] +dt = 1/sf; + +switch param.Tx + case 'MIDI_OR' + % creating on-resonant pulses is straight forward + + % Larmor sampling + offset [s] + % this determines the time of a full period with the given + % frequency + dtL = 1/(fL+param.df); + + % time vector [s] + % total length of pulse depending on the number of periods and the + % time length of one single period + t = 0:dt:P*dtL; + + % positive (up) and negative (down) "Larmor" peaks + % we always start with a negative (down) one + tLup = 3*dtL/4:dtL:P*dtL; + tLdown = dtL/4:dtL:P*dtL; + + % peak width of positive and negative peaks depending on the duty + % cycle + peakwidthup = DCmax*dtL/2.*ones(size(tLup)); + peakwidthdown = DCmax*dtL/2.*ones(size(tLup)); + + % no adiabatic pulse data + AP = 0; + + case 'MIDI_AP' + % creating the adiabatic pulses is more tricky because due to the + % frequency modulation it is not clear at the beginning how long + % the actual pulse is given the number of periods + + % Larmor sampling + offset [s] + % this determines the time of a full period with the given + % frequency + dtL = 1/(fL); + + % time vector [s] + % total length of pulse depending on the number of periods and the + % time length of one single period + t = 0:dt:P*dtL; + + % the adiabatic pulse is assembled in an iterative approach + % maybe there is a more neat way, but I could not think of one + search = true; + count = 0; + while search + % first create a continuous adiabatic pulse with the modulation + % settings from the GUI + + % temporary time vector [s] + tt = t(:); + + % get the modulation functions + fmod = param.fmod; + Imod = param.Imod; + + % update the time vector and start and end point + fmod.t = tt; + fmod.t0 = tt(1); + fmod.t1 = t(end); + + Imod.t = tt; + Imod.t0 = tt(1); + Imod.t1 = tt(end); + + % standard adiabatic pulse settings + pparam.PulseType = 'AHP'; + % gyromagnetic ratio [rad/s/T] + pparam.gamma = gamma; + % angular frequency [rad/s] + if gamma > 0 + pparam.omega0 = -fL*2*pi; + else + pparam.omega0 = fL*2*pi; + end + % normalized pulse amplitude + pparam.Amp = 1; + % pulse frequency modulation [struct] + pparam.fmod = fmod; + % pulse current modulation [struct] + pparam.Imod = Imod; + % auxiliary pulse phase [rad] + pparam.phi = 0; + % pulse axis [string] + if isfield(param,'PulseAxis') + pparam.PulseAxis = param.PulseAxis; + else + pparam.PulseAxis = '+y'; + end + % pulse polarization [string] + pparam.PulsePolarization = 'linear'; + % temporary time vector [s] + pparam.t = tt; + % create the continuous adiabatic pulse + [AP.Bout,AP.df,AP.I,AP.theta] = getPulseTimeSeries(pparam); + + % find the indices of all peaks within the pulse + [~,locs] = findpeaks(abs(AP.Bout(:,1))); + % take only the positive one + indup = AP.Bout(locs,1)>0; + % if there are more peaks than number of periods we are done + if sum(indup) >= P + search = false; + else + % other wise extend the time vector and start again + count = count + 2; + t = 0:dt:(P+count)*dtL; + end + end + + % find the last positive peak that is equal to the number of + % periods + ind = find(cumsum(indup)==P,1,'first'); + % keep all peaks (up & down) within this range + locs = locs(1:ind); + % set the pulse length to the corresponding time and add a quarter + % of a period + tmax = tt(locs(end)) + dtL/4; + + % trim the temporary time vector + tt = tt(tt<=tmax); + % trim the output data + AP.Bout = AP.Bout(1:numel(tt),:); + AP.df = AP.df(1:numel(tt),:); + AP.I = AP.I(1:numel(tt),:); + AP.theta = AP.theta(1:numel(tt),:); + + % update the original time vector + t = tt'; + + % find all positive peaks + indup = AP.Bout(locs,1)>0; + % find all negative peaks + inddown = AP.Bout(locs,1)<0; + % find the corresponding time samples + tLup = tt(locs(indup)); + tLdown = tt(locs(inddown)); + + % the "width" of the peak in [s] + dtLup = diff([0;tLup]); + dtLdown = diff([0;tLdown]); + + % the actual peak width is the width in [s] scaled by the + % corresponding current amplitude of the continuous adiabatic pulse + % therewith the duty cycle increases as given by the current + % modulation function + peakwidthup = AP.I(locs(indup)).*(dtLup./2); + peakwidthdown = AP.I(locs(inddown)).*(dtLdown/2); + + % save all output data + AP.locs = locs; + AP.indup = indup; + AP.inddown = inddown; + AP.tLup = tLup; + AP.tLdown = tLdown; + AP.peakwidthup = peakwidthup; + AP.peakwidthdown = peakwidthdown; +end + +% loop over all negative peaks +for i = 1:numel(tLdown) + % find the discrete time steps that are within the range of peak + % width + ind = find(t>=tLdown(i)-peakwidthdown(i)/2 & t + end +end + +% loop over all negative peaks +for i = 1:numel(tLup) + % find the discrete time steps that are within the range of peak + % width + ind = find(t>=tLup(i)-peakwidthup(i)/2 & t + end +end + +% create the amplitude vector +x = zeros(size(t)); +% all negative peak positions get the corresponding Tx amplitude (scaled +% by the Tx current I) +x(locd) = -I*ones(size(locd)); +% all positive peak positions get the corresponding Tx amplitude (scaled +% by the Tx current I) +x(locu) = I*ones(size(locu)); + +% now create an artificial y-component by shifting the original signal +% (x-component) 90° (quarter of a full period) +% get the length of a quarter period +t90 = dtL/4; +% cut out these first samples and put them to the end of the original signal +y = [x(t>=t90) x(t. diff --git a/functions/blochsim/getMrot.m b/functions/blochsim/getMrot.m new file mode 100644 index 0000000..eb3e0fc --- /dev/null +++ b/functions/blochsim/getMrot.m @@ -0,0 +1,66 @@ +function Mrot = getMrot(M,theta,varargin) +%getMrot transforms the magnetization from the laboratory frame of +%reference into the rotating frame of reference +% +% Syntax: +% getMrot(M,theta,varargin) +% +% Inputs: +% M - magnetization in the lab-frame +% theta - instantaneous phase omega*t [rad] +% phi - [optional] additional phase [rad] +% +% Outputs: +% Mrot - magnetization in the rot-frame +% +% Example: +% getMrot(M,theta) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +phi = 0; +if nargin > 2 + phi = varargin{1}; +end +Mrot = zeros(size(M)); + +Mrot(:,1) = M(:,1).*cos(theta + phi) + M(:,2).*sin(theta + phi); +Mrot(:,2) = -M(:,1).*sin(theta + phi) + M(:,2).*cos(theta + phi); +Mrot(:,3) = M(:,3); + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getOmega0.m b/functions/blochsim/getOmega0.m new file mode 100644 index 0000000..b011833 --- /dev/null +++ b/functions/blochsim/getOmega0.m @@ -0,0 +1,59 @@ +function omega0 = getOmega0(gamma,B) +%getOmega0 calculates the angular frequency from a given B-field and +%gyromagnetic ratio +% +% Syntax: +% getOmega0(gamma,B) +% +% Inputs: +% gamma - gyromagnetic ration [rad/s/T] +% B - magnetic field [T] +% +% Outputs: +% omega0 - angular frequency [rad/s] +% +% Example: +% getOmega0(getGyroRatio('1H'),50e-6) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% this formula is sign sensitive: +% omega0 is negative for positive gyromagnetic ratio +omega0 = -gamma.*B; + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getPulseAxisPhase.m b/functions/blochsim/getPulseAxisPhase.m new file mode 100644 index 0000000..72025ed --- /dev/null +++ b/functions/blochsim/getPulseAxisPhase.m @@ -0,0 +1,64 @@ +function ax_phi = getPulseAxisPhase(ax_dir) +%getPulseAxisPhase provides the phase angle of the given pulse axis +% +% Syntax: +% getPulseAxisPhase(ax_dir) +% +% Inputs: +% ax_dir - string holding the pulse axis direction +% +% Outputs: +% ax_phi - phase angle of the pulse axis [rad] +% +% Example: +% getPulseAxisPhase('+x') +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +switch ax_dir + case '+x' + ax_phi = 0; + case '+y' + ax_phi = pi/2; + case '-x' + ax_phi = pi; + case '-y' + ax_phi = 3*pi/2; +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getPulsePhase.m b/functions/blochsim/getPulsePhase.m new file mode 100644 index 0000000..b98795e --- /dev/null +++ b/functions/blochsim/getPulsePhase.m @@ -0,0 +1,144 @@ +function theta = getPulsePhase(t,df,param,flag) +%getPulsePhase provides the instantaneous phase of a pulse; this is +%needed for frequency modulated pulses (e.g. AHP) because the frequency is +%actually modulated via the phase +%NOTE: because f = dphi/dt*2pi the time domain phase is the integral of the +%frequency: +%phi(t) = phi0 + 2pi*int_0^t f(tau) dtau +% +%this means e.g. for a linear frequency chirp from f0 to f1 like: +% f(t) = k*t + f0, with slope k = (f1-f0)/(t1-t0) +% +% the instantaneous phase is given as +% phi(t) = phi0 + 2pi*(k/2*t^2 + f0*t) +% +% Syntax: +% getPulsePhase(t,df,param,flag) +% +% Inputs: +% t - time [s] +% df - off-resonance [Hz] +% param - struct containing extra settings: +% fmod : struct containing frequency modulation settings +% gamma : gyromagnetic ratio [rad/s/T] +% omega0 : angular frequency [rad/s] +% flag - 0 -> phase during pulse +% 1 -> phase after pulse (only relaxation) +% +% Outputs: +% theta - instantaneous phase angle of the pulse +% +% Example: +% getPulsePhase(t,0,param,0) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% modulation parameter +fmod = param.fmod; +% Larmor freq. [Hz] +f0 = param.omega0/2/pi; + +% manipulating the phase angle theta modulates the frequency of the pulse +switch fmod.shape + case 'const' + switch flag + case 0 % during pulse + theta = (f0-df)*2*pi.*t; + case 1 % after pulse + theta = -fmod.v1*2*pi*t; + end + + case 'lin' + k = (fmod.v0-fmod.v1)./(fmod.t1-fmod.t0); + switch flag + case 0 % during pulse + theta = 2*pi*((f0-fmod.v0).*t + k./2.*t.^2); + case 1 % after pulse + theta = -2*pi*(fmod.v1*t + k/2*t^2); + end + + case 'tanhMIDI' + delta_f = fmod.v0-fmod.v1; + delta_t = fmod.t1-fmod.t0; + A = 2*pi*fmod.A; + B = fmod.B; + C = tanh( (A./fmod.t1).*(fmod.t0-B.*(fmod.t1/2))); + D = tanh( (A./fmod.t1).*(fmod.t1-B.*(fmod.t1/2))); + E = fmod.v1; + F = -delta_f; + T = delta_t; + % sign switch + delta_val = -delta_f; + switch flag + case 0 % during pulse + theta = 2.*pi.*(f0.*t + (( A.*B.*C.*F.*T + 2.*F.*T.*log(cosh((A.*(t-(B.*T./2)))./T)) + 2.*A.*t.*(C.*E-D.*(E+F)) ) ./ (2.*A.*(C-D))) ); + case 1 % after pulse + theta = 2.*pi.*(fmod.v1*t + (( A.*B.*C.*F.*T + 2.*F.*T.*log(cosh((A.*(t-(B.*T./2)))./T)) + 2.*A.*t.*(C.*E-D.*(E+F)) ) ./ (2.*A.*(C-D))) ); + end + + case 'tanhGMR' + delta_f = fmod.v0-fmod.v1; + delta_t = fmod.t1-fmod.t0; + switch flag + case 0 % during pulse + theta = 2*pi*( (f0-fmod.v0).*t + (delta_t/3).*delta_f.*log(cosh(3.*t./delta_t)) ); + case 1 % after pulse + theta = -2*pi*(fmod.v0*t - (delta_t/3)*delta_f*log(cosh(3*t/delta_t)) ); + end + + case 'exp' + delta_f = fmod.v0-fmod.v1; + delta_t = fmod.t1-fmod.t0; + switch flag + case 0 % during pulse + theta = 2*pi*(f0.*t + (delta_t*delta_f./fmod.A).*exp(fmod.A.*(-t/delta_t))); + case 1 % after pulse + theta = 2*pi*(fmod.end*t + (delta_t*delta_f./fmod.A)*exp(fmod.A*(-t/delta_t))); + end + + otherwise + switch flag + case 0 % during pulse + theta = (f0-df)*2*pi.*t; + otherwise + % nothing to do + end + +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getPulseTimeSeries.m b/functions/blochsim/getPulseTimeSeries.m new file mode 100644 index 0000000..008985d --- /dev/null +++ b/functions/blochsim/getPulseTimeSeries.m @@ -0,0 +1,175 @@ +function [Bout,df,I,theta] = getPulseTimeSeries(param) +%getPulseTimeSeries returns the B-field amplitudes of the pulse either for a +%single point or a complete time series +% +% Syntax: +% getPulseTimeSeries(param) +% +% Inputs: +% param - struct containing the pulse settings +% PulseType : pulse type [string] +% gamma : gyromagnetic ratio [rad/s/T] +% omega0 : angular frequency [rad/s] +% t : time [s] +% Amp : pulse amplitude +% phi : optional phase [rad] +% PulseAxis : pulse axis direction [string] +% PulsePolarization : pulse polarization [string] +% fmod : struct containing the frequency modulation +% settings +% Imod : struct containing the current modulation +% settings +% MIDI : [optional] struct containing the predetermined +% discrete MIDI pulse +% +% Outputs: +% Bout - B-field amplitudes +% df - frequency modulation [Hz] +% I - current modulation [A] +% theta - instantaneous phase [rad] +% +% Example: +% getPulseTimeSeries(param) +% +% Other m-files required: +% modulatePulse +% getPulseAxisPhase +% getReferencePhase +% getPulsePhase +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +PulseType = param.PulseType; +gamma = param.gamma; +t = param.t; +Amp = param.Amp; +phi = param.phi; +fmod = param.fmod; +Imod = param.Imod; + +% if the pulse axis is not given, it is set to '+x' +if isfield(param,'PulseAxis') + PulseAxis = param.PulseAxis; +else + PulseAxis = '+x'; +end +% if the pulse polarization is not given, it is set to 'circular' +if isfield(param,'PulsePolarization') + PulsePolarization = param.PulsePolarization; +else + PulsePolarization = 'circular'; +end + +switch PulseType + % handle the 'discrete' MIDI pulses + case {'MIDI_OR','MIDI_AP'} + t = t(:); + fmod.t = t; + Imod.t = t; + df = modulatePulse(fmod,'df'); + I = modulatePulse(Imod,'I'); + + % interpolate amplitudes at current time t from the pulse stored in + % param.MIDI + xMIDI = interp1(param.MIDI.t,param.MIDI.y(:,1),t,'linear'); + yMIDI = interp1(param.MIDI.t,param.MIDI.y(:,2),t,'linear'); + + % get instantaneous phase due to frequency modulation + % here the phase angle theta is simply the integral of the frequency + % modulation; this obviously only works for a vector (so this is + % not done during the ode calculation) + if numel(t)>1 + ft = -param.MIDI.mparam.fL-df; + theta = cumtrapz(t,ft.*2*pi); + end + + % I is already incorporated in the MIDI fit + switch PulsePolarization + case 'circular' + Bout = Amp.*[xMIDI yMIDI]; + case 'linear' + Bout = 2.*Amp.*[xMIDI 0.*t]; + end + + otherwise % all other (continuous) pulse types + + % direction of pulse axis + phi_ax = getPulseAxisPhase(PulseAxis); + % reference phase due to gyromagnetic ratio + % NOTE: due to the reference phase, M flips according to the + % right-hand-rule in the rotating frame of reference + % -> also protons with negative gyromagnetic ratio! + % refer to Levitt, 2002 + phi_ref = getReferencePhase(gamma); + + % pulse modulation + t = t(:); + fmod.t = t; + Imod.t = t; + df = modulatePulse(fmod,'df'); + I = modulatePulse(Imod,'I'); + + % check for quality factor tuning + if Imod.useQ && Imod.Q > 0 + % get line (band) width -> f_L/Q (simple bandwidth for bandpass) + Lwidth = abs(param.omega0/2/pi) / Imod.Q; + % apply "Breit-Wigner" formula (here already normalized to 1 by + % multiplying with pi*Lwidth) + L = 1 ./ ( ((df+Imod.Qdf).^2 ./ Lwidth.^2) + 1 ); + I = I.*L; + end + + % get instantaneous phase due to frequency modulation + theta = getPulsePhase(t,df,param,0); + + switch PulsePolarization + case 'circular' + Bout = I.*Amp.*[cos(theta + phi + phi_ax + phi_ref) ... + sin(theta + phi + phi_ax + phi_ref)]; + case 'linear' + Bout = 2.*I.*Amp.*[cos(theta + phi + phi_ax + phi_ref) ... + 0.*t]; + end + % test: + if phi ~= 0 + disp(num2str(phi)); + end + % end test +end +% if B-field values are NaN, set them to zero +% this can happen due to the interpolation at the end of the MIDI-pulses +Bout(isnan(Bout)) = 0; + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getRampAmplitude.m b/functions/blochsim/getRampAmplitude.m new file mode 100644 index 0000000..7ba0ecf --- /dev/null +++ b/functions/blochsim/getRampAmplitude.m @@ -0,0 +1,131 @@ +function Bp = getRampAmplitude(t,param) +%getRampAmplitude provides pre-polarization switch-off B-field amplitude +% +% Syntax: +% getRampAmplitude(t,param) +% +% Inputs: +% t - time [s] +% param - struct containing extra settings: +% ramp - struct containing ramp shape: 'exp', 'linexp', +% 'halfcos', 'lin' +% gamma - gyromagnetic ratio [rad/s/T] +% B0 - Earth magnetic field amplitude [T] +% Bmax - maximum pre-polarization amplitude [T] +% Bstar - switch magnetic field between linear and +% exponential part of the 'linexp' ramp +% Tramp - switch-off ramp time [s] +% Tslope - switch time between linear and +% exponential part of the 'linexp' ramp [s] +% +% Outputs: +% Bp - pre-polarization B-field amplitude +% +% Example: +% getRampAmplitude(t,param) +% +% Other m-files required: +% none +% +% Subfunctions: +% getLinExpAmp +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get the different parameter +ramp = param.ramp; +gamma = param.gamma; +B0 = param.B0; +Bmax = param.Bmax; +Bstar = param.Bstar; +Tramp = param.Tramp; +Tslope = param.Tslope; + +switch ramp + case 'exp' % exponential + Bp = Bmax .* exp(-t/Tslope); + case 'linexp' % linear + exponential + Bp = getLinExpAmp(Bmax,Bstar,Tslope,t); + case 'halfcos' % half cosine + Bp = Bmax .* (0.5+(cos(pi*t./Tramp)./2)); + case 'lin' % linear + Bp = Bmax.*(1-t./Tramp); +end + +return +% --- + +% --- +function Bp = getLinExpAmp(Bmax,Bstar,T,t) +% linear + exponential ramp after: +% Conradi et al., 2017, Journal of Magnetic Resonance 281, p.241-245 +% https://doi.org/10.1016/j.jmr.2017.06.001 + +if numel(t)>1 + % linear part + Bplin = (-Bmax/T)*t + Bmax; + % exponential part + Bpexp = exp(-t /(Bstar*T/Bmax)); + % find change + index = find(abs(Bplin-Bstar)==min(abs(Bplin-Bstar)),1,'first'); + % merge the lin- and exp-part and scale the amplitude of the exp-part + % to that of the lin-part at the switch-over time t(index) + scale_point = Bplin(index)/Bpexp(index); + % in case something goes south due to very small numbers set the + % amplitude to 0 + if isinf(scale_point) || isnan(scale_point) + scale_point = 0; + end + % the final amplitude vector + Bp = [Bplin(1:index-1); scale_point * Bpexp(index:end)]; +else + % linear part + Bplin = (-Bmax/T)*t + Bmax; + % exponential part + Bpexp = exp(-t /(Bstar*T/Bmax)); + % Bstar time tstar + tstar = (Bstar-Bmax)/(-Bmax/T); + % amplitude at tstar for scaling + Btstar = exp(-tstar /(Bstar*T/Bmax)); + % apply + if t. diff --git a/functions/blochsim/getReferencePhase.m b/functions/blochsim/getReferencePhase.m new file mode 100644 index 0000000..fff23e6 --- /dev/null +++ b/functions/blochsim/getReferencePhase.m @@ -0,0 +1,63 @@ +function phi_ref = getReferencePhase(gamma) +%getReferencePhase provides the reference phase after Levitt depending on +%the sign of the gyromagnetic ratio +% +% Syntax: +% getReferencePhase(gamma) +% +% Inputs: +% gamma - gyromagnetic ratio [rad/s/T] +% +% Outputs: +% phi_ref - reference phase [rad] +% +% Example: +% getReferencePhase(getGyroRatio('1H')) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% reference phase depending on the sign of gamma +% after M. H. Levitt, Spin Dynamics - Basics of Nuclear Magnetic Resonance +% (John Wiley & Sons, LTD, 2002) page 244 eq. 10.17 +if gamma > 0 + phi_ref = pi; +elseif gamma <= 0 + phi_ref = 0; +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getRotationMatrixFromAngleandAxis.m b/functions/blochsim/getRotationMatrixFromAngleandAxis.m new file mode 100644 index 0000000..793a597 --- /dev/null +++ b/functions/blochsim/getRotationMatrixFromAngleandAxis.m @@ -0,0 +1,75 @@ +function R = getRotationMatrixFromAngleandAxis(phi,n) +%getRotationMatrixFromAngleandAxis calculates rotation matrix R to rotate about +%an axis n by an angle phi +% +% Syntax: +% getRotationMatrixFromAngleandAxis(phi,n) +% +% Inputs: +% phi - rotation angle [rad] +% n - rotation axis vector [x y z] +% +% Outputs: +% R - 3x3 rotation matrix +% +% Example: +% R = getRotationMatrixFromAngleandAxis(pi,[0 0 1]') +% yields R = -1 0 0 +% 0 -1 0 +% 0 0 1 +% so that R*[1 0 0]' = [-1 0 0]' +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% make "n" a unit vector +n = n./norm(n); +% get the individual components +nx = n(1); +ny = n(2); +nz = n(3); +% matrix terms needed +omcos = 1-cos(phi); +cosp = cos(phi); +sinp = sin(phi); + +% assemble rotation matrix R +R = [nx*nx*omcos + cosp nx*ny*omcos - nz*sinp nx*nz*omcos + ny*sinp; ... + ny*nx*omcos + nz*sinp ny*ny*omcos + cosp ny*nz*omcos - nx*sinp; ... + nz*nx*omcos - ny*sinp nz*ny*omcos + nx*sinp nz*nz*omcos + cosp]; + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/getRotationMatrixFromVectors.m b/functions/blochsim/getRotationMatrixFromVectors.m new file mode 100644 index 0000000..d55f399 --- /dev/null +++ b/functions/blochsim/getRotationMatrixFromVectors.m @@ -0,0 +1,81 @@ +function R = getRotationMatrixFromVectors(A,B) +%getRotationMatrixFromVectors calculates rotation matrix R to rotate A into B +% +% Syntax: +% getRotationMatrixFromVectors(A,B) +% +% Inputs: +% A - start vector +% B - end vector +% +% Outputs: +% R - 3x3 rotation matrix to rotate A into B +% +% Example: +% R = getRotationMatrixFromVectors([1 0 0]',[0 0 1]') +% yields R = 0 0 -1 +% 0 1 0 +% 1 0 0 +% so that R*[1 0 0]' = [0 0 1]' +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% normalize both vectors +A = A(:)./norm(A); +B = B(:)./norm(B); +% cross product of both vectors +c = cross(A,B); +% check if A and B are parallel / antiparallel +if sum(c)==0 + % check if A == B (parallel) + if all(A==B) + % in that case the rotation matrix is obviously identity + R = eye(3); + else % A == -B (antiparallel) + R = -eye(3); + end +else + % skew-symmetric cross-product + ssc = [ 0 -c(3) c(2); + c(3) 0 -c(1); + -c(2) c(1) 0 ]; + % rotation matrix R + R = eye(3) + ssc + ssc^2*(1-dot(A,B))/(norm(c))^2; +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/blochsim/modulatePulse.m b/functions/blochsim/modulatePulse.m new file mode 100644 index 0000000..1ffadcb --- /dev/null +++ b/functions/blochsim/modulatePulse.m @@ -0,0 +1,120 @@ +function out = modulatePulse(mod,type) +%modulatePulse generates the frequency and current modulation functions +% +% Syntax: +% modulatePulse(mod,type) +% +% Inputs: +% mod - struct containing modulation settings +% shape : shape of the modulation function [string] +% t : time (scalar / vector) [s] +% t0 : pulse start time [s] +% t1 : pulse end time [s] +% v0 : start value +% v1 : end value +% A : modulation parameter (MIDI) +% B : modulation parameter (MIDI) +% type - switch for frequency 'df' or current 'I' modulation [string] +% +% Outputs: +% out - modulated signal (either 'df' or 'I' as scalar / vector) +% +% Example: +% modulatePulse(fmod,'df') +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% general parameters +t = mod.t(:); +t0 = mod.t0; +t1 = mod.t1; +v0 = mod.v0; +v1 = mod.v1; +A = mod.A; +B = mod.B; + +% pulse duration [s] +tau = t1-t0; +% modulation range +delta = v1-v0; + +switch mod.shape + + case 'const' % no modulation + out = v1.*ones(size(t)); + + case 'lin' % linear modulation + out = v0 + (t.*delta./tau); + + case 'tanhMIDI' % tanh-modulation with two parameters A & B + % slope parameter + N = tanh( ((2.*pi.*A)./tau).*(t - B.*(tau/2)) ); + N0 = tanh( ((2.*pi.*A)./tau).*(t0 - B.*(tau/2)) ); + N1 = tanh( ((2.*pi.*A)./tau).*(tau - B.*(tau/2)) ); + + switch type + case 'df' + % sign switch (MMP ;-)) + delta = -delta; + out = v1 + delta*(1-((N-N0)/(N1-N0))); + case 'I' + out = v0 + delta*(N-N0)/(N1-N0); + end + + case 'tanhGMR' % tanh-modulation GMR style + switch type + case 'df' + tau = 3*t./tau; % (RD: pers. comm. Grunewald 13.10.2016) + case 'I' + tau = pi*t./tau; % (RD: pi is arbitrary.) + end + out = v0 + (delta * tanh(tau)); + + case 'exp' % exponential modulation + out = v1 - delta .* exp(A.*(-t./tau)); + + case 'custom' % custom modulation (interpolation) + switch type + case 'df' + out = interp1(mod.custom_t,mod.custom_df,t,'linear'); + case 'I' + out = interp1(mod.custom_t,mod.custom_I,t,'linear'); + end +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/BLOCHUS_logo.mat b/functions/interface/BLOCHUS_logo.mat new file mode 100644 index 0000000000000000000000000000000000000000..14c303b936d26761183d9956f664b13d57a4e3bf GIT binary patch literal 113225 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. diff --git a/functions/interface/findParentOfType.m b/functions/interface/findParentOfType.m new file mode 100644 index 0000000..21170d9 --- /dev/null +++ b/functions/interface/findParentOfType.m @@ -0,0 +1,74 @@ +function ph = findParentOfType(h,type) +%findParentOfType is a "hack" because Matlab changed the parent-child +%hierarchy for some graphical objects +%2018: the minimize checkbox is a child of the uix.BoxPanel +%2014: the minimize checkbox is a child of a uicontainer -> child of a HBox -> +%child of a the BoxPanel +% +% Syntax: +% ph = findParentOfType(h,type) +% +% Inputs: +% h - handle +% type - type to look for +% +% Outputs: +% ph - handle of parent object +% +% Example: +% ph = findParentOfType(h,type) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +lookingfor = true; +child = h; +while lookingfor + parent = get(child,'Parent'); + if isa(parent,type) % the parent uix.BoxPanel was found + lookingfor = false; + ph = parent; + elseif isempty(parent) % nothing was found + ph = []; + disp('findParentOfType: No parent of specified type found.'); + break; + else % set the current parent to child and continue + child = parent; + end +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/getAngleBetweenVectors.m b/functions/interface/getAngleBetweenVectors.m new file mode 100644 index 0000000..802583a --- /dev/null +++ b/functions/interface/getAngleBetweenVectors.m @@ -0,0 +1,78 @@ +function [theta,sgn] = getAngleBetweenVectors(x,y) +%getAngleBetweenVectors calculates the angle theta between two vectors 'x' and 'y' +% +% Syntax: +% getAngleBetweenVectors(x,y) +% +% Inputs: +% x - vector +% y - vector +% +% Outputs: +% theta - angle between x and y [rad] +% sgn - sign of theta +% +% Example: +% getAngleBetweenVectors([1 0 0],[0 0 1]) +% +% Other m-files required: +% none; +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +if numel(x)<=3 % vector treatment + % if x is a vector make x and y column vectors + x = x(:); + y = y(:); + % angle [rad] + theta = acos(dot(x,y)./(norm(x).*norm(y))); + % sign + sgn = sign(cross(x,y)); + sgn = sgn(3); +else % matrix treatment + % angle [rad] + normx = sqrt(x(:,1).^2+x(:,2).^2+x(:,3).^2); + normy = sqrt(y(:,1).^2+y(:,2).^2+y(:,3).^2); + theta = acos(dot(x,y,2)./(normx.*normy)); + % sign + sgn = sign(cross(x,y)); + sgn = sgn(:,3); +end + +if ~isreal(theta) + theta = real(theta); +end + +return + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/getPulseParameters.m b/functions/interface/getPulseParameters.m new file mode 100644 index 0000000..cf389ae --- /dev/null +++ b/functions/interface/getPulseParameters.m @@ -0,0 +1,273 @@ +function getPulseParameters(fig) +%getPulseParameters updates all relevant pulse settings +% +% Syntax: +% getPulseParameters(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% getPulseParameters(gui.figh) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% getMIDI_Tx +% getOmega0 +% getPulseTimeSeries +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +gui = getappdata(fig,'gui'); +data = getappdata(fig,'data'); + +% dummy time vector with sampling freq 50 kHz used mainly for plotting +pulse_t = 0:1/50000:data.pulse.Ttau/1e3; % [s] + +% --- frequency modulation struct --- +% this is also used when no modulation is done (then all settings are +% basically constant) +% pulse type [string] +fmod.PulseType = data.pulse.Type; +% shape of the modulation function [string] +fmod.shape = data.pulse.DFmode; +% time vector [s] +fmod.t = pulse_t; +% pulse start time [s] +fmod.t0 = pulse_t(1); +% pulse end time [s] +fmod.t1 = pulse_t(end); +% start frequency [Hz] +fmod.v0 = data.pulse.DFstart; +% end frequency [Hz] +fmod.v1 = data.pulse.DFend; +% modulation parameter (MIDI) +fmod.A = data.pulse.DFA; +% modulation parameter (MIDI) +fmod.B = data.pulse.DFB; + +% --- current modulation struct --- +% this is also used when no modulation is done (then all settings are +% basically constant) +% pulse type [string] +Imod.PulseType = data.pulse.Type; +% shape of the modulation function [string] +Imod.shape = data.pulse.Imode; +% check if quality factor tuning is activated [0/1] +Imod.useQ = get(gui.check_handles.PulseQ,'Value'); +% quality factor +Imod.Q = data.pulse.Q; +% quality factor off-resonance frequency [Hz] +Imod.Qdf = data.pulse.Qdf; +% time vector [s] +Imod.t = pulse_t; +% pulse start time [s] +Imod.t0 = pulse_t(1); +% pulse end time [s] +Imod.t1 = pulse_t(end); +% start current [A] +Imod.v0 = data.pulse.Istart; +% end current [A] +Imod.v1 = data.pulse.Iend; +% modulation parameter (MIDI) +Imod.A = data.pulse.IA; +% modulation parameter (MIDI) +Imod.B = data.pulse.IB; + +% adjust some pulse settings depending on the pulse type +switch data.pulse.Type + case {'pi_half','pi','free'} + % set constant frequency modulation shape + fmod.shape = 'const'; + % equal start and end frequency + fmod.v1 = fmod.v0; + % set constant current modulation shape + Imod.shape = 'const'; + % equal start and end current + Imod.v1 = Imod.v0; + + case 'MIDI_OR' + % set constant frequency modulation shape + fmod.shape = 'const'; + % equal start and end frequency + fmod.v1 = fmod.v0; + % set constant current modulation shape + Imod.shape = 'const'; + % equal start and end current + Imod.v1 = Imod.v0; + + % MIDI parameter settings for discrete pulses + % pulse type [string] + mparam.Tx = data.pulse.Type; + % Larmor frequency [Hz] WIHTOUT SIGN + mparam.fL = abs(data.basic.Omega0); + % gyromagnetic ratio [rad/s/T] + mparam.gamma = data.basic.gamma; + % frequency offset [Hz] + mparam.df = data.pulse.DFstart; + % MIDI sampling frequency [Hz] (default is 50kHz) + mparam.sf = data.pulse.MIDIsf; + % number of periods + mparam.P = data.pulse.MIDINP; + % Tx-current [A] (within BLOCHUS always "1" because the pulse + % amplitude is scaled from the GUI) + mparam.I = 1; + % duty cycle width - start + mparam.DCmin = data.pulse.Istart; + % duty cycle width - end set equal to start + mparam.DCmax = mparam.DCmin; + % pulse axis [string] + mparam.PulseAxis = data.pulse.Axis; + % assemble the discrete pulse + [t,y,AP] = getMIDI_Tx(mparam); + % because the ODE-solver does not like long rows of "zeros" due to + % the adaptive time stepping, the "zeros" in the pulse are set to a + % very small number + ind = find(y==0); + y(ind) = (2.*rand(numel(ind),1)-1)*1e-7; + % output struct containing the MIDI pulses + param.MIDI.mparam = mparam; + param.MIDI.t = t'; + param.MIDI.y = y'; + param.MIDI.AP = AP; + % update data + data.pulse_MIDI = param.MIDI; + % update dummy time vector + pulse_t = t; + + case 'MIDI_AP' + % MIDI parameter settings for discrete pulses + % pulse type [string] + mparam.Tx = data.pulse.Type; + % Larmor frequency [Hz] WIHTOUT SIGN + mparam.fL = abs(data.basic.Omega0); + % gyromagnetic ratio [rad/s/T] + mparam.gamma = data.basic.gamma; + % start frequency [Hz] + mparam.df = data.pulse.DFstart; + % MIDI sampling frequency [Hz] (default is 50kHz) + mparam.sf = data.pulse.MIDIsf; + % number of periods + mparam.P = data.pulse.MIDINP; + % Tx-current [A] (within BLOCHUS always "1" because the pulse + % amplitude is scaled from the GUI) + mparam.I = 1; + % duty cycle width - start + mparam.DCmin = data.pulse.Istart; + % duty cycle width - end + mparam.DCmax = data.pulse.Iend; + % pulse axis [string] + mparam.PulseAxis = data.pulse.Axis; + % frequency modulation struct + mparam.fmod = fmod; + % current modulation struct + mparam.Imod = Imod; + % assemble the discrete pulse + [t,y,AP] = getMIDI_Tx(mparam); + % because the ODE-solver does not like long rows of "zeros" due to + % the adaptive time stepping, the "zeros" in the pulse are set to a + % very small number + ind = find(y==0); + y(ind) = (2.*rand(numel(ind),1)-1)*1e-7; + % output struct containing the MIDI pulses + param.MIDI.mparam = mparam; + param.MIDI.t = t'; + param.MIDI.y = y'; + param.MIDI.AP = AP; + % update data + data.pulse_MIDI = param.MIDI; + % update dummy time vector + pulse_t = t; + + % update the time vector within the modulation functions + fmod.t = t; + fmod.t1 = t(end); + Imod.t = t; + Imod.t1 = t(end); + + % adjust the pulse length to the actual value + data.pulse.Ttau = data.pulse_MIDI.t(end)*1e3; + % in case of pure "Pulse" update the total simulation time + switch data.basic.type + case 'pulse' + data.basic.Tsim = data.pulse.Ttau; + set(gui.edit_handles.Tsim,'String',num2str(data.basic.Tsim)); + otherwise + % nothing to do + end + otherwise + % nothing to do +end + +% --- pulse settings --- +% pulse type [string] +param.PulseType = data.pulse.Type; +% gyromagnetic ratio [rad/s/T] +param.gamma = data.basic.gamma; +% Larmor frequency [rad/s] +param.omega0 = getOmega0(data.basic.gamma,data.basic.B0); +% pulse amplitude [B0] +param.Amp = data.basic.B0*data.pulse.B1Factor; +% pulse frequency modulation [struct] +param.fmod = fmod; +% pulse current modulation [struct] +param.Imod = Imod; +% auxiliary pulse phase [rad] +param.phi = 0; +% pulse axis [string] +param.PulseAxis = data.pulse.Axis; +% pulse polarization [string] +param.PulsePolarization = data.pulse.Polarization; +% time vector [s] +param.t = pulse_t; +% get the actual pulse time series (including frequency and current modulation) +[pulse_Bxy,df,I] = getPulseTimeSeries(param); +% dummy time vector [ms] +data.results.pulse.t = pulse_t'.*1e3; + +% update data +data.results.pulse.fmod = fmod; +data.results.pulse.Imod = Imod; +data.results.pulse.df = df; +data.results.pulse.I = I; +data.results.pulse.Bxy = pulse_Bxy; + +% update GUI data +setappdata(fig,'data',data); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/getRampParameters.m b/functions/interface/getRampParameters.m new file mode 100644 index 0000000..14ea588 --- /dev/null +++ b/functions/interface/getRampParameters.m @@ -0,0 +1,128 @@ +function getRampParameters(fig) +%getRampParameters updates all relevant switch-off ramp settings +% +% Syntax: +% getRampParameters(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% getRampParameters(gui.figh) +% +% Other m-files required: +% getAngleBetweenVectors +% getRampAmplitude +% getRotationMatrixFromAngleandAxis +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +gui = getappdata(fig,'gui'); +data = getappdata(fig,'data'); + +% z-axis unit vector +zunit = [0 0 1]'; + +% --- switch-off ramp settings --- +% switch-off ramp type [string] +rampparam.ramp = data.prepol.Ramp; +% gyromagnetic ratio [rad/s/T] +rampparam.gamma = data.basic.gamma; +% primary (Earth's) magnetic field amplitude B0 [T] +rampparam.B0 = data.basic.B0; +% maximum pre-polarization amplitude (factor*B0) [T] +rampparam.Bmax = data.basic.B0*data.prepol.Factor; +% switch-over amplitude for the "linexp" ramp (factor*B0) [T] +rampparam.Bstar = data.basic.B0*data.prepol.SwitchFactor; +% switch-off ramp time [s] +rampparam.Tramp = data.prepol.Tramp/1e3; +% switch-over time for the "linexp" ramp [s] +rampparam.Tslope = data.prepol.Tslope/1e3; +% switch-off ramp time vector [s] discretized with 500kHz +t = (0:1/500000:rampparam.Tramp)'; +% get the amplitude of the pre-polarization field [T] +% this amplitude decreases over time due to the particular switch-off ramp +Bp = getRampAmplitude(t,rampparam); + +% now adjust the direction of the pre-polarization field +% 1.) rotation by angle theta [deg] around y-axis for the z-unit vector +% this means an angle of 90° around the y-axis will turn the z-unit into +% the x-unit vector +RM = getRotationMatrixFromAngleandAxis(deg2rad(data.prepol.Theta),[0 1 0]); +orient = RM * zunit; +% now this new orientation vector gets rotated by angle phi [deg] around +% the z-axis for the x-unit vector +% this means an angle of 90° around the z-axis will turn the x-unit into +% the y-unit vector +RM = getRotationMatrixFromAngleandAxis(deg2rad(data.prepol.Phi),[0 0 1]); +orient = RM * orient; + +% primary (Earth's) magnetic field vector [T] +Be = rampparam.B0.*zunit; +% pre-polarization field vector oriented into the correct direction [T] +Bpre = Bp.*repmat(orient',[numel(Bp) 1]); +% the effective B-field vector as a combination of primary and +% pre-polarization field [T] +Beff = Be' + Bpre; + +% angle between primary and pre-polarization field [rad] +alpha = getAngleBetweenVectors(repmat(Be',[size(Beff,1) 1]),Beff); +% amplitude of the effective B-field [T] +Beffn = sqrt(Beff(:,1).^2+Beff(:,2).^2+Beff(:,3).^2); +% angular frequency of the effective B-field [rad/s] +omega = rampparam.gamma.*Beffn; +% rate of change of the angle alpha [rad/s] +dt = t(2)-t(1); +dadt = abs(diff(alpha)./dt); + +% save data +data.results.prepol.orient = orient; +data.results.prepol.t = t; +data.results.prepol.Bmax = rampparam.Bmax; +data.results.prepol.Bstar = rampparam.Bstar; +data.results.prepol.Bp = Bp; +data.results.prepol.Beff = Beff; +data.results.prepol.alpha = alpha; +data.results.prepol.omega = omega; +data.results.prepol.dadt = dadt; + + +% update GUI data +setappdata(fig,'data',data); +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/minimizePanel.m b/functions/interface/minimizePanel.m new file mode 100644 index 0000000..f25503e --- /dev/null +++ b/functions/interface/minimizePanel.m @@ -0,0 +1,114 @@ +function minimizePanel(src,~) +%minimizePanel handles the minimization/maximization of all box-panels +% +% Syntax: +% minimizePanel(src) +% +% Inputs: +% src - handle of the calling object +% +% Outputs: +% none +% +% Example: +% minimizePanel(src) +% +% Other m-files required: +% findParentOfType +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% get GUI handle and data +fig = ancestor(src,'figure','toplevel'); +gui = getappdata(fig,'gui'); + +% get the corresponding box-panel to be minimized / maximized +panel = findParentOfType(src,'uix.BoxPanel'); +% panel title +paneltitle = get(panel,'Title'); +% check if panel is minimized (true) +isminimized = get(panel,'Minimized'); + +% minimized height (default value for all box-panels) +pheightmin = 22; +% default heights +def_heights = gui.myui.heights; + +if ~isempty(fig) && strcmp(get(fig,'Tag'),'BLOCHUS') + + panel_1 = 'Basics'; + panel_2 = 'Pre-polarization switch-off'; + panel_3 = 'Pulse'; + + switch paneltitle + case panel_1 + id = 1; + case panel_2 + id = 2; + case panel_3 + id = 3; + otherwise + helpdlg({'function: minimizePanel',... + 'Something is utterly wrong.'},'Info'); + end + + switch paneltitle + case {panel_1,panel_2,panel_3} + % all heights of the left panels + heights = get(gui.panels.main,'Heights'); + % default height of this panel + pheight = def_heights(2,id); + if isminimized % maximize panel + heights(id) = pheight; + set(gui.panels.main,'Heights',heights); + set(panel,'Minimized',false); + else % minimize panel + heights(id) = pheightmin; + set(gui.panels.main,'Heights',heights); + set(panel,'Minimized',true) + end + onFigureSizeChange(fig); + otherwise + helpdlg({'function: minimizePanel',... + 'Something is utterly wrong.'},'Info'); + end +else + warndlg({'minimizePanel:','There is no figure with the BLOCHUS Tag open.'},... + 'BLOCHUS error'); +end +% update GUI data +setappdata(fig,'gui',gui); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/onFigureSizeChange.m b/functions/interface/onFigureSizeChange.m new file mode 100644 index 0000000..15d0215 --- /dev/null +++ b/functions/interface/onFigureSizeChange.m @@ -0,0 +1,68 @@ +function onFigureSizeChange(fig,~) +%onFigureSizeChange fixes an ugly Matlab bug when resizing a box-panel +%which holds an axis and a legend. This problem occurs even though the +%axis is inside a uicontainer to group all axes elements. And it only +%occurs for box-panels. If the uicontainer, which holds axis and legend, +%is inside a tab-panel this problem does not occur. They had one job ... m( +% +% Syntax: +% onFigureSizeChange(fig,~) +% +% Inputs: +% fig - handle of the calling figure +% +% Outputs: +% none +% +% Example: +% onFigureSizeChange(h) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% get GUI data +gui = getappdata(fig,'gui'); + +% proceed if there is data +if ~isempty(gui) + if isfield(gui,'panels') + heights = get(gui.panels.main,'Heights'); + set(gui.left,'Heights',-1,'MinimumHeights',sum(heights)+1); + end +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/plotBSphere.m b/functions/interface/plotBSphere.m new file mode 100644 index 0000000..79a413d --- /dev/null +++ b/functions/interface/plotBSphere.m @@ -0,0 +1,97 @@ +function bsh = plotBSphere(dlat,dlong,ax,varargin) +%plotBSphere plots a (Bloch)-Sphere (basically a unit sphere) with +%increments 'dlat' [deg] and 'dlong' [deg] for latitude and longitude, +%respectively +% +% Syntax: +% plotBSphere +% +% Inputs: +% dlat - latitude increment [deg] +% dlong - longitude increment [deg] +% ax - axes handle +% varargin - optional radius R +% +% Outputs: +% none +% +% Example: +% plotBSphere(30,30) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% radius of the sphere +R = 1; +if nargin > 3 + R = varargin{1}; +end +% gray scale factor +sf = 0.85; + +% lines along longitude +[lon1,lat1] = meshgrid(-180:dlong:180,linspace(-90,90,181)); +% lines along latitude: +[lat2,lon2] = meshgrid(-90:dlat:90,linspace(-180,180,361)); + +% spherical to Cartesian coordinate transform +[x1,y1,z1] = sph2cart(deg2rad(lon1),deg2rad(lat1),R); +[x2,y2,z2] = sph2cart(deg2rad(lon2),deg2rad(lat2),R); + +% plotting the lines in the current axes +bsh1 = plot3(x1,y1,z1,'-','Color',sf*[1 1 1],'LineWidth',1,'Parent',ax); +bsh2 = plot3(x2,y2,z2,'-','Color',sf*[1 1 1],'LineWidth',1,'Parent',ax); + +bsh3 = line([-R R],[0 0],[0 0],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax); +bsh4 = line([0 0],[-R R],[0 0],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax); +bsh5 = line([0 0],[0 0],[-R R],'Color',sf*[1 1 1],'LineWidth',1,'Parent',ax); + +bsh6 = line([0 R*1.2],[0 0],[0 0],'Color','r','LineWidth',1.3,'Parent',ax); +bsh7 = line([0 0],[0 R*1.2],[0 0],'Color','g','LineWidth',1.3,'Parent',ax); +bsh8 = line([0 0],[0 0],[0 R*1.2],'Color','b','LineWidth',1.3,'Parent',ax); + +t1 = text(R*1.4,0,0,'X','HorizontalAlignment','center','Color','r','Parent',ax); +t2 = text(0,R*1.4,0,'Y','HorizontalAlignment','center','Color','g','Parent',ax); +t3 = text(0,0,R*1.4,'Z','HorizontalAlignment','center','Color','b','Parent',ax); + +% output handles of all lines and text +bsh.grid = [bsh1; bsh2]; +bsh.axes1 = [bsh3; bsh4; bsh5]; +bsh.axes2 = [bsh6; bsh7; bsh8]; +bsh.label = [t1; t2; t3]; + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/plotBpulse.m b/functions/interface/plotBpulse.m new file mode 100644 index 0000000..1fb3983 --- /dev/null +++ b/functions/interface/plotBpulse.m @@ -0,0 +1,114 @@ +function plotBpulse(fig) +%plotBpulse plots different pulse parameter +% +% Syntax: +% plotBpulse(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% plotBpulse(gui.figh) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +data = getappdata(fig,'data'); +gui = getappdata(fig,'gui'); +myui = gui.myui; + +% time vector in [ms] +t = data.results.pulse.t; + +%% pulse frequency and current modulation +value = data.results.pulse.df; +% min-max-spread +d = max(value)-min(value); +if d == 0 % check if min=max + d = 20; +end +ax = gui.axes_handles.PulseSetupF; +cla(ax); +plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.pulse,... + 'Parent',ax); +set(ax,'Xlim',[min(t) max(t)],'Ylim',[min(value)-d/20 max(value)+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','df [Hz]'); +legend(ax,'df mod.','Location','SouthEast'); +set(ax,'FontSize',myui.axfontsize); + +ax = gui.axes_handles.PulseSetupI; +cla(ax); +plot(t,data.results.pulse.I,'LineWidth',gui.myui.linewidth,'Color',myui.color.pulse,... + 'Parent',ax); +set(ax,'Xlim',[min(t) max(t)],'Ylim',[-0.05 1.05]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','I [A]'); +legend(ax,'I mod.','Location','SouthEast'); +set(ax,'FontSize',myui.axfontsize); +% in case of discrete pulses the modulation is done via the duty cycle +if strcmp(data.pulse.Type,'MIDI_OR') || strcmp(data.pulse.Type,'MIDI_AP') + set(ax,'Ylim',[-0.03 0.63]); + set(get(ax,'YLabel'),'String','duty cycle'); +end + + +%% pulse +value = data.results.pulse.Bxy./data.basic.B0; +% min-max-spread +d = max(value(:))-min(value(:)); +ax = gui.axes_handles.PulseB; +cla(ax); +hold(ax,'on'); +plot(t,value(:,1),'r','LineWidth',gui.myui.linewidth,'Parent',ax); +plot(t,value(:,2),'g','LineWidth',gui.myui.linewidth,'Parent',ax); +hold(ax,'off'); +set(ax,'Xlim',[min(t) max(t)]); +set(ax,'Ylim',[min(value(:))-d/20 max(value(:))+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','B_{1} [B_0]'); +legend(ax,'x','y','Location','SouthWest'); +set(ax,'FontSize',myui.axfontsize); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/plotRamp.m b/functions/interface/plotRamp.m new file mode 100644 index 0000000..2e635b4 --- /dev/null +++ b/functions/interface/plotRamp.m @@ -0,0 +1,132 @@ +function plotRamp(fig) +%plotRamp plots different pre-polarization switch-off ramp parameter +% +% Syntax: +% plotRamp(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% plotRamp(fig) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +data = getappdata(fig,'data'); +gui = getappdata(fig,'gui'); +myui = gui.myui; + +% time vector in [ms] +t = data.results.prepol.t.*1e3; + +%% pre-polarization switch-off ramp amplitude +% Bp amplitude in units of the Earth's magnetic field B0 +value = data.results.prepol.Bp./data.basic.B0; +% min-max-spread +d = max(value)-min(value); +ax = gui.axes_handles.Bpre; +cla(ax); +hold(ax,'on'); +plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.prepolB,... + 'Parent',ax); +line([min(t) max(t)],[1 1],'Linestyle','--','Color','k','LineWidth',1,... + 'Parent',ax); +hold(ax,'off'); +set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','Bp [B0]'); +legend(ax,'Bp','Bp=B0','Location','NorthEast'); +set(ax,'FontSize',myui.axfontsize); + +%% angle alpha between B and B0 +value = rad2deg(data.results.prepol.alpha); +% min-max-spread +d = max(value)-min(value); +ax = gui.axes_handles.alpha; +cla(ax); +plot(t,value,'LineWidth',gui.myui.linewidth,'Color',myui.color.prepolB,... + 'Parent',ax); +set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','\alpha [deg]'); +legend(ax,'\alpha=\angle B0 B','Location','best'); +set(ax,'FontSize',myui.axfontsize); + +%% time derivative of alpha +value = data.results.prepol.dadt; +% min-max-spread +d = max(value)-min(value); +ax = gui.axes_handles.dadt; +cla(ax); +semilogy(t(1:length(data.results.prepol.dadt)),value,'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.prepolB,'Parent',ax); +set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','d\alpha / dt'); +set(ax,'FontSize',myui.axfontsize); + +%% ratio of da/dt and omega=gamma*B +% ratio = dadt./omega +% ratio << 1 -> adiabatic condition (see Melton 1995, eq. 1) +value = data.results.prepol.dadt./data.results.prepol.omega(1:numel(data.results.prepol.dadt)); +% min-max-spread +d = max(value)-min(value); +ax = gui.axes_handles.wda; +cla(ax); +hold(ax,'on'); +plot(t(1:numel(data.results.prepol.dadt)),value,'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.prepolB,'Parent',ax); +line([min(t) max(t)],[1 1],'Linestyle','--','Color','k','LineWidth',1,... + 'HandleVisibility','off','Tag','MarkerLines','Parent',ax); +hold(ax,'off'); +set(ax,'XLim',[min(t) max(t)],'YLim',[min(value)-d/20 max(value)+d/20]); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','(d\alpha/dt) / \gammaB'); +lh = legend(ax,'$$\ll$$ 1 $$\rightarrow$$ adiabatic cond.','Location','best'); +set(lh,'Interpreter','Latex'); +set(ax,'FontSize',myui.axfontsize); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/plotResults.m b/functions/interface/plotResults.m new file mode 100644 index 0000000..1017835 --- /dev/null +++ b/functions/interface/plotResults.m @@ -0,0 +1,328 @@ +function plotResults(fig) +%plotResults plots results depending on the chosen settings +% +% Syntax: +% plotResults(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% plotResults(fig) +% +% Other m-files required: +% plotBSphere +% +% Subfunctions: +% plotMag +% plotSphere +% plotFFT +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +data = getappdata(fig,'data'); +gui = getappdata(fig,'gui'); + +% update the different plots depending on the simulation type +switch data.basic.type + + case 'std' % only relaxation + plotMag(data,gui,'lab'); + plotMag(data,gui,'rot'); + plotFFT(data,gui,'M'); + plotSphere(data,gui,'lab'); + plotSphere(data,gui,'rot'); + + case 'prepol' % pre-polarization switch-off + (relaxation) + plotMag(data,gui,'lab'); + plotSphere(data,gui,'lab'); + + % clear rot-frame axis M + clearSingleAxis(gui.axes_handles.MagR); + % clear rot-frame axis sphere + clearSingleAxis(gui.axes_handles.SphereR); + + case 'pulse' % pulse + (relaxation) + plotMag(data,gui,'lab'); + plotMag(data,gui,'rot'); + plotFFT(data,gui,'M'); + plotSphere(data,gui,'lab'); + plotSphere(data,gui,'rot'); + plotFFT(data,gui,'B'); + + case 'prepolpulse' % pre-polarization switch-off + pulse + (relaxation) + plotMag(data,gui,'lab'); + plotMag(data,gui,'rot'); + plotFFT(data,gui,'M'); + plotSphere(data,gui,'lab'); + plotSphere(data,gui,'rot'); + plotFFT(data,gui,'B'); +end + +end + +%% magnetization components +function plotMag(data,gui,frame) +myui = gui.myui; + +% for plotting everything is in [ms] +T = data.results.basic.T.*1e3; + +% all relevant time marker +Tsim = data.basic.Tsim; +Ttau = data.pulse.Ttau; +Tramp = data.prepol.Tramp; +Twait = data.pulse.Twait; + +% choose reference frame to plot +switch frame + case 'lab' + M = data.results.basic.M; + ax = gui.axes_handles.MagL; + case 'rot' + M = data.results.basic.Mrot; + ax = gui.axes_handles.MagR; +end +% norm of magnetization vector +Mamp = sqrt(M(:,1).^2+M(:,2).^2+M(:,3).^2); + +% normalize M in case of pre-polarization +% and adjust axis limits +switch data.basic.type + case {'prepol','prepolpulse'} + M = M./data.basic.B0; + Mamp = Mamp./data.basic.B0; + d = max(M(:))-min(M(:)); + ymin = min(M(:))-d/20; + ymax = max(M(:))+d/20; + otherwise + ymin = -1.05; + ymax = 1.05; +end + +% plot the data +clearSingleAxis(ax); +hold(ax,'on'); +plot(T,M(:,1),'LineWidth',gui.myui.linewidth,'Color','r','Parent',ax); +plot(T,M(:,2),'LineWidth',gui.myui.linewidth,'Color','g','Parent',ax); +plot(T,M(:,3),'LineWidth',gui.myui.linewidth,'Color','b','Parent',ax); +plot(T,sqrt(M(:,1).^2+M(:,2).^2),'LineWidth',gui.myui.linewidth,... + 'Color','m','Parent',ax); +plot(T,Mamp,'LineWidth',gui.myui.linewidth,'Color','k',... + 'LineStyle','--','Parent',ax); +set(ax,'XLim',[min(T) max(T)],'YLim',[ymin ymax]); + +% ------------------------------------------------------------------------- +% plot vertical line at end of switch-off ramp +if (strcmp(data.basic.type,'prepol') || strcmp(data.basic.type,'prepolpulse'))... + && Tramp < Tsim + plot([Tramp Tramp],get(ax,'YLim'),'LineStyle','--',... + 'Color',myui.color.prepol,'LineWidth',1,'Tag','MarkerLines',... + 'HandleVisibility','off','Parent',ax); +end +% plot vertical line at end of pulse +if strcmp(data.basic.type,'pulse') && Ttau < Tsim + plot([Ttau Ttau],get(ax,'YLim'),'LineStyle','--',... + 'Color',myui.color.pulse,'LineWidth',1,'Tag','MarkerLines',... + 'HandleVisibility','off','Parent',ax); +end +% plot vertical line at end of pulse +if strcmp(data.basic.type,'prepolpulse') + plot([Ttau+Tramp+Twait Ttau+Tramp+Twait],get(ax,'YLim'),'LineStyle','--',... + 'Color',myui.color.pulse,'LineWidth',1,'Tag','MarkerLines',... + 'HandleVisibility','off','Parent',ax); + if Twait > 0 + plot([Tramp+Twait Tramp+Twait],get(ax,'YLim'),'LineStyle','--',... + 'Color',myui.color.wait,'LineWidth',1,'Tag','MarkerLines',... + 'HandleVisibility','off','Parent',ax); + end +end +% ------------------------------------------------------------------------- +hold(ax,'off'); + +% axis settings +grid(ax,'on'); +set(get(ax,'XLabel'),'String','t [ms]'); +set(get(ax,'YLabel'),'String','magnetization M'); +% legend +lh = legend(ax,'x','y','z','|xy|','|M|','Location','SouthWest'); + +% adiabatic quality of switch-off ramp +if strcmp(data.basic.type,'prepol') || strcmp(data.basic.type,'prepolpulse') + set(get(lh,'Title'),'String',['p=',sprintf('%4.3f',data.results.prepol.p)]) +end +% font size +set(ax,'FontSize',gui.myui.axfontsize); + +end + +%% magnetization components on Bloch sphere +function plotSphere(data,gui,frame) +myui = gui.myui; + +% for plotting everything is in [ms] +T = data.results.basic.T.*1e3; + +% all relevant time marker +Tsim = data.basic.Tsim; +Ttau = data.pulse.Ttau; +Tramp = data.prepol.Tramp; +Twait = data.pulse.Twait; + +% choose reference frame to plot +switch frame + case 'lab' + M = data.results.basic.M; + ax = gui.axes_handles.SphereL; + case 'rot' + M = data.results.basic.Mrot; + ax = gui.axes_handles.SphereR; +end +% norm of magnetization vector +Mamp = sqrt(M(:,1).^2+M(:,2).^2+M(:,3).^2); + +% for visualization purposes M always gets normalized on Bloch sphere +M = M./Mamp(1); + +% chhose what to plot depending on simulation type +switch data.basic.type + case 'std' + indS1 = 1:numel(T); % relaxation + indS2 = []; % relaxation at end of "prepolpulse"-type + indR = []; % switch-off ramp + indB = []; % switch-off B-field + indP = []; % pulse + indE = numel(T); % end point + Beffn = [0 0 0]; + + case 'prepol' + indS1 = T>Tramp; + indS2 = []; + indR = T<=Tramp; + indB = []; + indP = []; + indE = numel(T); + % switch-off B-field trajectory + Bamp = sqrt(data.results.prepol.Beff(:,1).^2+data.results.prepol.Beff(:,2).^2+data.results.prepol.Beff(:,3).^2); + Beffn = data.results.prepol.Beff./Bamp; + + case 'pulse' + indS1 = T>Ttau; + indS2 = []; + indR = []; + indB = []; + indP = T<=Ttau; + indE = numel(T); + Beffn = [0 0 0]; + + case 'prepolpulse' + indS2 = T>Tramp & T<=Tramp+Twait; + indS1 = T>Tramp+Twait+Ttau; + indR = T<=Tramp; + indB = []; + indP = T>Tramp+Twait & T<=Tramp+Twait+Ttau; + indE = numel(T); + % switch-off B-field trajectory + Bamp = sqrt(data.results.prepol.Beff(:,1).^2+data.results.prepol.Beff(:,2).^2+data.results.prepol.Beff(:,3).^2); + Beffn = data.results.prepol.Beff./Bamp; +end + +% plot data +clearSingleAxis(ax); +hold(ax,'on'); +plot3(M(indS1,1),M(indS1,2),M(indS1,3),'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.basic,'Parent',ax); +plot3(M(indS2,1),M(indS2,2),M(indS2,3),'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.wait,'Parent',ax); +plot3(M(indP,1),M(indP,2),M(indP,3),'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.pulse,'Parent',ax); +plot3(M(indR,1),M(indR,2),M(indR,3),'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.prepol,'Parent',ax); +plot3(Beffn(:,1),Beffn(:,2),Beffn(:,3),'LineWidth',gui.myui.linewidth,... + 'Color',myui.color.prepolB,'Parent',ax) +plot3(M(indE,1),M(indE,2),M(indE,3),'ko','MarkerSize',8,'Parent',ax); +% plot actual Bloch sphere +plotBSphere(18,18,ax); +% axis settings +view(ax,[-35 30]); +hold(ax,'off'); +set(ax,'XLim',[-1.05 1.05],'YLim',[-1.05 1.05],'ZLim',[-1.05 1.05]) +set(ax,'Color','w','XColor','none','YColor','none','ZColor','none'); +axis(ax,'equal'); +axis(ax,'tight'); + +end + +%% FFT of magnetization and pulse +function plotFFT(data,gui,type) +myui = gui.myui; + +% Larmor freq. [Hz] +fL = getOmega0(data.basic.gamma,data.basic.B0)/2/pi; + +% choose what to plot +switch type + case 'M' + ax = gui.axes_handles.MagFFT; + f = data.results.basic.Mspec.fx; + X = data.results.basic.Mspec.X; + lgdstr = {'Mxy','\omega_0'}; + case 'B' + ax = gui.axes_handles.PulseFFT; + f = data.results.pulse.Bspec.fx; + X = data.results.pulse.Bspec.X; + lgdstr = {'B','\omega_0'}; +end + +% plot data +clearSingleAxis(ax); +hold(ax,'on'); +plot(f,abs(X),'r','Parent',ax); +% vertical line indicating Larmor frequency +line([fL fL],[0 max(abs(X))],'Color','k','LineStyle','--',... + 'LineWidth',0.75,'Parent',ax); +hold(ax,'off'); +% axis settings +set(ax,'XLim',[-abs(2*fL) abs(2*fL)],'YLim',[0 max(abs(X))].*1.1); +grid(ax,'on'); +set(get(ax,'XLabel'),'String','F [Hz]'); +set(get(ax,'YLabel'),'String','amplitude'); +% legend +legend(ax,lgdstr,'Location','NorthEast'); +% font size +set(ax,'FontSize',gui.myui.axfontsize); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/switchToolTips.m b/functions/interface/switchToolTips.m new file mode 100644 index 0000000..d74f3e4 --- /dev/null +++ b/functions/interface/switchToolTips.m @@ -0,0 +1,88 @@ +function switchToolTips(gui,onoff) %#ok +%switchToolTips switches GUI tool tips either "on" or "off" +% +% Syntax: +% switchToolTips(gui,onoff) +% +% Inputs: +% gui - figure gui elements structure +% onoff - 'on' or 'off' +% +% Outputs: +% none +% +% Example: +% switchToolTips(gui,'on') +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +%% list of handles that have switchable tool tips +h = {'check_handles','edit_handles','popup_handles','push_handles'}; + +%% process all handles +switch lower(onoff) + case 'off' % if it is off, switch it on + for i = 1:numel(h) + eval(['fnames = fieldnames(gui.',h{i},');']); + for j = 1:numel(fnames) + eval(['ud = get(gui.',h{i},'.',fnames{j},... + ',''UserData'');']); + if isfield(ud,'Tooltipstr') + tstr = ud.Tooltipstr; + eval(['set(gui.',h{i},'.',fnames{j},... + ',''ToolTipString'',tstr);']); + end + end + end + + case 'on' % if it is on, switch it off + for i = 1:numel(h) + eval(['fnames = fieldnames(gui.',h{i},');']); + for j = 1:numel(fnames) + eval(['ud = get(gui.',h{i},'.',fnames{j},... + ',''UserData'');']); + if isfield(ud,'Tooltipstr') + tstr = ud.Tooltipstr; + eval(['set(gui.',h{i},'.',fnames{j},... + ',''ToolTipString'','''');']); + end + end + end +end + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/functions/interface/updateStatusInformation.m b/functions/interface/updateStatusInformation.m new file mode 100644 index 0000000..cd9807a --- /dev/null +++ b/functions/interface/updateStatusInformation.m @@ -0,0 +1,92 @@ +function updateStatusInformation(fig) +%updateStatusInformation updates all fields inside the bottom status bar +% +% Syntax: +% updateStatusInformation(fig) +% +% Inputs: +% fig - figure handle +% +% Outputs: +% none +% +% Example: +% updateStatusInformation(fig) +% +% Other m-files required: +% none +% +% Subfunctions: +% none +% +% MAT-files required: +% none +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% get GUI data +data = getappdata(fig,'data'); +gui = getappdata(fig,'gui'); + +set(gui.text_handles.TimerStat,'String',['Calc. Time: ',sprintf('%5.3f',data.info.Timer),'s']); + +switch get(gui.check_handles.PrePol,'Value') + case 1 + set(gui.text_handles.PrePolStat,'String','Pre-Polarization: ON'); + case 0 + set(gui.text_handles.PrePolStat,'String','Pre-Polarization: OFF'); +end + +switch get(gui.check_handles.Pulse,'Value') + case 1 + set(gui.text_handles.PulseStat,'String','Pulse: ON'); + case 0 + set(gui.text_handles.PulseStat,'String','Pulse: OFF'); +end + +switch data.pulse.Type + case {'MIDI_OR','MIDI_AP'} + set(gui.text_handles.MIDIStat,'String','Discrete Pulse: ON'); + otherwise + set(gui.text_handles.MIDIStat,'String','Discrete Pulse: OFF'); +end + +switch data.info.ToolTips + case 1 + set(gui.text_handles.TooltipsStat,'String','Tooltips: ON'); + case 0 + set(gui.text_handles.TooltipsStat,'String','Tooltips: OFF'); +end + +set(gui.text_handles.VersionStat,'String',['Version: ',gui.myui.version]); + +% Matlab takes some time +pause(0.001); + +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/scripts/example1.m b/scripts/example1.m new file mode 100644 index 0000000..9b5f08b --- /dev/null +++ b/scripts/example1.m @@ -0,0 +1,271 @@ +% script: example1.m +% This script demonstrates the basic use of the BLOCHUS ode-solver. Two +% different protons (H & He) are used to show the effect of the sign of the +% gyromagnetic ratio \gamma +% 1.) Hydrogen proton (gyromagnetic ratio > 0 ) +% 2.) Helium proton (gyromagnetic ratio < 0 ) +% +% general settings: +% -> magnetic field B0 is set to 50 µT +% -> fL(H) = -2128.9 Hz +% -> fL(He) = 1621.7 Hz +% -> simulation time is 5 ms +% -> T1 and T2 relaxation times are 1 ms and 0.5 ms, respectively +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% clear data +clear variables; clc; + +% activate different tests +% 1 - using different protons with different signs in \gamma +% this will create two figures corresponding to "example1a_ref" and "example1b_ref" +% 2 - comparison of relaxation time effect +% this will create one figure corresponding to "example1c_ref" +usetest = [1 1]; + +%% basic settings +% get default values +% defaults = BLOCHUS_loadDefaults('basic'); +zunit = [0 0 1]'; % z unit vector +% ODE solver error tolerance +tol = 1e-9; +% ODE solver options +options = odeset('RelTol',tol,'AbsTol',[tol tol tol]); + +%% 1.) Hydrogen proton vs Helium proton +if usetest(1) + nucleus = '1H'; % hydrogen proton + + % parameter needed for the ODE + odeparam.type = 'std'; + odeparam.M0 = zunit; % equilibrium magnetization [A/m] + odeparam.B0 = 5e-5; % primary magnetic field B0 [T] + odeparam.T1 = 0.0010; % relaxation time T1 [s] + odeparam.T2 = 0.0005; % relaxation time T2 [s] + odeparam.gamma = getGyroRatio(nucleus); % gyromagnetic ratio [rad/s/T] + + % initial magnetization pointing towards +x + Minit = [1 0 0]; % [A/m] + % simulation time + Tsim = 0.005; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f1 = figure; set(f1,'Name','example1a_ref'); + ax1 = subplot(2,2,1); hold(ax1,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax1); + plot(T.*1000,M(:,2),'g','Parent',ax1); + plot(T.*1000,M(:,3),'b','Parent',ax1); + lgh = legend('Mx','My','Mz','Location','SouthEast'); + set(lgh,'FontSize',10); + set(ax1,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax1,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax1,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax2 = subplot(2,2,3); hold(ax2,'on'); + plot(T.*1000,Mrot(:,1),'r','Parent',ax2); + plot(T.*1000,Mrot(:,2),'g','Parent',ax2); + plot(T.*1000,Mrot(:,3),'b','Parent',ax2); + set(ax2,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax2,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax2,'Title'),'String','rot frame | ^{1}H'); + + ax3 = subplot(2,2,2); hold(ax3,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax3); + view([134 30]); hold off; + set(ax3,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax3,'Title'),'String','\gamma > 0'); + + ax4 = subplot(2,2,4); hold(ax4,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax4); + view([134 30]); hold off; + set(ax4,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight; + + % --- Helium --- + nucleus = '3He'; % helium proton + odeparam.gamma = getGyroRatio(nucleus); % gyromagnetic ratio [rad/s/T] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f2 = figure; set(f2,'Name','example1b_ref'); + ax5 = subplot(2,2,1); hold(ax5,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax5); + plot(T.*1000,M(:,2),'g','Parent',ax5); + plot(T.*1000,M(:,3),'b','Parent',ax5); + lgh = legend('Mx','My','Mz','Location','SouthEast'); + set(lgh,'FontSize',10); + set(ax5,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax5,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax5,'Title'),'String','lab frame | ^{3}He | B0 = 50µT'); + + ax6 = subplot(2,2,3); hold(ax6,'on'); + plot(T.*1000,Mrot(:,1),'r','Parent',ax6); + plot(T.*1000,Mrot(:,2),'g','Parent',ax6); + plot(T.*1000,Mrot(:,3),'b','Parent',ax6); + set(ax6,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax6,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax6,'Title'),'String','rot frame | ^{3}He'); + + ax7 = subplot(2,2,2); hold(ax7,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax7); + view([134 30]); hold off; + set(ax7,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight; + set(get(ax7,'Title'),'String','\gamma < 0'); + + ax8 = subplot(2,2,4); hold(ax8,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax8); + view([134 30]); hold off; + set(ax8,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight; +end + +%% 2.) relaxation time effect +% here we basically re-plot the Figs. 11.31 - 11.33 (p. 286/287) +% from Levitt, 2008, "spin dynamics" 2nd ed, to show the effect of varying +% T1/T2 ratios +if usetest(2) + nucleus = '1H'; % hydrogen proton + + % --- T2 = T1 + % parameter needed for the ODE + odeparam.type = 'std'; + odeparam.M0 = zunit; % equilibrium magnetization [A/m] + odeparam.B0 = 5e-5; % primary magnetic field B0 [T] + odeparam.T1 = 0.0010; % relaxation time T1 [s] + odeparam.T2 = 0.0010; % relaxation time T2 [s] + odeparam.gamma = getGyroRatio(nucleus); % gyromagnetic ratio [rad/s/T] + + % initial magnetization pointing towards +x + Minit = [1 0 0]; % [A/m] + % simulation time + Tsim = 0.005; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f3 = figure; set(f3,'Name','example1c_ref'); + ax1 = subplot(3,2,1); hold(ax1,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax1); + plot(T.*1000,M(:,2),'g','Parent',ax1); + plot(T.*1000,M(:,3),'b','Parent',ax1); + set(ax1,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax1,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax1,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax2 = subplot(3,2,2); hold(ax2,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax2); + view([134 30]); hold off; + set(ax2,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax2,'Title'),'String','T1 = T2'); + + % --- T2 = 2*T1 + odeparam.T2 = 0.0020; % relaxation time T2 [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + ax3 = subplot(3,2,3); hold(ax3,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax3); + plot(T.*1000,M(:,2),'g','Parent',ax3); + plot(T.*1000,M(:,3),'b','Parent',ax3); + lgh = legend('Mx','My','Mz','Location','SouthEast'); + set(lgh,'FontSize',10); + set(ax3,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax3,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax3,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax4 = subplot(3,2,4); hold(ax4,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax4); + view([134 30]); hold off; + set(ax4,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax4,'Title'),'String','T2 = 2T1'); + + % --- T1 = 2*T2 + odeparam.T2 = 0.0005; % relaxation time T2 [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + ax5 = subplot(3,2,5); hold(ax5,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax5); + plot(T.*1000,M(:,2),'g','Parent',ax5); + plot(T.*1000,M(:,3),'b','Parent',ax5); + set(ax5,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax5,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax5,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax6 = subplot(3,2,6); hold(ax6,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax6); + view([134 30]); hold off; + set(ax6,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax6,'Title'),'String','T1 = 2T2'); +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/scripts/example1a_ref.png b/scripts/example1a_ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ee3c6e114b639fe483a110031fd59e47b8629809 GIT binary patch literal 182939 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�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 z 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

CGU>)r!;~`D2M*Y{D7X(e8 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

XK841ER{bfalLUDkL5B>>?0P?M9V%2bsJ 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 0 ) +% +% settings: +% -> magnetic field B0 is set to 50 µT +% -> fL(H) = -2128.9 Hz +% -> pulse length is set to 5 ms +% -> different pulses are used (pi/2, pi) +% -> effect of different pulse axis +% -> effect of frequency offsets +% -> T1 and T2 relaxation times are 1 ms and 0.5 ms, respectively +% +% See also: BLOCHUS +% Author: Thomas Hiller +% email: thomas.hiller[at]leibniz-liag.de +% License: GNU GPLv3 (at end) + +%------------- BEGIN CODE -------------- + +% clear data +clear variables; clc; + +% activate different tests +% 1 - pi/2 - pulse +% this will create a figure corresponding to "example2a_ref" +% 2 - pi - pulse +% this will create a figure corresponding to "example2b_ref" +% 3 - pi/2 - pulses with different pulse axes +% this will create a figure corresponding to "example2c_ref" +% 4 - pi/2 pulses with different frequency offsets +% this will create a figure corresponding to "example2d_ref" +usetest = [1 1 1 1]; + +%% basic settings +zunit = [0 0 1]'; % z unit vector +% ODE solver error tolerance +tol = 1e-9; +% ODE solver options +options = odeset('RelTol',tol,'AbsTol',[tol tol tol]); + +%% standard parameter +nucleus = '1H'; % hydrogen proton +% parameter needed for the ODE +odeparam.type = 'pulse'; +odeparam.M0 = zunit; % equilibrium magnetization [A/m] +odeparam.B0 = 5e-5; % primary magnetic field B0 [T] +odeparam.T1 = 0.0010; % relaxation time T1 [s] +odeparam.T2 = 0.0005; % relaxation time T2 [s] +odeparam.gamma = getGyroRatio(nucleus); % gyromagnetic ratio [rad/s/T] + +%% pulse modulation standard values +fmod.PulseType = 'pi_half'; +fmod.shape = 'const'; +fmod.t0 = 0; +fmod.t1 = 0.005; +fmod.t = 0; +fmod.v0 = 0; +fmod.v1 = 0; +fmod.A = 1; +fmod.B = 0; + +Imod.shape = 'const'; +Imod.useQ = 0; +Imod.Q = 0; +Imod.Qdf = 0; +Imod.t0 = 0; +Imod.t1 = 0.005; +Imod.t = 0; +Imod.v0 = 1; +Imod.v1 = 1; +Imod.A = 1; +Imod.B = 0; + +%% 1.) pi/2 pulse +if usetest(1) + % excitation pulse parameter + odeparam.RDP = 0; + odeparam.Ttau = 0.005; % [s] + pulseparam.PulseType = fmod.PulseType; + pulseparam.Amp = odeparam.B0*abs((pi/2/(odeparam.gamma*odeparam.B0*odeparam.Ttau))); + pulseparam.gamma = odeparam.gamma; + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + pulseparam.fmod = fmod; + pulseparam.Imod = Imod; + pulseparam.phi = 0; + pulseparam.PulseAxis = '+x'; + pulseparam.PulsePolarization = 'circular'; + + odeparam.pulseparam = pulseparam; + + % initial magnetization pointing towards B0 (+z) + Minit = zunit; % [A/m] + % simulation time + Tsim = odeparam.Ttau; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f1 = figure; set(f1,'Name','example2a_ref'); + ax1 = subplot(2,2,1); hold(ax1,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax1); + plot(T.*1000,M(:,2),'g','Parent',ax1); + plot(T.*1000,M(:,3),'b','Parent',ax1); + lgh = legend('Mx','My','Mz','Location','SouthEast'); + set(lgh,'FontSize',10); + set(ax1,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax1,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax1,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax2 = subplot(2,2,3); hold(ax2,'on'); + plot(T.*1000,Mrot(:,1),'r','Parent',ax2); + plot(T.*1000,Mrot(:,2),'g','Parent',ax2); + plot(T.*1000,Mrot(:,3),'b','Parent',ax2); + set(ax2,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax2,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax2,'Title'),'String','rot frame | ^{1}H | B1 ~ 1.17µT'); + + ax3 = subplot(2,2,2); hold(ax3,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax3); + view([134 30]); hold off; + set(ax3,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax3,'Title'),'String','\gamma > 0'); + + ax4 = subplot(2,2,4); hold(ax4,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax4); + view([134 30]); hold off; + set(ax4,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight; + set(get(ax4,'Title'),'String','(\pi/2)_{+x} - pulse'); +end + +%% 2.) pi pulse +if usetest(2) + fmod.PulseType = 'pi'; + % excitation pulse parameter + odeparam.RDP = 0; + odeparam.Ttau = 0.005; % [s] + pulseparam.PulseType = fmod.PulseType; + pulseparam.Amp = odeparam.B0*abs((pi/(odeparam.gamma*odeparam.B0*odeparam.Ttau))); + pulseparam.gamma = odeparam.gamma; + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + pulseparam.fmod = fmod; + pulseparam.Imod = Imod; + pulseparam.phi = 0; + pulseparam.PulseAxis = '+x'; + pulseparam.PulsePolarization = 'circular'; + + odeparam.pulseparam = pulseparam; + + % initial magnetization pointing towards B0 (+z) + Minit = zunit; % [A/m] + % simulation time + Tsim = odeparam.Ttau; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f2 = figure; set(f2,'Name','example2b_ref'); + ax1 = subplot(2,2,1); hold(ax1,'on'); + plot(T.*1000,M(:,1),'r','Parent',ax1); + plot(T.*1000,M(:,2),'g','Parent',ax1); + plot(T.*1000,M(:,3),'b','Parent',ax1); + lgh = legend('Mx','My','Mz','Location','SouthEast'); + set(lgh,'FontSize',10); + set(ax1,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax1,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax1,'Title'),'String','lab frame | ^{1}H | B0 = 50µT'); + + ax2 = subplot(2,2,3); hold(ax2,'on'); + plot(T.*1000,Mrot(:,1),'r','Parent',ax2); + plot(T.*1000,Mrot(:,2),'g','Parent',ax2); + plot(T.*1000,Mrot(:,3),'b','Parent',ax2); + set(ax2,'XLim',[0 5],'XTick',0:1:5,'XTickLabel',{'0','1','2','3','4','5 ms'}); + set(ax2,'YLim',[-1 1],'YTick',-1:0.25:1,'YTickLabel',{'-1','','-0.5','','0','','0.5','','1'}); + set(get(ax2,'Title'),'String','rot frame | ^{1}H | B1 ~ 2.35µT'); + + ax3 = subplot(2,2,2); hold(ax3,'on'); + plot3(M(:,1),M(:,2),M(:,3),'k'); + plotBSphere(30,30,ax3); + view([134 30]); hold off; + set(ax3,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight + set(get(ax3,'Title'),'String','\gamma > 0'); + + ax4 = subplot(2,2,4); hold(ax4,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax4); + view([134 30]); hold off; + set(ax4,'Color','w','XColor','none','YColor','none',... + 'ZColor','none'); + axis equal tight; + set(get(ax4,'Title'),'String','(\pi)_{+x} - pulse'); +end + +%% 3.) pi/2 pulses with different pulse axes +if usetest(3) + fmod.PulseType = 'pi_half'; + % excitation pulse parameter + odeparam.RDP = 0; + odeparam.Ttau = 0.005; % [s] + pulseparam.PulseType = fmod.PulseType; + pulseparam.Amp = odeparam.B0*abs((pi/2/(odeparam.gamma*odeparam.B0*odeparam.Ttau))); + pulseparam.gamma = odeparam.gamma; + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + pulseparam.fmod = fmod; + pulseparam.Imod = Imod; + pulseparam.phi = 0; + pulseparam.PulseAxis = '+x'; + pulseparam.PulsePolarization = 'circular'; + + odeparam.pulseparam = pulseparam; + + % initial magnetization pointing towards B0 (+z) + Minit = zunit; % [A/m] + % simulation time + Tsim = odeparam.Ttau; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + f3 = figure; set(f3,'Name','example2c_ref'); + ax1 = subplot(2,2,1); hold(ax1,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax1); + view([134 30]); hold off; + set(ax1,'Color','w','XColor','none','YColor','none','ZColor','none'); + axis equal tight; + set(get(ax1,'Title'),'String','(\pi/2)_{+x} - pulse'); + + % +y pulse + pulseparam.PulseAxis = '+y'; + odeparam.pulseparam = pulseparam; + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + ax2 = subplot(2,2,2); hold(ax2,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax2); + view([134 30]); hold off; + set(ax2,'Color','w','XColor','none','YColor','none','ZColor','none'); + axis equal tight; + set(get(ax2,'Title'),'String','(\pi/2)_{+y} - pulse'); + + % -x pulse + pulseparam.PulseAxis = '-x'; + odeparam.pulseparam = pulseparam; + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + ax3 = subplot(2,2,3); hold(ax3,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax3); + view([134 30]); hold off; + set(ax3,'Color','w','XColor','none','YColor','none','ZColor','none'); + axis equal tight; + set(get(ax3,'Title'),'String','(\pi/2)_{-x} - pulse'); + + % -y pulse + pulseparam.PulseAxis = '-y'; + odeparam.pulseparam = pulseparam; + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + Mrot = getMrot(M,getOmega0(odeparam.gamma,odeparam.B0).*T); + + ax4 = subplot(2,2,4); hold(ax4,'on'); + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax4); + view([134 30]); hold off; + set(ax4,'Color','w','XColor','none','YColor','none','ZColor','none'); + axis equal tight; + set(get(ax4,'Title'),'String','(\pi/2)_{-y} - pulse'); +end + +%% 4.) pi/2 pulses with different frequency offsets +% here we basically re-plot Fig. 10.28 (p. 255) from +% Levitt, 2008, "spin dynamics" 2nd ed +% positive ratio means the pulse frequency is "higher" as absolute value +% (i.e. instead of -2000 Hz it is -2100 Hz) +% because of the negative Larmor frequency of H-protons the rotation axis +% dips downwards for negative ratios +if usetest(4) + % df/omega_nut ratio + ratio = -4:1:4; + + fmod.PulseType = 'pi_half'; + % excitation pulse parameter + odeparam.RDP = 0; + odeparam.Ttau = 0.005; % [s] + pulseparam.PulseType = fmod.PulseType; + pulseparam.Amp = odeparam.B0*abs((pi/2/(odeparam.gamma*odeparam.B0*odeparam.Ttau))); + pulseparam.gamma = odeparam.gamma; + pulseparam.omega0 = getOmega0(odeparam.gamma,odeparam.B0); + pulseparam.fmod = fmod; + pulseparam.Imod = Imod; + pulseparam.phi = 0; + pulseparam.PulseAxis = '+y'; + pulseparam.PulsePolarization = 'circular'; + + % nutation frequency for a pi/2 pulse with 5 ms is 50 Hz + omega_nut = (pi/2)/odeparam.Ttau/2/pi; % [Hz] + + f4 = figure; set(f4,'Name','example2d_ref'); + for i = 1:numel(ratio) + + df = ratio(i)*omega_nut; % frequency offsets [Hz] + pulseparam.fmod.v0 = df; + pulseparam.fmod.v1 = df; + + odeparam.pulseparam = pulseparam; + + % initial magnetization pointing towards B0 (+z) + Minit = zunit; % [A/m] + % simulation time + Tsim = odeparam.Ttau; % [s] + + % ODE solver call + % OUTPUT: time T and magnetization M + [T,M] = ode45(@(t,m) fcn_BLOCHUS_ode(t,m,odeparam),[0 Tsim],Minit,options); + + % in order to get M in the rotating frame get the pulse phase theta + % for all time steps + pulseparam.fmod.t = T; + pulseparam.Imod.t = T; + pulseparam.t = T; + [Bpulse,~,~,theta]= getPulseTimeSeries(pulseparam); + + % rotate M(T) vector into rotating reference frame + Mrot = getMrot(M,theta); + + ax(i) = subplot(3,3,i); hold(ax(i),'on'); %#ok<*SAGROW> + plot3(Mrot(:,1),Mrot(:,2),Mrot(:,3),'k'); + plotBSphere(30,30,ax(i)); + view([134 30]); hold off; + set(ax(i),'Color','w','XColor','none','YColor','none','ZColor','none'); + axis equal; + set(get(ax(i),'Title'),'String',['\Omega_0 / \omega_{nut} = ',num2str(ratio(i))]); + end +end + +%------------- END OF CODE -------------- + +%% License: +% GNU GPLv3 +% +% BLOCHUS +% Copyright (C) 2019 Thomas Hiller +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . diff --git a/scripts/example2a_ref.png b/scripts/example2a_ref.png new file mode 100644 index 0000000000000000000000000000000000000000..110f6298af94cefea560f6114bdd4f0b3ae05cb0 GIT binary patch literal 251004 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%0DAwt% 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�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