Differences From Artifact [e055f9ba28]:
- Executable file
mttroot/mtt/bin/trans/dae2cse_r
— part of check-in
[66bb5feadf]
at
2002-04-28 18:41:27
on branch origin/master
— Fixed [ 549658 ] awk should be gawk.
Replaced calls to awk with call to gawk. (user: geraint@users.sourceforge.net, size: 10891) [annotate] [blame] [check-ins using] [more...]
To Artifact [4bd66676aa]:
- Executable file
mttroot/mtt/bin/trans/dae2cse_r
— part of check-in
[ea9834becc]
at
2002-06-05 11:14:51
on branch origin/optimise-algebraic-equations
— ae.r now generated using def2write_r like cse?.r
fix_c.r called at ese2rdae stage so that pow gets fixed in ae.r.These changes produce the desired result (optimised algebraic equations) but
have highlighted a problem; when optimisation fails, Reduce does not write
a result. For complicated systems, this can lead to missing assignments in
the resultant code. (user: geraint@users.sourceforge.net, size: 11101) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Copyright (c) P.J.Gawthrop 1991, 1992, 1994. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.19 2001/10/26 01:01:49 geraint ## fixcc when rdae_is_dae (-cr). ## ## Revision 1.18 2001/10/05 23:37:32 geraint ## Fixed assignment statement in ae.r when RHS=0. ## ## Revision 1.17 2001/07/27 23:29:10 geraint | > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # Copyright (c) P.J.Gawthrop 1991, 1992, 1994. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.20 2002/04/28 18:41:26 geraint ## Fixed [ 549658 ] awk should be gawk. ## Replaced calls to awk with call to gawk. ## ## Revision 1.19 2001/10/26 01:01:49 geraint ## fixcc when rdae_is_dae (-cr). ## ## Revision 1.18 2001/10/05 23:37:32 geraint ## Fixed assignment statement in ae.r when RHS=0. ## ## Revision 1.17 2001/07/27 23:29:10 geraint |
︙ | ︙ | |||
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | *) echo "$1 is an invalid argument - ignoring" ;; esac shift done # Create the reduce output code def2write_r $optimise $1 cse def2write_r $optimise $1 csex # Version without E matrix def2write_r $optimise $1 cseo echo "Creating $1_cse.r $solve_msg $optimise_msg $fix_msg" echo "Creating $1_csex.r $optimise_msg" echo "Creating $1_cseo.r $optimise_msg" # Remove the old log file rm -f dae2cse_r.log # Remove some files | > > | | 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | *) echo "$1 is an invalid argument - ignoring" ;; esac shift done # Create the reduce output code def2write_r $optimise $1 ae def2write_r $optimise $1 cse def2write_r $optimise $1 csex # Version without E matrix def2write_r $optimise $1 cseo echo "Creating $1_ae.r $optimise_msg" echo "Creating $1_cse.r $solve_msg $optimise_msg $fix_msg" echo "Creating $1_csex.r $optimise_msg" echo "Creating $1_cseo.r $optimise_msg" # Remove the old log file rm -f dae2cse_r.log # Remove some files rm -f $1_ae.r? $1_cse.r? $1_cseo.r? # Use reduce to accomplish the transformation $SYMBOLIC >dae2cse_r.log << EOF %Read the formatting function in "$MTTPATH/trans/reduce_matrix.r"; |
︙ | ︙ | |||
317 318 319 320 321 322 323 | set(lhs(MTT_sol_i),rhs(MTT_sol_i)); END; % No algebraic variables left! MTTNYz := 0; END; % IF MTTNyz>0 and $solve | < < < < < < < < < < < > > > > > > > > > > > > | 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 | set(lhs(MTT_sol_i),rhs(MTT_sol_i)); END; % No algebraic variables left! MTTNYz := 0; END; % IF MTTNyz>0 and $solve OUT "$1_aej.r"; IF (MTTNyz>0) THEN % as above BEGIN WRITE "MATRIX MTTyzj(",MTTNyz,",",MTTNyz,")"; WRITE "%File: $1_aej.r"; FOR i := 1:MTTNyz DO FOR j := 1:MTTNyz DO BEGIN didj := df(MTTyz(i,1),mkid('mttui,j)); IF (didj NEQ 0) THEN WRITE "MTTyzj(",i,",",j,") := ",didj," +0"; END; END; WRITE ";END;"; SHUT "$1_aej.r"; IF MTTNyz>0 THEN % not $solve or solution failed BEGIN OUT "$1_ae.r1"; write "MATRIX MTTYZ(", MTTNyz, ",", 1, ")$"; SHUT "$1_ae.r1"; OUT "$1_ae.r2"; write "%File: $1_ae.r"; in ("$1_ae_write.r"); write "END;"; SHUT "$1_ae.r2"; END; % Create the matrix declarations OUT "$1_cse.r1"; write "%"; IF (MTTNx > 0) THEN BEGIN write "MATRIX MTTEdx(", MTTNx, ",", 1, ")$"; |
︙ | ︙ | |||
443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 | in ("$1_cseo_write.r"); write "END;"; SHUT "$1_cseo.r2"; END; quit; EOF touch $1_cseo.r1 touch $1_cseo.r2 cat $1_cse.r1 $1_cse.r2 > $1_cse.r cat $1_csex.r1 $1_csex.r2 > $1_csex.r cat $1_cseo.r1 $1_cseo.r2 > $1_cseo.r if [ "$solve" = "1" ]; then echo "Setting MTTNyz=0 in $1_def.r and updating other $1_def files" gawk '{ | > > | 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 | in ("$1_cseo_write.r"); write "END;"; SHUT "$1_cseo.r2"; END; quit; EOF touch $1_ae.r1 $1_ae.r2 touch $1_cseo.r1 touch $1_cseo.r2 cat $1_ae.r1 $1_ae.r2 > $1_ae.r cat $1_cse.r1 $1_cse.r2 > $1_cse.r cat $1_csex.r1 $1_csex.r2 > $1_csex.r cat $1_cseo.r1 $1_cseo.r2 > $1_cseo.r if [ "$solve" = "1" ]; then echo "Setting MTTNyz=0 in $1_def.r and updating other $1_def files" gawk '{ |
︙ | ︙ |