xref: /petsc/interfaces/lua/src/luasrc.c (revision 4ad8454beace47809662cdae21ee081016eaa39a)
19895aa37SBarry Smith #include <petsc.h>
29895aa37SBarry Smith #include <lua.h>
39895aa37SBarry Smith 
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 
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 
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