← Back to team overview

dolfin team mailing list archive

Re: [Question #124031]: Symmetry-Preserving DirichletBCs

 

Question #124031 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/124031

    Status: Open => Answered

Garth Wells proposed the following answer:

On 04/09/10 01:00, Peter Brune wrote:
> Cool.  Thanks.
>
> Why is this a special case (under VariationalProblem) rather than the
> normal way of doing things?

History, plus is hasn't been generalised to assemble just a matrix or 
just a vector.

> It should work for general operators and
> effectively eliminates unnecessary unknowns from the system.
>

We don't eliminate the constrained dofs - eliminating them makes 
handling the concept of a 'Function' difficult.

Garth

> - Peter
>
> On Fri, Sep 3, 2010 at 6:46 PM, Garth N. Wells <gnw20@xxxxxxxxx
> <mailto:gnw20@xxxxxxxxx>> wrote:
>
>     Look at SystemAssembler. It preserves any symmetries.
>
>     Garth
>
>
>     On 04/09/10 00:44, Peter Brune wrote:
>
>         New question #124031 on DOLFIN:
>         https://answers.launchpad.net/dolfin/+question/124031
>
>         I have gotten into a problem where it's important for the
>         symmetry of
>         my operator to be preserved during the application of boundary
>         conditions.  I was able to quickly write up an implementation of
>         them
>         that, when applied, made the following changes to A and b to create
>         A_bc and b_bc (I still have to think about exactly what to do with
>         the nonlinear x) where x_boundary is given as boundary conditions.
>         the subscripts _boundary and _interior refer to the part of the
>         vector or operator restricted to the boundary (both in rows and
>         columns).
>
>         b_bc = (b - A(x_boundary + zero_interior))_interior + x_boundary
>         A_bc
>         = A_interior + I_boundary
>
>         Is there any particular reason that DOLFIN does it just by setting
>         certain rows to the identity?  I'm trying to use solvers and
>         preconditioners that only work on symmetric problems, so the present
>         way of doing things won't work.  I asked around about this with
>         respect to matrix properties and apparently the way I described
>         above
>         (or variants) is the only way you can really prove anything about.
>         This includes weak application.
>
>         My implementation works, but given that there is no reliable column
>         access on the matrix classes it is potentially broken in parallel.
>         Is there any reason why there are no facilities for column
>         get/set in
>         the matrix interface?
>
>
>     _______________________________________________
>     Mailing list: https://launchpad.net/~dolfin
>     <https://launchpad.net/%7Edolfin>
>     Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
>     <mailto:dolfin@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~dolfin
>     <https://launchpad.net/%7Edolfin>
>     More help   : https://help.launchpad.net/ListHelp
>
>

-- 
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.



References