← Back to team overview

dolfin team mailing list archive

Re: Mesh Refinement

 

Jehanzeb Hameed wrote:
I cant get the material indicators to update, as well as boundary
markers. For example,

MeshFunction<dolfin::uint> *materialFunc =
mesh.data().mesh_function("material indicators");

gives materialFunc  = 0 after mesh refinement (it works fine before
mesh refinement). I am refining my mesh by

mesh.refine();

Am I missing something?

Looks fine, but what is on output? You should see following messages:

  Refining simplicial mesh by recursive Rivara bisection.
  MeshData MeshFunction "material indicators" transformed.
  MeshData "boundary indicators" transformed.

cheers,
BArtek



-Jehanzeb



On Mon, Jun 15, 2009 at 10:46 AM, Bartosz Sawicki<sawickib@xxxxxxxxxxxxx> wrote:
Jehanzeb Hameed wrote:
I am still struggling with this....

I am trying to store subdomain identifiers in meshdata object, so that
they get updated when the mesh is refined. To do this, I have a file,
mesh.xml. In that file, there is a tag named "data". The "data" tag
has a child "array" with name = "material indicators". So, now when I
create mesh, will my meshdata have this array?
Not really. Tag <data> can contain arrays, meshfunctions and mappings.
"material indicators" has to be stored in meshfunction.

I'll send you example of xml mesh file with material data directly on your
email.


And how do I create cell dependent functions. The example in Dolfin
user manual seems outdated. I think I need to use UFCfunction, but
what do I pass as Function arguement to its constructor (if
UFCfunction is indeed the correct way to go).
Maybe you can use UFCFunction to initialize MeshFunction, but for me more
natural is using MeshFunction constructors.
http://www.fenics.org/pub/documents/dolfin/dolfin-progr-reference/d0/d94/classdolfin_1_1MeshFunction.html

For example if want to have meshfunction defined over tetrahedral:
MeshFunction meshfunction(mesh, 3);

cheers,
BArtek



-Jehanzeb

On Thu, Jun 11, 2009 at 11:55 AM, Bartosz Sawicki<sawickib@xxxxxxxxxxxxx>
wrote:
Jehanzeb Hameed wrote:
Hello,

I am new to Dolfin, and was wondering how subdomains are supported as
regards to mesh reading and refinement. In my case, I will have a
mesh, with 2 subdomains. Each cell has an identifier indicating which
domain it belongs to. Looking at the examples, it seems I will need to
store domain identifiers in a separate xml file. Is that correct?
Subdomain identifiers can be stored in different ways, as a separate
MeshFunction, or in the MeshData structure.
I prefer MeshData, because it is directly included in the Mesh object.
You can also store boundary indicators using MeshData structure, see
demo/pde/bcs.

With regard to mesh refinement, I assume I will be able to define
subdomains for each domain based on cell identifiers. Now, when I
refine the mesh, will the subdomains also be updated (i.e. will dolfin
know what domain the new cells belong to) ?
If you name your MeshFunction "material indicators" it will be
transformed
to follow refined mesh. Arrays which store boundary indicators will be
updated too.
See LocalMeshRefinement::transformMeshData()

Also, is there a way to read archives of this list?
Yes, there is http://www.fenics.org/pipermail/dolfin-dev/

regrds.
BArtek


Thanks,
-Jehanzeb
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References