[petsc-users] Block Tridiagonal Solver
John L. Papp
jpapp at craft-tech.com
Mon Sep 9 08:22:00 CDT 2019
Thanks for the help.
I didn't want to get too far into the weeds about the numerical method,
just that I have a block tridiagonal system that needs to be solved. If
it helps any, the system comes from an ADI scheme on the Navier-Stokes
equations. The [A], [B], and [C] block matrices correspond to the
[Q]_i-1, [Q]_i, and [Q]_i+1 vector unknowns (density, momentum, energy,
species, etc.) for each I, J, K sweep through the solution grid. So,
technically, I do need to solve batches of tridiagonal problems. I'll
take a look at your solvers as it seems to be less heavy than PETSc.
Thanks,
John
On 9/6/2019 5:32 PM, Jed Brown wrote:
> Where do your tridiagonal systems come from? Do you need to solve one
> at a time, or batches of tridiagonal problems?
>
> Although it is not in PETSc, we have some work on solving the sort of
> tridiagonal systems that arise in compact discretizations, which it
> turns out can be solved much faster than generic tridiagonal problems.
>
> https://tridiaglu.github.io/index.html
>
> "John L. Papp via petsc-users" <petsc-users at mcs.anl.gov> writes:
>
>> Hello,
>>
>> I need a parallel block tridiagonal solver and thought PETSc would be
>> perfect. However, there seems to be no specific example showing exactly
>> which VecCreate and MatCreate functions to use. I searched the archive
>> and the web and there is no explicit block tridiagonal examples
>> (although ex23.c example solves a tridiagonal matrix) and the manual is
>> vague on the subject. So a couple of questions:
>>
>> 1. Is it better to create a monolithic matrix (MatCreateAIJ) and vector
>> (VecCreate)?
>> 2. Is it better to create a block matrix (MatCreateBAIJ) and vector
>> (VecCreate and then VecSetBlockSize or is there an equivalent block
>> vector create)?
>> 3. What is the best parallel solver(s) to invert the Dx=b when D is a
>> block tridiagonal matrix?
>>
>> If this helps, each row will be owned by the same process. In other
>> words, the data used to fill the [A] [B] [C] block matrices in a row of
>> the D block tridiagonal matrix will reside on the same process. Hence,
>> I don't need to store the individual [A], [B], and [C] block matrices in
>> parallel, just the over all block tridiagonal matrix on a row by row basis.
>>
>> Thanks in advance,
>>
>> John
>>
>> --
>> **************************************************************
>> Dr. John Papp
>> Senior Research Scientist
>> CRAFT Tech.
>> 6210 Kellers Church Road
>> Pipersville, PA 18947
>>
>> Email: jpapp at craft-tech.com
>> Phone: (215) 766-1520
>> Fax : (215) 766-1524
>> Web : http://www.craft-tech.com
>>
>> **************************************************************
--
**************************************************************
Dr. John Papp
Senior Research Scientist
CRAFT Tech.
6210 Kellers Church Road
Pipersville, PA 18947
Email: jpapp at craft-tech.com
Phone: (215) 766-1520
Fax : (215) 766-1524
Web : http://www.craft-tech.com
**************************************************************
More information about the petsc-users
mailing list