Overview
Comment: | 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 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/optimise-algebraic-equations | trunk |
Files: | files | file ages | folders |
SHA3-256: |
cc69033e71ad8d72d0e9b8b5cfdef19e |
User & Date: | geraint@users.sourceforge.net on 2002-06-05 11:14:51 |
Other Links: | branch diff | manifest | tags |
Context
2002-06-05
| ||
15:22:11 | fix_c.r called at ese2rdae stage so that pow gets fixed in ae.r. check-in: 9f3e8d8749 user: geraint@users.sourceforge.net tags: origin/optimise-algebraic-equations, trunk | |
11:14:51 |
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 | |
10:54:13 | Created branch optimise-algebraic-equations check-in: 22a486b2d4 user: gawthrop@users.sourceforge.net tags: origin/optimise-algebraic-equations, trunk | |
Changes
Modified mttroot/mtt/bin/trans/dae2cse_r from [e055f9ba28] to [4bd66676aa].
︙ | ︙ | |||
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 '{ |
︙ | ︙ |
Modified mttroot/mtt/bin/trans/def2write_r from [10c4312f8d] to [83e084d8bc].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.10 2002/04/28 18:41:27 geraint ## Fixed [ 549658 ] awk should be gawk. ## Replaced calls to awk with call to gawk. ## ## Revision 1.9 2001/07/27 23:29:10 geraint ## Optimises only when requested (-opt). ## | > > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.11 2002/05/17 09:14:58 geraint ## Optimises each line in a separate session. Allows larger models to be built. ## ## Revision 1.10 2002/04/28 18:41:27 geraint ## Fixed [ 549658 ] awk should be gawk. ## Replaced calls to awk with call to gawk. ## ## Revision 1.9 2001/07/27 23:29:10 geraint ## Optimises only when requested (-opt). ## |
︙ | ︙ | |||
77 78 79 80 81 82 83 84 85 86 87 88 89 90 | Nu=`mtt_getsize $sys u` # Inputs Ny=`mtt_getsize $sys y` # Outputs Nyz=`mtt_getsize $sys yz` # Zero outputs #Npar=`wc -l $sys\_sympar.txt | gawk '{print $1}'` # Set up representation-specific stuff case $rep in cse) matrices='EdX E' ns="$Nx $Nx" ms="1 $Nx" ;; csex) matrices='EdX' | > > > > > | 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | Nu=`mtt_getsize $sys u` # Inputs Ny=`mtt_getsize $sys y` # Outputs Nyz=`mtt_getsize $sys yz` # Zero outputs #Npar=`wc -l $sys\_sympar.txt | gawk '{print $1}'` # Set up representation-specific stuff case $rep in ae) matrices='Yz' ns="$Nyz" ms="1" ;; cse) matrices='EdX E' ns="$Nx $Nx" ms="1 $Nx" ;; csex) matrices='EdX' |
︙ | ︙ |
Modified mttroot/mtt/bin/trans/ese2rdae_r from [713fa3d927] to [78718944fc].
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # Copyright (c) P.J.Gawthrop, 1991, 1994, 1996 ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.11 2001/07/06 00:46:50 gawthrop ## Added -cr option -- forces cr to be loaded before the ese.r file ## This avoids causality problems when using multi-port Rs to represent ## arbitary equations ## ## Revision 1.10 2000/11/30 15:23:16 peterg ## Taken out all subsystem stuff - now done in mtt using | > > > > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # Copyright (c) P.J.Gawthrop, 1991, 1994, 1996 ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.12 2001/07/23 23:31:17 gawthrop ## Added -cr option to load CRs first - avoids alg. loops with R ## implementation of mutiports. ## ## Revision 1.11 2001/07/06 00:46:50 gawthrop ## Added -cr option -- forces cr to be loaded before the ese.r file ## This avoids causality problems when using multi-port Rs to represent ## arbitary equations ## ## Revision 1.10 2000/11/30 15:23:16 peterg ## Taken out all subsystem stuff - now done in mtt using |
︙ | ︙ | |||
96 97 98 99 100 101 102 103 104 105 106 107 108 109 | case $1 in -I ) info=info;; -cr ) load_cr=yes; blurb2=' using cr and subs first'; ;; -partition ) partition=yes; blurb='with partitioning'; ;; *) echo "$1 is an invalid argument - ignoring"; exit ;; | > > > > | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | case $1 in -I ) info=info;; -cr ) load_cr=yes; blurb2=' using cr and subs first'; ;; -fixcc ) include=`echo 'in "'$MTT_LIB'/reduce/fix_c.r";'` blurb3='fixing c and cc code'; ;; -partition ) partition=yes; blurb='with partitioning'; ;; *) echo "$1 is an invalid argument - ignoring"; exit ;; |
︙ | ︙ | |||
132 133 134 135 136 137 138 | if [ -n "${load_cr}" ]; then load_cr_comm="in \"${crname}\";" load_subs_comm="in \"${subsname}\";" fi # Inform user | | > > > | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | if [ -n "${load_cr}" ]; then load_cr_comm="in \"${crname}\";" load_subs_comm="in \"${subsname}\";" fi # Inform user echo Creating $daename $blurb $blurb2 $blurb3 # Remove the old log file rm -f $logname # Use symbolic algebra to accomplish the transformation $SYMBOLIC >$logname << EOF %Read in the cr and sub when -cr is set $load_cr_comm $load_subs_comm %Read the formatting function in "$MTTPATH/trans/reduce_matrix.r"; % Definitions in "$defname"; % Elementary system equations in "$esename"; % Fix c code if required $include OFF Echo; OFF Nat; %Create the output file OUT "$daename"; |
︙ | ︙ |