-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
252 lines (241 loc) · 12.6 KB
/
Changes
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
12-Aug-2010[cd
- fix the label hasher for new vertices. This fixes the not-reading-in-neighbors-from-save-files bug.
9-Nov-2009[cd]
- allow "(null)" as fluxon end-condition name
29-Oct-2009[cd]
- fully parallelized the two-stage stepper. This is important because the final portion
(fluxon_relax_step) potentially runs slowly since it involves walking out into the neighbor tree.
9-July-2009[lr]
-fiddled with the reconnection conditions. These are not yet done, use at your own risk.
15-Apr-2009[lr]
-added make_world_gh.pdl and gold_hoyle_line.pdl to pdl/PDL.
6-Mar-2009[lr]
-changed the global update force. Old way is still there and still works with the '1' global number. Simple relaxer now uses -1 on the first go that does a fast global neighbor search instead.
10-Feb-2009 [cd]
* new_vertex generates random vertex IDs to support very large arrays --
sequential ID generation is pessimal for binary-tree insertion.
new_vertex also only balances the tree once every thousand vertices.
This should probably be matched with an explicit tree-balancing operation
sprinkled around after most new-vertex operations, but is not (yet).
20-Jan-2009 [lr]
Added several routines in model.c and geometry.c to handle calculating the hull of a begin/end vertex on the photosphere. All the routines are all the bottom, and are not part of the regular relaxation step. They are only called through PDL ($v->photohull). Also added to vertex.xs to impliment this.
incremented the FLUX_CORE_VERSION to 17 in fluxperl.h
20-Jan-2008 [cd]
Minor fixes to try avoiding reconnection problems with neighbors
6-Dec-2008 [cd]
Added FL_ISDUMMY; converted a bunch of ad-hockery to FL_ISDUMMY calls.
----------
RELEASED VERSION 2.2
----------
20-Nov [cd]
checked-in local-maximum reconnection criteria
19-Nov [cd]
Fixed problem with rc_funcs setting -- increment refct on return val.
18-Nov [cd]
Spliced mass handling into the main data structures; added f_v_ps field for
pseudoforces. No I/O or physics handling yet - the quantities are just tracked.
11-Nov-2008 [cd]
- wonky-vertex problem solved: duplicate neighbors were not being deleted in the parallel
case, so operations like opening fluxons (which creates duplicate neighbor candidates
in the newly-opened fluxon) were causing duplicate neighbors. The hull algorithm works
correctly -- it was the merge-neighbors operation in io.c (for parallel operation) that
was not working properly.
6-Nov-2008 [cd]
- Debugging of wonky-vertex problem in place (some vertices develop HUNDREDS of neighbors!)
- interpolation of values works now using the interpolate_value method in Flux::World.
3-Nov-2008 [cd]
- binary file save architecture in place (hopefully runs faster than ASCII?)
- Use parallelization on initial update_neighbors.
- Per-vertex globalization of neighbor finding should avoid the need for global neighbor finding to initialize -- code detects which vertices require global finding.
- Added vertex neighbor dumblist size/n to vertex hash interface
23-Oct-2008 [cd]
Updated fix_curvature issues (r_ncl now transmitted via io.c)
22-Oct-2008 [cd]
First-stage parallelization appears complete. Control number of CPUs with the {concurrency}
field of a Flux::World object. Setting it to 0 uses no concurrency; setting it to 1 uses
the parallel code (with the piping penalty that implies) but only allows it to use one CPU.
Setting it to a large number (on an appropriately equipped workstation) appears to accelerate the code
by a large factor.
Other fixes:
-io.c: a protocol for binary file transfer (only the parts needed for parallelization are
finished)
-overhauled the force/curvature monitoring code: now there is an encapsulated accumulator in
model.c
-The maximum and mean diversion angle are now reported in degrees, not cos(theta).
21-Oct-2008 [cd]
First cut at first-stage parallelization...
20-Oct-2008 [cd]
Added several new utilities toward parallization:
io.c: a binary-save-file infrastructure that uses machine order and encoding
data.h, data.c: added a "concurrency" field to the WORLD structure
perl side: added interface code for the concurrency field.
7-Oct-2008 [cd]
Several utility additions to manipulate fluxon/concentration connections on the perl side...
26-Sep-2008 [cd]
Added vertex label-change interface to perl side...
30-July-2008 [cd]
added world_check to model.h; perl interface in World.xs. Updated docs
for render() in World.pm. read_world now automatically calls world_check
to fix up questionable incoming files.
29-July-2008 [cd]
io.c - fixed bug in reading that was scrozzling flux values for fluxons
(and hence screwing up magnetic field values).
17-July-2008 [cd]
World.xs, Core.xs, fluxperl.h, geometry.h, geometry.c -
installed closest_vertex and closest_simplex perl methods and
their associated c counterparts find_vertex_by_location and
find_simplex_by_location -- these will hopefully come in handly
later for interpolating values onto a grid!
17-July-2008 [lr]
- changed f_vertex5 in physics.c to inclue all 3 forces: proximity attraction, vertex repulsion, and curvature attraction.
- added a new routine to put in straight fluxons that end on an open sphere: vertical_fluxons.
15-July-2008 [cd]
(Missed a few changes?)
World.xs - relative helicity finder is in place
- vertex finder-by-location is present but not yet working.
io.c - fixed a problem with autogenerated vertices colliding with
special vertices.
18-Apr-2008 [lr]
- Second photosphere isnow working. Added a 2nd image fluxon and
2 more image charges to handle the image correctly.
- Fixed a bug that had been alluding us for a while. When a new
vertex is created because the old one wanted to step through the
photosphere, the new vertex didn't have the step initialized,
so it would move to garbage-land. I fixed that such that any
new vertices aren't moved until the next time step.
14-Apr-2008 [lr]
- fixed the cylindrical boundary so that the origin is 0,0,0 and the
normal is radius,0,0, like the documentation says it should be.
documentation in the wiki, should find which header it is in, in
the code itself.
14-Apr-2008 [cd]
- fixed to interface for photosphere2...
3-Apr-2008 [cd]
- generated version 2.1
3-Apr-2008 [cd]
- removed inline references
25-Mar-2008 [lr]
- fixed rotation_spiro and modified duction to not print out the "./;"
1-Mar-2008 [lr]
- made a new version of tree_walker (safe_tree_walker) that makes
a copy if the tree and then walks. this avoids any problems that
are caused when the function alters the tree itself as it is
walking along the tree. so far it is only applied to fluxon_update_ends.
27-Feb-2008 [lr]
- added world_fluxon_length_check which makes sure that there aren't any fluxons of length 3.
- added safe_tree_walker so that the tree can't change midway though the walk.
14-Nov-2007 [cd]
- added _wdumblist (Flux.xs)
- Combined _start and _end conditions for the plasmodi and open boundaries (model.c)
- Made dumblists slightly less profligate in their memory usage (data.c)
- Cleaned up new_world (data.c)
31-Oct-2007 [cd]
- Perl interface more standardized; seems to avoid memory leaks
- Perl objects always work in through the World and tree_find; this
avoids deallocation problems in (e.g.) cancellation or mesh refinement.
- allocation concentrated in a Core routine
- deallocation is somewhat faster and actually works
- emerge/submerge code seems to work OK
- All new structures are immediately linked into the world trees by the constructors.
29-Oct-2007 [cd]
- Updates to force laws
- Added emerge and cancel functions
- Concentrations have an XS interface
- Core structure
22-Oct-2007 [cd]
- Added Core infrastructure
- Added hash access to forces; also, helpful error messages
- Added f_vertex5
- Added line-tied vertex-management boundaries
- Added default-boundary-condition infrastructure to World.
11-Oct-2007 [cd]
- plasmoid reconnection code
- some testing
9-Oct-2007 [cd]
- Added auto-opening code, including U-loops
- Added explicit non-crossing-photosphere test in stepping code
25-Sep-2007 [cd]
- fixed vertex deallocation bug in fix_curvature.
24-Sep-2007 [cd]
- f_vertex4 fix...
14-Sep-2007 [cd]
- Added new vertex force, fixed a few bugs...
16-August-2007 [cd]
- added a mask to prevent the first and last fluxels in a fluxon from 'seeing' the boundary condition images - this should prevent the vertical-field-at-boundary condition that we have been imposing.
14-July-2007 [lr]
-fixef f_vertex. there is now an f_vertex2. Realized that f_vertex didn't have the pseudo-foce where vertices are attracted to curvature. I have added that force in an tweaked the strengths of the 3 pseudo-forces in f_vertex2 to give good results.
23-May-2007 [cd]
- added filter-by-fluxon to label option in renderer
22-May-2007 [cd]
- added skew angle handling
- added some label filtering in render (more to come).
16-May-2007 [cd]
-fixed energy access problem
17-April-2007 [lr]
-created new energy rouline, o_open which accounts for more of the open vertex energy. Works a little better than e_simple2, but still not what we expect.
1-Feb-2007 [lr]
-Fixed e_simple2 to give the correct energy
16-Dec-2006 [cd]
- Faster relaxation in near-relaxed conditions, using higher values of the
global flag to update_neighbors/update_mag
--- FLUX 1.1: 15-Dec-2006
1-Dec-2006 [cd]
- Rendering impreovements:
-per-fluxon color & gradient specification
-dip detection & marking
22-Aug-2006 [cd]
-Finish linking flux concentrations into the hash-ref formalism
21-July-2006 [cd]
-another fix to gather_neighbor_candidates
20-July-2006 [lr]
-added e_simple2 which hasn't been verified yet
20-July-2006: [cd]
- minor tweaks to gather_neighbor_candidates for optimal speed and
completeness...
20-July-2006: [cd]
- added dup-avoiding unfiltered dumblist addition in model.c. Now it
does seem to both be correct and run much faster. (about 2x)
19-July-2006: [cd]
- Added unsorted-points hull routine (should be much faster)
12-July-2006: [lr & cd]
- installed e_simple (test)
- added energy method to World.pm
19-June-2006: [cd]
- fixed order-of-deref bug between tied hash and underlying
blessed scalar. No longer dumps core on exit. (Bonus!)
14-June-2006: [cd]
- Replaced explicit form-and-bless calls in many of the Vertex.xs
routines, with correct perl calls to the perl-side constructor. This
eliminates a reference leak that was causing crashes. Still get a
segmentation fault on exit...
13-June-2006: [CD]
- De-allocation is now in place. Routine "free_world" seems to clean
up the whole data structure OK. World freedom is linked into the perl side
too, with a perl-like ref count mechanism -- when you deallocate all remaining
references to a Flux object, it gets cleaned up. There are still some problems
with global cleanup -- tends to dump core rather than exiting perl gracefully.
But everything seems to work OK in normal use. No memory leaks observed
when loading and displaying thousands of worlds.
2-June-2006: [LR]
-added a lower threshold to fix_curvature. changed num returned to the difference between new and prev vertex total
31-May-2006:
- Added rudimentary version information -- in $FLUX::file_versions. It tells you the location, mod date, and size of each source file in the FLUX library.
- clamped output step to minimum neighbor distance.
29-May-2006:
- Clamped output step -- no vertex can move more than the distance to its nearest neighbor on the same fluxon. This is to avoid some of the weirder anomalies from ds step scaling, but probably needs to use *all* neighbors rather than just fluxon buddies.
23-May-2006:
- Added a new force law -- f_pressure_equi2 -- that allows correct calculation without resorting to the kludge of running f_pressure_equi twice.
- Fixed vertex deallocation (was a bug in dumblist_delete).
- lots of updates in early 2006 - notably a tied-hash front end for
parameters on the perl side. Painful but worth it.
21-Oct-2005: v. 1.1 updates:
- Changes to the way that step scaling is controlled. You can now set the
power to which various parameters are raised to find the scaling factor
at each node.
- Perl interface has been updated: the principal structures all exist as tied hashes.
You can read (but not write) dumblists as perl lists. All scalar and vector
quantities are r/w. For example,
$a = read_world('pdl/menagerie/potential.flux');
print $a->fluxon(200)->vertex(2)->{x};
[-0.936 0.02 0.289]
18-Aug-2004: checked-in to CVS.