Throw away GenericVector::init(const TensorLayout&)

Issue #670 new
Jan Blechta created an issue

Implementation of GenericVector::init(const TensorLayout&) extracts local_to_global, ghost_indices arrays from tensor layout and then passes it to backend. During that it expands it to block size 1.

Backend may not need a big, trivial part of local_to_global across owned part and also may want to use different block size. Hence tensor layout should be processed on backend side.

Possible design choice is therefore virtual void init(const TensorLayout&) = 0; and implementation in backends.

At the same time deprecate/remove

    virtual void init(MPI_Comm comm,
                      std::pair<std::size_t, std::size_t> range,
                      const std::vector<std::size_t>& local_to_global_map,
                      const std::vector<la_index>& ghost_indices) = 0;

Comments (6)

  1. Log in to comment