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