Took a brief hiatus. and managed to pass a huddle following Marc's suggestion.
Now I have set to construct convergence tables for the polymer flow problem I am solving. It involves solving a Stokes Problem for velocity and pressure (u,p), (size dim+1) and the Constitutive Equations for the stress tensor tau, (size dim*dim). The solution has 7 components for dim=2.
To calculate the errors, I need the exact solution [(u,p), tau], ( size dim +1 + dim*dim). To pick the correct component I use the ComponentSelectFunction:
const ComponentSelectFunction<dim*dim+dim+1>
velocity_mask(std::make_pair(0, dim), dim*dim+dim+1);
const ComponentSelectFunction<dim*dim+dim+1>
pressure_mask (dim, dim+3);
const ComponentSelectFunction<dim*dim+dim+1>
stress_mask(std::pair(dim+3, dim*dim+dim+1), dim*dim+dim+1);
Now the errors that I am getting are:
/home/jurombo/binaires/dealii/nnf/nnewton/oldroyd_b_stab/oldroyd_bn.cc:951:43: error: no matching fu
nction for call to ‘integrate_difference(dealii::MappingQ<2, 2>&, dealii::DoFHandler<2, 2>&, dealii:
:BlockVector<double>&, Viscoelastic::ExactSolution<7>&, dealii::Vector<double>&, dealii::QGauss<7>&,
dealii::VectorTools::NormType, const dealii::ComponentSelectFunction<7, double>*)’
951 | VectorTools::integrate_difference (mapping, dof_handler,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
952 | solution,
| ~~~~~~~~~
953 | exact_solution,
| ~~~~~~~~~~~~~~~
954 | cellwise_errors,
| ~~~~~~~~~~~~~~~~
955 | quadrature,
| ~~~~~~~~~~~
956 | VectorTools::H1_seminorm,
| ~~~~~~~~~~~~~~~~~~~~~~~~~
957 | &velocity_mask);
| ~~~~~~~~~~~~~~~
/usr/local/share/dealii/include/deal.II/numerics/vector_tools_integrate_difference.h:143:3: note: ca
ndidate: ‘template<int dim, class InVector, class OutVector, int spacedim> void dealii::VectorTools:
:integrate_difference(const dealii::Mapping<dim, spacedim>&, const dealii::DoFHandler<dim, spacedim>
&, const InVector&, const dealii::Function<spacedim, typename InVector::value_type>&, OutVector&, co
nst dealii::Quadrature<dim>&, const NormType&, const dealii::Function<spacedim, double>*, double)’
143 | integrate_difference(
| ^~~~~~~~~~~~~~~~~~~~
/usr/local/share/dealii/include/deal.II/numerics/vector_tools_integrate_difference.h:143:3: note:
template argument deduction/substitution failed:
/home/jurombo/binaires/dealii/nnf/nnewton/oldroyd_b_stab/oldroyd_bn.cc:951:43: note: deduced confl
icting values for non-type parameter ‘spacedim’ (‘2’ and ‘7’)
951 | VectorTools::integrate_difference (mapping, dof_handler,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
952 | solution,
| ~~~~~~~~~
953 | exact_solution,
| ~~~~~~~~~~~~~~~
954 | cellwise_errors,
| ~~~~~~~~~~~~~~~~
955 | quadrature,
| ~~~~~~~~~~~
956 | VectorTools::H1_seminorm,
| ~~~~~~~~~~~~~~~~~~~~~~~~~
957 | &velocity_mask);
| ~~~~~~~~~~~~~~~
/usr/local/share/dealii/include/deal.II/numerics/vector_tools_integrate_difference.h:160:3: note: ca
ndidate: ‘template<int dim, class InVector, class OutVector, int spacedim> void dealii::VectorTools:
:integrate_difference(const dealii::DoFHandler<dim, spacedim>&, const InVector&, const dealii::Funct
ion<spacedim, typename InVector::value_type>&, OutVector&, const dealii::Quadrature<dim>&, const Nor
mType&, const dealii::Function<spacedim, double>*, double)’
The issues seem to be emanating from the form of the exact_solution and how the components are selected.
Ant suggestions on resolving this?
----------------------------------------------------------------------------