| 233 | |
| 234 | template<> template <typename MIP, typename TFA> |
| 235 | void TangentialFacetFacetFE<ET_SEGM>::CalcDualShape2 (const MIP & mip, |
| 236 | TFA & shape) const |
| 237 | { |
| 238 | typedef typename std::remove_const<typename std::remove_reference<decltype(mip.IP()(0))>::type>::type T; |
| 239 | auto & ip = mip.IP(); |
| 240 | T x = ip(0); |
| 241 | if ( vnums[0] > vnums[1]) x = 1-x; |
| 242 | auto xi = 2*x-1; |
| 243 | |
| 244 | Vec<2,T> tau = mip.GetJacobian().Col(0); |
| 245 | tau /= mip.GetMeasure(); |
| 246 | |
| 247 | LegendrePolynomial(order, xi, |
| 248 | SBLambda([&] (size_t i, auto val) |
| 249 | { |
| 250 | shape[i] = val*tau; |
| 251 | })); |
| 252 | } |
| 253 | |
| 254 | template<> |
| 255 | void TangentialFacetFacetFE<ET_SEGM>::ComputeNDof() |
no test coverage detected