%module pde
%{
#include "pde.h"
%}
%include pde.h
%inline %{
// Define a new Grid2d row class
struct Grid2dRow {
Grid2d *g;
int row;
double __getitem__(int i) {
return g->data[row][i];
};
void __setitem__(int i, double val) {
g->data[row][i] = val;
};
};
%}
%addmethods Grid2d {
Grid2dRow __getitem__(int i) {
Grid2dRow r;
r.g = self;
r.row = i;
return r;
};
};
%addmethods Heat2d {
void dump(char *filename) {
FILE *f;
int i,j;
f = fopen(filename,"w");
for (i = 0; i < self->grid->xpoints; i++)
for (j = 0; j < self->grid->ypoints; j++)
fprintf(f,"%0.17f\n",self->grid->data[i][j]);
fclose(f);
};
};
#ifdef STATIC
%include embed.i
#endif
syntax highlighted by Code2HTML, v. 0.9.1