[MOAB-dev] Resolving shared entities on prisms

Grindeanu, Iulian R. iulian at mcs.anl.gov
Tue Apr 5 09:13:41 CDT 2016


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