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

Function GenerateEdgeData

comp/webgui.cpp:224–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

222}
223
224vector<string> GenerateEdgeData( shared_ptr<MeshAccess> ma,
225 shared_ptr<CoefficientFunction> cf,
226 int order) {
227 // generate wireframe data
228 LocalHeapMem<100000> lh("webgui_edge_data");
229 auto vb = ma->GetDimension() == 3 ? BBND : BND;
230 Array<double> edge_data;
231 auto comps = cf->Dimension();
232 for (auto elnr : Range(ma->GetNElements(1))) {
233 HeapReset hr(lh);
234
235 auto el = ma->GetElement({vb, elnr});
236 auto &ir = GetElementPoints(el.GetType(), order);
237 auto &trafo = ma->GetTrafo(el, lh);
238 BaseMappedIntegrationRule &mir = trafo(ir, lh);
239 FlatMatrix<> values(ir.Size(), comps, lh);
240 cf->Evaluate(mir, values);
241 edge_data.Append(
242 FlatArray<double>(values.AsVector().Size(), values.Data()));
243 }
244 auto nip = order+1;
245 auto nseg = edge_data.Size() / nip / comps;
246 FlatTensor<3, double> data(nseg, nip, comps, edge_data.Data());
247 return MapBernstein(data, ET_SEGM, order, cf->Dimension());
248}
249
250vector<string> GenerateSurfaceData( shared_ptr<MeshAccess> ma,
251 shared_ptr<CoefficientFunction> cf,

Callers 1

GenerateWebguiDataFunction · 0.85

Calls 10

MapBernsteinFunction · 0.85
RangeFunction · 0.50
GetDimensionMethod · 0.45
DimensionMethod · 0.45
GetTypeMethod · 0.45
SizeMethod · 0.45
EvaluateMethod · 0.45
AppendMethod · 0.45
AsVectorMethod · 0.45
DataMethod · 0.45

Tested by

no test coverage detected