next up previous [pdf]

Next: Introduction Up: Reproducible Documents


Object-oriented approaches allow a separation between solvers and operators. An abstract vector class is created with a limited set of methods. Solvers are written in terms of this abstract vector class and operators act on vectors inherited from the abstract class. Ideally, this separation allows the geophysicist to leverage the work of the mathematician without needing to understand the implementation details of the optimization method. The minimal set of object-oriented features of Fortran95 and its predecessors limited the potential separation between the physics and the solver. New inversion approaches, such as the hybrid norm, further hampered this separation when using conventional vector class descriptions. By using the object-oriented features of Fortran 2003, a more complete separation between solvers and operators can be achieved. By expanding the vector class definition, approaches such as the hybrid norm can be implemented.