On Tue, Jan 28, 2020 at 2:32 PM Jacob Faibussowitsch <[email protected]> wrote:
> Hello All, > > I am currently working on rewriting an existing code into PETSc. This > particular code performs tight binding and works on a tiled hexagonal > carbon lattice as a mesh. I am wondering what the best DM format is to > represent this? Some potentially relevant info: > > 1. General setup looks like this ( > https://www.iconfinder.com/icons/3417099/carbon_structure_geometric_pattern_graphene_technology_hexagonal_lattice_molecular_structure_icon), > initially in 2D, however it should be extensible to 3D in the Z direction > by layering these configurations on top of one another. They are not > necessarily layered nicely, i.e. having one layer directly above the other, > but should be able to handle offsets in the X or Y directions. > 2. A “Cell” is a pair of atoms, so in the above link 2 connected circles > represents 1 cell. > 3. Connectivity between cells is always structured. > 4. The mesh should only be interpolated (in the DMPlex sense) once, i.e. I > need the 2 atom “cell" to store some geometric information about its > internal bond. > 5. Computational stencil should always be pointing “outwards”, i.e. it > should not loop back on itself. > 6. The computational kernel is a band-diagonal Hamiltonian matrix > generated from the tight binding wave function (function of vectors between > atoms, some known constants, and stencil size) > > Granted some of these are not necessarily things that PETSc should > facilitate on its own (most likely point #4 and #5) but there may be DM > implementations that make writing this by hand easier than others. From > looking into this some potential contenders I identified were DMNetwork, (a > modified) DMDA, DMStag, DMPlex, or DMMOAB, but I welcome any and all input > here! > I don't think you can do this with DMDA/DMStag since they are based on tensor-product meshes, and I don't see how to phrase this in that way. You can do this in DMPlex (and probably MOAB, I don't know) but since you only really use 1D information, DMNetwork might be easier. I think the real question is, how do layers interact. One layer is probably best as a Network. Multiple layers might still be better, or might need something more general. Thanks, Matt > Best regards, > > Jacob Faibussowitsch > (Jacob Fai - booss - oh - vitch) > Cell: (312) 694-3391 > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
