2#include <structmember.h>
6#include <boost/python.hpp>
7#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
20namespace py = boost::python;
26 int gLength = boost::python::len(gridCoordinates);
27 std::vector<std::vector<double> > coords(gLength);
28 for (
int i = 0; i < gLength; ++i) {
29 int lineLength = boost::python::len(gridCoordinates[i]);
30 coords[i] = std::vector<double>(lineLength);
31 for (
int j = 0; j < lineLength; ++j) {
32 coords[i][j] = boost::python::extract<double>(gridCoordinates[i][j]);
40 boost::python::list spacing,
41 boost::python::list
min) {
42 int dim = boost::python::len(size);
43 if (dim != boost::python::len(spacing)) {
45 }
else if (dim != boost::python::len(
min)) {
48 std::vector<int> sizeVec(dim);
49 std::vector<double> spacingVec(dim);
50 std::vector<double> minVec(dim);
51 for (
int i = 0; i < dim; ++i) {
52 sizeVec[i] = boost::python::extract<int>(size[i]);
53 spacingVec[i] = boost::python::extract<double>(spacing[i]);
54 minVec[i] = boost::python::extract<double>(
min[i]);
57 return NDGrid(dim, &sizeVec[0], &spacingVec[0], &minVec[0]);
63 "Dimension out of bounds");
66 py::list coord = py::list();
67 for (
size_t i = 0; i <
vec.size(); ++i) {
80 boost::python::class_<NDGrid>(
"NDGrid")
82 .staticmethod(
"initialise_variable_spacing")
84 .staticmethod(
"initialise_fixed_spacing")
T::PETE_Expr_t::PETE_Return_t min(const PETE_Expr< T > &expr, NDIndex< D > &loc)
void registerExceptions()
const char * module_docstring
py::list coordVector(NDGrid &grid, int dimension)
NDGrid initialiseVariableSpacing(boost::python::list gridCoordinates)
BOOST_PYTHON_MODULE(ndgrid)
NDGrid initialiseFixedSpacing(boost::python::list size, boost::python::list spacing, boost::python::list min)
int getPositionDimension() const
int size(const int &dimension) const
std::vector< double > coordVector(const int &dimension) const
The base class for all OPAL exceptions.