Comment: | Branch merge: merging-ode2odes-exe back to MAIN. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f8377144207ab444b46a5b3c0443641a |
User & Date: | geraint@users.sourceforge.net on 2001-03-19 02:28:53 |
Other Links: | branch diff | manifest | tags |
2001-03-21
| ||
03:24:59 | Calculate inputs before outputs (.cc). check-in: 19ce94128f user: geraint@users.sourceforge.net tags: origin/master, trunk | |
2001-03-19
| ||
02:28:53 | Branch merge: merging-ode2odes-exe back to MAIN. check-in: f837714420 user: geraint@users.sourceforge.net tags: origin/master, trunk | |
2001-02-19
| ||
06:33:19 | Removed operation form loop. check-in: fe41f9074c user: geraint@users.sourceforge.net tags: origin/master, trunk | |
Modified mttroot/mtt/bin/mtt from [7a138278c5] to [825ed9490d].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Header$ ## $Log$ ## Revision 1.292 2001/02/05 17:27:40 gawthrop ## Make sure _def.r exists before creating _state.txt ## ## Revision 1.291 2000/12/27 14:50:40 peterg ## This is the first CVS version (4.9). ## Commented out code now deleted ## | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Header$ ## $Log$ ## Revision 1.293.2.8 2001/03/19 01:35:31 geraint ## Reverted forced update check to main branch form, ready for merge. ## ## Revision 1.293.2.7 2001/03/17 09:51:06 geraint ## Implemented Runge-Kutta IV fixed-step method (-i rk4). ## ## Revision 1.293.2.6 2001/03/03 06:50:38 geraint ## Added #SUMMARY lines for ode2odes. ## ## Revision 1.293.2.5 2001/03/03 00:27:14 geraint ## Fixed ar options to work with GNU ar. Allow mtt to create dependencies for mtt_%.cc when making mtt_%.oct. ## ## Revision 1.293.2.4 2001/03/02 00:45:21 geraint ## Separated Euler and Implicit methods in .cc code and dependencies. ## ## Revision 1.293.2.3 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.293.2.2 2001/02/23 03:53:53 geraint ## Minor revisions. (ode2odes.exe works on GNU/Linux and ~GNU/Irix) ## ## Revision 1.293.2.1 2001/02/22 06:41:40 geraint ## Initial merge of ode2odes.exe into main mtt. ## standalone_rep.make deleted: rules moved to mtt, variables to mttrc. ## ## Revision 1.293 2001/02/06 04:39:08 geraint ## Added _standalone.exe representation. ## ## Revision 1.292 2001/02/05 17:27:40 gawthrop ## Make sure _def.r exists before creating _state.txt ## ## Revision 1.291 2000/12/27 14:50:40 peterg ## This is the first CVS version (4.9). ## Commented out code now deleted ## |
︙ | ︙ | |||
1060 1061 1062 1063 1064 1065 1066 1067 | integration_method=euler; mtt_switches="$mtt_switches euler"; ;; implicit) integration_method=implicit; mtt_switches="$mtt_switches implicit"; ;; *) | > > > > | | 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 | integration_method=euler; mtt_switches="$mtt_switches euler"; ;; implicit) integration_method=implicit; mtt_switches="$mtt_switches implicit"; ;; rk4) integration_method=rk4; mtt_switches="$mtt_switches rk4"; ;; *) echo $1 is an unknown integration method - use euler, rk4 or implicit; exit;; esac;; -s ) mtt_switches="$mtt_switches $1"; sensitivity=sensitivity ;; -ss ) mtt_switches="$mtt_switches $1"; |
︙ | ︙ | |||
1198 1199 1200 1201 1202 1203 1204 | echo ' -D debug -- leave log files etc' echo ' -I prints more information' echo ' -abg start at abg.m representation' echo ' -c c-code generation' echo ' -d <dir> use directory <dir>' echo ' -dc Maximise derivative (not integral) causality' echo ' -dc Maximise derivative (not integral) causality' | | | 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 | echo ' -D debug -- leave log files etc' echo ' -I prints more information' echo ' -abg start at abg.m representation' echo ' -c c-code generation' echo ' -d <dir> use directory <dir>' echo ' -dc Maximise derivative (not integral) causality' echo ' -dc Maximise derivative (not integral) causality' echo ' -i <implicit|euler|rk4> Use implicit, euler or rk4 integration' echo ' -o ode is same as dae' echo ' -oct use oct files in place of m files where appropriate' echo ' -opt optimise code generation' echo ' -p print environment variables' echo ' -partition partition hierachical system' echo ' -r reset time stamp on representation' echo ' -s try to generate sensitivity BG (experimental)' |
︙ | ︙ | |||
1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 | fi if [ -n "$sensitivity" ]; then sys=`echo $1 | cut -c 2-` sys_abg=$sys"_abg" fi ################################ # This is the main mtt programme ################################ ##echo Target is $target, Subsystem is $Subsystem, options are $mtt_switches $MAKE -S $verbose -f - $target << EOF # Cancel implicit rules I don't want %.dvi: %.tex # MTT implicit rules ## .oct files | > > > > > > > < | | < > > > > < | | | > > > > > > > > > > > > > | 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 | fi if [ -n "$sensitivity" ]; then sys=`echo $1 | cut -c 2-` sys_abg=$sys"_abg" fi ## Check octave version if [ `octave --version | awk -F\. '{print $2}'` ]; then define_octave_dev="-DOCTAVE_DEV" else define_octave_dev="" fi ################################ # This is the main mtt programme ################################ ##echo Target is $target, Subsystem is $Subsystem, options are $mtt_switches $MAKE -S $verbose -f - $target << EOF # Cancel implicit rules I don't want %.dvi: %.tex # MTT implicit rules ## .oct files $1_%.oct: $1_%.cc $1_def.h $1_sympar.h $1_cr.h echo Creating $1_\$*.oct; $MKOCTFILE $1_\$*.cc .PRECIOUS: mtt_%.oct mtt_%.oct: mtt_%.cc echo Compiling \$< ${MKOCTFILE} $define_octave_dev \$< ## .cc files .PRECIOUS: %.cc # Don't let mtt delete them $1_%.cc: $1_%.m mtt_m2cc.sh $1 \$* cat mtt_%.cc: ${MTT_LIB}/cc/mtt_%.cc cp ${MTT_LIB}/cc/mtt_\$*.cc mtt_\$*.cc ## .o files .PRECIOUS: $1_%.o $1_%.o: $1_%.cc $1_def.h $1_sympar.h $1_cr.h echo Compiling $1_\$*.cc ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $< -DSTANDALONE .PRECIOUS: mtt_%.o mtt_%.o: mtt_%.cc echo Compiling mtt_\$*.cc ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $< -DSTANDALONE $define_octave_dev # Generates code to write reduce code $1_ode_write.r: $1_def.m def2write_r $1 $2 ifeq ("$sensitivity","sensitivity") ifeq ("$level","0") |
︙ | ︙ | |||
2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 | mtt_update $1 logic update else mtt_update $1 logic endif # Dummy target FORCE: #SUMMARY numpar numerical parameter declaration (m) $1_numpar.m: $1_numpar.txt $1_sympars.txt mtt_txt2m $1 numpar #SUMMARY numpar numerical parameter declaration (c) #SUMMARY numpar numerical parameter declaration (view) | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 | mtt_update $1 logic update else mtt_update $1 logic endif # Dummy target FORCE: $1_ode2odes_common.m : $1_input.m $1_logic.m $1_numpar.m $1_simpar.m $1_state.m @echo > /dev/null $1_ode2odes_common.cc : $1_input.cc $1_logic.cc $1_numpar.cc $1_simpar.cc $1_state.cc @echo > /dev/null $1_ode2odes_common.o : $1_input.o $1_logic.o $1_numpar.o $1_simpar.o $1_state.o @echo "Creating $1_ode2odes_common.o" ar -cr \$@ \$^ $1_ode2odes_common.oct : $1_input.oct $1_logic.oct $1_numpar.oct $1_simpar.oct $1_state.oct @echo > /dev/null $1_ode2odes_euler.m $1_ode2odes_rk4.m : $1_ode.m $1_odeo.m @echo > /dev/null $1_ode2odes_euler.cc $1_ode2odes_rk4.cc : $1_ode.cc $1_odeo.cc @echo > /dev/null $1_ode2odes_euler.o $1_ode2odes_rk4.o : $1_ode.o $1_odeo.o mtt_euler.o @echo "Creating \$@" ar -cr \$@ \$^ $1_ode2odes_euler.oct : $1_ode.oct $1_odeo.oct mtt_euler.oct @echo > /dev/null $1_ode2odes_implicit.m : $1_cseo.m $1_csex.m $1_smxa.m $1_smxax.m @echo > /dev/null $1_ode2odes_implicit.cc : $1_cseo.cc $1_csex.cc $1_smxa.cc $1_smxax.cc @echo > /dev/null $1_ode2odes_implicit.o : $1_cseo.o $1_csex.o $1_smxa.o $1_smxax.o mtt_implicit.o @echo "Creating $1_ode2odes_implicit.o" ar -cr \$@ \$^ $1_ode2odes_implicit.oct: $1_cseo.oct $1_csex.oct $1_smxa.oct $1_smxax.oct mtt_implicit.oct @echo > /dev/null #SUMMARY numpar numerical parameter declaration (m) $1_numpar.m: $1_numpar.txt $1_sympars.txt mtt_txt2m $1 numpar #SUMMARY numpar numerical parameter declaration (c) #SUMMARY numpar numerical parameter declaration (view) |
︙ | ︙ | |||
2196 2197 2198 2199 2200 2201 2202 | touch $1_aliased.txt $1_struc.tex: $1_struc.txt struc_txt2tex $1 $1_struc.m: $1_struc.txt struc_txt2m $1 $1_def.m: $1_def.r def_r2m $1; matlab_tidy $1_def.m; | | | 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 | touch $1_aliased.txt $1_struc.tex: $1_struc.txt struc_txt2tex $1 $1_struc.m: $1_struc.txt struc_txt2m $1 $1_def.m: $1_def.r def_r2m $1; matlab_tidy $1_def.m; $1_def.h: $1_def.m $1_sympar.txt def_m2h.sh $1 #SUMMARY rdae raw differential-algebraic equations (r) #SUMMARY dae differential-algebraic equations (r) #SUMMARY dae* differential-algebraic equations (m) #SUMMARY dae differential-algebraic equations (tex) #SUMMARY dae* differential-algebraic equations (view) |
︙ | ︙ | |||
2344 2345 2346 2347 2348 2349 2350 | # The main simulation programme ifeq ($integration_method,implicit) $1_ode2odes.m : $1_def.r $1_sympars.txt \ $1_smxa.m $1_smxax.m\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_csex.m $1_cseo.m $1_logic.m ifeq ($using_oct,yes) | < < < < < < < < < < < < > | < < < < < < < < < | > > > > > > > > > > > > > > > > > > > > > > > > > > | 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 | # The main simulation programme ifeq ($integration_method,implicit) $1_ode2odes.m : $1_def.r $1_sympars.txt \ $1_smxa.m $1_smxax.m\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_csex.m $1_cseo.m $1_logic.m ifeq ($using_oct,yes) touch $1_ode2odes.m # Create a dummy which wont' be used mtt $mtt_switches -q -u $1 ode2odes oct else make_ode2odes $1 m $integration_method endif endif ifneq ($integration_method,implicit) $1_ode2odes.m : $1_def.r $1_sympars.txt\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_ode.m $1_odeo.m $1_logic.m ifeq ($using_oct,yes) echo "*** Warning: Shouldn't be here! Creating dummy $1_ode2odes.m" touch $1_ode2odes.m # Create a dummy which wont' be used mtt $mtt_switches -q -u $1 ode2odes oct else make_ode2odes $1 m $integration_method endif endif #SUMMARY ode2odes Simulation function (m) #SUMMARY ode2odes Simulation function (cc) #SUMMARY ode2odes Simulation function (oct) #SUMMARY ode2odes Simulation function (exe) $1_ode2odes.exe: $1_def.h $1_sympar.h\ $1_ode2odes.o $1_ode2odes_common.o $1_ode2odes_${integration_method}.o echo Creating $1_ode2odes.exe ${MTT_CXX} ${MTT_CXXFLAGS} -o $1_ode2odes.exe\ $1_ode2odes.o $1_ode2odes_common.o $1_ode2odes_${integration_method}.o\ ${MTT_LDFLAGS} ${MTT_CXXLIBS} $1_ode2odes.o: $1_ode2odes.cc $1_ode2odes_common.o $1_ode2odes_${integration_method}.o echo Creating $1_ode2odes.o ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $1_ode2odes.cc -DSTANDALONE $1_ode2odes.oct: $1_ode2odes.cc $1_ode2odes_common.oct $1_ode2odes_${integration_method}.oct touch $1_ode2odes.m echo Creating $1_ode2odes.oct $MKOCTFILE $1_ode2odes.cc $1_ode2odes.cc: $1_def.r $1_sympars.txt\ $1_ode2odes_common.m $1_ode2odes_common.cc\ $1_ode2odes_${integration_method}.m $1_ode2odes_${integration_method}.cc touch $1_ode2odes.m make_ode2odes $1 cc $integration_method #Conversion of m to p to c #SUMMARY ode ordinary differential equations (c) #SUMMARY ode ordinary differential equations (p) #SUMMARY state state declaration (c) #SUMMARY state state declaration (p) $1_simpar.p : $1_def.r $1_simpar.m |
︙ | ︙ | |||
2427 2428 2429 2430 2431 2432 2433 | ifeq ($integration_method,implicit) $1_ode2odes.p : $1_ode2odes.m $1_def.r $1_smxa.p $1_smxax.p\ $1_simpar.p $1_numpar.p $1_state.p $1_input.p \ $1_csex.p $1_cseo.p $1_logic.p mtt_m2p $1_ode2odes.m $integration_method $stdin endif | | | 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 | ifeq ($integration_method,implicit) $1_ode2odes.p : $1_ode2odes.m $1_def.r $1_smxa.p $1_smxax.p\ $1_simpar.p $1_numpar.p $1_state.p $1_input.p \ $1_csex.p $1_cseo.p $1_logic.p mtt_m2p $1_ode2odes.m $integration_method $stdin endif ifneq ($integration_method,implicit) $1_ode2odes.p : $1_ode2odes.m $1_def.r\ $1_simpar.p $1_numpar.p $1_state.p $1_input.p \ $1_ode.p $1_odeo.p $1_logic.p mtt_m2p $1_ode2odes.m $integration_method $stdin endif $1_ode2odes.c: $1_ode2odes.p |
︙ | ︙ | |||
2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 | m2dat $1_sro 1_odes.c: $1_ode.c $1_def.r $1_sympar.r ode2odes_r2c $1 $1_sms.c: $1_sm.c $1_def.r $1_sympar.r sm2sms_r2c $1 ifeq ($computation,octave) $1_odes.dat2: $1_ode2odes.m time octave_ode2odes $1 endif ifeq ($computation,c) $1_ode2odes.out: $1_ode2odes.c echo Creating $1_odes.out $CC $1_ode2odes.c -lp2c -lm -o $1_ode2odes.out | > > > > > | 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 | m2dat $1_sro 1_odes.c: $1_ode.c $1_def.r $1_sympar.r ode2odes_r2c $1 $1_sms.c: $1_sm.c $1_def.r $1_sympar.r sm2sms_r2c $1 ifeq ($computation,octave) ifeq ($using_oct,yes) $1_odes.dat2: $1_ode2odes.oct time octave_ode2odes $1 else $1_odes.dat2: $1_ode2odes.m time octave_ode2odes $1 endif endif ifeq ($computation,c) $1_ode2odes.out: $1_ode2odes.c echo Creating $1_odes.out $CC $1_ode2odes.c -lp2c -lm -o $1_ode2odes.out |
︙ | ︙ |
Modified mttroot/mtt/bin/mtt_check_vars from [65d9a8cff0] to [aa8113cf2e].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.7 2000/08/04 15:48:30 peterg ## Added PDF ## ## Revision 1.6 2000/05/22 12:37:24 peterg ## *** empty log message *** ## ## Revision 1.5 2000/05/22 12:34:07 peterg | > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.8.2.1 2001/03/06 03:48:43 geraint ## Print additional environment variable for "mtt -p". ## MTT_LDFLAGS defaults to " " to avoid installation warning. ## ## Revision 1.8 2000/12/27 13:11:42 peterg ## *** empty log message *** ## ## Revision 1.7 2000/08/04 15:48:30 peterg ## Added PDF ## ## Revision 1.6 2000/05/22 12:37:24 peterg ## *** empty log message *** ## ## Revision 1.5 2000/05/22 12:34:07 peterg |
︙ | ︙ | |||
71 72 73 74 75 76 77 | mtt_check_var "$FIG" "FIG" "$print" "MTT" mtt_check_var "$PSVIEW" "PSVIEW" "$print" "MTT" mtt_check_var "$PDFVIEW" "PDFVIEW" "$print" "MTT" mtt_check_var "$HTMLVIEW" "HTMLVIEW" "$print" "MTT" mtt_check_var "$DVIVIEW" "DVIVIEW" "$print" "MTT" mtt_check_var "$CC" "CC" "$print" "MTT" mtt_check_var "$LATEX2HTML" "LATEX2HTML" "$print" "MTT" | | > > > > > | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | mtt_check_var "$FIG" "FIG" "$print" "MTT" mtt_check_var "$PSVIEW" "PSVIEW" "$print" "MTT" mtt_check_var "$PDFVIEW" "PDFVIEW" "$print" "MTT" mtt_check_var "$HTMLVIEW" "HTMLVIEW" "$print" "MTT" mtt_check_var "$DVIVIEW" "DVIVIEW" "$print" "MTT" mtt_check_var "$CC" "CC" "$print" "MTT" mtt_check_var "$LATEX2HTML" "LATEX2HTML" "$print" "MTT" mtt_check_var "$MKOCTFILE" "MKOCTFILE" "$print" "MTT" mtt_check_var "$MTT_CXX" "MTT_CXX" "$print" "MTT" mtt_check_var "$MTT_CXXFLAGS" "MTT_CXXFLAGS" "$print" "MTT" mtt_check_var "$MTT_CXXLIBS" "MTT_CXXLIBS" "$print" "MTT" mtt_check_var "$MTT_CXXINCS" "MTT_CXXINCS" "$print" "MTT" mtt_check_var "$MTT_LDFLAGS" "MTT_LDFLAGS" "$print" "MTT" |
Modified mttroot/mtt/bin/mttrc from [7b899869da] to [37b1cfbf51].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.16 2000/12/27 15:16:44 peterg ## If then else format ## ## Revision 1.15 2000/12/27 14:57:43 peterg ## Now takes the base path as an argument ## ## Revision 1.14 2000/12/27 13:11:43 peterg | > > > > > > > > > > > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.17.2.4 2001/03/06 03:48:43 geraint ## Print additional environment variable for "mtt -p". ## MTT_LDFLAGS defaults to " " to avoid installation warning. ## ## Revision 1.17.2.3 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.17.2.2 2001/02/23 03:53:53 geraint ## Minor revisions. (ode2odes.exe works on GNU/Linux and ~GNU/Irix) ## ## Revision 1.17.2.1 2001/02/22 06:41:40 geraint ## Initial merge of ode2odes.exe into main mtt. ## standalone_rep.make deleted: rules moved to mtt, variables to mttrc. ## ## Revision 1.17 2000/12/27 16:46:13 peterg ## Stripped the mtt- from paths ## ## Revision 1.16 2000/12/27 15:16:44 peterg ## If then else format ## ## Revision 1.15 2000/12/27 14:57:43 peterg ## Now takes the base path as an argument ## ## Revision 1.14 2000/12/27 13:11:43 peterg |
︙ | ︙ | |||
130 131 132 133 134 135 136 137 | export LATEX2HTML="latex2html -contents_in_navigation -index_in_navigation -address http://mtt.sourceforge.net" # Ascend stuff export ASCENDLIBRARY=$MTTPATH/ascend/lib # Oct file generation - use version with no optimisation. export MKOCTFILE=$MTT_LIB/octave/mkoctfile fi | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | export LATEX2HTML="latex2html -contents_in_navigation -index_in_navigation -address http://mtt.sourceforge.net" # Ascend stuff export ASCENDLIBRARY=$MTTPATH/ascend/lib # Oct file generation - use version with no optimisation. export MKOCTFILE=$MTT_LIB/octave/mkoctfile # ode2odes.exe stuff # local system PLAT="i686-pc-linux-gnu" PREFIX="/usr/local" GCCVERS="2.95.2" SRCOCTAVE="/cvs/octave" # PLAT="mips-sgi-irix6.5" # PREFIX="/usr/people/bevangp/GNU" # GCCVERS="2.95.2" # SRCOCTAVE="${PREFIX}/../build/octave-2.1.33" # include paths IOCTAVE="-I${PREFIX}/include/octave" # library paths LOCTAVE="-L${PREFIX}/lib/octave -loctave -lcruft -loctinterp" LKPATHSEA="-L${SRCOCTAVE}/kpathsea -lkpathsea" LREADLINE=" -L${SRCOCTAVE}/readline -lreadline" LSYSTEM="-ldl -lm -lncurses" LF2C="-L${PREFIX}/lib/gcc-lib/${PLAT}/${GCCVERS} -lg2c" # compiler options DEBUG="-g" OPTIM="-O3" FLAGS="-fno-rtti -fno-exceptions -fno-implicit-templates" # exported variables export MTT_CXX="g++" export MTT_CXXFLAGS="${DEBUG} ${OPTIM} ${FLAGS}" export MTT_CXXLIBS="${LOCTAVE} ${LKPATHSEA} ${LREADLINE} ${LF2C} ${LSYSTEM}" export MTT_CXXINCS="-I. ${IOCTAVE}" export MTT_LDFLAGS=" " fi |
Modified mttroot/mtt/bin/trans/dae2cse_r from [14e2313fd2] to [2f584317f5].
︙ | ︙ | |||
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.13 2000/10/11 08:52:46 peterg ## Creates csex (cse with dxe only) rep. ## ## Revision 1.12 2000/10/10 21:00:58 peterg ## New code genration ## ## Revision 1.11 1998/11/26 09:18:55 peterg | > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # Copyright (c) P.J.Gawthrop 1991, 1992, 1994. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.14.2.1 2001/03/19 00:29:08 geraint ## Parse switches (-A) before calling def2write_r. ## Update $1_def.* instead of removing. ## ## Revision 1.14 2000/12/28 12:24:35 peterg ## *** empty log message *** ## ## Revision 1.13 2000/10/11 08:52:46 peterg ## Creates csex (cse with dxe only) rep. ## ## Revision 1.12 2000/10/10 21:00:58 peterg ## New code genration ## ## Revision 1.11 1998/11/26 09:18:55 peterg |
︙ | ︙ | |||
67 68 69 70 71 72 73 | ## Sorted out bug when MTTNz=0 ## ## Revision 1.1 1996/08/15 16:47:02 peter ## Initial revision ## ############################################################### | < < < < < > > > > > | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | ## Sorted out bug when MTTNz=0 ## ## Revision 1.1 1996/08/15 16:47:02 peter ## Initial revision ## ############################################################### #Explicit solution option solve=0 while [ -n "`echo $1 | grep '^-'`" ]; do case $1 in -A ) solve=1;; *) echo "$1 is an invalid argument - ignoring" ;; esac shift done # Create the reduce output code def2write_r $1 cse def2write_r $1 csex # Version without E matrix def2write_r $1 cseo if [ "$solve" = "1" ]; then echo "Creating $1_cse.r (with explicit solution of algebraic equations)" else echo "Creating $1_cse.r" fi |
︙ | ︙ | |||
375 376 377 378 379 380 381 | 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 | | < > > > > > > | 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 | 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" awk '{ if ($1=="MTTNyz") print "MTTNyz := 0;" else print $0 }' $1_def.r > mtt_junk # Make sure it preserves the time stamp!! # and remove dependent reps touch -r $1_def.r mtt_junk mv mtt_junk $1_def.r for file in `ls $1_def.*`; do if [ $file != $1_def.r ]; then ext=`echo $file|awk -F\. '{print $2}'` mtt -q $1 def $ext fi done fi # Now invoke the standard error handling. mtt_error_r dae2cse_r.log |
Modified mttroot/mtt/bin/trans/make_ode2odes from [9dc2d47b21] to [ee2c498011].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.50 2001/02/18 09:18:49 geraint ## Removed temporary Matrices from mtt_implicit.cc ## ## Revision 1.49 2001/02/14 06:06:34 geraint ## Removed octave_value_list wrappers from standalone.exe - speed improvements ## ## Revision 1.48 2001/02/11 07:08:59 geraint | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.51.2.7 2001/03/17 09:51:07 geraint ## Implemented Runge-Kutta IV fixed-step method (-i rk4). ## ## Revision 1.51.2.6 2001/03/16 03:56:13 geraint ## Removed psignal/siginfo.h - problematic and unnecessary. ## ## Revision 1.51.2.5 2001/03/12 23:16:37 geraint ## Minor improvements to signal handling (.exe). ## ## Revision 1.51.2.4 2001/03/12 03:59:30 geraint ## SIGINT (C-c C-c) now causes simulation data to be dumped to MTT.core. ## SIGQUIT (C-c C-\) as for SIGINT, then raises default SIGQUIT. ## SIGFPE as for SIGINT, then raises default SIGABRT. ## ## Revision 1.51.2.3 2001/03/07 04:06:55 geraint ## Irix: catch SIGFPE and write data before aborting (.exe). ## GNU/Linux: nada. ## ## Revision 1.51.2.2 2001/03/02 00:45:21 geraint ## Separated Euler and Implicit methods in .cc code and dependencies. ## ## Revision 1.51.2.1 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.51 2001/02/19 06:33:19 geraint ## Removed operation form loop. ## ## Revision 1.50 2001/02/18 09:18:49 geraint ## Removed temporary Matrices from mtt_implicit.cc ## ## Revision 1.49 2001/02/14 06:06:34 geraint ## Removed octave_value_list wrappers from standalone.exe - speed improvements ## ## Revision 1.48 2001/02/11 07:08:59 geraint |
︙ | ︙ | |||
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | mttj = 0; for it = 1:ilast #Integration loop [u] = ${sys}_input(x,y,t,par); # Input [y] = ${sys}_$odeo(x,u,t,par); # Output if mttj==0 mtt_write(t,x,y,$Nx,$Ny); # Write it out endif [dx] = ${sys}_$ode(x,u,t,par); # State derivative EOF if [ "$method" = "implicit" ]; then cat<< EOF >> $filename [AA] = ${sys}_smxa(x,u,ddt,par); # (I-Adt) and (I-Adt)x [AAx] = ${sys}_smxax(x,u,ddt,par); # (I-Adt) and (I-Adt)x | > > > > > > > > > > > > > | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | mttj = 0; for it = 1:ilast #Integration loop [u] = ${sys}_input(x,y,t,par); # Input [y] = ${sys}_$odeo(x,u,t,par); # Output if mttj==0 mtt_write(t,x,y,$Nx,$Ny); # Write it out endif EOF if [ "$method" = "rk4" ]; then cat << EOF >> $filename [k1] = ddt * ${sys}_${ode}(x,u,t,par); [k2] = ddt * ${sys}_${ode}(x+k1/2,u,t+ddt/2,par); [k3] = ddt * ${sys}_${ode}(x+k2/2,u,t+ddt/2,par); [k4] = ddt * ${sys}_${ode}(x+k3,u,t+ddt,par); [dx] = [k1 + 2.0 * [k2 + k3] + k4] / (6.0 * ddt); EOF else cat << EOF >> $filename [dx] = ${sys}_$ode(x,u,t,par); # State derivative EOF fi if [ "$method" = "implicit" ]; then cat<< EOF >> $filename [AA] = ${sys}_smxa(x,u,ddt,par); # (I-Adt) and (I-Adt)x [AAx] = ${sys}_smxax(x,u,ddt,par); # (I-Adt) and (I-Adt)x |
︙ | ︙ | |||
278 279 280 281 282 283 284 | vector_value=vector_value feval_header=toplev.h fi cat <<EOF > $filename #include <octave/oct.h> #include <octave/ov-struct.h> | | > > > | | | < | | | | | | | > > | > > > > | > > > | | | > | | > > > | > > | | < > | > > > > > > > > > | > | | > > > > > > > > > > > > > | | | | | > > > > > > > > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 318 319 320 321 322 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 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 | vector_value=vector_value feval_header=toplev.h fi cat <<EOF > $filename #include <octave/oct.h> #include <octave/ov-struct.h> #include <octave/load-save.h> #include <octave/lo-mappers.h> #include <octave/variables.h> #ifndef STANDALONE #include <octave/${feval_header}> #endif #include "${sys}_def.h" #include "${sys}_sympar.h" #ifdef STANDALONE #include <csignal> #include <fstream> extern ColumnVector F${sys}_input ( ColumnVector &x, ColumnVector &y, const double &t, ColumnVector &par); extern ColumnVector F${sys}_logic ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_numpar ( void); extern Octave_map F${sys}_simpar ( void); extern ColumnVector F${sys}_state ( ColumnVector &x); extern ColumnVector F${sys}_${ode} ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_${odeo} ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); EOF if [ "$method" != "implicit" ]; then cat <<EOF >> $filename extern ColumnVector Fmtt_euler ( ColumnVector &x, const ColumnVector &dx, const double &ddt, const int &nx, const ColumnVector &open_switches); EOF else cat <<EOF >> $filename extern ColumnVector Fmtt_implicit ( ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, const ColumnVector &open_switches); extern Matrix F${sys}_smxa ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_smxax ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); EOF fi cat <<EOF >> $filename #endif // STANDALONE inline ColumnVector mtt_input (ColumnVector &x, ColumnVector &y, const double &t, ColumnVector &par) { #ifdef STANDALONE return F${sys}_input (x, y, t, par); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (y); args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_input", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_logic (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { #ifdef STANDALONE return F${sys}_logic (x, u, t, par); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (u); args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_logic", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_numpar (void) { #ifdef STANDALONE return F${sys}_numpar (); #else static octave_value_list args, f; f = feval ("${sys}_numpar", args, 1); return f(0).${vector_value} (); #endif } inline Octave_map mtt_simpar (void) { #ifdef STANDALONE return F${sys}_simpar (); #else static octave_value_list args; static Octave_map f; f["first"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["first"]; f["dt"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["dt"]; f["last"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["last"]; f["stepfactor"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["stepfactor"]; f["wmin"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wmin"]; f["wmax"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wmax"]; f["wsteps"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wsteps"]; f["input"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["input"]; return (f); #endif } inline ColumnVector mtt_state (ColumnVector &x) { #ifdef STANDALONE return F${sys}_state (x); #else static octave_value_list args, f; args (0) = octave_value (x); f = feval ("${sys}_state", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_${ode} (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { |
︙ | ︙ | |||
391 392 393 394 395 396 397 398 399 400 401 402 403 404 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_${odeo}", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_implicit (ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_${odeo}", args, 1); return f(0).${vector_value} (); #endif } EOF if [ "$method" != "implicit" ];then cat <<EOF >> $filename inline ColumnVector mtt_euler (ColumnVector &x, const ColumnVector &dx, const double &ddt, const int &nx, const ColumnVector &open_switches) { #ifdef STANDALONE return Fmtt_euler (x, dx, ddt, nx, open_switches); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (dx); args (2) = octave_value (ddt); args (3) = octave_value ((double)nx); args (4) = octave_value (open_switches); f = feval ("mtt_euler", args, 1); return f(0).${vector_value} (); #endif } EOF else cat <<EOF >> $filename inline ColumnVector mtt_implicit (ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, |
︙ | ︙ | |||
416 417 418 419 420 421 422 | args (5) = octave_value ((double)nx); args (6) = octave_value (open_switches); f = feval ("mtt_implicit", args, 1); return f(0).${vector_value} (); #endif } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 579 580 581 582 583 584 585 586 587 588 589 590 591 592 | args (5) = octave_value ((double)nx); args (6) = octave_value (open_switches); f = feval ("mtt_implicit", args, 1); return f(0).${vector_value} (); #endif } inline Matrix mtt_smxa (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { #ifdef STANDALONE |
︙ | ︙ | |||
526 527 528 529 530 531 532 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_smxax", args, 1); return f(0).${vector_value} (); #endif } | < < < < < < < < < < < < | < < < < < < < < < < < < < < < < | < | | > > > > > > > > > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_smxax", args, 1); return f(0).${vector_value} (); #endif } EOF fi cat <<EOF >> $filename inline void mtt_write (const double &t, ColumnVector &x, ColumnVector &y, const int &nrows, const bool dump_data = false, ostream &file = cout) { static Matrix data; static int row; if (dump_data) { Matrix written_data = data.extract (0, 0, row-1, data.cols ()-1); save_ascii_data_for_plotting (file, written_data, "MTT_data"); return; } const int nx = x.length (), ny = y.length (); register int col = 0; if (0 == row) data = Matrix (nrows, 1+ny+1+nx, 0.0); data.elem (row, col) = t; for (register int i = 0; i < ny; i++) data.elem (row, ++col) = y.elem (i); data.elem (row, ++col) = t; for (register int i = 0; i < nx; i++) data.elem (row, ++col) = x.elem (i); row++; if (nrows == row) { #ifdef STANDALONE save_ascii_data_for_plotting (file, data, "MTT_data"); // cout << data << endl; #else // ! STANDALONE set_global_value ("MTT_data", data); #endif } } #ifdef STANDALONE void dump_data (ostream &file) { ColumnVector null (0.0); mtt_write (0.0, null, null, 0, true, file); } void set_signal_handlers (void); void handle_signal (int signum) { // handle some signals to ensure data is written. cerr << "# Writing data to MTT.core (signal " << signum << ")" << endl; ofstream corefile ("MTT.core"); dump_data (corefile); switch (signum) { case SIGFPE: // Intel chips do not raise SIGFPE for DIVZERO :-( raise (SIGABRT); break; case SIGINT: break; case SIGQUIT: signal (SIGQUIT, SIG_DFL); raise (SIGQUIT); break; default: cerr << "# Warning: make_ode2odes needs updating!" << endl; signal (signum, SIG_DFL); raise (signum); break; } corefile.close (); set_signal_handlers (); } void set_signal_handlers (void) { signal (SIGFPE, handle_signal); signal (SIGINT, handle_signal); signal (SIGQUIT, handle_signal); } int main (void) { set_signal_handlers (); #else DEFUN_DLD (${sys}_ode2odes, args, , "Octave ode2odes representation of system with $method integration method Usage: ${sys}_ode2odes (x, par, simpar) ") { static octave_value_list retval; #endif // STANDALONE static ColumnVector x; static ColumnVector par; |
︙ | ︙ | |||
667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 | static ColumnVector open_switches (MTTNX); register double t = 0.0; const double ddt = dt / stepfactor; const int ilast = static_cast<int> (round ((last - first) / ddt)) + 1; const int nrows = static_cast<int> (round ((last - first) / dt)) + 1; for (register int j = 0, i = 1; i <= ilast; i++) { y = mtt_${odeo} (x, u, t, par); u = mtt_input (x, y, t, par); if (0 == j) { mtt_write (t, x, y, nrows); } dx = mtt_${ode} (x, u, t, par); EOF if [ "$method" = "implicit" ]; then cat <<EOF >> $filename AA = mtt_smxa (x, u, ddt, par); AAx = mtt_smxax (x, u, ddt, par); EOF | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 | static ColumnVector open_switches (MTTNX); register double t = 0.0; const double ddt = dt / stepfactor; const int ilast = static_cast<int> (round ((last - first) / ddt)) + 1; const int nrows = static_cast<int> (round ((last - first) / dt)) + 1; for (register int i = 0; i < MTTNU; i++) { u (i) = 0.0; } for (register int j = 0, i = 1; i <= ilast; i++) { y = mtt_${odeo} (x, u, t, par); u = mtt_input (x, y, t, par); if (0 == j) { mtt_write (t, x, y, nrows); } EOF if [ "$method" = "rk4" ]; then cat << EOF >> $filename { static ColumnVector k1 (MTTNX,0.0), k2 (MTTNX,0.0), k3 (MTTNX,0.0), k4 (MTTNX,0.0); const double t1 = t + ddt/2.0, t2 = t + ddt; ColumnVector x1 (x), x2 (x), x3 (x); k1 = ddt * mtt_${ode} (x , u, t , par); x1 += k1 * 0.5; k2 = ddt * mtt_${ode} (x1, u, t1, par); x2 += k2 * 0.5; k3 = ddt * mtt_${ode} (x2, u, t1, par); x3 += k3; k4 = ddt * mtt_${ode} (x3, u, t2, par); dx = (k1 + 2.0 * (k2 + k3) + k4) / (6.0 * ddt); } EOF else cat << EOF >> $filename dx = mtt_${ode} (x, u, t, par); EOF fi if [ "$method" = "implicit" ]; then cat <<EOF >> $filename AA = mtt_smxa (x, u, ddt, par); AAx = mtt_smxax (x, u, ddt, par); EOF |
︙ | ︙ |
Added mttroot/mtt/bin/trans/struc_txt2m version [8d395093a7].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### # Bourne shell script: struc_txt2m # Structure file - txt to m conversion # P.J.Gawthrop April 1997 # Copyright (c) P.J.Gawthrop, 1997. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.1.2.1 2001/03/06 03:52:15 geraint ## Put back struc_txt2m - required by mtt2sys. ## ############################################################### # Inform user echo "Creating $1_struc.m" rm -f mtt_error #Write some file headers echo "function [input_name,output_name,state_name] = $1_struc" > $1_struc.m echo "%% Structure file ($1_struc.m)" >> $1_struc.m echo "%% Generated by MTT at `date`" >> $1_struc.m # This is the main transformation using awk awk ' function header(what){ print what "_name = ["; } function footer(what){ print "];"; } BEGIN{ Which=""; apostrophe = "\047"; } { if ($1!=Which) { if (Which!="") footer(Which); header($1); } print apostrophe $4 "_" $3 apostrophe; Which = $1; } END{ footer(Which) } ' SYSTEM=$1 < $1_struc.txt >> $1_struc.m 2>mtt_error.txt # Now invoke the standard error handling. mtt_error mtt_error.txt |
Modified mttroot/mtt/cc/Makefile from [10f25bc91c] to [873ef71cfa].
︙ | ︙ | |||
15 16 17 18 19 20 21 | mkoctfile $< endif all: $(sys)_$(rep).cc | | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | mkoctfile $< endif all: $(sys)_$(rep).cc parser.exe: parse_m2cc.cc g++ $< $(CFLAGS) -o ${MTTPATH}/trans/parser.exe -I${MTTPATH}/../cc/include ifeq ($(rep),ode2odes) $(sys)_ode2odes.cc: ode2odes.cc cat ode2odes.cc | sed 's/\$$/$(sys)/' > $(sys)_ode2odes.cc else $(sys)_$(rep).cc: $(sys)_def.h $(sys)_sympar.h $(sys)_def.r $(sys)_$(rep).m mtt_m2cc.sh ${sys} ${rep} parser |
︙ | ︙ |
Modified mttroot/mtt/cc/include/useful-functions.hh from [bc3e893dc8] to [6bacf30342].
1 |
| > > > > | > > > > | | > > > > > | > > > > > | > | > > | | > | | | | | < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #ifndef HAVE_USEFUL_FUNCTIONS_HH #define HAVE_USEFUL_FUNCTIONS_HH #ifdef __CPLUSPLUS template <class class_t> #else #define inline // strip from pre-processed file #define class_t double #endif // __CPLUSPLUS // == Template functions == static inline class_t max (const class_t &x1, const class_t &x2) { return ((x1 >= x2) ? x1 : (x1 < x2) ? x2 : 0); } static inline class_t min (const class_t &x1, const class_t &x2) { return ((x1 <= x2) ? x1 : (x1 > x2) ? x2 : 0); } static inline class_t sign (const class_t &x) { return ((x > 0) ? +1 : (x < 0) ? -1 : 0); } // == Octave functions == static inline Matrix ones (const int r = 1, const int c = 1) { Matrix m (r, c, 1.0); return m; } static inline ColumnVector nozeros (const ColumnVector v0, const double tol = 0.0) { ColumnVector v (v0.length ()); register int i, j; for (i = j = 0; i < v.length (); i++) if (tol < abs (v0 (i))) { v (j) = v0 (i); j++; } if (0 == j) { return *new ColumnVector (); } else { return (v.extract (0, --j)); } } static inline ColumnVector zeros (const int r) { ColumnVector v (r, 0.0); return v; } static inline Matrix zeros (const int r, const int c) { Matrix m (r, c, 0.0); return m; } #endif // HAVE_USEFUL_FUNCTIONS_HH |
Modified mttroot/mtt/cc/parse_m2cc.cc from [3b05b7d2a2] to [9dadb09da4].
1 2 3 4 5 6 7 8 9 | /* $Id$ * $Log$ * Revision 1.1 2000/10/31 04:29:50 geraint * Initial revision * */ | > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* $Id$ * $Log$ * Revision 1.1.2.2 2001/03/09 04:01:20 geraint * \ escapes newline. * * Revision 1.1.2.1 2001/03/09 02:59:26 geraint * got_comment: (char)c no longer compared to (int)EOF. * * Revision 1.1 2000/12/28 09:46:05 peterg * put under RCS * * Revision 1.1 2000/10/31 04:29:50 geraint * Initial revision * */ |
︙ | ︙ | |||
197 198 199 200 201 202 203 | { /* * get remainder of line in case there are any commented keywords */ char c; cout << " // "; cin >> c; | | < | | < | 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 | { /* * get remainder of line in case there are any commented keywords */ char c; cout << " // "; cin >> c; do { cout << c; } while (c != '\n' && cin >> c); cout << endl << indent () << ';' << endl << indent (); } |
︙ | ︙ | |||
307 308 309 310 311 312 313 314 315 316 317 318 319 320 | /* * EOL is end-of-statement in Octave, add ; */ << indent () << ';' << endl << indent (); } buf = ""; break; default: buf += c; } if (lbrace->get_nesting_depth ()) { cout.setf (ios::skipws); | > > > > > > > > > > > > | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | /* * EOL is end-of-statement in Octave, add ; */ << indent () << ';' << endl << indent (); } buf = ""; break; case '\\': cin >> c; if ('\n' == c) { buf += '\n'; } else { buf += '\\'; buf += c; } break; default: buf += c; } if (lbrace->get_nesting_depth ()) { cout.setf (ios::skipws); |
︙ | ︙ |
Modified mttroot/mtt/cc/sympar_txt2h.sh from [9ef7c9027a] to [8f2ea30d8d].
1 2 3 4 5 6 7 8 9 10 | #! /bin/sh # $Id$ # $Log$ # Revision 1.7 2001/01/09 15:43:50 geraint # Warn gcc that variables may be unused. # # Revision 1.6 2001/01/08 05:47:56 geraint # Restrict scope of variables to file (static) # # Revision 1.5 2000/12/05 12:44:55 peterg | > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #! /bin/sh # $Id$ # $Log$ # Revision 1.2.2.1 2001/03/16 03:56:54 geraint # Convert variable names to lower case. # # Revision 1.2 2001/02/05 13:03:19 geraint # Restrict scope of variables to file (static). # Warn GCC that variables may be unused. # # Revision 1.7 2001/01/09 15:43:50 geraint # Warn gcc that variables may be unused. # # Revision 1.6 2001/01/08 05:47:56 geraint # Restrict scope of variables to file (static) # # Revision 1.5 2000/12/05 12:44:55 peterg |
︙ | ︙ | |||
39 40 41 42 43 44 45 | TMP_VAR_NAMES="mtt_tmp mtt_o $*" IN=${SYS}_sympar.txt OUT=${SYS}_sympar.h declare_sys_param () { | | | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | TMP_VAR_NAMES="mtt_tmp mtt_o $*" IN=${SYS}_sympar.txt OUT=${SYS}_sympar.h declare_sys_param () { cat ${IN} | awk '{printf ("static double %s MTT_UNUSED;\t// %s\n", tolower($1), $2)}' } declare_temp_vars () { for name in ${TMP_VAR_NAMES} do echo "" |
︙ | ︙ |
Modified mttroot/mtt/lib/cc/mtt_implicit.cc from [66ec9e6cff] to [a2b6319245].
︙ | ︙ | |||
12 13 14 15 16 17 18 | { #else // !STANDALONE DEFUN_DLD (mtt_implicit, args, , "implicit integration method") { #ifdef OCTAVE_DEV static ColumnVector x = args(0).column_vector_value (); | | | | | | | | | | | | | | > | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | { #else // !STANDALONE DEFUN_DLD (mtt_implicit, args, , "implicit integration method") { #ifdef OCTAVE_DEV static ColumnVector x = args(0).column_vector_value (); static ColumnVector dx = args(1).column_vector_value (); static Matrix AA = args(2).matrix_value (); static ColumnVector AAx = args(3).column_vector_value (); const double t = args(4).double_value (); const int Nx = (int) (args(5).double_value ()); const ColumnVector openx = args(6).column_vector_value (); #else // !OCTAVE_DEV static ColumnVector x = args(0).vector_value (); static ColumnVector dx = args(1).vector_value (); static Matrix AA = args(2).matrix_value (); static ColumnVector AAx = args(3).vector_value (); const double t = args(4).double_value (); const int Nx = (int) (args(5).double_value ()); const ColumnVector openx = args(6).vector_value (); #endif // OCTAVE_DEV #endif // STANDALONE register int row, col; for (row = 0; row < Nx; row++) { if (openx (row) > 0.5) { AAx (row) = 0.0; dx (row) = 0.0; for (col = 0; col < Nx; col++) { AA (row,col) = 0.0; AA (col,row) = 0.0; } } } x = static_cast<ColumnVector> (xleftdiv (AA, static_cast<Matrix>(AAx + dx * t))); for (row = 0; row < Nx; row++) { if (openx (row) > 0.5) { x (row) = 0.0; } } #ifdef STANDALONE return x; |
︙ | ︙ |
Deleted mttroot/mtt/lib/rep/standalone_rep.make version [6e1ac4004e].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |