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 printf("%p %d\n",vec,n); 24 ierr = VecSetSizes(vec,n,n); 25 return 0; 26 } 27 28 int luaopen_libpetsc(lua_State *L) 29 { 30 PetscInitializeNoArguments(); 31 lua_register(L,"VecCreate",(lua_CFunction)lua_VecCreate); 32 lua_register(L,"VecSetSize",(lua_CFunction)lua_VecSetSize); 33 return(0); 34 } 35