19895aa37SBarry Smith #include <petsc.h>
29895aa37SBarry Smith #include <lua.h>
39895aa37SBarry Smith
lua_VecCreate(lua_State * L)4d71ae5a4SJacob Faibussowitsch int lua_VecCreate(lua_State *L)
5d71ae5a4SJacob Faibussowitsch {
69895aa37SBarry Smith PetscErrorCode ierr;
79895aa37SBarry Smith Vec vec;
89895aa37SBarry Smith
99895aa37SBarry Smith ierr = VecCreate(PETSC_COMM_SELF, &vec);
109895aa37SBarry Smith lua_pushlightuserdata(L, vec);
119895aa37SBarry Smith return 1;
129895aa37SBarry Smith }
139895aa37SBarry Smith
lua_VecSetSize(lua_State * L)14d71ae5a4SJacob Faibussowitsch int lua_VecSetSize(lua_State *L)
15d71ae5a4SJacob Faibussowitsch {
169895aa37SBarry Smith PetscErrorCode ierr;
179895aa37SBarry Smith Vec vec;
189895aa37SBarry Smith PetscInt n;
199895aa37SBarry Smith int isnum;
209895aa37SBarry Smith
219895aa37SBarry Smith vec = (Vec)lua_touserdata(L, 1);
229895aa37SBarry Smith n = (PetscInt)lua_tointegerx(L, 2, &isnum);
239895aa37SBarry Smith ierr = VecSetSizes(vec, n, n);
249895aa37SBarry Smith return 0;
259895aa37SBarry Smith }
269895aa37SBarry Smith
luaopen_libpetsc(lua_State * L)27d71ae5a4SJacob Faibussowitsch int luaopen_libpetsc(lua_State *L)
28d71ae5a4SJacob Faibussowitsch {
299895aa37SBarry Smith PetscInitializeNoArguments();
309895aa37SBarry Smith lua_register(L, "VecCreate", (lua_CFunction)lua_VecCreate);
319895aa37SBarry Smith lua_register(L, "VecSetSize", (lua_CFunction)lua_VecSetSize);
32*4ad8454bSPierre Jolivet return 0;
339895aa37SBarry Smith }
34