| 356 | } |
| 357 | |
| 358 | virtual void CalcMultiPointJacobian (const IntegrationRule & ir, |
| 359 | BaseMappedIntegrationRule & bmir) const override |
| 360 | { |
| 361 | if (sizeof(IntegrationPoint) % 8 != 0) |
| 362 | { |
| 363 | cerr << "Integration must should have 8-byte alignment" << endl; |
| 364 | exit(1); |
| 365 | } |
| 366 | |
| 367 | MappedIntegrationRule<DIMS,DIMR> & mir = |
| 368 | static_cast<MappedIntegrationRule<DIMS,DIMR> &> (bmir); |
| 369 | |
| 370 | for (int i = 0; i < ir.Size(); i++) |
| 371 | { |
| 372 | CalcPointJacobian (ir[i], mir[i].Point(), mir[i].Jacobian()); |
| 373 | mir[i].Compute(); |
| 374 | } |
| 375 | |
| 376 | /* |
| 377 | MappedIntegrationRule<DIMS,DIMR> & mir = |
| 378 | static_cast<MappedIntegrationRule<DIMS,DIMR> &> (bmir); |
| 379 | mesh->mesh.MultiElementTransformation <DIMS,DIMR> (elnr, ir.Size(), |
| 380 | &ir[0](0), &ir[1](0)-&ir[0](0), |
| 381 | &mir[0].Point()(0), |
| 382 | &mir[1].Point()(0)-&mir[0].Point()(0), |
| 383 | &mir[0].Jacobian()(0,0), |
| 384 | &mir[1].Jacobian()(0,0)-&mir[0].Jacobian()(0,0)); |
| 385 | |
| 386 | for (int i = 0; i < ir.Size(); i++) |
| 387 | mir[i].Compute(); |
| 388 | */ |
| 389 | } |
| 390 | |
| 391 | virtual void CalcMultiPointJacobian (const SIMD_IntegrationRule & ir, |
| 392 | SIMD_BaseMappedIntegrationRule & bmir) const override |
nothing calls this directly
no test coverage detected