Dear Luke/Jacob
Sorry about the long email. I have a short question and its elaboration is provided below if the question is not clear enough.
Q:
What are all the parameters that can be set to solve/precondition Ax=b at run-time with PyAMG? I'd like to write some wrapper functions in my MATLAB Finite Element code for everything that can be set in PyAMG at runtime.
Elaboration:
I am in the process of developing a general matrix-free high-order finite element code that is capable of handling unstructured 2D and 3D meshes generated by the CUBIT software (Exodus-II files). I am interested in Solid and Fluid problems mostly. (Note: The code is not specific to one problem only. It can handle all kinds of problems.)
At run time, the user will have the ability to determine what order of
accuracy which translates to what polynomial order (degree = 1,2,3, ..)
of solution is desired for a particular field (ex: displacement is a field in elastic materials). The residual and action of Jacobian are computed matrix free for any order using tensor operations. However , for preconditioning , I am not assembling matrices based on high-order polynomials as they are very expensive and this paper also advises against it: "Heys, J., Manteuffel, T., McCormick, S., and Olson, L.,2005. Algebraic multigrid for higher-order finite elements".
Therefore, for preconditioning, I assemble a sparse matrix based on polynomial order 1, called Q1 hereby, and then apply my own p-multigrid for high-order polynomials.
So, to precondition the sparse Q1 matrix, I'd like to use PyAMG (otherwise, I would have to use MATLAB's \ exact solver). However, I'd like to permit the user to have the ability to set anything that they could have, such as classical AMG, SA, types of smoothers, etc, as if they were working natively in PyAMG.
So I was wondering if would be possible to get a hold of what functions and smoothers, parameter, etc could be set with PyAMG please?
Thanks
Arash