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