Hi,
I am using UMFPACK to solve the linearized sparse system of equations;
SparseDirectUMFPACK solver;
solver.initialize(this->matrix);
solver.solve(RHS_to_SOL);
here this->matrix is a BlockSparseMatrix<double> type; but when I calculate the
residuals via multiplying the coefficient matrix by the solution vector and
detracting it from rhs vector the resulted vector has some unreasonable high
values; but all the others are of the order 10^(-15)
These values change linearly with the boundary condition value; namely when I
set velocity to 1 the max. residual is 1.17 when I change it to 10 the max.
residual is 11.7 and so on;
Hence the problem is due to the coefficient matrix; I checked the coefficient
matrix and got that the corresponding item for the Dirichlet boundary condition
i.e. say u7=10 is not 1 (row=7 and col=7) as it is supposed to be; hence again
this is a proof that the coefficient matrix is not the one which should be used
for calculating the residuals.
The question is; am I using the true matrix for calculating the residual? Do I
need to multiply it by a constraint like matrix (to account for the boundary
conditions) and then calculate the residuals?
Thank you for your attentions,
Ali,
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii