← Back to team overview

dolfin team mailing list archive

Re: Mesh Refinement

 

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?

-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