@@ -126,6 +126,12 @@ void init_MultiFab(py::module &m) {
126126 py::keep_alive<0 , 1 >()
127127 )
128128
129+ .def_static (" saxpy" , py::overload_cast< FabArray<FArrayBox> &, Real, FabArray<FArrayBox> const &, int , int , int , IntVect const & >(&FabArray<FArrayBox>::template Saxpy<FArrayBox>)
130+ )
131+ .def_static (" xpay" , py::overload_cast< FabArray<FArrayBox> &, Real, FabArray<FArrayBox> const &, int , int , int , IntVect const & >(&FabArray<FArrayBox>::template Xpay<FArrayBox>))
132+ .def_static (" lin_comb" , py::overload_cast< FabArray<FArrayBox> &, Real, FabArray<FArrayBox> const &, int , Real, FabArray<FArrayBox> const &, int , int , int , IntVect const & >(&FabArray<FArrayBox>::template LinComb<FArrayBox>))
133+
134+ .def (" sum" , py::overload_cast< int , IntVect const &, bool >(&FabArray<FArrayBox>::template sum<FArrayBox>, py::const_))
129135 .def (" sum_boundary" , py::overload_cast< Periodicity const & >(&FabArray<FArrayBox>::SumBoundary))
130136 .def (" sum_boundary" , py::overload_cast< int , int , Periodicity const & >(&FabArray<FArrayBox>::SumBoundary))
131137 .def (" sum_boundary" , py::overload_cast< int , int , IntVect const &, Periodicity const & >(&FabArray<FArrayBox>::SumBoundary))
@@ -220,7 +226,12 @@ void init_MultiFab(py::module &m) {
220226 .def (" norm0" , py::overload_cast< int , int , bool , bool >(&MultiFab::norm0, py::const_))
221227 // .def("norm0", py::overload_cast< iMultiFab const &, int, int, bool >(&MultiFab::norm0, py::const_))
222228
223- .def (" norminf" , py::overload_cast< int , int , bool , bool >(&MultiFab::norminf, py::const_))
229+ .def (" norminf" ,
230+ // py::overload_cast< int, int, bool, bool >(&MultiFab::norminf, py::const_)
231+ [](MultiFab const & mf, int comp, int nghost, bool local, bool ignore_covered) {
232+ return mf.norminf (comp, nghost, local, ignore_covered);
233+ }
234+ )
224235 // .def("norminf", py::overload_cast< iMultiFab const &, int, int, bool >(&MultiFab::norminf, py::const_))
225236
226237 .def (" norm1" , py::overload_cast< int , Periodicity const &, bool >(&MultiFab::norm1, py::const_))
@@ -232,7 +243,9 @@ void init_MultiFab(py::module &m) {
232243 .def (" norm2" , py::overload_cast< Vector<int > const & >(&MultiFab::norm2, py::const_))
233244
234245 /* simple math */
235- .def (" sum" , &MultiFab::sum,
246+ .def (" sum" ,
247+ // py::overload_cast< int, bool >(&MultiFab::sum, py::const_),
248+ [](MultiFab const & mf, int comp , bool local) { return mf.sum (comp, local); },
236249 py::arg (" comp" ) = 0 , py::arg (" local" ) = false ,
237250 " Returns the sum of component 'comp' over the MultiFab -- no ghost cells are included."
238251 )
@@ -303,14 +316,20 @@ void init_MultiFab(py::module &m) {
303316 .def_static (" swap" , py::overload_cast< MultiFab &, MultiFab &, int , int , int , int >(&MultiFab::Swap))
304317 .def_static (" swap" , py::overload_cast< MultiFab &, MultiFab &, int , int , int , IntVect const & >(&MultiFab::Swap))
305318
306- .def_static (" saxpy" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , int , int , int >(&MultiFab::Saxpy))
307- .def_static (" saxpy" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , int , int , IntVect const & >(&MultiFab::Saxpy))
319+ .def_static (" saxpy" ,
320+ // py::overload_cast< MultiFab &, Real, MultiFab const &, int, int, int, int >(&MultiFab::Saxpy)
321+ static_cast <void (*)(MultiFab &, Real, MultiFab const &, int , int , int , int )>(&MultiFab::Saxpy)
322+ )
308323
309- .def_static (" xpay" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , int , int , int >(&MultiFab::Xpay))
310- .def_static (" xpay" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , int , int , IntVect const & >(&MultiFab::Xpay))
324+ .def_static (" xpay" ,
325+ // py::overload_cast< MultiFab &, Real, MultiFab const &, int, int, int, int >(&MultiFab::Xpay)
326+ static_cast <void (*)(MultiFab &, Real, MultiFab const &, int , int , int , int )>(&MultiFab::Xpay)
327+ )
311328
312- .def_static (" lin_comb" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , Real, MultiFab const &, int , int , int , int >(&MultiFab::LinComb))
313- .def_static (" lin_comb" , py::overload_cast< MultiFab &, Real, MultiFab const &, int , Real, MultiFab const &, int , int , int , IntVect const & >(&MultiFab::LinComb))
329+ .def_static (" lin_comb" ,
330+ // py::overload_cast< MultiFab &, Real, MultiFab const &, int, Real, MultiFab const &, int, int, int, int >(&MultiFab::LinComb)
331+ static_cast <void (*)(MultiFab &, Real, MultiFab const &, int , Real, MultiFab const &, int , int , int , int )>(&MultiFab::LinComb)
332+ )
314333
315334 .def_static (" add_product" , py::overload_cast< MultiFab &, MultiFab const &, int , MultiFab const &, int , int , int , int >(&MultiFab::AddProduct))
316335 .def_static (" add_product" , py::overload_cast< MultiFab &, MultiFab const &, int , MultiFab const &, int , int , int , IntVect const & >(&MultiFab::AddProduct))
0 commit comments