cpf_nose_event_cb
PURPOSE
CPF_NOSE_EVENT_CB Callback to handle NOSE events
SYNOPSIS
function [nx, cx, done, rollback, evnts, cb_data, results] = cpf_nose_event_cb(k, nx, cx, px, done, rollback, evnts, cb_data, cb_args, results)
DESCRIPTION
CROSS-REFERENCE INFORMATION
This function calls:
This function is called by:
SOURCE CODE
0001 function [nx, cx, done, rollback, evnts, cb_data, results] = cpf_nose_event_cb(...
0002 k, nx, cx, px, done, rollback, evnts, cb_data, cb_args, results)
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 if k <= 0 || done.flag
0027 return;
0028 end
0029
0030
0031 stop_at = cb_data.mpopt.cpf.stop_at;
0032
0033
0034 if ~rollback || nx.step == 0
0035 for i = 1:length(evnts)
0036 if strcmp(evnts(i).name, 'NOSE') && evnts(i).zero
0037 if nx.step == 0
0038 evnts(i).msg = ...
0039 sprintf('Nose point eliminated by limit induced bifurcation at %d continuation steps, lambda = %.4g.', k, nx.lam);
0040 else
0041 evnts(i).msg = ...
0042 sprintf('Reached steady state loading limit in %d continuation steps, lambda = %.4g.', k, nx.lam);
0043 end
0044
0045
0046
0047 if ischar(stop_at) && strcmp(stop_at, 'NOSE');
0048 done.flag = 1;
0049 done.msg = evnts(i).msg;
0050 end
0051 break;
0052 end
0053 end
0054 end
Generated on Fri 09-Oct-2020 11:21:31 by m2html © 2005