#include #include int lua_VecCreate(lua_State *L) { PetscErrorCode ierr; Vec vec; ierr = VecCreate(PETSC_COMM_SELF, &vec); lua_pushlightuserdata(L, vec); return 1; } int lua_VecSetSize(lua_State *L) { PetscErrorCode ierr; Vec vec; PetscInt n; int isnum; vec = (Vec)lua_touserdata(L, 1); n = (PetscInt)lua_tointegerx(L, 2, &isnum); ierr = VecSetSizes(vec, n, n); return 0; } int luaopen_libpetsc(lua_State *L) { PetscInitializeNoArguments(); lua_register(L, "VecCreate", (lua_CFunction)lua_VecCreate); lua_register(L, "VecSetSize", (lua_CFunction)lua_VecSetSize); return (0); }