|
[Sponsors] |
are the cg or bicgstab method suitable for dense |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Guest
Posts: n/a
|
dear friends: are the cg or bicgstab method suitable for dense matrix.
|
|
![]() |
![]() |
![]() |
#2 |
Guest
Posts: n/a
|
i think you can use it there, but the problem would be of creating preconditioner.
|
|
![]() |
![]() |
![]() |
#3 |
Guest
Posts: n/a
|
thank you very much for you answer, i want to use a simpel diagonal precontioner
|
|
![]() |
![]() |
![]() |
#4 |
Guest
Posts: n/a
|
diagonal preconditioner is not very good, you could use Gauss Seidel as preconditioner it would be much better.
|
|
![]() |
![]() |
![]() |
#5 |
Guest
Posts: n/a
|
no, iterative solver r not good selection.
note that theoritically a cg solver (for SPD matrix) can converge after n interation, and number of FLOPs within each iteration is porportional to number of non-zeros, in a dense matrix it is n^2 (is feasible for sparse solver) so ur total FLOPs is ~ n^3 for a direct solver this factor is ~ n^3 as direct solver is more rubost, it is a more feasible selection. e.g., LU decoposition |
|
![]() |
![]() |
![]() |
#6 |
Guest
Posts: n/a
|
If your dense matrix is extremely well conditioned, then a Krylov method might be okay, otherwise a direct method is definitely the way to go.
May I ask *why* you have a dense matrix. Frequently there is a way to avoid it (and there must be if you want any sort of scalability). |
|
![]() |
![]() |
![]() |
#7 |
Guest
Posts: n/a
|
the dense matrix come from the DQ method. by the way, do you know where to download a free LU decomposition code regards
|
|
![]() |
![]() |
![]() |
#8 |
Guest
Posts: n/a
|
Do you want parallel? If so, use PETSc (or PLAPACK if you're sure that's all you need). Otherwise, what's wrong with Lapack?
I'm not familiar with DQ, but it looks like a pseudospectral method. It also looks like there are versions that produce sparse matrices. Does your matrix have tensor/Kronecker product structure? If so, you can apply the matrix using that structure and solve using a Krylov method. You'll need a preconditioner, but you can probably assemble one based on a low-order finite element/difference scheme so that it will be spectrally equivalent but very sparse. For instance, I have a code that solves a global spectral inhomogeneous 3D Stokes problem with 3.5 million degrees of freedom in a few minutes on a single processor. If I formed the matrix, it would be dense so would require 100 TiB of memory, but I can apply it matrix-free for cheap and precondition with a very sparse matrix. |
|
![]() |
![]() |
![]() |
#9 |
Guest
Posts: n/a
|
dense lu decompos is very simple, numerical recipe book include it, also you can see this:
http://www.cfd-online.com/Wiki/LU_decomposition http://en.wikipedia.org/wiki/LU_decomposition if your matrix has some zero, you can explote its structure to improve performance, e.g. by reordering and using sparse direct solvers (e.g. UMFPACK or HSL sobroutines) what is dimension of your matrix? assuming n*n matrix, for n>10^4 direct solver is somehow impossible (memory CPU, memory scale by n^2 and CPU sclae by n^3)! |
|
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
mass flow in is not equal to mass flow out | saii | CFX | 12 | March 19, 2018 05:21 |
[Gmsh] discretizer - gmshToFoam | Andyjoe | OpenFOAM Meshing & Mesh Conversion | 13 | March 14, 2012 04:35 |
Constant velocity of the material | Sas | CFX | 15 | July 13, 2010 08:56 |
Code for most powerfull FDV Method | D.S.Nasan | Main CFD Forum | 6 | September 4, 2008 02:08 |
Is SIMPLEC method suitable for turbomachinery? | lhb | Main CFD Forum | 14 | February 15, 2001 19:59 |