include/dolfinx_access/function.h

changeset 1
a4137aedcb3a
child 3
c3a4f4bb87f7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/dolfinx_access/function.h	Thu Feb 26 09:32:12 2026 -0500
@@ -0,0 +1,49 @@
+#pragma once
+#include "dolfinx/geometry/BoundingBoxTree.h"
+#include <cmath>
+
+#pragma once
+#include "nanobind_helpers.h"
+
+#pragma once
+#include "rust/cxx.h"
+
+namespace dolfinx_access {
+    struct FunctionInfo;
+
+    typedef geometry::BoundingBoxTree<double> BBTree_f64;
+    extern void drop_Function_f64(Function_f64* f);
+
+    extern int32_t cell_Mesh_f64(std::shared_ptr<const 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);
+
+} // namespace dolfinx_access

mercurial