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)...)); }
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);}
#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);}
#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;
namespace hpfe{
}
}
template class hpfe::HPSolver<3, Vector<double>> ;