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 |
| 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.000 |
| 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";
|
| ︙ | ︙ |