Index: mttroot/mtt/bin/trans/switch_txt2m ================================================================== --- mttroot/mtt/bin/trans/switch_txt2m +++ mttroot/mtt/bin/trans/switch_txt2m @@ -14,10 +14,13 @@ ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ +## Revision 1.5 1998/10/01 16:05:34 peterg +## Separate switch.m file for euler and implicit integration +## ############################################################### echo Creating $1_switch.m echo Creating $1_switcha.m @@ -29,41 +32,53 @@ lang_header $1 switch m 'mttx' '[mttx]' > $1_switch.m # Set states to zero awk '{ if ($1=="#"){ -# printf("for MTTi=1:%s\n", Nx) -# printf(" mttxs(MTTi) = mttx(MTTi);\n") -# printf("end;\n\n") printf("#== Switches set element of state vector to zero ==#\n") } else{ printf("\n#== Switch: %s ==#\n",$1) printf("if (%s==0.0) \n", $1); -# printf("if ((%s==0.0)||((%s<0.0)&&mttx(%s)<=0.0)) \n", $1,$1,$2); printf(" mttx(%s)=0.0;\n", $2); printf("end;\n"); + printf("if (%s<0.0)\n",$1); + printf(" if (mttx(%s)<=0.0)\n",$2); + printf(" mttx(%s)=0.0;\n", $2); + printf(" end;\n"); + printf("end;\n"); + } }' Nx=$Nx < $1_switch.txt >> $1_switch.m -# Matrix version +# Implicit integration version #Write some file headers lang_header $1 switcha m 'mttAA,mttx' '[mttAA]' > $1_switcha.m awk '{ if ($1=="#"){ printf("#== Switches set row and column of A matrix to zero ==#\n") } else{ printf("#== Switch: %s ==#\n",$1) - #printf("if ((%s==0.0)||((%s<0.0)&&mttx(%s)<=0.0)) \n", $1,$1,$2); printf("if (%s==0.0) \n", $1); printf(" for MTTi=1:%s\n",Nx) printf(" mttAA(MTTi,%s)=0.0;\n", $2) printf(" mttAA(%s,MTTi)=0.0;\n", $2) printf(" end;\n"); printf(" mttAA(%s,%s) = 1.0;\n", $2,$2); printf("end;\n\n") + + printf("if (%s<0.0)\n",$1); + printf(" if (mttx(%s)<=0.0)\n",$2); + printf(" for MTTi=1:%s\n",Nx) + printf(" mttAA(MTTi,%s)=0.0;\n", $2) + printf(" mttAA(%s,MTTi)=0.0;\n", $2) + printf(" end;\n"); + printf(" mttAA(%s,%s) = 1.0;\n", $2,$2); + printf(" end;\n"); + printf("end;\n"); + } }' Nx=$Nx < $1_switch.txt >> $1_switcha.m