New question #103905 on DOLFIN: https://answers.launchpad.net/dolfin/+question/103905
I've finally got round to calculating the dofs on a boundary from a mesh function, so that I can go about trying to solve a pde purely on the boundary. However, I can't quite work out how best to play about with the assembled system: If I have: a = ( .. )*ds(i) L = ( .. )*ds(i) A = assemble(a, exterior_facet_domains=meshfn) b = assemble(L, exterior_facet_domains=meshfn) then, as far as I can tell I have two basic options, but I'm not sure what is best, and can't get (2) to work: 1. Do something along the lines of A_sub = A.vector()[rows, cols] (where rows = cols, is the dofs on which I wish to solve), ditto for b, and then solve using numpy (maybe I can put it back into a GenericMatrix and use one of the dolfin solvers, but I've certainly changed the structure and don't know how to do it anyway). 2. Adjust A,b appropriately as: A.ident(unused_dofs) b[unused_dofs] = 0.0 But this method throws up an error from petsc about the object not being in the correct state. Matrix of size 10201 x 10201 has 0 nonzero entries. [0]PETSC ERROR: --------------------- Error Message ------------------------------------ [0]PETSC ERROR: Object is in wrong state! [0]PETSC ERROR: Matrix is missing diagonal entry in row 10200! [0]PETSC ERROR: ------------------------------------------------------------------------ [0]PETSC ERROR: Petsc Release Version 3.0.0, Patch 11, Mon Feb 1 11:01:51 CST 2010 [0]PETSC ERROR: See docs/changes/index.html for recent updates. [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. [0]PETSC ERROR: See docs/index.html for manual pages. [0]PETSC ERROR: ------------------------------------------------------------------------ [0]PETSC ERROR: Unknown Name on a linux-gnu named lappytop-dos by dbeacham Wed Mar 10 17:49:18 2010 [0]PETSC ERROR: Libraries linked from /home/dbeacham/FEM/stable/build/lib [0]PETSC ERROR: Configure run at Thu Feb 11 11:37:57 2010 [0]PETSC ERROR: Configure options COPTFLAGS=-O3 --with-debugging=0 --with-shared=1 --with-clanguage=cxx --download-umfpack=1 --prefix=/home/dbeacham/FEM/stable/build [0]PETSC ERROR: ------------------------------------------------------------------------ [0]PETSC ERROR: MatZeroRows_SeqAIJ() line 1367 in src/mat/impls/aij/seq/aij.c [0]PETSC ERROR: MatZeroRows() line 4856 in src/mat/interface/matrix.c [0]PETSC ERROR: MatZeroRowsIS() line 4913 in src/mat/interface/matrix.c Thanks for any help, David You received this question notification because you are a member of DOLFIN Team, which is an answer contact for DOLFIN. _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

