I followed step-37 for creating a MatrixFreeOperator, but now I also would like to access a previous solution (which is needed during apply_add()), and stored using a LinearAlgebra::distributed::Vector. In step-48 there is an example which uses previous solutions, but here the solve-function is replaced, and therefore making it difficult to implement it in my problem.
Thus, what would be the most efficient way of giving the operator-function apply_add access to those solution vectors? I tried adding a class member and initializing it during setup_system(), but when accessing it via read_dof_values(), I had a layout mismatch, resulting in
The violated condition was:
vec.partitioners_are_compatible(*dof_info.vector_partitioner)
Additional information:
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.
Are there better ways?
Thanks!