Skip to content

Commit

Permalink
More-or-less stop lying about symmetry
Browse files Browse the repository at this point in the history
  • Loading branch information
jedbrown committed Jun 6, 2011
1 parent 4c8c09b commit d142b4f
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/fs/tests/vht.c
Original file line number Diff line number Diff line change
Expand Up @@ -878,20 +878,22 @@ static dErr VHTGetMatrices(VHT vht,dBool use_jblock,Mat *J,Mat *B)
err = MatCreateShell(vht->comm,nu,nu,PETSC_DETERMINE,PETSC_DETERMINE,vht,&Juu);dCHK(err);
err = MatShellSetOperation(Juu,MATOP_GET_VECS,(void(*)(void))MatGetVecs_VHT_stokes);dCHK(err);
err = MatShellSetOperation(Juu,MATOP_MULT,(void(*)(void))MatMult_VHT_uu);dCHK(err);
err = MatShellSetOperation(Juu,MATOP_MULT_TRANSPOSE,(void(*)(void))MatMult_VHT_uu);dCHK(err);
err = MatShellSetOperation(Juu,MATOP_MULT_ADD,(void(*)(void))MatMultAdd_VHT_uu);dCHK(err);
/* This is a lie, it is not strictly symmetric. But it is very close to symmetric at low Reynolds number with small melt fraction */
err = MatShellSetOperation(Juu,MATOP_MULT_TRANSPOSE,(void(*)(void))MatMult_VHT_uu);dCHK(err);
err = MatShellSetOperation(Juu,MATOP_MULT_TRANSPOSE_ADD,(void(*)(void))MatMultAdd_VHT_uu);dCHK(err);
err = MatSetOptionsPrefix(Juu,"Juu_");dCHK(err);

/* Create off-diagonal high-order matrix, with context \a vht */
err = MatCreateShell(vht->comm,np,nu,PETSC_DETERMINE,PETSC_DETERMINE,vht,&Jpu);dCHK(err);
err = MatShellSetOperation(Jpu,MATOP_GET_VECS,(void(*)(void))MatGetVecs_VHT_stokes);dCHK(err);
err = MatShellSetOperation(Jpu,MATOP_MULT,(void(*)(void))MatMult_VHT_pu);dCHK(err);
err = MatShellSetOperation(Jpu,MATOP_MULT_TRANSPOSE,(void(*)(void))MatMult_VHT_up);dCHK(err);
err = MatShellSetOperation(Jpu,MATOP_MULT_ADD,(void(*)(void))MatMultAdd_VHT_pu);dCHK(err);
err = MatShellSetOperation(Jpu,MATOP_MULT_TRANSPOSE_ADD,(void(*)(void))MatMultAdd_VHT_up);dCHK(err);
err = MatCreateTranspose(Jpu,&Jup);dCHK(err);
err = MatSetOptionsPrefix(Jpu,"Jpu_");dCHK(err);

err = MatCreateShell(vht->comm,nu,np,PETSC_DETERMINE,PETSC_DETERMINE,vht,&Jup);dCHK(err);
err = MatShellSetOperation(Jup,MATOP_MULT,(void(*)(void))MatMult_VHT_up);dCHK(err);
err = MatShellSetOperation(Jup,MATOP_MULT_ADD,(void(*)(void))MatMultAdd_VHT_up);dCHK(err);
err = MatSetOptionsPrefix(Jup,"Jup_");dCHK(err);

/* These entries are really zero */
Expand Down

0 comments on commit d142b4f

Please sign in to comment.