xref: /petsc/interfaces/lua/src/luasrc.c (revision 98d129c30f3ee9fdddc40fdbc5a989b7be64f888)
1 #include <petsc.h>
2 #include <lua.h>
3 
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 
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 
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