Dear Ihsan, I have no problem to compile the following code (your code with minor adjustments):
#include <deal.II/hp/fe_values.h> #include <deal.II/fe/fe_series.h> #include <deal.II/fe/fe_q.h> #include <deal.II/lac/vector.h> using namespace dealii; template <int dim, typename VectorType> class HPSolver { public: HPSolver( const unsigned int max_fe_degree); //virtual ~HPSolver(); const hp::FECollection<dim>& get_fe_collection(); const hp::QCollection<dim-1>& get_face_quadrature_collection(); protected: hp::FECollection<dim> fe_collection; hp::QCollection<dim> quadrature_collection; hp::QCollection<dim-1> face_quadrature_collection; hp::QCollection<dim> fourier_q_collection; std::unique_ptr<FESeries::Fourier<dim>> fourier; std::vector<double> ln_k; Table<dim, std::complex<double>> fourier_coefficients; }; template <int dim, typename VectorType> HPSolver<dim, VectorType>::HPSolver( const unsigned int max_degree) { for (unsigned int degree=2; degree <= max_degree; ++degree) { fe_collection.push_back(FE_Q<dim>(degree)); quadrature_collection.push_back(QGauss<dim>(degree+1)); face_quadrature_collection.push_back(QGauss<dim-1>(degree+1)); } const unsigned int N = max_degree; QGauss<1> base_quadrature(2); QIterated<dim> quadrature(base_quadrature, N); for (unsigned int i = 0; i < fe_collection.size(); i++) fourier_q_collection.push_back(quadrature); std::vector<unsigned int> n_coefficients_per_direction(fe_collection.size (), N); fourier = std::make_unique<FESeries::Fourier<dim>>( n_coefficients_per_direction, fe_collection, fourier_q_collection); //resize(fourier_coefficients, N); } int main() { HPSolver<3,Vector<double> > solver(3); } So my guess is that you have forgotten: `#include <deal.II/fe/fe_series.h <https://www.dealii.org/developer/doxygen/deal.II/fe__series_8h_source.html> >`? Hope this helps! Peter On Friday, 5 June 2020 10:40:29 UTC+2, A.Z Ihsan wrote: > > > Hi All, > > I am trying to implement hp-fem into my problem according to the step-27. > But, i have an error when i am trying to compile, > > error: no matching function for call to 'dealii::FESeries::Fourier<3, >> 3>::Fourier(std::vector<unsigned int>&, dealii::hp::FECollection<3, 3>&, >> dealii::hp::QCollection<3>&)' >> { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); } > > > i believe there is a mistake in assigning fourier, but i copied the > step-27 exactly. > Here is the code snippet... could someone help me? > > template <int dim, typename VectorType> > class HPSolver > { > public: > HPSolver( > const unsigned int max_fe_degree); > virtual ~HPSolver(); > > const hp::FECollection<dim>& get_fe_collection(); > const hp::QCollection<dim-1>& get_face_quadrature_collection(); > > protected: > hp::FECollection<dim> fe_collection; > hp::QCollection<dim> quadrature_collection; > hp::QCollection<dim-1> face_quadrature_collection; > hp::QCollection<dim> fourier_q_collection; > std::unique_ptr<FESeries::Fourier<dim>> fourier; > std::vector<double> ln_k; > Table<dim, std::complex<double>> fourier_coefficients; > }; > > template <int dim, typename VectorType> > HPSolver<dim, VectorType>::HPSolver( > const unsigned int max_degree, > : > max_fe_degree(max_degree) > { > for (unsigned int degree=2; degree <= max_fe_degree; ++degree) > { > fe_collection.push_back(FE_Q<dim>(degree)); > quadrature_collection.push_back(QGauss<dim>(degree+1)); > face_quadrature_collection.push_back(QGauss<dim-1>(degree+1)); > } > const unsigned int N = max_fe_degree; > QGauss<1> base_quadrature(2); > QIterated<dim> quadrature(base_quadrature, N); > for (unsigned int i = 0; i < fe_collection.size(); i++) > fourier_q_collection.push_back(quadrature); > std::vector<unsigned int> > n_coefficients_per_direction(fe_collection.size(), N); > fourier = > std_cxx14::make_unique<FESeries::Fourier<dim>>(n_coefficients_per_direction, > fe_collection, fourier_q_collection); > resize(fourier_coefficients, N); > } > > BR, > Ihsan > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/8312e8f9-6237-4c24-a452-6c445a609b73o%40googlegroups.com.