Dear PETSc team:

For a project that I'm working on, I need to manually build a DMPlex.
>From studying the source code of the various APIs in which the plex is built 
>from some supported file format, I get that the workflow is this:


  1.
DMPlexSetChart() <-- Input nCells + nVerts
  2.
DMPlexSetConeSize() <-- Input ConeSize for each point in [0,nCells)
  3.
DMSetUp() – Allocates memory internally.
  4.
DMPlexGetCones() --> Gives you the memory onto which to write the cell 
connectivity.
  5.
*Write connectivity*
  6.
DMPlexReorderCell() <-- For each point in [0,nCells)

I'm in a situation where the memory given by step (4) is available a-priori.
I was hoping to skip steps 2, 3 , and 4 with something like a 
"DMPlexSetCones()", but such an API does not exist.
My current workaround is to implement steps 2 through 4 as always and have 
double the memory allocated in the interim (my instance + DM's internal 
instance).
I was thinking of looking for the name of the struct member and = it to my 
memory, but I can't overcome the flag check in DMSetUp() during later calls to 
DMPlexGetCones() or DMPlexGetTransitiveClosure().



Sincerely:

J.A. Ferrand

Embry-Riddle Aeronautical University - Daytona Beach - FL
Ph.D. Candidate, Aerospace Engineering

M.Sc. Aerospace Engineering

B.Sc. Aerospace Engineering

B.Sc. Computational Mathematics


Phone: (386)-843-1829

Email(s): ferra...@my.erau.edu

    jesus.ferr...@gmail.com

Reply via email to