dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #15837
Re: [HG DOLFIN] Prepare for probable removal of Function::Functon().
On Wed, Sep 30, 2009 at 06:27:32PM +0100, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Wed, Sep 30, 2009 at 05:25:01PM +0100, Garth N. Wells wrote:
> >>
> >> DOLFIN wrote:
> >>> One or more new changesets pushed to the primary dolfin repository.
> >>> A short summary of the last three changesets is included below.
> >>>
> >>> changeset: 7190:f53c5b481d28
> >>> tag: tip
> >>> user: "Garth N. Wells <gnw20@xxxxxxxxx>"
> >>> date: Wed Sep 30 17:07:18 2009 +0100
> >>> files: dolfin/fem/Form.cpp dolfin/fem/Form.h dolfin/fem/UFC.cpp dolfin/function/SpecialFunctions.cpp dolfin/function/SpecialFunctions.h
> >>> description:
> >>> Prepare for probable removal of Function::Functon().
> >>>
> >>> Make appropriate class in SpecialFunctions subclasses of Expression.
> >>>
> >> DOLFIN can be compiled now without the constructor Function::Function(),
> >> but the demos can't. Need to think about how functions can be best
> >> initialised in the generated code.
> >
> > Either we specify it at the time of construction:
> >
> > Function u(V);
> > problem.solve(u);
> >
>
> I've already done something along these lines VariationalProblem.
You mean this?
// Set function space if missing
if (!u.has_function_space())
{
assert(a._function_spaces.size() == 2);
u._function_space = a._function_spaces[1];
}
I think we should avoid stuff like this. It would be very nice if we
new that a Function always has a FunctionSpace and a always has a
Vector.
> > or we let problem hold the function and return it by reference:
> >
> > Function&u = problem.solve();
> >
> > I'll start with the first option since it's less magic.
> >
>
> The issue is with functions that we attach to forms - I guess we just
> need to define them all with a function space (can be tedious when there
> are a lot).
We could build something like this into the CoefficientSet class and
let that class handle the initialization of the Functions with the
correct spaces if we want.
--
Anders
> Garth
>
> >> Garth
> >>
> >>> changeset: 7189:3782f3222642
> >>> user: "Garth N. Wells <gnw20@xxxxxxxxx>"
> >>> date: Wed Sep 30 16:52:58 2009 +0100
> >>> files: demo/pde/poisson/cpp/main.cpp dolfin/fem/Assembler.cpp dolfin/fem/Form.cpp dolfin/fem/Form.h dolfin/fem/SystemAssembler.cpp dolfin/fem/VariationalProblem.cpp dolfin/function/SpecialFunctions.h
> >>> description:
> >>> Return shared_ptr to FunctionSpaces from Form rather than references.
> >>>
> >>> This makes it possible to initialise Functions without fear that the function space will go out of scope. See VariationalProblem.
> >>>
> >>>
> >>> changeset: 7188:437ee8b12a41
> >>> user: "Garth N. Wells <gnw20@xxxxxxxxx>"
> >>> date: Wed Sep 30 16:04:46 2009 +0100
> >>> files: demo/pde/poisson/cpp/main.cpp dolfin/function/Function.cpp dolfin/function/Function.h
> >>> description:
> >>> Remove some code.
> >>>
> >>> ----------------------------------------------------------------------
> >>> For more details, visit http://www.fenics.org/hg/dolfin
> >>> _______________________________________________
> >>> DOLFIN-dev mailing list
> >>> DOLFIN-dev@xxxxxxxxxx
> >>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >> _______________________________________________
> >> DOLFIN-dev mailing list
> >> DOLFIN-dev@xxxxxxxxxx
> >> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >>
> >> ------------------------------------------------------------------------
> >>
> >> _______________________________________________
> >> DOLFIN-dev mailing list
> >> DOLFIN-dev@xxxxxxxxxx
> >> http://www.fenics.org/mailman/listinfo/dolfin-dev
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
Attachment:
signature.asc
Description: Digital signature
Follow ups
References