I've included below the timing and accuracy results of some tests
of the Finite-element system we've developed in our graduate course.
More details can be found at
http://www.math.purdue.edu/~lucier/615/
There must be lots of systems out there to solve these problems;
I'd be interested in timings, etc., for the same problems on the
same grid size on any other system run on a similar machine
(500 MHz Alpha 21264).
Brad Lucier
These are timing and accuracy results to solve the system
$$
\gathered
-\nabla\cdot(a\nabla u)+b\cdot\nabla u+cu=f\quad\text{on }\Omega,
\\
a\frac{\partial u}{\partial n}+\gamma u=g\quad\text{on }\partial Omega.
\endgathered
$$
with $b=0$ and $\gamma=0$ with $\Omega=[0,1]^2$ and a regular
grid of size $129 \times 129$ with one set of diagonals and
linear finite elements. Multigrid was used, with m1 presmoothing
steps, m2 postsmoothing steps, and p coarse-correction steps in each
MG-step, and r iterations of MG-step at each refinement level.
The L2 and H1 errors were estimated by injecting the approximate
solution into a $257 \times 257$ grid and comparing it with the
interpolant of the true solution on the fine grid. The problems
are roughly in increasing order of difficulty; in the last
problem, for example, the stiffness coefficient $a$ varies from
1.0 to 21.0 over the domain.
User ms is the amount of user+system time to solve the linear
system only; every once in a while there was a garbage collection
during the solution process, whose time is measured separately.
The tests were run on a dual processor, 500 MHz, Alpha 21264 DS20
clone with 4 Mbytes of cache on each processor and 2 Gbytes of main memory.
The program was coded in Scheme with the Meroon object system and
compiled from Scheme->C by a hacked version of Gambit-C 3.0; the
C code was compiled with gcc-2.95.1 with options
"-mcpu=ev6 -fno-math-errno -mieee -O2".
a=1, c=1, u=x^2-y^2, Neumann
r m1 m2 p L2-error H1-error User ms GC ms
1 1 1 1 .0000111241 .0055636059 48 0
2 1 1 1 .0000062718 .0055249691 97 0
3 1 1 1 .0000062304 .0055243088 123 0
1 2 2 1 .0000078913 .0055285888 60 0
2 2 2 1 .0000062350 .0055243127 107 0
3 2 2 1 .0000062294 .0055242758 181 0
1 1 1 2 .0000064491 .0055568166 104 0
2 1 1 2 .0000062353 .0055249424 207 0
3 1 1 2 .0000062296 .0055243083 289 0
1 2 2 2 .0000062674 .0055281514 120 0
2 2 2 2 .0000062300 .0055243096 261 0
3 2 2 2 .0000062293 .0055242757 388 0
a=1, c=1, u=\cos(\pi x), Neumann
r m1 m2 p L2-error H1-error User ms GC ms
1 1 1 1 .0009457495 .0156345383 45 0
2 1 1 1 .0000684329 .0136403723 97 0
3 1 1 1 .0000365891 .0136305969 138 0
1 2 2 1 .0003076304 .0138167109 60 0
2 2 2 1 .0000426516 .0136311642 118 0
3 2 2 1 .0000327454 .0136299639 156 0
1 1 1 2 .0000512182 .0137250546 112 0
2 1 1 2 .0000315718 .0136320369 226 0
3 1 1 2 .0000306578 .0136299627 336 0
1 2 2 2 .0000503761 .0136432677 132 0
2 2 2 2 .0000308444 .0136299945 244 874
3 2 2 2 .0000305882 .0136298227 377 868
a=1, c=1, u=\sin(\pi x)+\sin(\pi y), Neumann
r m1 m2 p L2-error H1-error User ms GC ms
1 1 1 1 .0030322930 .0249841147 46 0
2 1 1 1 .0001445963 .0192861548 93 0
3 1 1 1 .0000617054 .0192765554 148 0
1 2 2 1 .0009621137 .0197572872 61 866
2 2 2 1 .0000794902 .0192772707 123 0
3 2 2 1 .0000513055 .0192761616 184 0
1 1 1 2 .0000636462 .0193783165 122 870
2 1 1 2 .0000446992 .0192779877 241 0
3 1 1 2 .0000439637 .0192761367 359 0
1 2 2 2 .0000632915 .0192877008 144 0
2 2 2 2 .0000440936 .0192761387 285 0
3 2 2 2 .0000439250 .0192760497 415 0
a=11.0+10.0*\cos\pi x, c=1, u=xy, Neumann
r m1 m2 p L2-error H1-error User ms GC ms
1 1 1 1 .0117843856 .0793697347 50 0
2 1 1 1 .0045740610 .0393966773 102 0
3 1 1 1 .0022717151 .0231828180 152 0
1 2 2 1 .0085477817 .0603668759 59 0
2 2 2 1 .0027717531 .0256029759 129 0
3 2 2 1 .0012031868 .0137358505 188 0
1 1 1 2 .0003806315 .0107117326 136 0
2 1 1 2 .0001177643 .0062545589 277 0
3 1 1 2 .0000575332 .0050803589 411 0
1 2 2 2 .0002027237 .0076250136 157 0
2 2 2 2 .0000597605 .0050771489 328 0
3 2 2 2 .0000305695 .0044678021 484 0
--------------------- Object Oriented Numerics List --------------------------
* To subscribe/unsubscribe: use the handy web form at
http://oonumerics.org/oon/
* If this doesn't work, please send a note to owner-oon-list@oonumerics.org
This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 03:20:13 EST