Overview
Comment:New _switchopen
Removed switcha
Downloads: Tarball | ZIP 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.000
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
︙
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 ]