Quick update: I found that changing TS_EXACTFINALTIME_INTERPOLATE to TS_EXACTFINALTIME_MATCHSTEP fixes the problem; is there a reason I can't use the interpolation when using a DMCOMPOSITE?
Ellen Price On 2/20/19 1:42 PM, Ellen Price wrote: > Hi fellow PETSc users! > > I am attempting to use a DMCOMPOSITE alongside TS and have run into some > trouble. I'm attaching a MWE demonstrating the problem. The goal is to > combine a DMDA3d for spatial data and a DMREDUNDANT for non-spatial, > time-dependent fields. In the attached example, this additional field is > temperature. > > The DMDA data is currently just temperature-dependent, and the > temperature is supposed to increase linearly. Unfortunately, no matter > how I integrate (explicitly, using Euler or RK, or implicitly, using > backward Euler or BDF), I get the wrong final temperature. The > integration proceeds for 100 timesteps and then stops (verified by > -ts_monitor). At a heating rate of 1, and an initial temperature of 150, > I should get a final temperature of 250 very easily. However, I get > something closer to 200 (not exact, which makes me think this isn't a > simple missing-a-factor-of-2 error). > > I'm currently using TSSetDM with the composite DM to let PETSc compute > the Jacobian. Having checked all the inputs and outputs as well as I > can, this is the only step that seems like it may be causing a problem; > yet even explicit integration doesn't work, and that shouldn't need the > Jacobian at all. I'm at a loss. > > Run using: > ./mwe -implicit yes -ts_type beuler -ts_monitor OR ./mwe -implicit no > -ts_type euler -ts_monitor > > Thanks in advance for any help, > Ellen Price
