Fri, 08 May 2026 17:16:34 -0500
Do not directly depend on ndarray, but through numpy
#pragma once #include "dolfinx/geometry/BoundingBoxTree.h" #pragma once #include "dolfinx/mesh/Mesh.h" #include <cmath> #pragma once #include "nanobind_helpers.h" #pragma once #include "rust/cxx.h" namespace dolfinx_access { struct FunctionInfo; typedef dolfinx::geometry::BoundingBoxTree<double> BBTree_f64; extern void drop_Function_f64(Function_f64* f); extern int32_t cell_Mesh_f64(std::shared_ptr<const dolfinx::mesh::Mesh<double>> mesh, const std::array<double, 3>& x); extern int32_t cell_FunctionSpace_f64(FunctionSpace<double> const* v, const std::array<double, 3>& x); extern int32_t cell_Function_f64(Function_f64 const* f, const std::array<double, 3>& x); extern double eval_Function_f64_cell(Function_f64 const* f, const std::array<double, 3>& x, int32_t cell); extern double eval_Function_f64(Function_f64 const* f, const std::array<double, 3>& x); extern std::array<double, 6> eval_Function_f64_cell_6(Function_f64 const* f, const std::array<double, 3 * 6>& x, int32_t cell_index); FunctionInfo info_Function_f64(Function_f64 const* f); std::array<double, 3 * 3> cell_coords_Function_f64_triangle(Function_f64 const* f, int32_t cell); rust::Slice<const double> data_Function_f64(Function_f64 const* f); rust::Slice<double> data_mut_Function_f64(Function_f64* f); void check_compat_Function_f64(Function_f64 const* f, Function_f64 const* g); Function_f64* similar_Function_f64(Function_f64 const* f); Function_f64* clone_Function_f64(Function_f64 const* f); void scatter_fwd_Function_f64(Function_f64* f); } // namespace dolfinx_access