// same as above for has_partitioners_are_compatible == true
template <
typename VectorType,
typename std::enable_if<has_partitioners_are_compatible<VectorType>::value,
VectorType>::type * = nullptr>
inline void
check_vector_compatibility(
const VectorType & vec,
const internal::MatrixFreeFunctions::DoFInfo &dof_info)
{
(void)vec;
(void)dof_info;
Assert(vec.partitioners_are_compatible(*dof_info.vector_partitioner),
ExcMessage(
"The parallel layout of the given vector is not "
"compatible with the parallel partitioning in MatrixFree. "
"Use MatrixFree::initialize_dof_vector to get a "
"compatible vector."));
}
template <typename Number, typename MemorySpaceType>
inline bool
Vector<Number, MemorySpaceType>::partitioners_are_compatible(
const Utilities::MPI::Partitioner &part) const
{
return partitioner->is_compatible(part);
}
#3 0x00007ffff00c0c5c in dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host>::partitioners_are_compatible (this=0x0, part=...) at ~Downloads/git-files/dealii/include/deal.II/lac/la_parallel_vector.templates.h:2021
(gdb) print dof_info.vector_partitioner
$2 = std::shared_ptr<const dealii::Utilities::MPI::Partitioner> (use count 3, weak count 0) = {get() = 0x7a60c0}
(gdb) print vec.partitioner
$3 = std::shared_ptr<const dealii::Utilities::MPI::Partitioner> (use count 3, weak count 0) = {get() = 0x7a60c0}
Dear Maxi,
It looks like you are using a scalar finite element
(FE_Q<dim>), but you set FEEvaluation to operate on a
vectorial field, i.e.,
FEEvaluation<dim, degree, n_points_1d, dim, Number>
phi(data);
Notice the 4th template parameter "dim", which should be one. I
agree it is unfortunate that we do not provide a better error
message, so I opened an issue for it,
https://github.com/dealii/dealii/issues/9312
If you switch the parameter to 1, it should work. However, I want to point out that you use a continuous element with CellwiseInverseMassMatrix - this will not give you a valid matrix inverse. You need to either use a diagonal mass matrix (see step-48) or use the cellwise inverse as a preconditioner (when combined with suitable scaling) and solve the mass matrix iteratively.
Best,
Martin
--
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+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/d55e53b2-a0c8-4cc0-ab84-7521f8b23d81%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to dea...@googlegroups.com.