LLNL / serac

Serac is a high order nonlinear thermomechanical simulation code
BSD 3-Clause "New" or "Revised" License
178 stars 33 forks source link

Tupek/test quasi static checkpoint #1183

Closed tupek2 closed 1 month ago

tupek2 commented 1 month ago

The checkpointing was not being done for quasi-static problems. Now, it is written a bit more generically with a bit more responsibility on base_physics and loops over states so that it will work for any physics and dynamic or quasi-static. In addition, we were not decrementing the time correctly, so any time dependent load was not being accounted for in the reverse pass correctly. This tries to clear up some of the logic and naming, and fix these know failing situations. Tests were added to check time varying loads and quasi-static evolution.

Additional things in this: remove ode_timepoint, as it was very confusingly intertwined with time_. If there is a case to keep both, we can undo this. Also, the checkpoint to disk capability is a bit subtle. Now it is always writing to disk. If the user externally also writes state to disk, it will mess up the checkpointing. I think we can considered deleting the writing to disk checkpointing altogether at some point. For now, it is fairly hard to use.

kswartz92 commented 1 month ago

are you planning to add the test with a Functional qoi to this PR?

tupek2 commented 1 month ago

are you planning to add the test with a Functional qoi to this PR?

added

kswartz92 commented 1 month ago

Update- Irvin pulled the latest changes from this branch into his lido build and his problem has correct sensitivities and a working inverse problem with time dependent b.c.s and time dependent QoI. Thanks for all the help @tupek2!

white238 commented 1 month ago

/style