summaryrefslogtreecommitdiff
path: root/cad/src/experimental/finite-element/README
blob: 8dce6358d85688224a142e6d55656ecd1830d934 (plain)
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


 Copyright 2006-2007 Nanorex, Inc.  See LICENSE file for details. 

2006 July 31

This was an attempt from a few months back to write a C extension
module for doing finite-element models with Verlet integration, to try
to be compatible with how our simulator works.

I did all that before I found out about hotshot, which is the cool new
profiler in Python. As somebody said, premature optimization is the
root of all evil, and I think I maybe jumped the gun. So going back to
the Python reference implementation, we have:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    10032   14.805    0.001   32.814    0.003 jello.py:73(internalForces)
  1123584   10.029    0.000   10.029    0.000 jello.py:43(subvec)
   642048    5.362    0.000    5.362    0.000 jello.py:45(scalevec)
   481536    4.885    0.000    4.885    0.000 jello.py:41(addvec)
    10032    3.082    0.000    6.210    0.001 jello.py:85(verletMomentum)
    10032    0.864    0.000   39.955    0.004 jello.py:212(equationsOfMotion)
    10366    0.810    0.000    0.810    0.000 jello.py:91(applyForces)
        1    0.237    0.237   40.280   40.280 jello.py:223(main)
    10033    0.060    0.000    0.060    0.000 jello.py:100(zeroForces)
    10032    0.057    0.000    0.057    0.000 jello.py:115(rotate)
      152    0.056    0.000   40.041    0.263 jello.py:191(oneFrame)
      154    0.017    0.000    0.027    0.000 jello.py:103(draw)
     2464    0.010    0.000    0.010    0.000 jello.py:206(draw)
      154    0.003    0.000    0.030    0.000 jello.py:199(paintEvent)
      152    0.002    0.000   40.043    0.263 jello.py:181(timeout)
        1    0.000    0.000    0.000    0.000 jello.py:155(__init__)
        1    0.000    0.000    0.000    0.000 jelloGui.py:40(languageChange)
        1    0.000    0.000   40.280   40.280 jello.py:239(m)
        1    0.000    0.000    0.000    0.000 jelloGui.py:15(__init__)
        2    0.000    0.000    0.000    0.000 jelloGui.py:48(__tr)

I am pretty sure I could improve this stuff substantially just by
using Numeric rather than writing a whole bunch of C code. I should
think about that, later.