19895aa37SBarry Smith #include <petsc.h> 29895aa37SBarry Smith #include <lua.h> 39895aa37SBarry Smith 4d71ae5a4SJacob Faibussowitsch int lua_VecCreate(lua_State *L) 5d71ae5a4SJacob Faibussowitsch { 69895aa37SBarry Smith PetscErrorCode ierr; 79895aa37SBarry Smith Vec vec; 89895aa37SBarry Smith 99895aa37SBarry Smith ierr = VecCreate(PETSC_COMM_SELF, &vec); 109895aa37SBarry Smith lua_pushlightuserdata(L, vec); 119895aa37SBarry Smith return 1; 129895aa37SBarry Smith } 139895aa37SBarry Smith 14d71ae5a4SJacob Faibussowitsch int lua_VecSetSize(lua_State *L) 15d71ae5a4SJacob Faibussowitsch { 169895aa37SBarry Smith PetscErrorCode ierr; 179895aa37SBarry Smith Vec vec; 189895aa37SBarry Smith PetscInt n; 199895aa37SBarry Smith int isnum; 209895aa37SBarry Smith 219895aa37SBarry Smith vec = (Vec)lua_touserdata(L, 1); 229895aa37SBarry Smith n = (PetscInt)lua_tointegerx(L, 2, &isnum); 239895aa37SBarry Smith ierr = VecSetSizes(vec, n, n); 249895aa37SBarry Smith return 0; 259895aa37SBarry Smith } 269895aa37SBarry Smith 27d71ae5a4SJacob Faibussowitsch int luaopen_libpetsc(lua_State *L) 28d71ae5a4SJacob Faibussowitsch { 299895aa37SBarry Smith PetscInitializeNoArguments(); 309895aa37SBarry Smith lua_register(L, "VecCreate", (lua_CFunction)lua_VecCreate); 319895aa37SBarry Smith lua_register(L, "VecSetSize", (lua_CFunction)lua_VecSetSize); 32*4ad8454bSPierre Jolivet return 0; 339895aa37SBarry Smith } 34