// StdRegions void StdSegExp::v_ReduceOrderCoeffs( int numMin, const Array &inarray, Array &outarray) { int n_coeffs = inarray.num_elements(); Array coeff(n_coeffs); Array coeff_tmp(n_coeffs,0.0); Array tmp; Array tmp2; int nmodes0 = m_base[0]->GetNumModes(); int numMax = nmodes0; Vmath::Vcopy(n_coeffs,inarray,1,coeff_tmp,1); const LibUtilities::PointsKey Pkey0( nmodes0, LibUtilities::eGaussLobattoLegendre); LibUtilities::BasisKey b0(m_base[0]->GetBasisType(),nmodes0,Pkey0); LibUtilities::BasisKey bortho0(LibUtilities::eOrtho_A,nmodes0,Pkey0); LibUtilities::InterpCoeff1D( b0, coeff_tmp, bortho0, coeff); Vmath::Zero(n_coeffs,coeff_tmp,1); int cnt = 0; for (int i = 0; i < numMin+1; ++i) { Vmath::Vcopy(numMin, tmp = coeff+cnt,1, tmp2 = coeff_tmp+cnt,1); cnt = i*numMax; } LibUtilities::InterpCoeff1D( bortho0, coeff_tmp, b0, outarray); }