[petsc-dev] [petsc-maint #58509] TS for DAEs
Barry Smith
bsmith at mcs.anl.gov
Wed Dec 15 11:18:43 CST 2010
Switching this discussion to petsc-dev
Barry
On Dec 15, 2010, at 7:51 AM, Michael E Henderson wrote:
> Hi,
>
> I'm seeing some strange behavior in using TSTHETA to solve a system of
> DAEs. The algebraic eqs. come from boundary conditions on a PDE. I'm
> using petsc-v3.1-p4
>
> dy/dt + L(x,y) = 0
> B(x) = 0
>
> u=(x,y)
>
> If I watch in the IFunction I provided I see the residual go to zero very
> quickly. But the time derivatives for the variables without time
> derivative terms (x') are huge. It seems that after solving
> IFunction(ufot,u)=0 the integrator takes a (half?) step before the Monitor
> routine is called (theta.c). Since the time derivatives x' that should be
> zero (or the tangent to the algebraic constraints?) are huge this causes
> the Monitor function to get a really lousy point.
>
> A simple test doesn't do this, IIFunction gets passed x'=0 on the final
> step.
>
> I tried digging through the Theta timestepper, and most of it makes sense,
> but I haven't found where udot is computed.
>
> How does the DAE solver find udot for the unknowns without time derivative
> terms? Why would the time derivatives be large?
>
> Thanks,
>
> Mike Henderson
> ------------------------------------------------------------------------------------------------------------------------------------
> Mathematical Sciences, TJ Watson Research Center
> mhender at watson.ibm.com
> http://www.research.ibm.com/people/h/henderson/
> http://multifario.sourceforge.net/
>
> Hi,
>
> I'm seeing some strange behavior in using TSTHETA to solve a system of DAEs. The algebraic eqs. come from boundary conditions on a PDE. I'm using petsc-v3.1-p4
>
> dy/dt + L(x,y) = 0
> B(x) = 0
>
> u=(x,y)
>
> If I watch in the IFunction I provided I see the residual go to zero very quickly. But the time derivatives for the variables without time derivative terms (x') are huge. It seems that after solving IFunction(ufot,u)=0 the integrator takes a (half?) step before the Monitor routine is called (theta.c). Since the time derivatives x' that should be zero (or the tangent to the algebraic constraints?) are huge this causes the Monitor function to get a really lousy point.
>
> A simple test doesn't do this, IIFunction gets passed x'=0 on the final step.
>
> I tried digging through the Theta timestepper, and most of it makes sense, but I haven't found where udot is computed.
>
> How does the DAE solver find udot for the unknowns without time derivative terms? Why would the time derivatives be large?
>
> Thanks,
>
> Mike Henderson
> ------------------------------------------------------------------------------------------------------------------------------------
> Mathematical Sciences, TJ Watson Research Center
> mhender at watson.ibm.com
> http://www.research.ibm.com/people/h/henderson/
> http://multifario.sourceforge.net/
More information about the petsc-dev
mailing list