Wanted: Fast FEA Solvers…


I am thinking of informally conducting a specific case-study concerning the FEA solvers. The reference problem is a very simple but typical problem from stress analysis, leading of course to the linear systems: Ax = b and Ax = Lx.

I seek advise as to what software libraries currently available in the public domain would be best to use—the ones that would be fastest in terms of execution time for the reference problem.

I have a personal and longer-term research interest with certain issues related to the solvers technologies.

Suggestions and comments are welcome!

(1.) The Reference Problem:

(1.1) Consider a homogeneous thin rectangular plate made of MS, say of the size 200 mm X 100 mm, with a thickness of, say, 1 mm.

For the initial requirement, the plate carries no hole, though a small 60 mm dia. hole at the center might be introduced later on, during a separate phase of this study.

(1.2) For static analysis, the plate is loaded with a uniform traction acting on the two shorter sides of the plate, whereas the longer sides are kept free. For modal frequency analysis, the plate is considered clamped on all the four sides.

(1.3) Simple, standard finite elements are to be used: (a) CST and LST for the static analysis, and (b) DKT flat-shell element for the modal analysis.

(1.4) The domain is to be meshed using high-quality irregular triangles, the smallest allowed angle being ~34 degrees as in Shewchuk’s Triangle library [^] or Niceno’s EasyMesh [^].

To obtain a medium-fine mesh, the triangle side may be restricted to < 5 mm. This choice leads to about 2,500 triangles, 1,200 corner nodes, and 4,000 edges—i.e. about 1,200 nodes for CST analysis and 5,200 nodes for LST analysis.

However, if the upper bound on the triangle side is halved (< 2.5 mm), then we obtain a very fine mesh of about 10,000 triangles, 5,000 corner nodes, and 15,000 edges—i.e. about 5,000 nodes for CST and 20,000 nodes for LST.

Note that these numbers refer to the geometry nodes. In the FE model, each such a node would carry several DOFs.

(1.5) The linear systems resulting after the FE-discretization are to be solved for both static and modal analyses.

(2.) The Software/Hardware to be used:

(2.1) The linear system is to be solved using C/C++ callable and fairly well-tested open-source libraries (libraries of the kind: LAPACK, ARPACK, Taucs, etc.).

(2.2) The library itself might have been written in FORTRAN; the only requirement is that compiled binaries and C/C++ wrappers should be readily available.

(2.3) Dependencies on open-source libraries/platforms such as GoToBlas, Boost, MTL, etc. are OK.

(2.4) Assume this (lower-end) software-hardware platform: A single 32-bit desktop PC, Intel Core2 Duo @ ~3 Ghz main clock, 1 MB L2 cache, 2 GB of RAM. Assume the OS to be Windows 2K/XP.

(2.5) The compiler of preference is VC++ 6. However, other free compilers like VC++ Express Edition 2008 can be considered. Also, I am open to using GCC or other compilers, with or without their CMake, MinGW requirements etc.

(2.6) The sequential mode execution is assumed. No parallel processing, whether using shared memory, clusters (MPI), or GPUs. For the same reason, it’s OK if the solver library is not parallel processing-enabled, and does not take advantage of an additional core. Thus, for this study, it is OK even if the total CPU usage on a double-core machine doesn’t exceed 50%.

(2.7) All the solver operations are expected to occur in-core (not out-of-core).

(2.8) Assume that all mathematical operations would be peformed in double precision (8 bytes).

(3.) What Is Being Sought:

(3.1) Considering the above requirements, please suggest the libraries and methods that might provide the highest performance (the least execution time) for the following categories of solvers:
— direct solver for static analysis (Ax = b)
— iterative solver for static analysis (Ax = b)
— direct solver for eigenvalues computations (Ax = Lx)
— iterative solver for eigenvalues computations (Ax = Lx)

For iterative solvers, assume the usual kind of convergence requirements (error norms).

(3.2) The total execution time is to be measured (a) from the tick that the reading of all the disk files containing all the input matrices to RAM is complete, (b) to the tick that the solution is first fully ready in RAM, waiting to be written to the output disk files.

(3.3) Please provide any additional information like the assumption of a specific pre-conditioner, the reason why you recommend a particular algorithm for this type of problem, etc.

(3.4) Not very important right now, but any side suggestions you might have for nonsymmetric A matrices would also be welcome.

(3.5) A general point of reference for this query is this URL:

(4.) Why This Study:

The purpose is something like this. I have some preliminary ideas concerning solvers.

I would like to test my ideas against the available state of the art/cutting-edge solver implementations, in the context of the above kind of applications—viz. that the K matrix wouldn’t be tridiagonal but would be banded SPD, having a topology implied by the above category of problems.

It’s easily possible that my ideas may not work out. I wish to put them to the testing ground anyway. (I really am just at a very preliminary stage.)

(5.) Your Suggestions/References:

Well thought-out comments/suggestions w.r.t the point (3.1) are sought.

Since I am not affiliated to any institution having e-Journals access, in case you provide links to research papers, I would greatly appreciate if you could also send e-copies to me by email: aj175tp[ at ]yahoo[ dot ]co[ dot ]in.

Thanks in advance!

PS: Posted also at iMechanica [^]

–  –  –  –  –
A Song I Like

(Hindi/Urdu) “woh nahin milataa mujhe…”
Singer: Chitra Singh
Music: Jagjit Singh
Lyrics: [?]