| 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 :: |
no test coverage detected