load "msh3"
meshL Th = segment(3);
real [int] vtgv = [ -20,-10,-2,-1,0, tgv]; 
real [int] vsym = [ 0,1]; 
varf va(u,v)= int1d(Th)(u*v*4*9.)+on(1,2,u=0);// mul by 12  to have integer coef ..
// label : 1 on first DoF O 
//         2 on last DoF  2 
// tgv :  -20  set to zero of row and colnum  of Dof with label 1 or 2 
// tgv :  -10  set to zero of row  of Dof with label 1 or 2 
// tgv :  -2   set to zero of row and colnum  of Dof with label 1 or 2 and set one on diagonal term
// tgv :  -1   set to zero of row  of Dof with label 1 or 2 and set one on diagonal term
// tgv >=0     set to tgv  value  on diagonal term of Dof with label 1 or 2 

fespace Vh(Th,P1);
int symj = 0; 
// for [j,symj:vsym]  buggus never get sym matrix .... FH..  
for [i,tgvi:vtgv]
{
	verbosity=9; 
	matrix A= va(Vh,Vh,tgv=tgvi,sym=symj,solver="GMRES");
	real[int,int] F(Vh.ndof,Vh.ndof); // to copy sparse matrix in full matrix ..
	F=0.;  
	for [i,j,aij:A]
	  F(i,j) = aij;
	cout << " sym= " << symj << " tgv =  " << tgvi << "  matrix= " << F << "\n\n\n";
}