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

Reply via email to