-
-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
clean up affine operator #21
Conversation
vpuri3
commented
Jun 3, 2022
•
edited
Loading
edited
- define traits
- add tests
- mul!, *
Codecov Report
@@ Coverage Diff @@
## master #21 +/- ##
======================================
Coverage 0.00% 0.00%
======================================
Files 4 4
Lines 459 498 +39
======================================
- Misses 459 498 +39
📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more |
what is the matrix representation of L = AffineOperator(A, b)
L(u) = A*u + b we would also need a new name. affine is too vague. something that signifies that it is adding a vector, like vecsumoperator or muladdoperator or something |
im going with |
thoughts @ChrisRackauckas ? |
You can dig up some of the old conversations in DiffEqOperators.jl about this question (SciML/DifferentialEquations.jl#260 (comment), SciML/DiffEqOperators.jl#53). There is no matrix representation of it, since if there was it would be a linear operator instead of an affine operator. You can only represent an affine operator as a linear operator in a dimension of one larger. Basically, the operation is: While it this seems like it might doom the idea of using matrix-free affine operators, it turns out that it's okay because of an obscure fact that iterative linear solvers are actually compatible with affine operators. Everyone talks about and proves them for linear solvers, but that's actually over-restrictive.
I forget where I wrote the proof of that, some PDE solvers roadmap. But it's rather straightforward to prove. If And many boundary conditions give not linear operators but affine operators, hence the existence of all of this. |