Enriquez, Marco2018-06-192018-06-192009-09Enriquez, Marco. "A C++ Class Supporting Adjoint-State Methods." (2009) <a href="https://hdl.handle.net/1911/102133">https://hdl.handle.net/1911/102133</a>.https://hdl.handle.net/1911/102133This work was also published as a Rice University thesis/dissertation.The adjoint-state method is widely used for computing gradients in simulation- driven optimization problems. The adjoint-state evolution equation requires access to the entire history of the system states. There are instances, however, where the required state for the adjoint-state evolution is not readily accessible; consider large- scale problems, for example, where the entire simulation history is not saved to con- serve memory. This thesis introduces a C++ state-access class, StateHistory, to support a myriad of solutions to this problem. Derived StateHistory classes im- plement a (simulation) time-altering function and data-access functions, which can be used in tandem to access the entire state history. This thesis also presents a derived StateHistory class, GriewankStateHistory, which uses Griewank's opti- mal checkpointing scheme. While only storing a small fraction of simulation states, GriewankStateHistory objects can reconstitute unsaved states for a small computa- tional cost. These ideas were implemented in the context of TSOpt, a time-stepping library for simulation-driven optimization algorithms.93 ppengA C++ Class Supporting Adjoint-State MethodsTechnical reportTR09-32