dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #07783
Re: Plotting MeshFunction
Anders Logg skrev den 05/05-2008 følgende:
> On Mon, May 05, 2008 at 03:26:04PM +0200, Ola Skavhaug wrote:
> > Nuno David Lopes skrev den 05/05-2008 følgende:
> > > Hi,
> > >
> > > I'm a newbie --2 months--, user trying to get in to Dolfin.
> > > Until know I've found the answers to my doubts in the manual, demos or in the
> > > mailing list archive.
> > > (So Sorry if I'm asking something that's not reasonable.)
> > >
> > > What kind of MeshFunctions are we able to plot with Dolfin,
> > > (using viper or file vtk format)?
> > > For instance is there a direct way to plot the subdomain markers defined in a
> > > MeshFunction<unsigned int>?
> > >
> > > If we are dealing with complex domains it would be a great help, so one could
> > > be shore that the markers are well defined.
> > >
> > >
> > > Thanks in advance.
> >
> > Try this:
> >
> > from dolfin import *
> > mesh = UnitSquare(5,5)
> > #mesh = UnitCube(5,5,5)
> > mf = MeshFunction("uint", mesh, mesh.topology().dim())
> > tmp = mf.values()
> > tmp[::2] = 4
> > plot(mf)
> >
> > Ola
>
> I think the problem may be that it's not possible to plot a mesh
> function defined on the facets of a mesh. Viper can't handle that as
> far as I remember. It would be very good if this could be added since
> it's a simple way to debug boundary conditions.
Sure. I thought of a subdomain as mesh.topology().dim(). For the boundary, it
would be mesh.topology().dim()-1. I'll put plotting this on the todo-list.
Not sure how much work it'll be to implement without using the BoundaryMesh,
a-la:
bmesh = BoundaryMesh(mesh)
bmf = MeshFunction("uint", bmesh, mesh.topology().dim())
# use mesh-bmesh mapping to remap indicators and insert into bmf
plot(bmf)
Ola
> --
> Anders
Follow ups
References