← Back to team overview

dolfin team mailing list archive

Re: [HG DOLFIN] Add sketch of FunctionSpace class

 



Anders Logg wrote:
On Thu, Sep 11, 2008 at 03:02:36PM +0100, Garth N. Wells wrote:

Anders Logg wrote:
On Thu, Sep 11, 2008 at 02:51:41PM +0100, Garth N. Wells wrote:
Martin Sandve Alnæs wrote:
I don't agree, isn't the point that several DiscreteFunctions can
share a FunctionSpace?

Yes, but a dof map doesn't define a function space.

Garth
I think the dof map should be in the FunctionSpace, that way several
functions may share the dof map (which may take time to compute if we
want to do some reordering).

Two functions in the same function space share the mesh, the element
and the dof map (these three define the space) but each function has
its own vector.

My point isn't that a DofMap won't shared, it's that it's not part of the definition of a function space.

It is part of the function space if we say that a function space is
defined by a particular basis:

  V = span{\phi_i}

To define the basis, we need the dof map.


The dof map is needed to tie the finite element basis + domain (mesh) to a matrix/vector.

It always possible that two discrete functions which are equivalent can share a mesh and finite element (which defines the function space), but have different vectors and dof maps.

Is that something we will encounter much?

Probably not, but it shows why the dof map doesn't belong in FunctionSpace.

On reflection, FunctionSpace is pretty simple, so I don't actually see why we need it. If we want to stress that a group of objects belong together in the definition of a discrete function, why not just use a tuple in DiscreteFunction?

Garth

It would simplify matters if
we said that a FunctionSpace is a function space with a particular
basis. We do that anyway if we include the finite element. Otherwise,
we could say that (P_1)^d and BDM_1 are the same function space, but
we think of them as different.

I added the FiniteElement class to avoid exposing ufc:: classes
directly. We do the same for ufc::dof_map (but then we have a reason).
It might not be necessary, but it looked more uniform to have

  (Mesh, FiniteElement, DofMap)

instead of

  (Mesh, ufc::finite_element, DofMap)

Sure. I just can't find where FiniteElement is defined?

Garth

I thought I had pushed it. It should be pushed now.



------------------------------------------------------------------------

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References