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

Method Apply

fem/diffop.cpp:107–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105
106
107 void DifferentialOperator ::
108 Apply (const FiniteElement & fel,
109 const BaseMappedIntegrationPoint & mip,
110 BareSliceVector<double> x,
111 FlatVector<double> flux,
112 LocalHeap & lh) const
113 {
114#ifndef FASTCOMPILE
115 static int cnt = 0;
116 if (cnt < 3)
117 {
118 cnt++;
119 cout << "called base class apply, type = " << typeid(*this).name() << endl;
120 }
121#endif
122 HeapReset hr(lh);
123 FlatMatrix<double,ColMajor> mat(VSDim(), fel.GetNDof(), lh);
124 if (auto vsemb = GetVSEmbedding(); vsemb)
125 {
126 CalcMatrixVS (fel, mip, mat, lh);
127 FlatVector<double> flux1(VSDim(), lh);
128 flux1 = mat * x;
129 flux = *vsemb * flux1;
130 }
131 else
132 {
133 CalcMatrix (fel, mip, mat, lh);
134 flux = mat * x;
135 }
136 }
137
138 void DifferentialOperator ::
139 Apply (const FiniteElement & fel,

Callers

nothing calls this directly

Calls 14

VSDimFunction · 0.85
GetVSEmbeddingFunction · 0.85
ApplyFunction · 0.85
DimFunction · 0.70
TransFunction · 0.50
GetNDofMethod · 0.45
SizeMethod · 0.45
RangeMethod · 0.45
RowMethod · 0.45
DimMethod · 0.45
ApplyMethod · 0.45
RowsMethod · 0.45

Tested by

no test coverage detected