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

Function GetTraceMatrix

comp/l2hofespace.cpp:1935–1957  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1933
1934
1935 Matrix<> GetTraceMatrix (const FiniteElement & fel)
1936 {
1937 // auto * dgfel2 = dynamic_cast<const DGFiniteElement<2>*> (&fel);
1938 if (auto dgfel2 = dynamic_cast<const DGFiniteElement<ET_TRIG>*> (&fel))
1939 {
1940 int order = fel.Order();
1941 Matrix<> trace(3*(order+1), fel.GetNDof());
1942 for (int j = 0; j < 3; j++)
1943 dgfel2->CalcTraceMatrix(j, trace.Rows(j*(order+1), (j+1)*(order+1)));
1944 return trace;
1945 }
1946 // auto * dgfel3 = dynamic_cast<const DGFiniteElement<3>*> (&fel);
1947 if (auto dgfel3 = dynamic_cast<const DGFiniteElement<ET_TET>*> (&fel))
1948 {
1949 int order = fel.Order();
1950 int nd2d = (order+1)*(order+2)/2;
1951 Matrix<> trace(4*nd2d, fel.GetNDof());
1952 for (int j = 0; j < 4; j++)
1953 dgfel3->CalcTraceMatrix(j, trace.Rows(j*nd2d, (j+1)*nd2d));
1954 return trace;
1955 }
1956 throw Exception("no trace");
1957 }
1958
1959
1960 shared_ptr<BaseMatrix> L2HighOrderFESpace ::

Callers 3

GetTraceOperatorMethod · 0.85
GetTraceMethod · 0.85
GetTraceTransMethod · 0.85

Calls 3

OrderMethod · 0.45
GetNDofMethod · 0.45
RowsMethod · 0.45

Tested by

no test coverage detected