go to www.geomview.org home page
 
Home

Overview
FAQ
Documentation

Download

Mailing List

Geomview For Windows?

Support
Users
Development

Bug Reporting
Contributing
Contact Us

Sponsors

 

Site Search

 

Advanced
Search

 
About the software@geom archive

[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
SourceForge Logo