Hi Barry, Thank you very much for the help. I managed to figure it out with those new examples.
Thanks again, Jonathan On 2011-06-29, at 8:08 PM, Barry Smith wrote: > > Jonathan, > > You need to switch to PETSc-dev > http://www.mcs.anl.gov/petsc/petsc-as/developers/index.html to access the DAE > solvers that Jed Brown has developed. > > For that you use TSSetIFunction() and TSSetIJacobian() . > > Examples in src/ts/examples/tutorials > > ex14.c: ierr = TSSetIFunction(ts,THIFunction,thi);CHKERRQ(ierr); > ex15.c: ierr = TSSetIFunction(ts,FormIFunction,&user);CHKERRQ(ierr); > ex17.c: ierr = TSSetIFunction(ts,FormIFunction,&user);CHKERRQ(ierr); > ex18.c: ierr = TSSetIFunction(ts,FormResidual,&user);CHKERRQ(ierr); > ex8.c: ierr = > TSSetIFunction(ts,problem->function,problem->data);CHKERRQ(ierr); > > all use this functionality. > > Good luck and feel free to send more questions once you are going, but I > suspect it will be easy for you with this hint. > > > Barry > > On Jun 29, 2011, at 6:23 PM, Jonathan Backs wrote: > >> Hi, >> >> I am developing my first application with PETSc in an attempt to solve two >> coupled non-linear PDEs: (1) Poisson's equation for electric potential with >> a temperature-dependent electrical conductivity, and (2) the heat diffusion >> equation with a voltage-dependent thermal conductivity and a >> voltage-and-temperature-dependent source term (ohmic heating from the >> electric potential and the temperature-dependent electrical conductivity). >> >> So far I have solved the two problems separately without problems: Poisson's >> equation with a voltage-dependent electric conductivity (no timestepping), >> and the heat equation with a temperature-dependent thermal conductivity >> (timestepping, but no source term; the heat came from the boundary >> conditions in this case). However, I am not sure how to set up PETSc for >> solving these non-linear equations simultaneously. For example, when setting >> up a non-linear problem with time stepping, I understand I have to set the >> RHSFunction and RHSJacobian, assuming the left hand side provided by PETSc >> is the time-derivative of the independent variable; When setting up a >> non-linear problem without time stepping, I understand I have to set the >> Function assuming a zero left hand side (and then set the Jacobian according >> to the Function). >> >> I have tried to implement the coupled problem using a three-dimensional DA >> with two degrees of freedom (V and T). While PETSc seems to facilitate the >> use of multiple degrees of freedom in the same RHSFunction (and >> RHSJacobian), I cannot assign an RHSFunction for the Poisson's equation >> since the Poisson's equation does not include a time derivative. I have not >> been able to find any examples in the documentation or on this mailing list >> that illustrated this particular type of problem. >> >> Could anyone offer a hint as to the proper strategy for implementing this >> coupled system of PDEs? >> >> Thank you for your time, >> >> Jon >
