iMechanica - sparse solver
https://imechanica.org/taxonomy/term/719
enWanted: Fast FEA Solvers...
https://imechanica.org/node/8240
<div class="field field-name-taxonomy-vocabulary-8 field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/719">sparse solver</a></div><div class="field-item odd"><a href="/taxonomy/term/751">Shell</a></div><div class="field-item even"><a href="/taxonomy/term/846">FEM</a></div><div class="field-item odd"><a href="/taxonomy/term/880">open source</a></div><div class="field-item even"><a href="/taxonomy/term/938">Fast</a></div><div class="field-item odd"><a href="/taxonomy/term/1032">eigenvalue</a></div><div class="field-item even"><a href="/taxonomy/term/2864">solvers</a></div><div class="field-item odd"><a href="/taxonomy/term/4872">cst</a></div><div class="field-item even"><a href="/taxonomy/term/5181">direct</a></div><div class="field-item odd"><a href="/taxonomy/term/5182">iterative</a></div><div class="field-item even"><a href="/taxonomy/term/5183">LST</a></div><div class="field-item odd"><a href="/taxonomy/term/5184">DKT</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>
<strong>Summary:<br /></strong><br />
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.</p>
<p>I seek advice 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. </p>
<p>I have a personal and longer-term research interest with certain issues related to the solvers technologies. </p>
<p>Suggestions and comments are welcome!</p>
<p><strong>(1.) The Reference Problem:</strong></p>
<p>(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. </p>
<p>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.</p>
<p>(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.</p>
<p>(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.</p>
<p>(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 [<a href="http://www.cs.cmu.edu/~quake/triangle.html" target="_blank">^</a>] or Niceno's EasyMesh [<a href="http://www-dinma.univ.trieste.it/nirftc/research/easymesh/" target="_blank">^</a>]. </p>
<p>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.</p>
<p>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.</p>
<p>Note that these numbers refer to the geometry nodes. In the FE model, each such a node would carry several DOFs.</p>
<p>(1.5) The linear systems resulting after the FE-discretization are to be solved for both static and modal analyses.</p>
<p><strong>(2.) The Software/Hardware to be Used:</strong></p>
<p>(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.). </p>
<p>(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.</p>
<p>(2.3) Dependencies on open-source libraries/platforms such as GoToBlas, Boost, MTL, etc. are OK.</p>
<p>(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. </p>
<p>(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.</p>
<p>(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%.</p>
<p>(2.7) All the solver operations are expected to occur in-core (not out-of-core).</p>
<p>(2.8) Assume that all mathematical operations would be peformed in double precision (8 bytes).</p>
<p>
<strong>(3.) What Is Being Sought:<br /></strong><br />
(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:<br />
-- direct solver for static analysis (Ax = b)<br />
-- iterative solver for static analysis (Ax = b)<br />
-- direct solver for eigenvalues computations (Ax = Lx)<br />
-- iterative solver for eigenvalues computations (Ax = Lx)</p>
<p>For iterative solvers, assume the usual kind of convergence requirements (error norms).</p>
<p>(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.</p>
<p>(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.</p>
<p>(3.4) Not very important right now, but any side suggestions you might have for nonsymmetric A matrices would also be welcome.</p>
<p>(3.5) A general point of reference for this query is this URL: <br /><a href="http://www.netlib.org/utk/people/JackDongarra/la-sw.html">http://www.netlib.org/utk/people/JackDongarra/la-sw.html</a></p>
<p>
<strong>(4.) Why This Study:</strong></p>
<p>The purpose is something like this. I have some preliminary ideas concerning solvers. </p>
<p>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. </p>
<p>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.)</p>
<p>
<strong>(5.) Your Suggestions/References:</strong></p>
<p>Well thought-out comments/suggestions w.r.t the point (3.1) are sought.</p>
<p>
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.</p>
<p>
Thanks in advance!</p>
<p>
--Ajit
</p>
<p>
<em>PS:</em> Posted also at my blog here [<a href="http://ajitjadhav.wordpress.com/2010/05/14/wanted-fast-fea-solvers/" target="_blank">^</a>].
</p>
<p>
[E&OE]
</p>
<p>
</p>
</div></div></div>Fri, 14 May 2010 14:18:50 +0000Ajit R. Jadhav8240 at https://imechanica.orghttps://imechanica.org/node/8240#commentshttps://imechanica.org/crss/node/8240Compiling and Building TAUCS a library of sparse linear solvers
https://imechanica.org/node/4570
<div class="field field-name-taxonomy-vocabulary-6 field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/962">software</a></div></div></div><div class="field field-name-taxonomy-vocabulary-8 field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/719">sparse solver</a></div><div class="field-item odd"><a href="/taxonomy/term/3255">linear solvers</a></div><div class="field-item even"><a href="/taxonomy/term/3256">solution of linear system of equations</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>
I would like to share the following information to all the iMechanica users interested in using TAUCS a library of sparse linear solvers. TAUCS is among the most used libraries of sparse linear solvers and, to my knowledge, its closest equivalent library is SuperLU. For your reference, TAUCS is used in the commercial software Mathematica by Wolfram Research. Its source code can be downloaded from
</p>
<p>
<a href="http://www.tau.ac.il/%7Estoledo/taucs/">http://www.tau.ac.il/~stoledo/taucs</a>
</p>
<p>
In every numerical implementation which leads to large sparse matrices the use of such type of libraries is often needed. That is because the numerical solution of sparse linear systems becomes an important step and nobody would like to fail in this stage. In this regard a good library of sparse linear solvers may be of help in speeding up the numerical computation. Because there is no support available for TAUCS it is not straightforward to get into it, but once the user<br />
has successfully ran his/her first TAUCS example all will go through smoothly. Motivated in part by the latter a forum on TAUCS has been started in
</p>
<p>
<a href="http://groups.google.com/group/matrixprogramming?hl=en"><span>http://groups.google.com/group/matrixprogramming?hl=en</span></a>
</p>
<p>
which is managed by Evgenii Rudnyi from CADFEM GmbH, <span>Germany</span><span>. Egvenii, myself and other users in the forum have contributed to an online guide to compile and build TAUCS under Win32 that you can consult in </span>
</p>
<p>
<a href="http://matrixprogramming.com/TAUCS/"><span>http://matrixprogramming.com/TAUCS/</span></a>
</p>
<p>
The latter is the summary of all the issues addressed in the forum. Although the same principles can be applied to build TAUCS under Linux, we have chosen Win32 because some particular difficulties arise in this OS. I believe that this<br />
guide will help the new user to use TAUCS easily and succesfully.
</p>
</div></div></div>Mon, 29 Dec 2008 03:01:44 +0000Alejandro Ortiz-Bernardin4570 at https://imechanica.orghttps://imechanica.org/node/4570#commentshttps://imechanica.org/crss/node/4570Error | iMechanica