Hello,
i'm facing a very slow MatSetValues during the discretization of my
mathematical problem when creating the matrix.
My matrix is seven banded, come from the a discretization of an
helmholtz problem using finite differences.
In the 2D case, creating the matrix is really fast. But in 3D case it
goes well for the first second loop processing and then it goes really
really slow. Here is a small part of my code :
ierr = DAGetCorners(*da, &Istartx, &Istarty, &Istartz, &Iendx, &Iendy,
&Iendz);
CHKERRQ(ierr);
for (j = Istartz; j < Istartz + Iendz; j++) {
for(k=Istarty; k < Istarty+Iendy; k++){
for (i = Istartx; i < Istartx + Iendx; i++) {
/*get values on an array, their coordinate too*/
MatSetValues(*B,
1,ind_mat_x,value_count,ind_mat_y,val_mat_ligne,ADD_VALUES);
}
}
Did you encounter any slowness for MatSetValues function ?
Thanks a lot
Regards
PYA