Subject: [FIAT-dev] Short-term wish-list for FIAT

From: Anders Logg <[email-masked]>
Date: Fri, 13 May 2005 13:32:30 -0500

Below is a list of what I need from FIAT to release a new version of
FFC and then later a new version of DOLFIN.

(I'm thinking we should release FFC 0.1.8 and DOLFIN 0.5.6 pretty soon.
When we have general order Lagrange working (and possibly also
manuals), it might be time to release FFC 0.2.0 and DOLFIN 0.6.0.)

1. Access to the dual basis so I can generate run-time code for the
dual basis in DOLFIN. (If it's already there, please give me a pointer
where to look.) Given a user-defined function f, FFC has to generate
code that can compute n_i(f) for each node n_i. For Lagrange elements,
all I need is access to the nodal points x_i so I can compute n_i(f) =
f(x_i).

2. Order the dofs for DiscontinuousVectorLagrange in the same style as
for VectorLagrange (with num_reps > 1) if you still think this is a
good idea. (I think it is.)

3. Confirmation (or suggestion for changes) for the numbering
conventions for triangles and tets that I have put in the FFC manual
(see docs section on fenics.org).

/Anders

-- 
Anders Logg
Research Assistant Professor
Toyota Technological Institute at Chicago
http://www.tti-c.org/logg/

---

From: "Robert C. Kirby" <[email-masked]>
Date: Fri, 13 May 2005 13:50:53 -0500

Anders, I'll get on this Monday or Tuesday before I go out of town --  
I'm finishing my reappointment.

Rob

On May 13, 2005, at 1:32 PM, Anders Logg wrote:

> _______________________________________________
> FIAT-dev mailing list
> [email-masked]
> http://www.fenics.org/cgi-bin/mailman/listinfo/fiat-dev
>

---

From: Anders Logg <[email-masked]>
Date: Fri, 13 May 2005 13:57:21 -0500

Thanks. Sorry to pester you again, and good luck with the reappointment.

/Anders

---

From: Anders Logg <[email-masked]>
Date: Mon, 16 May 2005 16:16:31 -0500

On Mon, May 16, 2005 at 03:48:26PM -0500, Robert C.Kirby wrote:
> Anders,  pull from repository.
> 
> Done in the following sense:
> 
> U = Lagrange.Lagrange( TRIANGLE , 1 )
> 
> you get the point location by:
> U.dual_basis().pts
> 
> this gives you a tuple of points, each point is a tuple.
> 
> This is a hack for pointwise evaluation.  We'll think of something else 
> some other time.

Looks good. I tried it and it seems to work. I'll start working on
getting the interpolation going (but probably not today).

> Done.

Works:

dofs[0] = 3*cell.id() + 0
dofs[1] = 3*cell.id() + 1
dofs[2] = 3*cell.id() + 2
int offset = 3*mesh.noCells()
dofs[3] = offset + 3*cell.id() + 0
dofs[4] = offset + 3*cell.id() + 1
dofs[5] = offset + 3*cell.id() + 2

> Will look more closely soon.  Next on list.

ok.

/Anders