Hi Everyone,

I have a problem wherein one of the terms in my PDE is a 5-component vector 
function \Lambda of the 5-component solution vector Q. However, I only have 
an explicit formula for Q as a function of \Lambda and so I am trying to 
write a numerical inversion class (as a `dealii::Function`) to get \Lambda 
as a function of Q. 

I am using Newton's method, and so I need to solve a 5x5 matrix equation. I 
was planning on just inverting the Jacobian which I have implemented as a 
`dealii::Tensor`, but it looks like the `invert` function is only 
implemented up to dimension 3 (?). It looks like the `dealii::FullMatrix` 
class can do this via a Gauss Jordan method, but I was having some trouble 
using the `FullMatrix` class directly. In particular, to read and write 
individual elements I need to create a `dealii::TableIndices` object, which 
seems tedious and makes me think it's meant to be used internally. 

Given all this, I am looking for advice at any level: is this a reasonable 
way to numerically get \Lambda as a function of Q? Is it recommended to use 
a `dealii::Tensor` object as opposed to a `dealii::FullMatrix` object? And 
if I am supposed to use the latter, is there a nicer way to index it than 
with the `dealii::TableIndices` object? Lastly is it a good idea to be 
using an `invert` operation to solve the Newton's method linear equation? I 
know that the `Eigen` package recommends against that here 
<https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html>, and 
instead recommends one of its solution methods. I haven't seen any of those 
here besides one of the `Solver` classes, but those seem like a lot of 
overhead for a 5x5 matrix (I'm going to have to do this operation for every 
degree of freedom, so I want too minimize overhead). I also don't really 
want to use the Eigen package, just because (1) I want to avoid unnecessary 
value-copying and (2) I'd like to not have to try to interface multiple 
packages.

Any help is appreciated, and let me know if you need more information about 
the problem.

Kind regards,
Lucas

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/29d3a1c1-6703-4c98-95a6-44ba96add049n%40googlegroups.com.

Reply via email to