Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/v0.1.0/v0.9.0/cpp
DOLFINx  0.1.0
DOLFINx C++ interface
Todo List
Member dolfinx::array2d< T, Allocator >::array2d (std::array< size_type, 2 > shape, Vector &&x)
Use suitable std::enable_if to make this more general (and correct) Constructs a two dimensional array from a vector
Member dolfinx::common::IndexMap::compute_shared_indices () const
Aim to remove this function? If it's kept, should it work with neighborhood ranks?
Member dolfinx::common::IndexMap::shared_indices () const noexcept
Reconsider name Local (owned) indices shared with neighbor processes, i.e. are ghosts on other processes, grouped by sharing (neighbor) process(destination ranks in forward communicator and source ranks in the reverse communicator)
Member dolfinx::fem::assemble_discrete_gradient (const std::function< int(std::int32_t, const std::int32_t *, std::int32_t, const std::int32_t *, const T *)> &mat_set, const fem::FunctionSpace &V0, const fem::FunctionSpace &V1)
Improve documentation This function class computes discrete gradient operators (matrices) that map derivatives of finite element functions into other finite element spaces. An example of where discrete gradient operators are required is the creation of algebraic multigrid solvers for H(curl) and H(div) problems.
Member dolfinx::fem::create_sparsity_discrete_gradient (const fem::FunctionSpace &V0, const fem::FunctionSpace &V1)
Improve documentation This function class computes the sparsity pattern for discrete gradient operators (matrices) that map derivatives of finite element functions into other finite element spaces.
Member dolfinx::fem::DirichletBC< T >::dof_values (xtl::span< T > values) const
Review this function - it is almost identical to the 'DirichletBC::set' function
Member dolfinx::fem::FiniteElement::interpolate (const xt::xtensor< T, 2 > &values, xtl::span< T > dofs) const

Document shape/layout of values

Make the interpolating dofs in/out argument for efficiency as this function is often called from within tight loops

Consider handling block size > 1

Re-work for fields that require a pull-back, e.g. Piols mapped elements

Member dolfinx::fem::FiniteElement::needs_permutation_data () const noexcept
Expand on when permutation data might be required
Member dolfinx::fem::FunctionSpace::tabulate_dof_coordinates (bool transpose) const
Remove - see function in interpolate.h Tabulate the physical coordinates of all dofs on this process.
Namespace dolfinx::graph::build
Add a function that sends data to the 'owner'
Member dolfinx::la::create_petsc_index_sets (const std::vector< std::pair< std::reference_wrapper< const common::IndexMap >, int >> &maps)
This function could take just the local sizes
Member dolfinx::mesh::CellPartitionFunction
Document fully
Member dolfinx::mesh::Topology::set_connectivity (std::shared_ptr< graph::AdjacencyList< std::int32_t >> c, int d0, int d1)
Merge with set_index_map Set connectivity for given pair of topological dimensions
Member dolfinx::mesh::Topology::set_index_map (int dim, const std::shared_ptr< const common::IndexMap > &map)
Merge with set_connectivity
Member dolfinx::MPI::compute_graph_edges (MPI_Comm comm, const std::set< int > &edges)
Experimental. Maybe be moved or removed.
Member dolfinx::MPI::neighbors (MPI_Comm neighbor_comm)
Clarify directions