next up previous [pdf]

Next: Combining operators Up: Operator-based object-oriented solvers Previous: Vector class

Operators

The base operator class contains the ability to perform a mapping from the vector-space of $ \bf m$ , its domain, to the vector space of $ \bf d$ , the operator's range (the forward), and vice versa. It is beneficial for an operator to store a description of these two spaces (the reason for the clone-space function described above). This performs two functions. First, the operator can perform a sanity check to make sure that the spaces of model and data passed into the forward adjoint function call match the space of initialized domain and range. The second reason is that inversion problems are often more complicated then the generic problem described by equation 1. For example, if $ \bf L$ is actually the cascade of two operator $ \bf A$ and $ \bf B$ ,

$\displaystyle \bf L = \bf A \bf B$ (3)

we need the ability to check that the domain of is $ \bf A$ is equivalent to the range of $ \bf B$ and we need to create a vector of that size to hold the intermediate result of applying $ \bf B$ in the forward case (and $ \bf A$ in the case of the adjoint).
next up previous [pdf]

Next: Combining operators Up: Operator-based object-oriented solvers Previous: Vector class

2010-11-26