1*c4aff060SBarry Smith #include "private/snesimpl.h" /*I "petscsnes.h" I*/ 2*c4aff060SBarry Smith 3*c4aff060SBarry Smith #undef __FUNCT__ 4*c4aff060SBarry Smith #define __FUNCT__ "SNESPythonSetType" 5*c4aff060SBarry Smith /*@C 6*c4aff060SBarry Smith SNESPythonSetType - Initalize a SNES object implemented in Python. 7*c4aff060SBarry Smith 8*c4aff060SBarry Smith Collective on SNES 9*c4aff060SBarry Smith 10*c4aff060SBarry Smith Input Parameter: 11*c4aff060SBarry Smith + snes - the nonlinear solver (SNES) context. 12*c4aff060SBarry Smith - pyname - full dotted Python name [package].module[.{class|function}] 13*c4aff060SBarry Smith 14*c4aff060SBarry Smith Options Database Key: 15*c4aff060SBarry Smith . -snes_python_type <pyname> 16*c4aff060SBarry Smith 17*c4aff060SBarry Smith Level: intermediate 18*c4aff060SBarry Smith 19*c4aff060SBarry Smith .keywords: SNES, Python 20*c4aff060SBarry Smith 21*c4aff060SBarry Smith .seealso: SNESCreate(), SNESSetType(), SNESPYTHON, PetscPythonInitialize() 22*c4aff060SBarry Smith @*/ 23*c4aff060SBarry Smith PetscErrorCode PETSCSNES_DLLEXPORT SNESPythonSetType(SNES snes,const char pyname[]) 24*c4aff060SBarry Smith { 25*c4aff060SBarry Smith PetscErrorCode (*f)(SNES, const char[]) = 0; 26*c4aff060SBarry Smith PetscErrorCode ierr; 27*c4aff060SBarry Smith PetscFunctionBegin; 28*c4aff060SBarry Smith PetscValidHeaderSpecific(snes,SNES_COOKIE,1); 29*c4aff060SBarry Smith PetscValidCharPointer(pyname,2); 30*c4aff060SBarry Smith ierr = PetscObjectQueryFunction((PetscObject)snes,"SNESPythonSetType_C", 31*c4aff060SBarry Smith (PetscVoidFunction*)&f);CHKERRQ(ierr); 32*c4aff060SBarry Smith if (f) {ierr = (*f)(snes,pyname);CHKERRQ(ierr);} 33*c4aff060SBarry Smith PetscFunctionReturn(0); 34*c4aff060SBarry Smith } 35