1 #include <petsc.h>
2 #include <lua.h>
3
lua_VecCreate(lua_State * L)4 int lua_VecCreate(lua_State *L)
5 {
6 PetscErrorCode ierr;
7 Vec vec;
8
9 ierr = VecCreate(PETSC_COMM_SELF, &vec);
10 lua_pushlightuserdata(L, vec);
11 return 1;
12 }
13
lua_VecSetSize(lua_State * L)14 int lua_VecSetSize(lua_State *L)
15 {
16 PetscErrorCode ierr;
17 Vec vec;
18 PetscInt n;
19 int isnum;
20
21 vec = (Vec)lua_touserdata(L, 1);
22 n = (PetscInt)lua_tointegerx(L, 2, &isnum);
23 ierr = VecSetSizes(vec, n, n);
24 return 0;
25 }
26
luaopen_libpetsc(lua_State * L)27 int luaopen_libpetsc(lua_State *L)
28 {
29 PetscInitializeNoArguments();
30 lua_register(L, "VecCreate", (lua_CFunction)lua_VecCreate);
31 lua_register(L, "VecSetSize", (lua_CFunction)lua_VecSetSize);
32 return 0;
33 }
34