This is a good heads-up for me. Actually I wanted that our adjoint models could handle forward integrations like this: TSSolve(ts,u); TSStep(ts); TSSolve(ts,u);
Then the reverse run would look like: TSAdjointSolve(ts); TSAdjointStep(ts); TSAdjointSolve(ts); This flexibility should be very useful for “funky systems”. On Feb 8, 2015, at 8:41 PM, Barry Smith <bsm...@mcs.anl.gov> wrote: > > If the number of degrees of freedom do not change and they have essentially > the same "meaning" regardless of which process they are on then we can "hide" > inside the Vec object (and Mat object) the fact that they move around between > processors so TS shouldn't care. > > BUT note that if the user manages the calling of TSStep() themselves then > the user has to similarly manage calling the TSAdjointStep() stuff correctly > themselves backwards. And if they are ad hoc combining TSStep() for the field > with some "push particle" crap for the particles then likely all the > TSAdjoint stuff goes out the window. Hence my desire for TS to treat the > entire field+particle stuff as one "big old" set of ODEs so users get all the > good stuff (like Adjoints and proper coupled error control) for free. > > > > >> On Feb 8, 2015, at 8:29 PM, Dmitry Karpeyev <karp...@mcs.anl.gov> wrote: >> >> This is a bit off-topic, but I'm dealing exactly with this sort of "funky >> system" -- particles+field. >> Since degrees of freedom do move between processors, it's unclear how it >> fits into the current >> TS framework short of rebuilding the TS every timestep. That's a bit >> inconvenient, since now I >> have to do my own error and timestep size control etc. It might be too late >> to do anything about >> TS to help this, but I'm also hoping to use TSAdjoint with this system, so >> it may be good -- before >> TSAdjoint becomes to rigidly entrenched -- to think about how to accommodate >> these systems. >> >> On Sun Feb 08 2015 at 8:16:30 PM Barry Smith <bsm...@mcs.anl.gov> wrote: >> >>> On Feb 8, 2015, at 8:11 PM, Jed Brown <j...@jedbrown.org> wrote: >>> >>> Barry Smith <bsm...@mcs.anl.gov> writes: >>>> Why can't TS handle that? Users always prefer to use the lowest >>>> level thing available, that doesn't mean it is right. >>>> >>>> In the language of TS what does a "funky system, liked mixed >>>> particle-field," mean, does it require a little more API on our >>>> side? I'm much rather have Emil and Jed control the time-stepping >>>> then some ignorant user. >>> >>> Dofs move to different processes at each stage. That isn't compatible >>> with Vec. Do we need to overhaul Vec before users can integrate such a >>> system? >> >> Well eventually. >>> >>> Practicality wins over purity. >> >> I never said remove TSStep() or make it completely private. I just want to >> limit its use to when it is really needed by the user. >> >> >