- changed milestone to 1.5
Add function space abstraction to ufl
Adding the domain as a property of the finite element was a mistake which I'm currently reverting. To fix it I'm introducing a new abstraction that mirrors the dolfin.FunctionSpace.
I'd like to call it a ufl.FunctionSpace, but in my branch it's currently called ufl.FiniteElementSpace. Any opinions on this?
A ufl.FiniteElementSpace has a ufl.FiniteElement and a ufl.Domain.
Besides ufl.FiniteElementSpace there will be a ufl.MixedFiniteElementSpace to represent the concept of a 'globally mixed' function space where the components may have different domains (meshes, restrictions, interior/boundary, etc.).
In the end I'd like the dolfin python layer to inherit directly from ufl classes like this:
dolfin.Mesh -> (ufl.Domain, cpp.Mesh)
dolfin.FunctionSpace -> (ufl.FiniteElementSpace, cpp.FunctionSpace)
dolfin.MixedFunctionSpace -> (ufl.MixedFiniteElementSpace, cpp.FunctionSpace)
dolfin.Function -> (ufl.Coefficient, cpp.Function)
dolfin.CoordinateFunction -> (ufl.Coefficient, cpp.CoordinateFunction)
The above is of course just the core design without a lot of the details.
Comments (7)
-
reporter -
reporter - marked as critical
-
reporter - removed milestone
-
reporter - removed responsible
-
reporter - changed milestone to 1.7
-
assigned issue to
-
reporter - changed status to resolved
ufl.FunctionSpace is now in use from dolfin. A globally mixed ufl.MixedFunctionSpace will be a separate issue.
-
reporter - removed milestone
Removing milestone: 1.7 (automated comment)
- Log in to comment
Waiting for release so we can remove some deprecated code which will simplify the implementation.