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