dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #19585
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