IvanYashchuk / firedrake-ts

The firedrake-ts library provides an interface to PETSc TS for the scalable solution of DAEs arising from the discretization of time-dependent PDEs.
MIT License
11 stars 4 forks source link

Adding a second order ode example #5

Closed medinaeder closed 4 years ago

medinaeder commented 4 years ago

This example demonstrates the ease of using an adaptive time integrator on a second order ODE. Has not been compared to analytical results. TBD.

medinaeder commented 4 years ago

Worried about firedrake-ts not properly breaking the problem down.

IvanYashchuk commented 4 years ago

What makes you worry? Visually the computed solution looks reasonable. It's still good to test it against the analytical result.

There are some signs that PETSc TS might support second-order equations without converting to the first-order system, but I didn't find any documentation, examples, tests. https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSALPHA2.html https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TS2SetSolution.html

medinaeder commented 4 years ago

I agree. The solution looks reasonable however at the time of submitting I had no idea that there was a difference between alpha and alpha2.

I also spent some time looking and was deterred by the lack of examples. Right now I am trying to see if analytically you get the same properties from the second-order method (high frequency damping) when you use the first order method. In addition if this is the case, I have some code (currently failing) that tries to solve the linear system in blocks using fieldsplit. The first blocked should be solved exactly with a jacobi iteration because I think it is just the inversion of a diagonal matrix.