Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. for(size_t r = 0; r < 3; r++)
  2.         {
  3.             unsigned long q_i = dofmap[r] - 1;
  4.             for(size_t s = 0; s < 3; s++)
  5.             {
  6.                 // művelet kifejtése egy 2x2 mátrix szorzása egy 2x1 vektorral
  7.                 // így lefut a program
  8.                 vec gf1 = gFi.col(r);
  9.                 vec gf2 = gFi.col(s);
  10.                 T0(0) = invJ(0, 0) * gf1(0) + invJ(0, 1) * gf1(1);
  11.                 T0(1) = invJ(1, 0) * gf1(0) + invJ(1, 1) * gf1(1);
  12.                 T0 *= eptr->epsilon0 * eptr->epsilonr;
  13.                
  14.                 // mégegy 2x2 mátrix * 2x1 vektor
  15.                 T1(0) = invJ(0, 0) * gf2(0) + invJ(0, 1) * gf2(1);
  16.                 T1(1) = invJ(1, 0) * gf2(0) + invJ(1, 1) * gf2(1);
  17.  
  18.                 // két eredmény vektor skaláris szorzata
  19.                 double val = T0(0) * T1(0) + T0(1) * T1(1);
  20.                
  21.                 // a fentebbi műveletek egy sorban
  22.                 // val == a, viszont a következő sor miatt futásidőben segmentation fault
  23.                 // hibával elszáll a program
  24.                 double a = as_scalar((eptr->epsilon0 * eptr->epsilonr*invJ*gFi.col(r)).t() * invJ*gFi.col(s));
  25.  
  26.                 unsigned long q_j = dofmap[s] - 1;
  27.  
  28.                 A1(q_i, q_j) += 0.5 * val * detJ;
  29.             }
  30.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement