MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / NonZeroPattern

Method NonZeroPattern

fem/coefficient.cpp:3452–3465  ·  view source on GitHub ↗

virtual void NonZeroPattern (const class ProxyUserData & ud, FlatVector nonzero, FlatVector nonzero_deriv, FlatVector nonzero_dderiv) const override { FlatArray hdims = Dimensions(); Vector v1(hdims[0]*inner_dim), v2(inner_dim); Vector d1(hdims[0]*inner_dim), d2(inner_dim); Vector dd1(hdims[0]*inner_dim), dd2

Source from the content-addressed store, hash-verified

3450 }
3451 */
3452 virtual void NonZeroPattern (const class ProxyUserData & ud,
3453 FlatVector<AutoDiffDiff<1,NonZero>> values) const override
3454 {
3455 // FlatArray<int> hdims = Dimensions();
3456 Vector<AutoDiffDiff<1,NonZero>> va(Dimension()*inner_dim), vb(inner_dim);
3457 c1->NonZeroPattern (ud, va);
3458 c2->NonZeroPattern (ud, vb);
3459
3460 values = NonZero(false);
3461
3462 for (size_t i = 0; i < Dimension(); i++)
3463 for (size_t j = 0; j < inner_dim; j++)
3464 values(i) += va(i*inner_dim+j) * vb(j);
3465 }
3466
3467 virtual void NonZeroPattern (const class ProxyUserData & ud,
3468 FlatArray<FlatVector<AutoDiffDiff<1,NonZero>>> input,

Callers

nothing calls this directly

Calls 3

NonZeroClass · 0.85
DimensionFunction · 0.70
NonZeroPatternMethod · 0.45

Tested by

no test coverage detected