← Back to team overview

dolfin team mailing list archive

Re: [HG DOLFIN] Revert to old assembly in LinearPDE due to bug in symmetric assembly.

 



kent-and@xxxxxxxxx wrote:

kent-and@xxxxxxxxx wrote:
kent-and@xxxxxxxxx wrote:
kent-and@xxxxxxxxx wrote:
One or more new changesets pushed to the primary dolfin repository.
A short summary of the last three changesets is included below.

changeset:   4730:6548c25c33352492c9279c035509a139caab323b
tag:         tip
user:        "Garth N. Wells <gnw20@xxxxxxxxx>"
date:        Tue Sep 09 13:08:58 2008 +0100
files:       dolfin/fem/Assembler.cpp dolfin/pde/LinearPDE.cpp
description:
Revert to old assembly in LinearPDE due to bug in symmetric
assembly.

There is a problem with exterior facets in the symmetric assembly.
The
code needs to be broken up to make debugging easier.

Agree that it should be broken up. But it will take some effort.
Do you have an example where the bug is apparent ?

I was using a RT0 element (not one of the demos).  It should be
reproducible by adding a non-zero Dirichlet bc (given be a Function)
to
the mixed-poisson demo.

I had a quick look, but I couldn't find the problem, so I thought it
better to wait until the code is broken up.

Garth

Strange, I see no reason for this not to work.
(since the code involving only cell integrals is pretty clean, but
...)

Anyway, I noticed that with my setup, CG is used. CG can not be used
in this case since the problem is not positive. Did you use CG ?
No, I used an LU solver. I first noticed the problem when the LU
solvers
return a message that the system was singular. I only looked at the
computation of the RHS vector which was zero when it  shouldn't have
been.
Ok, and I guess the system is singular unless you have a mix of
essential
and natural
bc.  But the rhs should not be zero.

The essential bcs appear in the form for this problem, so the assembler
shouldn't be doing anything extra for the bcs (bcs.size() = 0 in
Asssembler.cpp). Makes the bug rather strange.

Garth


So the essential bc that you refer to is the essential bc for the
classical Poisson problem
which ends up as natural in the mixed formulation. So you have something
like:

L = w*f*dx + w*g*ds


Exactly.

Garth

I'll have a look.

(But as already said, I completely agree on breaking up)

Kent











Follow ups

References