Home Overview FAQ Documentation Download Mailing List Geomview For Windows? Support Users Development Bug Reporting Contributing Contact Us Sponsors
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [ REQ 5322]: geomview usage stradegy
Greetings geom-people, I have been playing with geomview for a while and would like some advice on how to optimize its performance. My research involves simulations of solidification reactions (think of ice forming in an ice-cube tray). the output of my simulations is the positions of the `solid atoms' as a function of time. the atoms do not move, but may appear and disappear as the interface between solid and liquid moves back and forth. in order to view the output using geomview, i employed the following stradegy: 1) define a geometry for the atom (rhombic dodecahedron using OFF) 2) for each frame in the movie, a) if atom has not been seen before, create a transform and instantiate the atom at the given location. this creates ids tX and aX for each atom. b) create a new frame, which is a list of the solid atoms this creates ids frame1, frame2, ... frameN. 3) display the frames in order by adding a geom to world called frame, and redefining frame to be frame1, frame2, etc. each frame is composed of 100-300 atoms, and i tried to make 1000 frames. note that the total number of distinct atoms is less than 500. this works quite well, once it gets to step 3. i get a frame rate of about 2-3 frames/sec on a HP735. displaying the frames as they are created is about 3 times slower, and makes replay much more difficult. the problem is that i see progressive slowing down of the reading of the individual frames, particularly noticable after about 100 frames. i suspect the problem is that i am creating a new id for each frame, and that the oogl library does a linear search on the id names in order to see if i am creating a new id, or redefining an old one. (my total number of ids is about 2000). if linear searching is in effect the total time scales as n^2 for n ids. i really doubt that i am running into a swapping problem. the resident set size never seems to exceed 20MB, and i have 80MB of ram on a machine with essentially 0 load. if new-id creation is indeed the problem, this could be avoided if i could create a list of frames without specifically naming each frame, and appending each frame onto the list as it is read. some recursive use of `car' and `cdr' would then be used to display this list of frames. right now i cant see how to implement the append operation any faster than O(n) (for an n element list) with the current command listing in the v1.5 manual. is there a better way? i would also like to make an mpeg. this could easily be done with external module which does essentially an xwd. this beast would be trivial to write, but of course i'm asking if one already exists. -- Mike Uttormark Dept. Materials Science and Engineering 608-265-4624 (office) University of Wisconsin--Madison 608-262-6707 (fax) 1500 Johnson Drive uttormark at engr.wisc.edu Madison, WI 53706
|
||
Home | Overview | FAQ | Documentation | Support | Download | Mailing List Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors |
|||
site hosted by |