Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for(size_t r = 0; r < 3; r++)
- {
- unsigned long q_i = dofmap[r] - 1;
- for(size_t s = 0; s < 3; s++)
- {
- // művelet kifejtése egy 2x2 mátrix szorzása egy 2x1 vektorral
- // így lefut a program
- vec gf1 = gFi.col(r);
- vec gf2 = gFi.col(s);
- T0(0) = invJ(0, 0) * gf1(0) + invJ(0, 1) * gf1(1);
- T0(1) = invJ(1, 0) * gf1(0) + invJ(1, 1) * gf1(1);
- T0 *= eptr->epsilon0 * eptr->epsilonr;
- // mégegy 2x2 mátrix * 2x1 vektor
- T1(0) = invJ(0, 0) * gf2(0) + invJ(0, 1) * gf2(1);
- T1(1) = invJ(1, 0) * gf2(0) + invJ(1, 1) * gf2(1);
- // két eredmény vektor skaláris szorzata
- double val = T0(0) * T1(0) + T0(1) * T1(1);
- // a fentebbi műveletek egy sorban
- // val == a, viszont a következő sor miatt futásidőben segmentation fault
- // hibával elszáll a program
- double a = as_scalar((eptr->epsilon0 * eptr->epsilonr*invJ*gFi.col(r)).t() * invJ*gFi.col(s));
- unsigned long q_j = dofmap[s] - 1;
- A1(q_i, q_j) += 0.5 * val * detJ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement