int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::value_type>
- point_values(
- const Mapping<dim> & mapping,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const std::vector<Point<spacedim>> & evaluation_points,
- Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const EvaluationFlags::EvaluationFlags flags = EvaluationFlags::avg,
- const unsigned int first_selected_component = 0);
+ typename VectorType::value_type>::
+ value_type> point_values(const Mapping<dim> & mapping,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const std::vector<Point<spacedim>>
+ &evaluation_points,
+ Utilities::MPI::RemotePointEvaluation<dim,
+ spacedim>
+ & cache,
+ const EvaluationFlags::EvaluationFlags flags =
+ EvaluationFlags::avg,
+ const unsigned int first_selected_component = 0);
/**
* Given a (distributed) solution vector @p vector, evaluate the values at
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::value_type>
- point_values(
- const Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const EvaluationFlags::EvaluationFlags flags = EvaluationFlags::avg,
- const unsigned int first_selected_component = 0);
+ typename VectorType::value_type>::
+ value_type> point_values(const Utilities::MPI::
+ RemotePointEvaluation<dim, spacedim> &cache,
+ const MeshType<dim, spacedim> & mesh,
+ const VectorType & vector,
+ const EvaluationFlags::EvaluationFlags flags =
+ EvaluationFlags::avg,
+ const unsigned int first_selected_component = 0);
/**
* Given a (distributed) solution vector @p vector, evaluate the gradients at
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::gradient_type>
- point_gradients(
- const Mapping<dim> & mapping,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const std::vector<Point<spacedim>> & evaluation_points,
- Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const EvaluationFlags::EvaluationFlags flags = EvaluationFlags::avg,
- const unsigned int first_selected_component = 0);
+ typename VectorType::value_type>::
+ gradient_type> point_gradients(const Mapping<dim> & mapping,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const std::vector<Point<spacedim>>
+ &evaluation_points,
+ Utilities::MPI::RemotePointEvaluation<
+ dim,
+ spacedim> &cache,
+ const EvaluationFlags::EvaluationFlags
+ flags = EvaluationFlags::avg,
+ const unsigned int
+ first_selected_component = 0);
/**
* Given a (distributed) solution vector @p vector, evaluate the gradients at
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::gradient_type>
- point_gradients(
- const Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const EvaluationFlags::EvaluationFlags flags = EvaluationFlags::avg,
- const unsigned int first_selected_component = 0);
+ typename VectorType::value_type>::
+ gradient_type> point_gradients(const Utilities::MPI::
+ RemotePointEvaluation<dim, spacedim>
+ & cache,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const EvaluationFlags::EvaluationFlags
+ flags = EvaluationFlags::avg,
+ const unsigned int
+ first_selected_component = 0);
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
inline std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::value_type>
- point_values(const Mapping<dim> & mapping,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const std::vector<Point<spacedim>> &evaluation_points,
- Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const EvaluationFlags::EvaluationFlags flags,
- const unsigned int first_selected_component)
+ typename VectorType::value_type>::
+ value_type> point_values(const Mapping<dim> & mapping,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const std::vector<Point<spacedim>>
+ &evaluation_points,
+ Utilities::MPI::RemotePointEvaluation<dim,
+ spacedim>
+ & cache,
+ const EvaluationFlags::EvaluationFlags flags,
+ const unsigned int first_selected_component)
{
cache.reinit(evaluation_points, mesh.get_triangulation(), mapping);
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
inline std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::gradient_type>
- point_gradients(const Mapping<dim> & mapping,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const std::vector<Point<spacedim>> &evaluation_points,
- Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const EvaluationFlags::EvaluationFlags flags,
- const unsigned int first_selected_component)
+ typename VectorType::value_type>::
+ gradient_type> point_gradients(const Mapping<dim> & mapping,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const std::vector<Point<spacedim>>
+ &evaluation_points,
+ Utilities::MPI::RemotePointEvaluation<
+ dim,
+ spacedim> &cache,
+ const EvaluationFlags::EvaluationFlags
+ flags,
+ const unsigned int
+ first_selected_component)
{
cache.reinit(evaluation_points, mesh.get_triangulation(), mapping);
typename MeshType,
typename VectorType,
typename value_type>
- inline std::vector<value_type>
- evaluate_at_points(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ inline std::vector<value_type> evaluate_at_points(
const Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
const MeshType & mesh,
const VectorType & vector,
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
inline std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::value_type>
- point_values(
- const Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const EvaluationFlags::EvaluationFlags flags,
- const unsigned int first_selected_component)
+ typename VectorType::value_type>::
+ value_type> point_values(const Utilities::MPI::
+ RemotePointEvaluation<dim, spacedim> &cache,
+ const MeshType<dim, spacedim> & mesh,
+ const VectorType & vector,
+ const EvaluationFlags::EvaluationFlags flags,
+ const unsigned int first_selected_component)
{
return internal::evaluate_at_points<
n_components,
});
}
+
+
template <int n_components,
template <int, int>
class MeshType,
int dim,
int spacedim,
typename VectorType>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
inline std::vector<
typename FEPointEvaluation<n_components,
dim,
spacedim,
- typename VectorType::value_type>::gradient_type>
- point_gradients(
- const Utilities::MPI::RemotePointEvaluation<dim, spacedim> &cache,
- const MeshType<dim, spacedim> & mesh,
- const VectorType & vector,
- const EvaluationFlags::EvaluationFlags flags,
- const unsigned int first_selected_component)
+ typename VectorType::value_type>::
+ gradient_type> point_gradients(const Utilities::MPI::
+ RemotePointEvaluation<dim, spacedim>
+ & cache,
+ const MeshType<dim, spacedim> &mesh,
+ const VectorType & vector,
+ const EvaluationFlags::EvaluationFlags
+ flags,
+ const unsigned int
+ first_selected_component)
{
return internal::evaluate_at_points<
n_components,
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <int dim, typename Number>
class Function;
template <int dim, int spacedim>
class Mapping;
template <int dim>
class Quadrature;
+
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class Triangulation;
+
namespace hp
{
template <int dim, int spacedim>
* Vector<float>.
*/
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
* <tt>mapping=MappingQ@<dim@>(1)</tt>.
*/
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
* Same as above for hp.
*/
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
* <tt>mapping=MappingQ@<dim@>(1)</tt>.
*/
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
* @note Instantiated for type Vector<double> and Vector<float>.
*/
template <int dim, int spacedim, class InVector>
- double
- compute_global_error(const Triangulation<dim, spacedim> &tria,
- const InVector & cellwise_error,
- const NormType & norm,
- const double exponent = 2.);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector>)
+ double compute_global_error(const Triangulation<dim, spacedim> &tria,
+ const InVector &cellwise_error,
+ const NormType &norm,
+ const double exponent = 2.);
/** @} */
} // namespace VectorTools
template <int dim, int spacedim, class InVector, class OutVector>
- static void
- do_integrate_difference(
+ DEAL_II_CXX20_REQUIRES(
+ concepts::is_dealii_vector_type<InVector>
+ &&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,
} // namespace internal
+
+
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ 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,
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
+ concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(
const dealii::hp::MappingCollection<dim, spacedim> & mapping,
const dealii::DoFHandler<dim, spacedim> & dof,
const InVector & fe_function,
}
template <int dim, class InVector, class OutVector, int spacedim>
- void
- integrate_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
+ concepts::is_writable_dealii_vector_type<OutVector>)
+ void integrate_difference(
const dealii::DoFHandler<dim, spacedim> & dof,
const InVector & fe_function,
const Function<spacedim, typename InVector::value_type> &exact_solution,
}
template <int dim, int spacedim, class InVector>
- double
- compute_global_error(const Triangulation<dim, spacedim> &tria,
- const InVector & cellwise_error,
- const NormType & norm,
- const double exponent)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector>)
+ double compute_global_error(const Triangulation<dim, spacedim> &tria,
+ const InVector &cellwise_error,
+ const NormType &norm,
+ const double exponent)
{
Assert(cellwise_error.size() == tria.n_active_cells(),
ExcMessage("input vector cell_error has invalid size!"));
template <typename number>
class AffineConstraints;
+
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <typename number>
class FullMatrix;
template <int dim, typename Number>
* See the general documentation of this namespace for further information.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const Function<spacedim, typename VectorType::value_type> &function,
* Same as above but in an hp-context.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const Function<spacedim, typename VectorType::value_type> &function,
* <tt>mapping=MappingQ@<dim,spacedim@>(1)</tt>.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const DoFHandler<dim, spacedim> & dof,
const Function<spacedim, typename VectorType::value_type> &function,
VectorType & vec,
* instantiated by hand.
*/
template <int dim, class InVector, class OutVector, int spacedim>
- void
- interpolate(const DoFHandler<dim, spacedim> &dof_1,
- const DoFHandler<dim, spacedim> &dof_2,
- const FullMatrix<double> & transfer,
- const InVector & data_1,
- OutVector & data_2);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
+ concepts::is_writable_dealii_vector_type<OutVector>)
+ void interpolate(const DoFHandler<dim, spacedim> &dof_1,
+ const DoFHandler<dim, spacedim> &dof_2,
+ const FullMatrix<double> & transfer,
+ const InVector & data_1,
+ OutVector & data_2);
/**
* This function is a kind of generalization or modification of the very
* dofs of the previous one.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_based_on_material_id(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_based_on_material_id(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> &dof_handler,
const std::map<types::material_id,
* flag).
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(const DoFHandler<dim, spacedim> &dof1,
- const VectorType & u1,
- const DoFHandler<dim, spacedim> &dof2,
- VectorType & u2);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(const DoFHandler<dim, spacedim> &dof1,
+ const VectorType & u1,
+ const DoFHandler<dim, spacedim> &dof2,
+ VectorType & u2);
/**
* Compute the interpolation of a @p dof1-function @p u1 to a @p dof2-function
* does not necessarily respect continuity requirements at hanging nodes.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(
const DoFHandler<dim, spacedim> & dof1,
const VectorType & u1,
const DoFHandler<dim, spacedim> & dof2,
* pointing from a source DoFHandler to a destination DoFHandler.
*/
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(
const InterGridMap<DoFHandler<dim, spacedim>> & intergridmap,
const VectorType & u1,
const AffineConstraints<typename VectorType::value_type> &constraints,
* components are primitive.
*/
template <int dim, int spacedim, typename VectorType>
- void
- get_position_vector(const DoFHandler<dim, spacedim> &dh,
- VectorType & vector,
- const ComponentMask & mask = ComponentMask());
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void get_position_vector(const DoFHandler<dim, spacedim> &dh,
+ VectorType & vector,
+ const ComponentMask &mask = ComponentMask());
/**
* Like the above function but also taking @p mapping as argument.
* preserve vertex locations (like Eulerian mappings).
*/
template <int dim, int spacedim, typename VectorType>
- void
- get_position_vector(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dh,
- VectorType & vector,
- const ComponentMask & mask = ComponentMask());
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void get_position_vector(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dh,
+ VectorType & vector,
+ const ComponentMask &mask = ComponentMask());
/** @} */
} // namespace VectorTools
//
// A given cell is skipped if function(cell) == nullptr
template <int dim, int spacedim, typename VectorType, typename T>
- void
- interpolate(const hp::MappingCollection<dim, spacedim> &mapping_collection,
- const DoFHandler<dim, spacedim> & dof_handler,
- T & function,
- VectorType & vec,
- const ComponentMask & component_mask)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
+ const hp::MappingCollection<dim, spacedim> &mapping_collection,
+ const DoFHandler<dim, spacedim> & dof_handler,
+ T & function,
+ VectorType & vec,
+ const ComponentMask & component_mask)
{
Assert(component_mask.represents_n_components(
dof_handler.get_fe_collection().n_components()),
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const Function<spacedim, typename VectorType::value_type> &function,
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const Function<spacedim, typename VectorType::value_type> &function,
template <int dim, int spacedim, typename VectorType>
- void
- interpolate(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate(
const DoFHandler<dim, spacedim> & dof,
const Function<spacedim, typename VectorType::value_type> &function,
VectorType & vec,
template <int dim, class InVector, class OutVector, int spacedim>
- void
- interpolate(const DoFHandler<dim, spacedim> &dof_1,
- const DoFHandler<dim, spacedim> &dof_2,
- const FullMatrix<double> & transfer,
- const InVector & data_1,
- OutVector & data_2)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<InVector> &&
+ concepts::is_writable_dealii_vector_type<OutVector>)
+ void interpolate(const DoFHandler<dim, spacedim> &dof_1,
+ const DoFHandler<dim, spacedim> &dof_2,
+ const FullMatrix<double> & transfer,
+ const InVector & data_1,
+ OutVector & data_2)
{
using number = typename OutVector::value_type;
Vector<number> cell_data_1(dof_1.get_fe().n_dofs_per_cell());
template <int dim, int spacedim, typename VectorType>
- void
- get_position_vector(const DoFHandler<dim, spacedim> &dh,
- VectorType & vector,
- const ComponentMask & mask)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void get_position_vector(const DoFHandler<dim, spacedim> &dh,
+ VectorType & vector,
+ const ComponentMask & mask)
{
const FiniteElement<dim, spacedim> &fe = dh.get_fe();
get_position_vector(
template <int dim, int spacedim, typename VectorType>
- void
- get_position_vector(const Mapping<dim, spacedim> & map_q,
- const DoFHandler<dim, spacedim> &dh,
- VectorType & vector,
- const ComponentMask & mask)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void get_position_vector(const Mapping<dim, spacedim> & map_q,
+ const DoFHandler<dim, spacedim> &dh,
+ VectorType & vector,
+ const ComponentMask & mask)
{
AssertDimension(vector.size(), dh.n_dofs());
const FiniteElement<dim, spacedim> &fe = dh.get_fe();
}
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_based_on_material_id(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_based_on_material_id(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> &dof_handler,
const std::map<types::material_id,
}
} // namespace internal
+
+
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(const DoFHandler<dim, spacedim> &dof1,
- const VectorType & u1,
- const DoFHandler<dim, spacedim> &dof2,
- VectorType & u2)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(const DoFHandler<dim, spacedim> &dof1,
+ const VectorType & u1,
+ const DoFHandler<dim, spacedim> &dof2,
+ VectorType & u2)
{
Assert(GridTools::have_same_coarse_mesh(dof1, dof2),
ExcMessage("The two DoF handlers must represent triangulations that "
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(
const DoFHandler<dim, spacedim> & dof1,
const VectorType & u1,
const DoFHandler<dim, spacedim> & dof2,
interpolate_to_different_mesh(intergridmap, u1, constraints, u2);
}
+
+
template <int dim, int spacedim, typename VectorType>
- void
- interpolate_to_different_mesh(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void interpolate_to_different_mesh(
const InterGridMap<DoFHandler<dim, spacedim>> & intergridmap,
const VectorType & u1,
const AffineConstraints<typename VectorType::value_type> &constraints,
* provided the boolean mask is empty, i.e. selecting the whole vector.
*/
template <typename VectorType>
- void
- subtract_mean_value(VectorType &v, const std::vector<bool> &p_select = {});
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void subtract_mean_value(VectorType & v,
+ const std::vector<bool> &p_select = {});
/**
* Add the constant @p constant_adjustment to the specified
* adjust a single component of a distributed vector.
*/
template <class VectorType, int dim, int spacedim = dim>
- void
- add_constant(VectorType & solution,
- const DoFHandler<dim, spacedim> & dof_handler,
- const unsigned int component,
- const typename VectorType::value_type constant_adjustment);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void add_constant(VectorType & solution,
+ const DoFHandler<dim, spacedim> & dof_handler,
+ const unsigned int component,
+ const typename VectorType::value_type constant_adjustment);
/**
* Compute the mean value of one component of the solution.
* mean value and subtract it right inside the evaluation routine.
*/
template <int dim, typename VectorType, int spacedim>
- typename VectorType::value_type
- compute_mean_value(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ typename VectorType::value_type compute_mean_value(
const hp::MappingCollection<dim, spacedim> &mapping_collection,
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim> & q_collection,
* and a single Mapping object.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- compute_mean_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const Quadrature<dim> & quadrature,
- const VectorType & v,
- const unsigned int component);
+ compute_mean_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const Quadrature<dim> & quadrature,
+ const VectorType & v,
+ const unsigned int component);
/**
* Call the other compute_mean_value() function, see above, with
* <tt>mapping=MappingQ@<dim@>(1)</tt>.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- compute_mean_value(const DoFHandler<dim, spacedim> &dof,
- const Quadrature<dim> & quadrature,
- const VectorType & v,
- const unsigned int component);
+ compute_mean_value(const DoFHandler<dim, spacedim> &dof,
+ const Quadrature<dim> & quadrature,
+ const VectorType & v,
+ const unsigned int component);
/** @} */
} // namespace VectorTools
template <typename VectorType>
- void
- subtract_mean_value(VectorType &v, const std::vector<bool> &p_select)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void subtract_mean_value(VectorType &v, const std::vector<bool> &p_select)
{
internal::subtract_mean_value(v, p_select);
}
template <class VectorType, int dim, int spacedim>
- void
- add_constant(VectorType & solution,
- const DoFHandler<dim, spacedim> & dof_handler,
- const unsigned int component,
- const typename VectorType::value_type constant_adjustment)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void add_constant(VectorType & solution,
+ const DoFHandler<dim, spacedim> & dof_handler,
+ const unsigned int component,
+ const typename VectorType::value_type constant_adjustment)
{
Assert(dof_handler.has_hp_capabilities() == false, ExcNotImplemented());
template <int dim, typename VectorType, int spacedim>
- typename VectorType::value_type
- compute_mean_value(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ typename VectorType::value_type compute_mean_value(
const hp::MappingCollection<dim, spacedim> &mapping_collection,
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim> & q_collection,
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- compute_mean_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const Quadrature<dim> & quadrature,
- const VectorType & v,
- const unsigned int component)
+ compute_mean_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const Quadrature<dim> & quadrature,
+ const VectorType & v,
+ const unsigned int component)
{
return compute_mean_value(hp::MappingCollection<dim, spacedim>(mapping),
dof,
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- compute_mean_value(const DoFHandler<dim, spacedim> &dof,
- const Quadrature<dim> & quadrature,
- const VectorType & v,
- const unsigned int component)
+ compute_mean_value(const DoFHandler<dim, spacedim> &dof,
+ const Quadrature<dim> & quadrature,
+ const VectorType & v,
+ const unsigned int component)
{
return compute_mean_value(get_default_linear_mapping(
dof.get_triangulation()),
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <int dim, typename Number>
class Function;
template <int dim, int spacedim>
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const DoFHandler<dim, spacedim> &dof,
const VectorType & fe_function,
const Point<spacedim, double> & point,
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const DoFHandler<dim, spacedim> &dof,
const VectorType & fe_function,
const Point<spacedim, double> & point,
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Evaluate a possibly vector-valued finite element function defined by the
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> &dof,
const VectorType & fe_function,
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const hp::MappingCollection<dim, spacedim> &mapping,
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/** @} */
} // namespace VectorTools
namespace VectorTools
{
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const DoFHandler<dim, spacedim> &dof,
const VectorType & fe_function,
const Point<spacedim> & point,
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
if (dof.has_hp_capabilities() == false)
return point_gradient(get_default_linear_mapping(dof.get_triangulation()),
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> &dof,
const VectorType & fe_function,
template <int dim, typename VectorType, int spacedim>
- void
- point_gradient(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_gradient(
const hp::MappingCollection<dim, spacedim> &mapping,
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
Assert(dof.get_fe(0).n_components() == 1,
ExcMessage(
template <int dim, typename VectorType, int spacedim>
- Tensor<1, spacedim, typename VectorType::value_type>
- point_gradient(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ Tensor<1, spacedim, typename VectorType::value_type> point_gradient(
+ const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
Assert(dof.get_fe(0).n_components() == 1,
ExcMessage(
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <int dim, typename Number>
class Function;
template <int dim, int spacedim>
* exception of type VectorTools::ExcPointNotAvailableHere is thrown.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_difference(
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
const Function<spacedim, typename VectorType::value_type> &exact_solution,
* exception of type VectorTools::ExcPointNotAvailableHere is thrown.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_difference(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point,
- Vector<typename VectorType::value_type> &value);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point,
+ Vector<typename VectorType::value_type> &value);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point,
- Vector<typename VectorType::value_type> &value);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point,
+ Vector<typename VectorType::value_type> &value);
/**
* Evaluate a scalar finite element function defined by the given DoFHandler
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ point_value(const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ point_value(const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Evaluate a possibly vector-valued finite element function defined by the
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point,
- Vector<typename VectorType::value_type> &value);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point,
+ Vector<typename VectorType::value_type> &value);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point,
- Vector<typename VectorType::value_type> & value);
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point,
+ Vector<typename VectorType::value_type> & value);
/**
* Evaluate a scalar finite element function defined by the given DoFHandler
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ point_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/**
* Same as above for hp.
* when trying to evaluate point values of discontinuous functions.
*/
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim, double> & point);
+ point_value(const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim, double> & point);
/** @} */
} // namespace VectorTools
namespace VectorTools
{
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim> & point,
- Vector<typename VectorType::value_type> &value)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point,
+ Vector<typename VectorType::value_type> &value)
{
if (dof.has_hp_capabilities() == false)
point_value(get_default_linear_mapping(dof.get_triangulation()),
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ point_value(const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
if (dof.has_hp_capabilities() == false)
return point_value(get_default_linear_mapping(dof.get_triangulation()),
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim> & point,
- Vector<typename VectorType::value_type> &value)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point,
+ Vector<typename VectorType::value_type> &value)
{
using Number = typename VectorType::value_type;
const FiniteElement<dim> &fe = dof.get_fe();
template <int dim, typename VectorType, int spacedim>
- void
- point_value(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim> & point,
- Vector<typename VectorType::value_type> & value)
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_value(const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point,
+ Vector<typename VectorType::value_type> & value)
{
using Number = typename VectorType::value_type;
const hp::FECollection<dim, spacedim> &fe = dof.get_fe_collection();
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> &dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ point_value(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
Assert(dof.get_fe(0).n_components() == 1,
ExcMessage(
template <int dim, typename VectorType, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
typename VectorType::value_type
- point_value(const hp::MappingCollection<dim, spacedim> &mapping,
- const DoFHandler<dim, spacedim> & dof,
- const VectorType & fe_function,
- const Point<spacedim> & point)
+ point_value(const hp::MappingCollection<dim, spacedim> &mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const VectorType & fe_function,
+ const Point<spacedim> & point)
{
Assert(dof.get_fe(0).n_components() == 1,
ExcMessage(
template <int dim, typename VectorType, int spacedim>
- void
- point_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_difference(
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
const Function<spacedim, typename VectorType::value_type> &exact_function,
template <int dim, typename VectorType, int spacedim>
- void
- point_difference(
+ DEAL_II_CXX20_REQUIRES(concepts::is_dealii_vector_type<VectorType>)
+ void point_difference(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const VectorType & fe_function,
template <typename number>
class AffineConstraints;
+
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <int dim, typename Number>
class Function;
template <int dim, int spacedim>
* boundary before projecting the interior of the function.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary = false,
- const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
- QGauss<dim - 1>(2) :
- Quadrature<dim - 1>(0)),
- const bool project_to_boundary_first = false);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const Quadrature<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary = false,
+ const Quadrature<dim - 1> &q_boundary = (dim > 1 ? QGauss<dim - 1>(2) :
+ Quadrature<dim - 1>(0)),
+ const bool project_to_boundary_first = false);
/**
* Call the project() function above, with
* <tt>mapping=MappingQ@<dim@>(1)</tt>.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project(const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary = false,
- const Quadrature<dim - 1> &q_boundary = (dim > 1 ?
- QGauss<dim - 1>(2) :
- Quadrature<dim - 1>(0)),
- const bool project_to_boundary_first = false);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const Quadrature<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary = false,
+ const Quadrature<dim - 1> &q_boundary = (dim > 1 ? QGauss<dim - 1>(2) :
+ Quadrature<dim - 1>(0)),
+ const bool project_to_boundary_first = false);
/**
* Same as above, but with hp-capabilities.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project(const hp::MappingCollection<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const hp::QCollection<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary = false,
- const hp::QCollection<dim - 1> &q_boundary = hp::QCollection<dim - 1>(
- dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
- const bool project_to_boundary_first = false);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const hp::MappingCollection<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const hp::QCollection<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary = false,
+ const hp::QCollection<dim - 1> &q_boundary = hp::QCollection<dim - 1>(
+ dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
+ const bool project_to_boundary_first = false);
/**
* Call the project() function above, with a collection of $Q_1$ mapping
* objects, i.e., with hp::StaticMappingQ1::mapping_collection.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project(const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const hp::QCollection<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary = false,
- const hp::QCollection<dim - 1> &q_boundary = hp::QCollection<dim - 1>(
- dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
- const bool project_to_boundary_first = false);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const hp::QCollection<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary = false,
+ const hp::QCollection<dim - 1> &q_boundary = hp::QCollection<dim - 1>(
+ dim > 1 ? QGauss<dim - 1>(2) : Quadrature<dim - 1>(0)),
+ const bool project_to_boundary_first = false);
/**
* The same as above for projection of scalar-valued quadrature data.
* quadrature point data.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const std::function<typename VectorType::value_type(
- const typename DoFHandler<dim, spacedim>::active_cell_iterator &,
- const unsigned int)> & func,
- VectorType & vec_result);
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> &constraints,
+ const Quadrature<dim> & quadrature,
+ const std::function<typename VectorType::value_type(
+ const typename DoFHandler<dim, spacedim>::active_cell_iterator &,
+ const unsigned int)> & func,
+ VectorType & vec_result);
/**
* The same as above for projection of scalar-valued MatrixFree quadrature
* FEEvaluation object.
*/
template <int dim, typename VectorType>
- void
- project(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
std::shared_ptr<
const MatrixFree<dim,
typename VectorType::value_type,
* matrix_free.get_dof_handler().get_fe().degree+1</code>.
*/
template <int dim, typename VectorType>
- void
- project(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
std::shared_ptr<
const MatrixFree<dim,
typename VectorType::value_type,
* by copying from a LinearAlgebra::distributed::Vector.
*/
template <int dim, typename VectorType, int spacedim>
- void
- project_matrix_free_copy_vector(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project_matrix_free_copy_vector(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const AffineConstraints<typename VectorType::value_type> & constraints,
class M_or_MC,
template <int>
class Q_or_QC>
- void
- do_project(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void do_project(
const M_or_MC<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const AffineConstraints<typename VectorType::value_type> & constraints,
template <int dim, typename VectorType, int spacedim>
- void
- project_parallel(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project_parallel(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const AffineConstraints<typename VectorType::value_type> &constraints,
template <int dim, typename VectorType, int spacedim>
- void
- project_parallel(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project_parallel(
std::shared_ptr<const MatrixFree<dim, typename VectorType::value_type>>
matrix_free,
const AffineConstraints<typename VectorType::value_type> &constraints,
* based on the number of components.
*/
template <typename VectorType, int dim, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
std::enable_if_t<
!numbers::NumberTraits<typename VectorType::value_type>::is_complex &&
(dim == spacedim),
- void>
- project(
- const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> & constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec_result,
- const bool enforce_zero_boundary,
- const Quadrature<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ void> project(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const AffineConstraints<typename VectorType::value_type>
+ & constraints,
+ const Quadrature<dim> &quadrature,
+ const Function<spacedim, typename VectorType::value_type>
+ & function,
+ VectorType & vec_result,
+ const bool enforce_zero_boundary,
+ const Quadrature<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
// If we can, use the matrix-free implementation
bool use_matrix_free =
* for which we are sure that we cannot use the MatrixFree implementation.
*/
template <typename VectorType, int dim, int spacedim>
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
std::enable_if_t<
numbers::NumberTraits<typename VectorType::value_type>::is_complex ||
(dim < spacedim),
- void>
- project(
- const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> & constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec_result,
- const bool enforce_zero_boundary,
- const Quadrature<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ void> project(const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> &dof,
+ const AffineConstraints<typename VectorType::value_type>
+ & constraints,
+ const Quadrature<dim> &quadrature,
+ const Function<spacedim, typename VectorType::value_type>
+ & function,
+ VectorType & vec_result,
+ const bool enforce_zero_boundary,
+ const Quadrature<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
Assert((dynamic_cast<const parallel::TriangulationBase<dim> *>(
&(dof.get_triangulation())) == nullptr),
template <int dim, typename VectorType, int spacedim>
- void
- project(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const std::function<typename VectorType::value_type(
- const typename DoFHandler<dim, spacedim>::active_cell_iterator &,
- const unsigned int)> & func,
- VectorType & vec_result)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> &constraints,
+ const Quadrature<dim> & quadrature,
+ const std::function<typename VectorType::value_type(
+ const typename DoFHandler<dim, spacedim>::active_cell_iterator &,
+ const unsigned int)> & func,
+ VectorType & vec_result)
{
internal::project_parallel<dim, VectorType, spacedim>(
mapping, dof, constraints, quadrature, func, vec_result);
template <int dim, typename VectorType>
- void
- project(std::shared_ptr<const MatrixFree<
- dim,
- typename VectorType::value_type,
- VectorizedArray<typename VectorType::value_type>>> matrix_free,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const unsigned int,
- const std::function<VectorizedArray<typename VectorType::value_type>(
- const unsigned int,
- const unsigned int)> &func,
- VectorType & vec_result,
- const unsigned int fe_component)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ std::shared_ptr<const MatrixFree<
+ dim,
+ typename VectorType::value_type,
+ VectorizedArray<typename VectorType::value_type>>> matrix_free,
+ const AffineConstraints<typename VectorType::value_type> &constraints,
+ const unsigned int,
+ const std::function<VectorizedArray<typename VectorType::value_type>(
+ const unsigned int,
+ const unsigned int)> &func,
+ VectorType & vec_result,
+ const unsigned int fe_component)
{
internal::project_parallel<dim, VectorType, dim>(
matrix_free, constraints, func, vec_result, fe_component);
template <int dim, typename VectorType>
- void
- project(std::shared_ptr<const MatrixFree<
- dim,
- typename VectorType::value_type,
- VectorizedArray<typename VectorType::value_type>>> matrix_free,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const std::function<VectorizedArray<typename VectorType::value_type>(
- const unsigned int,
- const unsigned int)> & func,
- VectorType & vec_result,
- const unsigned int fe_component)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ std::shared_ptr<const MatrixFree<
+ dim,
+ typename VectorType::value_type,
+ VectorizedArray<typename VectorType::value_type>>> matrix_free,
+ const AffineConstraints<typename VectorType::value_type> &constraints,
+ const std::function<VectorizedArray<typename VectorType::value_type>(
+ const unsigned int,
+ const unsigned int)> & func,
+ VectorType & vec_result,
+ const unsigned int fe_component)
{
project(matrix_free,
constraints,
template <int dim, typename VectorType, int spacedim>
- void
- project(const Mapping<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec_result,
- const bool enforce_zero_boundary,
- const Quadrature<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const Mapping<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const Quadrature<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec_result,
+ const bool enforce_zero_boundary,
+ const Quadrature<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
internal::project(mapping,
dof,
template <int dim, typename VectorType, int spacedim>
- void
- project(const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const Quadrature<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary,
- const Quadrature<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const Quadrature<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary,
+ const Quadrature<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
project(get_default_linear_mapping(dof.get_triangulation()),
dof,
template <int dim, typename VectorType, int spacedim>
- void
- project(const hp::MappingCollection<dim, spacedim> & mapping,
- const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const hp::QCollection<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec_result,
- const bool enforce_zero_boundary,
- const hp::QCollection<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const hp::MappingCollection<dim, spacedim> & mapping,
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const hp::QCollection<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec_result,
+ const bool enforce_zero_boundary,
+ const hp::QCollection<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
Assert((dynamic_cast<const parallel::TriangulationBase<dim, spacedim> *>(
&(dof.get_triangulation())) == nullptr),
template <int dim, typename VectorType, int spacedim>
- void
- project(const DoFHandler<dim, spacedim> & dof,
- const AffineConstraints<typename VectorType::value_type> &constraints,
- const hp::QCollection<dim> & quadrature,
- const Function<spacedim, typename VectorType::value_type> &function,
- VectorType & vec,
- const bool enforce_zero_boundary,
- const hp::QCollection<dim - 1> &q_boundary,
- const bool project_to_boundary_first)
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void project(
+ const DoFHandler<dim, spacedim> & dof,
+ const AffineConstraints<typename VectorType::value_type> & constraints,
+ const hp::QCollection<dim> & quadrature,
+ const Function<spacedim, typename VectorType::value_type> &function,
+ VectorType & vec,
+ const bool enforce_zero_boundary,
+ const hp::QCollection<dim - 1> &q_boundary,
+ const bool project_to_boundary_first)
{
project(hp::StaticMappingQ1<dim, spacedim>::mapping_collection,
dof,
template <typename number>
class AffineConstraints;
+
template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
class DoFHandler;
+
template <int dim, typename Number>
class Function;
template <int dim, int spacedim>
* See the general documentation of this namespace for further information.
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const Quadrature<dim> & q,
* <tt>mapping=MappingQ@<dim@>(1)</tt>.
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const DoFHandler<dim, spacedim> & dof,
const Quadrature<dim> & q,
const Function<spacedim, typename VectorType::value_type> &rhs,
* Like the previous set of functions, but for hp-objects.
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim> & q,
* Like the previous set of functions, but for hp-objects.
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim> & q,
const Function<spacedim, typename VectorType::value_type> &rhs,
* @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const Quadrature<dim - 1> & q,
* @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const DoFHandler<dim, spacedim> & dof,
const Quadrature<dim - 1> & q,
const Function<spacedim, typename VectorType::value_type> &rhs,
* @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim - 1> & q,
* @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
*/
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const DoFHandler<dim, spacedim> & dof,
const hp::QCollection<dim - 1> & q,
const Function<spacedim, typename VectorType::value_type> &rhs,
namespace VectorTools
{
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const Quadrature<dim - 1> & quadrature,
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const DoFHandler<dim, spacedim> & dof_handler,
const Quadrature<dim - 1> & quadrature,
const Function<spacedim, typename VectorType::value_type> &rhs_function,
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const hp::QCollection<dim - 1> & quadrature,
template <int dim, int spacedim, typename VectorType>
- void
- create_boundary_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_boundary_right_hand_side(
const DoFHandler<dim, spacedim> & dof_handler,
const hp::QCollection<dim - 1> & quadrature,
const Function<spacedim, typename VectorType::value_type> &rhs_function,
boundary_ids);
}
+
+
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const Mapping<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const Quadrature<dim> & quadrature,
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const DoFHandler<dim, spacedim> & dof_handler,
const Quadrature<dim> & quadrature,
const Function<spacedim, typename VectorType::value_type> &rhs_function,
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const hp::MappingCollection<dim, spacedim> & mapping,
const DoFHandler<dim, spacedim> & dof_handler,
const hp::QCollection<dim> & quadrature,
template <int dim, int spacedim, typename VectorType>
- void
- create_right_hand_side(
+ DEAL_II_CXX20_REQUIRES(concepts::is_writable_dealii_vector_type<VectorType>)
+ void create_right_hand_side(
const DoFHandler<dim, spacedim> & dof_handler,
const hp::QCollection<dim> & quadrature,
const Function<spacedim, typename VectorType::value_type> &rhs_function,