-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHARDIS0.SIF
182 lines (128 loc) · 3.86 KB
/
CHARDIS0.SIF
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
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
117
118
119
120
121
122
123
124
125
126
127
128
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
***************************
* SET UP THE INITIAL DATA *
***************************
NAME CHARDIS0
* Problem :
* *********
* Distribution of (equal)charges on [-R,R]x[-R,R] (2D)
* SIF input: R. Felkel, Jun 1999.
* classification OBR2-AY-V-V
* Number of positive (or negative) charges -> Number of variables 2*NP1
*IE NP1 5 $-PARAMETER
*IE NP1 9 $-PARAMETER
*IE NP1 20 $-PARAMETER
*IE NP1 30 $-PARAMETER
*IE NP1 50 $-PARAMETER original value
*IE NP1 100 $-PARAMETER
*IE NP1 200 $-PARAMETER
*IE NP1 500 $-PARAMETER
IE NP1 1000 $-PARAMETER
*IE NP1 2000 $-PARAMETER
*IE NP1 5000 $-PARAMETER
* Other useful parameters
RE R 10.0
RE R- -10.0
* Some stuff
IA N NP1 -1
RI NReal N
RI NP1Real NP1
RF halfPI ARCSIN 1.0
RM PI halfPI 2.0
RM 2PI halfPI 4.0
RM 4PI halfPI 8.0
R/ 4PIqN 4PI NReal
R/ 2PIqN 2PI NReal
R/ PIqN PI NReal
R/ RqN R NReal
IE 1 1
IE 2 2
VARIABLES
* Each candle has position in cylinder coordinates
DO I 1 NP1
X X(I)
X Y(I)
OD I
GROUPS
* Objective
DO I 1 NP1
IA I+ I 1
DO J I+ NP1
XN O(I,J) 'SCALE' 0.01
OD J
OD I
BOUNDS
DO I 1 NP1
ZL CHARDIS0 X(I) R-
ZU CHARDIS0 X(I) R
ZL CHARDIS0 Y(I) R-
ZU CHARDIS0 Y(I) R
OD I
START POINT
DO I 1 NP1
RI RealI- I
R- RealNP1-I NP1Real RealI-
R* PHII- 2PIqN RealI-
R* RI- RqN RealNP1-I
R( XSTT COS PHII-
R( YSTT SIN PHII-
R* XST XSTT RI-
R* YST YSTT RI-
RM XS XST 0.5
RM YS YST 0.5
ZV CHARDIS0 X(I) XS
ZV CHARDIS0 Y(I) YS
OD I
ELEMENT TYPE
* Square of Difference
EV DIFSQR V1 V2
ELEMENT USES
* Objective
DO I 1 NP1
IA I+ I 1
DO J I+ NP1
XT X(I,J) DIFSQR
ZV X(I,J) V1 X(I)
ZV X(I,J) V2 X(J)
XT Y(I,J) DIFSQR
ZV Y(I,J) V1 Y(I)
ZV Y(I,J) V2 Y(J)
OD J
OD I
GROUP TYPE
GV REZIP ALPHA
GROUP USES
* Objective
DO I 1 NP1
IA I+ I 1
DO J I+ NP1
XT O(I,J) REZIP
OD J
OD I
DO I 1 NP1
IA I+ I 1
DO J I+ NP1
XE O(I,J) X(I,J) Y(I,J)
OD J
OD I
ENDATA
***********************
* SET UP THE FUNCTION *
* AND RANGE ROUTINES *
***********************
ELEMENTS CHARDIS0
INDIVIDUALS
T DIFSQR
F (V1-V2)*(V1-V2)
G V1 2.0*(V1-V2)
G V2 -2.0*(V1-V2)
H V1 V1 2.0
H V1 V2 -2.0
H V2 V2 2.0
ENDATA
GROUPS CHARDIS0
INDIVIDUALS
T REZIP
F 1.0/ALPHA
G -1.0/(ALPHA*ALPHA)
H 2.0/(ALPHA*ALPHA*ALPHA)
ENDATA