[MOAB-dev] Resolving shared entities on prisms

Grindeanu, Iulian R. iulian at mcs.anl.gov
Tue Apr 5 11:52:17 CDT 2016


hmmm,
I didn't realize you have higher order nodes for triangles and some edges
Are all quads linear? 

Yes, I see multiple problems, and they are related to higher order nodes. 
 

 the prisms are all linear, and in read_part, they are the primary entities, so the higher order nodes are ignored.
(they are not part of the partition). 

So then the triangles are not read into the part, because they have nodes that are not in the local partition. (in read_part method)

bcast_delete is reading all mesh from file, and then deleting the "non local" elements; 

Still need to understand what is going on

Iulian


________________________________________
From: Lukasz Kaczmarczyk [Lukasz.Kaczmarczyk at glasgow.ac.uk]
Sent: Tuesday, April 05, 2016 11:13 AM
To: Grindeanu, Iulian R.
Subject: Re: Resolving shared entities on prisms

Hello,

File which I send you before is with mid-nodes on triangles. This is not working with PARALLEL=READ_PART.
I created another file, with nodes only on corers. See attached file and this works with PARALLEL=READ_PART, however it is not working with BCAST_DELETE.

It could be not one, but two separate problems. One with resolving ents when  BCAST_DELETE or READ_DELETE is used, another with mid-modes.



Kind regards,
Lukasz




> On 5 Apr 2016, at 15:44, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
>
> Hi Lukasz
> If you load using PARALLEL=READ_PART, instead of BCAST_DELETE, it is fine
>
> It is a bug somewhere, I am a little puzzled why it would show up only for BCAST_DELETE
>
> Still looking ...
> Thanks,
> Iulian
> ________________________________________
> From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf of Grindeanu, Iulian R. [iulian at mcs.anl.gov]
> Sent: Tuesday, April 05, 2016 9:20 AM
> To: Lukasz Kaczmarczyk; moab-dev at mcs.anl.gov
> Subject: Re: [MOAB-dev] Resolving shared entities on prisms
>
> take that back; it is OK for hexas; so it may be related to prisms only
> ________________________________________
> From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf of Grindeanu, Iulian R. [iulian at mcs.anl.gov]
> Sent: Tuesday, April 05, 2016 9:13 AM
> To: Lukasz Kaczmarczyk; moab-dev at mcs.anl.gov
> Subject: Re: [MOAB-dev] Resolving shared entities on prisms
>
> Hi Lukasz,
> Thank you for your example;
> I think it is related to the way we look at the skin.
> It would show the same problem for other elements (hexas, with more than one layer)
>
> So, when we collect potential shared entities at the interface, for edges we should just collect by adjacencies, from the skin formed by 2d elements; we look at the 1d skin, which I think is wrong
>
> I will try to fix it soon
>
> Iulian
>
>
>
> ________________________________________
> From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf of Lukasz Kaczmarczyk [Lukasz.Kaczmarczyk at glasgow.ac.uk]
> Sent: Tuesday, April 05, 2016 6:51 AM
> To: moab-dev at mcs.anl.gov
> Subject: [MOAB-dev] Resolving shared entities on prisms
>
> Hello,
>
> I have created muli-layered shell from prisms elements. For attached partitioned mesh (3 partitions) for I check output for shared own entities, however internal edges, on shared quads, between layers (internal edges) are not resolved as a shared. Everything else is ok.
>
> This is what I don’t understand, it could be error on my side, however I don;t see where. Could you pleas look at this and point me to potential error. It could be related to prisms? It works perfectly for single layer of prisms elements.
>
> PS.
> This is part of work on solid shell elements, for interested, pleas look here,
> https://www.dropbox.com/s/zml82aj027hfsbb/solid_shell.pptx?dl=0
>
>
> Kind regards,
> Lukasz
>
> const char *option;
> option = “PARALLEL=BCAST_DELETE;"
>        "PARALLEL_RESOLVE_SHARED_ENTS;"
>        "PARTITION=PARALLEL_PARTITION;";
> rval = moab.load_file(“tmp.h5m", 0, option); CHKERRQ_MOAB(rval);
>
>      {
>
>        Range shared_ents;
>        // Get entities shared with all other processors
>        rval = pcomm->get_shared_entities(-1, shared_ents);
>        Range owned_entities;
>        rval = pcomm->filter_pstatus(shared_ents, PSTATUS_NOT_OWNED, PSTATUS_NOT, -1, &owned_entities);
>        EntityHandle meshset;
>        rval = moab.create_meshset(MESHSET_SET,meshset); CHKERRQ_MOAB(rval);
>        rval = moab.add_entities(meshset,owned_entities); CHKERRQ_MOAB(rval);
>
>        ostringstream o1;
>        o1 << "owned_" << pcomm->rank() << ".vtk";
>        moab.write_file(o1.str().c_str(),"VTK","",&meshset,1);
>
>        rval = moab.delete_entities(&meshset,1); CHKERRQ_MOAB(rval);
>      }
>
>


More information about the moab-dev mailing list