← Back to team overview

dolfin team mailing list archive

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