768 {
769 auto theta =
parameters.template get<descriptors::THETA>();
772
773 auto phi_1 = cell.neighbor({-xNormal,-yNormal}).template getFieldComponent<descriptors::STATISTIC>(0);
774 auto phi_1r = cell.neighbor({-xNormal,-yNormal}).neighbor(tangent).template getFieldComponent<descriptors::STATISTIC>(0);
775 auto phi_1l = cell.neighbor({-xNormal,-yNormal}).neighbor(opp_tang).template getFieldComponent<descriptors::STATISTIC>(0);
776 auto phi_2r = cell.neighbor({-2*xNormal,-2*yNormal}).neighbor(tangent).template getFieldComponent<descriptors::STATISTIC>(0);
777 auto phi_2l = cell.neighbor({-2*xNormal,-2*yNormal}).neighbor(opp_tang).template getFieldComponent<descriptors::STATISTIC>(0);
778
779 T dphi_1 = ( phi_1r - phi_1l ) / 2.;
780 T dphi_2 = ( phi_2r - phi_2l ) / 2.;
781 T tau_x_dphi = 1.5*dphi_1 - 0.5*dphi_2;
782
783 auto phi = cell.template getField<descriptors::STATISTIC>();
784 phi[0] = phi_1 +
tan(
M_PI/2. - theta ) *
abs(tau_x_dphi);
785 cell.template setField<descriptors::STATISTIC>(phi);
786 }
ADf< T, DIM > tan(const ADf< T, DIM > &a)
Vector(T &&t, Ts &&... ts) -> Vector< std::remove_cvref_t< T >, 1+sizeof...(Ts)>
std::enable_if_t< std::is_arithmetic< T >::type::value, T > abs(T x) any_platform
meta::list< descriptors::THETA > parameters