function invoke_openEMS( opts, logfile, silent ) % function invoke_openEMS( opts, logfile, silent ) % % internal method to invoke openEMS, use RunOpenEMS instead % % See also RunOpenEMS % % openEMS matlab interface % ----------------------- % author: Sebastian Held, Thorsten Liebig if nargin < 1 error 'specify the xml file to simulate' end if nargin < 3 silent = 0; end if (nargin < 2) || isempty(logfile) if isunix logfile = '/dev/null'; else logfile = 'nul:'; end end filename = mfilename('fullpath'); dir = fileparts( filename ); if isunix openEMS_bin = searchBinary('openEMS.sh', ... {[dir filesep '..' filesep '..' filesep], ... % try devel path [dir filesep '..' filesep '..' filesep '..' filesep '..' filesep 'bin' filesep]}); % try (default) install path else % assume windows openEMS_bin = searchBinary('openEMS.exe', [dir filesep '..' filesep '..' filesep]); end command = [openEMS_bin ' ' opts]; if ~silent if (isunix && nargin>1) command = [command ' 2>&1 | tee ' logfile]; end else command = [command ' > ' logfile ' 2>&1']; end exitcode = system(command); if (exitcode~=0); error(['openEMS binary exited with error-code ' num2str(exitcode)]); end