Beispiel #1
0
  void operator()()
  {
    j1 = (traj_x(nt2::_(2,M-1),nt2::_(3,N)) - traj_x(nt2::_(2,M-1),nt2::_(1,N-2)))/(2*dX);
    j2 = (traj_x(nt2::_(3,M),nt2::_(2,N-1)) - traj_x(nt2::_(1,M-2),nt2::_(2,N-1)))/(2*dY);
    j3 = (traj_y(nt2::_(2,M-1),nt2::_(3,N)) - traj_y(nt2::_(2,M-1),nt2::_(1,N-2)))/(2*dX);
    j4 = (traj_y(nt2::_(3,M),nt2::_(2,N-1)) - traj_y(nt2::_(1,M-2),nt2::_(2,N-1)))/(2*dY);

    jacob1 = nt2::sqr(j1) + nt2::sqr(j3);
    jacob2 = j1*j2 + j3*j4;
    jacob4 = nt2::sqr(j2) + nt2::sqr(j4);

    sqrtdelta = nt2::sqrt(nt2::sqr(jacob1+jacob4) - T(4)*(jacob1*jacob4-nt2::sqr(jacob2)));

    lambda(nt2::_,nt2::_,1) = T(0.5)*(jacob1 + jacob4 + sqrtdelta);
    lambda(nt2::_,nt2::_,2)= T(0.5)*(jacob1 + jacob4 - sqrtdelta);

    res= nt2::maximum(lambda,3);
  }
Beispiel #2
0
  Compute_FTLE(std::size_t m, std::size_t n, T const& min, T const& max )
    : M(m),N(n), dX(0.01), dY(0.01), traj_x(nt2::of_size(m,n)), traj_y(nt2::of_size(m,n)), lambda(nt2::of_size(m-2, n-2,2))
  {

    for(std::size_t j = 1; j <= N; ++j)
        for(std::size_t i = 1; i <= M; ++i)
            traj_y(i,j) = traj_x(i,j) = roll<T>(min,max);;

  }
Beispiel #3
0
  Compute(std::size_t m, std::size_t n, T const& min, T const& max )    
    : M(m),N(n), dX(0.01), dY(0.01), traj_x(nt2::of_size(m,n)), traj_y(nt2::of_size(m,n))
    , j1(nt2::of_size(m-2, n-2)), j2(nt2::of_size(m-2, n-2)), j3(nt2::of_size(m-2, n-2))
    , j4(nt2::of_size(m-2, n-2)), jacob1(nt2::of_size(m-2, n-2)), jacob2(nt2::of_size(m-2, n-2))
    , jacob4(nt2::of_size(m-2, n-2)), sqrtdelta(nt2::of_size(m-2, n-2)), lambda(nt2::of_size(m-2, n-2,2))
    , res(nt2::of_size(m-2, n-2))
  {

    for(std::size_t j = 1; j <= N; ++j){
      for(std::size_t i = 1; i <= M; ++i){
        traj_y(i,j) = traj_x(i,j) = roll<T>(min,max);
        
      }
    }

  }