function simSettings=readSimulationSettings(settingFile,path,homePath) % Read settings file into settings struct. % % FUNCTION readSimulationSettings % % Author: Rui Yao % % Copyright (C) 2021, UChicago Argonne, LLC. All rights reserved. % % OPEN SOURCE LICENSE % % Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: % % 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. % 2. 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. % 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. % % % ****************************************************************************************************** % DISCLAIMER % % 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 HOLDER 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. % *************************************************************************************************** % if nargin<3 homePath=pwd; end if nargin<2 path=pwd; end simSettings=[]; try cd(path); eval(settingFile); % if ~exist('eventList','var');eventList=events;end if exist('nlvl','var');simSettings.nlvl=nlvl;end if exist('taylorN','var');simSettings.taylorN=taylorN;end if exist('alphaTol','var');simSettings.alphaTol=alphaTol;end if exist('diffTol','var');simSettings.diffTol=diffTol;end if exist('diffTolMax','var');simSettings.diffTolMax=diffTolMax;end if exist('method','var');simSettings.method=method;end if exist('diffTolCtrl','var');simSettings.diffTolCtrl=diffTolCtrl;end simSettings.eventList=eventList; simSettings.bsSyn=bsSyn; simSettings.bsBus=bsBus; simSettings.bsInd=bsInd; if exist('Efstd','var');simSettings.Efstd=Efstd;else simSettings.Efstd=1.2;end simSettings.evtLine=evtLine; simSettings.evtLineSpec=evtLineSpec; simSettings.evtZip=evtZip; simSettings.evtZipSpec=evtZipSpec; simSettings.evtZipSpec2=evtZipSpec2; simSettings.evtInd=evtInd; simSettings.evtIndSpec=evtIndSpec; simSettings.evtSyn=evtSyn; simSettings.evtSynSpec=evtSynSpec; simSettings.evtFault=evtFault; simSettings.evtFaultSpec=evtFaultSpec; simSettings.evtDyn=evtDyn; simSettings.evtDynPQ=evtDynPQ; simSettings.evtDynPV=evtDynPV; simSettings.evtDynInd=evtDynInd; simSettings.evtDynZip=evtDynZip; simSettings.evtDynSh=evtDynSh; simSettings.evtDynZipRamp=evtDynZipRamp; simSettings.evtDynTmech=evtDynTmech; simSettings.evtDynPm=evtDynPm; simSettings.evtDynEf=evtDynEf; simSettings.evtDynVref=evtDynVref; simSettings.evtDynEq1=evtDynEq1; cd(homePath); catch ME cd(homePath); rethrow(ME); end end