Overview
Comment:New _switchopen
Removed switcha
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: 4993e8787e03e695666edca1cc8703caae014dc2cf452630b0027237dcc0582a
User & Date: gawthrop@users.sourceforge.net on 1999-04-02 06:30:37
Other Links: branch diff | manifest | tags
Context
1999-04-02
07:17:37
Upped version to 3.6 -- the new implicit solver with switches check-in: e8f09cce8a user: gawthrop@users.sourceforge.net tags: origin/master, trunk
06:30:37
New _switchopen
Removed switcha
check-in: 4993e8787e user: gawthrop@users.sourceforge.net tags: origin/master, trunk
06:29:25
New implicit method - solves numerical prob with ISW check-in: 7edaf287ce user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes

Modified mttroot/mtt/bin/trans/switch_txt2m from [9166ff4a04] to [16e85cba17].

12
13
14
15
16
17
18





19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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







+
+
+
+
+







-
-









###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.6  1998/10/01 18:20:50  peterg
## Split up the three if conditions on the switch and state value into
## three separate ifs. This is because p2c seems to generate incorrect
## code id just the one if is used (???).
##
## 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

# Find system constants
Nx=`grep "MTTNx " <$1_def.r | awk '{print $3}' | sed 's/;//'`

#Write some file headers
lang_header $1 switch m 'mttx' '[mttx]' > $1_switch.m

# Set states to zero
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
79
80
































81

82
83
84
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
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
104
105
106
107
108
109
110
111
112

113
114
115
116







+
+
-
+

-
+
+
+


+
+
-
+


-
+

-
-
-
-
+
-
-
+
-


-
-
-
-
+
-




+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+



  printf("    mttx(%s)=0.0;\n", $2);
  printf("  end;\n");
  printf("end;\n");

  }
}' Nx=$Nx < $1_switch.txt >> $1_switch.m

## Set index version
echo Creating  $1_switchopen.m
# Implicit integration version

#Write some file headers
lang_header $1 switcha m 'mttAA,mttx' '[mttAA]' > $1_switcha.m
lang_header $1 switchopen m 'mttx' '[open]' > $1_switchopen.m

# Set states to zero
awk '{
  if ($1=="#"){
    printf("#== open - boolean vector of open switches ==#\n")
    printf("[open] = zero_vector(%i); # Default to not open\n", Nx);
    printf("#== Switches set row and column of A matrix to zero ==#\n")
    
  }
  else{
  printf("#== Switch: %s ==#\n",$1)
  printf("\n#== Switch: %s ==#\n",$1)
  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("  open(%s) = 1;\n", $2);
  printf("  mttAA(%s,%s) = 1.0;\n", $2,$2);
  printf("end;\n\n")
  printf("end;\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("    open(%s) = 1;\n", $2);
  printf("    mttAA(%s,%s) = 1.0;\n", $2,$2);
  printf("  end;\n");
  printf("end;\n");

  }
}' Nx=$Nx < $1_switch.txt >> $1_switchopen.m

#echo Creating  $1_switcha.m

# 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) \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
# }' Nx=$Nx < $1_switch.txt >> $1_switcha.m




MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]