MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

assembly of large matrices


Hello all ,

I wrote a 3D nonlinear finite element program with Mathematica .

To solve the problem I need to create a large stiffness matrix
(say 50,000x50,000) made by the assembly of all the elements stifnesses
( 24x24 stiffness matrix for each element ) .

The assembly takes a long time .

Does anyone have an idea how to reduce the assembly time ?

Thank you , Doron .

Here is my algorithm :

calcKnew7 := Do[

      Ktot7 = Ktot7old;(* a large zeros or sparse matrix *)

      Do[

        Do[dRoofSub[p] = elemVec[[e, 2, p + 1]], {p, 0, 7}];
        CalcFunc1;(* calculation of the stiffness keq1 of element e *)
        Do[
          ith = (nLGlist[[e, 2, m]] - 1)*3 + 1; jth = (nLGlist[[e, 2,
n]] - 1)*3 + 1;
          Ktot7[[Range[ith, ith + 2], Range[jth, jth + 2]]] +=
          SubMatrix[keq1, {(m - 1)*3 + 1, (n - 1)*3 + 1}, {3, 3}];

          , {m, 1, 8}, {n, 1, 8}];(* the assembly *)
        
        , {e, 1, ne}];
      ];


  • Prev by Date: Re: Dotted line plot
  • Next by Date: Re: Re: New Web Site for Mathematica Users using WikiMedia
  • Previous by thread: Re: Mathematica for Summation of Trigonometry expression
  • Next by thread: Re: Product {for p=2 to infinity} (p^2+1)/(p^2-1) version=3.0.2