* @dealiiConceptRequires{concepts::is_dealii_vector_type<InVector>
* &&concepts::is_writable_dealii_vector_type<OutVector>}
*/
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const Quadrature<dim> & q,
- const NormType & norm,
- const Function<spacedim, double> * weight = nullptr,
- const double exponent = 2.);
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const Quadrature<dim> & q,
+ const NormType & norm,
+ const Function<spacedim, double> *weight = nullptr,
+ const double exponent = 2.);
/**
* Call the integrate_difference() function, see above, with
* @dealiiConceptRequires{concepts::is_dealii_vector_type<InVector>
* &&concepts::is_writable_dealii_vector_type<OutVector>}
*/
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const Quadrature<dim> & q,
- const NormType & norm,
- const Function<spacedim, double> * weight = nullptr,
- const double exponent = 2.);
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const Quadrature<dim> & q,
+ const NormType & norm,
+ const Function<spacedim, double> *weight = nullptr,
+ const double exponent = 2.);
/**
* Same as above for hp.
* @dealiiConceptRequires{concepts::is_dealii_vector_type<InVector>
* &&concepts::is_writable_dealii_vector_type<OutVector>}
*/
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const hp::MappingCollection<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const hp::QCollection<dim> & q,
- const NormType & norm,
- const Function<spacedim, double> * weight = nullptr,
- const double exponent = 2.);
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const hp::QCollection<dim> & q,
+ const NormType & norm,
+ const Function<spacedim, double> *weight = nullptr,
+ const double exponent = 2.);
/**
* Call the integrate_difference() function, see above, with
* @dealiiConceptRequires{concepts::is_dealii_vector_type<InVector>
* &&concepts::is_writable_dealii_vector_type<OutVector>}
*/
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const hp::QCollection<dim> & q,
- const NormType & norm,
- const Function<spacedim, double> * weight = nullptr,
- const double exponent = 2.);
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const hp::QCollection<dim> & q,
+ const NormType & norm,
+ const Function<spacedim, double> *weight = nullptr,
+ const double exponent = 2.);
/**
* Take a Vector @p cellwise_error of errors on each cell with
- template <int dim, int spacedim, class InVector, class OutVector>
- DEAL_II_CXX20_REQUIRES(
- concepts::is_dealii_vector_type<InVector>
- &&concepts::is_writable_dealii_vector_type<OutVector>)
+ template <int dim, int spacedim, typename Number, class OutVector>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
static void do_integrate_difference(
- const dealii::hp::MappingCollection<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const dealii::hp::QCollection<dim> & q,
- const NormType & norm,
- const Function<spacedim> * weight,
- const double exponent_1)
+ const dealii::hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> & exact_solution,
+ OutVector & difference,
+ const dealii::hp::QCollection<dim> & q,
+ const NormType & norm,
+ const Function<spacedim> * weight,
+ const double exponent_1)
{
- using Number = typename InVector::value_type;
// we mark the "exponent" parameter to this function "const" since it is
// strictly incoming, but we need to set it to something different later
// on, if necessary, so have a read-write version of it:
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const Quadrature<dim> & q,
- const NormType & norm,
- const Function<spacedim> * weight,
- const double exponent)
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const Quadrature<dim> & q,
+ const NormType & norm,
+ const Function<spacedim> * weight,
+ const double exponent)
{
internal::do_integrate_difference(hp::MappingCollection<dim, spacedim>(
mapping),
}
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const Quadrature<dim> & q,
- const NormType & norm,
- const Function<spacedim> * weight,
- const double exponent)
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> &exact_solution,
+ OutVector & difference,
+ const Quadrature<dim> & q,
+ const NormType & norm,
+ const Function<spacedim> * weight,
+ const double exponent)
{
internal::do_integrate_difference(
hp::StaticMappingQ1<dim, spacedim>::mapping_collection,
}
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
void integrate_difference(
- const dealii::hp::MappingCollection<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const dealii::hp::QCollection<dim> & q,
- const NormType & norm,
- const Function<spacedim> * weight,
- const double exponent)
+ const dealii::hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> & exact_solution,
+ OutVector & difference,
+ const dealii::hp::QCollection<dim> & q,
+ const NormType & norm,
+ const Function<spacedim> * weight,
+ const double exponent)
{
internal::do_integrate_difference(mapping,
dof,
exponent);
}
- template <int dim, class InVector, class OutVector, int spacedim>
- DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
- concepts::is_writable_dealii_vector_type<OutVector>)
- void integrate_difference(
- const DoFHandler<dim, spacedim> & dof,
- const InVector & fe_function,
- const Function<spacedim, typename InVector::value_type> &exact_solution,
- OutVector & difference,
- const dealii::hp::QCollection<dim> & q,
- const NormType & norm,
- const Function<spacedim> * weight,
- const double exponent)
+ template <int dim, typename Number, class OutVector, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(const DoFHandler<dim, spacedim> & dof,
+ const ReadVector<Number> & fe_function,
+ const Function<spacedim, Number> & exact_solution,
+ OutVector & difference,
+ const dealii::hp::QCollection<dim> &q,
+ const NormType & norm,
+ const Function<spacedim> * weight,
+ const double exponent)
{
internal::do_integrate_difference(
hp::StaticMappingQ1<dim, spacedim>::mapping_collection,
// ---------------------------------------------------------------------
-for (VEC : VECTOR_TYPES; deal_II_dimension : DIMENSIONS;
+for (S : REAL_AND_COMPLEX_SCALARS; deal_II_dimension : DIMENSIONS;
deal_II_space_dimension : SPACE_DIMENSIONS)
{
#if deal_II_dimension <= deal_II_space_dimension
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<float>,
deal_II_space_dimension>(
const Mapping<deal_II_dimension, deal_II_space_dimension> &,
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<float> &,
const Quadrature<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<float>,
deal_II_space_dimension>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<float> &,
const Quadrature<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<double>,
deal_II_space_dimension>(
const Mapping<deal_II_dimension, deal_II_space_dimension> &,
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<double> &,
const Quadrature<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<double>,
deal_II_space_dimension>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<double> &,
const Quadrature<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<double>,
deal_II_space_dimension>(
const hp::MappingCollection<deal_II_dimension, deal_II_space_dimension>
&,
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<double> &,
const hp::QCollection<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<double>,
deal_II_space_dimension>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<double> &,
const hp::QCollection<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<float>,
deal_II_space_dimension>(
const hp::MappingCollection<deal_II_dimension, deal_II_space_dimension>
&,
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<float> &,
const hp::QCollection<deal_II_dimension> &,
const NormType &,
template void
integrate_difference<deal_II_dimension,
- VEC,
+ S,
Vector<float>,
deal_II_space_dimension>(
const DoFHandler<deal_II_dimension, deal_II_space_dimension> &,
- const VEC &,
- const Function<deal_II_space_dimension, typename VEC::value_type> &,
+ const ReadVector<S> &,
+ const Function<deal_II_space_dimension, S> &,
Vector<float> &,
const hp::QCollection<deal_II_dimension> &,
const NormType &,