Index: mttroot/mtt/bin/trans/dae2cse_r ================================================================== --- mttroot/mtt/bin/trans/dae2cse_r +++ mttroot/mtt/bin/trans/dae2cse_r @@ -266,43 +266,29 @@ END; % Find MTTGu; write "% Find MTTGu;"; -IF MTTNu>0 THEN -BEGIN matrix MTTGu(MTTNz,MTTNu); FOR j := 1:MTTNu DO BEGIN uj := MTTu(j,1); FOR i := 1:MTTNz DO MTTGu(i,j) := df(MTTZ(i,1), uj, 1); END; -END -ELSE - MTTGu := 0; - %Create E matrices write "%Create E matrices"; IF MTTNx>0 THEN BEGIN matrix MTTExx(MTTNx,MTTNx); MTTExx := MTTFx*MTTGx; +matrix MTTExu(MTTNx,MTTNu); MTTExu := MTTFx*MTTGu; matrix MTTEyx(MTTNy,MTTNx); MTTEyx := MTTFy*MTTGx; matrix MTTE(MTTNx,MTTNx); MTTE := MTTI - MTTExx; -IF MTTNu>0 THEN - matrix MTTExu(MTTNx,MTTNu); MTTExu := MTTFx*MTTGu; -END; -END; - -IF MTTNu>0 THEN - BEGIN - matrix MTTEyu(MTTNy,MTTNu); MTTEyu := MTTFy*MTTGu; - END -ELSE - MTTEyu := 0; +END; +matrix MTTEyu(MTTNy,MTTNu); MTTEyu := MTTFy*MTTGu; %% The following gets rid of the dZs; there must be a better way. @@ -329,29 +315,21 @@ IF MTTNx>0 THEN BEGIN MTTEdX := MTTdX; %Ie MTTEdX is MTTdX with the dz terms deleted ie EdX. MTTdX := MTTdXs; %Restore the symbolic dX -IF MTTNu>0 THEN - %% Add on input derivative terms - MTTEdX := MTTEdX + MTTExu*MTTdu; -END; - -IF MTTNy>0 THEN - %% Add on output derivative terms - MTTEdx := MTTEdX + MTTEyx*(MTTE^(-1))*MTTEdX; -END; +%% Add on input derivative terms +MTTEdX := MTTEdX + MTTExu*MTTdu; +%% Add on output derivative terms +MTTEdx := MTTEdX + MTTEyx*(MTTE^(-1))*MTTEdX; END; %%%%%MTTY := MTTY + MTTEyx*MTTEdX; %%% This causes the matrix mismatch %%% MTTdXs and MTTdu need setting in _def.r file - -IF MTTNu>0 THEN - MTTY := MTTY + MTTEyu*MTTdu; -END; +MTTY := MTTY + MTTEyu*MTTdu; IF MTTNx>0 THEN MTTY := MTTY + MTTEyx*(MTTE^(-1))*MTTEdX;