Thread Previous • Date Previous • Date Next • Thread Next |
Anders Logg wrote:
On Tue, Oct 28, 2008 at 10:53:01AM +0000, Garth N. Wells wrote:I started looking at ConstantFunction, and if we keep the old interface and let ConstantFunction inherit from Function, it will involve quite a lot of code for something rather simple because on the basis of the cell type and the rank of the constant, an element needs to be chosen. To keep ConstantFunction simple, is it reasonable that a ConstantFunction require a FunctionSpace in its constructor? FFC is already generating this since it treats constant functions as DG0 elements. This way the ConstantFunction code will be really simple.GarthLocally, DG is always a subspace of whatever element space we have so the interpolation of anything constant will be exact, and thus the interpolation of something constant into whatever element space we have will be exactly equal to the interpolation into DG. So it is no limitation to assume that constant functions are always DG functions. This means we don't need the FunctionSpace argument, but we need to precompile some DG elements.
My point is that there is a bit code to do all this. We have to check the cell type (so ConstantFunction will need updating when cell types are added), then once the cell type is determined, the right finite element for that cell type and the function rank must be created on the basis of a string. It isn't very attractive from a long-term maintenance point of view. Plus Form already contains the necessary information.
It would be straightforward if the assembler used the Function::interpolate(...) which provides the FunctionSpace,
Function::interpolate(double*, const FunctionSpace&, const ufc::cell&) Garth
The problem may be if someone wants a DG element which is not precompiled, like some strange vector/tensor-valued constant. ------------------------------------------------------------------------ _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@xxxxxxxxxx http://www.fenics.org/mailman/listinfo/dolfin-dev
Thread Previous • Date Previous • Date Next • Thread Next |