1*c4aff060SBarry Smith #include "private/tsimpl.h" /*I "petscts.h" I*/ 2*c4aff060SBarry Smith 3*c4aff060SBarry Smith #undef __FUNCT__ 4*c4aff060SBarry Smith #define __FUNCT__ "TSPythonSetType" 5*c4aff060SBarry Smith /*@C 6*c4aff060SBarry Smith TSPythonSetType - Initalize a TS object implemented in Python. 7*c4aff060SBarry Smith 8*c4aff060SBarry Smith Collective on TS 9*c4aff060SBarry Smith 10*c4aff060SBarry Smith Input Parameter: 11*c4aff060SBarry Smith + ts - the nonlinear solver (TS) 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 . -ts_python_type <pyname> 16*c4aff060SBarry Smith 17*c4aff060SBarry Smith Level: intermediate 18*c4aff060SBarry Smith 19*c4aff060SBarry Smith .keywords: TS, Python 20*c4aff060SBarry Smith 21*c4aff060SBarry Smith .seealso: TSCreate(), TSSetType(), TS_PYTHON, PetscPythonInitialize() 22*c4aff060SBarry Smith @*/ 23*c4aff060SBarry Smith PetscErrorCode PETSCTS_DLLEXPORT TSPythonSetType(TS ts,const char pyname[]) 24*c4aff060SBarry Smith { 25*c4aff060SBarry Smith PetscErrorCode (*f)(TS, const char[]) = 0; 26*c4aff060SBarry Smith PetscErrorCode ierr; 27*c4aff060SBarry Smith PetscFunctionBegin; 28*c4aff060SBarry Smith PetscValidHeaderSpecific(ts,TS_COOKIE,1); 29*c4aff060SBarry Smith PetscValidCharPointer(pyname,2); 30*c4aff060SBarry Smith ierr = PetscObjectQueryFunction((PetscObject)ts,"TSPythonSetType_C", 31*c4aff060SBarry Smith (PetscVoidFunction*)&f);CHKERRQ(ierr); 32*c4aff060SBarry Smith if (f) {ierr = (*f)(ts,pyname);CHKERRQ(ierr);} 33*c4aff060SBarry Smith PetscFunctionReturn(0); 34*c4aff060SBarry Smith } 35