Hi Maxi, To build on what Daniel said in the other thread: This function was written with the intent that users would just call `project`. `project_matrix_free` is not really part of the public interface (though perhaps we should change this). You will need to `#include <deal.II/numerics/vector_tools.templates.h>` to get the `project_matrix_free` template in your program.
A second issue is that (to avoid instantiating a lot more templates) this function is only defined for `LinearAlgebra::distributed::Vector<Number>` and not for the Trilinos wrapper vectors: you will have to copy to and from such a vector to get things to work. Thanks, David Wells On Wednesday, March 7, 2018 at 7:51:06 AM UTC-5, Maxi Miller wrote: > > Based on my question here: > https://groups.google.com/d/msg/dealii/4YoJZ8d2-XM/0k3TjZrqAAAJ I would > like to implement the suggested solution using project_matrix_free() and > project_matrix_free_vector(). I thus try to call them as > VectorTools::project_matrix_free(MappingQGeneric<dim>(1), > dof_handler, > hanging_node_constraints, > QGauss<dim>(fe.degree + 1 > ), > InitialValues<dim>(), > local_solution, > false, > (dim > 1 ? QGauss<dim - 1 > >(2):Quadrature<dim - 1>(0)), > false); > but the compiler tells me > error: ‘project_matrix_free’ is not a member of ‘dealii::VectorTools’. > When including the .h-file where project_matrix_free is defined, I get > ~/heat_equation_with_pulse_propagation/heat_equation/source/main.cpp:2390: > 49: error: no matching function for call to ‘project_matrix_free(dealii:: > MappingQGeneric<2, 2>, dealii::DoFHandler<2, 2>&, dealii::ConstraintMatrix > &, dealii::QGauss<2>, Step15::InitialValues<2>, dealii:: > LinearAlgebraTrilinos::MPI::Vector&, bool, dealii::Quadrature<1>, bool)’ > VectorTools::project_matrix_free(MappingQGeneric<dim>(1), > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ > dof_handler, > ~~~~~~~~~~~~ > hanging_node_constraints > , > > ~~~~~~~~~~~~~~~~~~~~~~~~~ > QGauss<dim>(fe.degree + > 1), > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > InitialValues<dim>(), > ~~~~~~~~~~~~~~~~~~~~~ > local_solution, > ~~~~~~~~~~~~~~~ > false, > ~~~~~~ > (dim > 1 ? QGauss<dim - > 1>(2):Quadrature<dim - 1>(0)), > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > false); > ~~~~~~ > In file included from ~/heat_equation_with_pulse_propagation/heat_equation > /source/main.cpp:69:0: > /opt/dealii/include/deal.II/numerics/vector_tools.templates.h:1026:10: > note: candidate: template<int components, int fe_degree, int dim, class > Number, int spacedim> void dealii::VectorTools::{anonymous}:: > project_matrix_free(const dealii::Mapping<dim, spacedim>&, const dealii:: > DoFHandler<dim, spacedim>&, const dealii::ConstraintMatrix&, const dealii > ::Quadrature<dim>&, const dealii::Function<spacedim, typename dealii:: > LinearAlgebra::distributed::Vector<Number>::value_type>&, dealii:: > LinearAlgebra::distributed::Vector<Number>&, bool, const dealii:: > Quadrature<(dim - 1)>&, bool) > void project_matrix_free > ^~~~~~~~~~~~~~~~~~~ > /opt/dealii/include/deal.II/numerics/vector_tools.templates.h:1026:10: > note: template argument deduction/substitution failed: > ~/heat_equation_with_pulse_propagation/heat_equation/source/main.cpp:2390: > 49: note: ‘dealii::LinearAlgebraTrilinos::MPI::Vector {aka dealii:: > TrilinosWrappers::MPI::Vector}’ is not derived from ‘dealii::LinearAlgebra > ::distributed::Vector<Number>’ > roland VectorTools::project_matrix_free(MappingQGeneric > <dim>(1), > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ > dof_handler, > ~~~~~~~~~~~~ > hanging_node_constraints > , > > ~~~~~~~~~~~~~~~~~~~~~~~~~ > QGauss<dim>(fe.degree + > 1), > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > InitialValues<dim>(), > ~~~~~~~~~~~~~~~~~~~~~ > local_solution, > ~~~~~~~~~~~~~~~ > false, > ~~~~~~ > (dim > 1 ? QGauss<dim - > 1>(2):Quadrature<dim - 1>(0)), > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > false); > > > with local_solution defined as > LinearAlgebraTrilinos::MPI::Vector local_solution > What did I do wrong here? > Thank you! > > -- 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.