[petsc-dev] Best DM For Structured Atom Layers

Matthew Knepley knepley at gmail.com
Tue Jan 28 15:07:40 CST 2020

On Tue, Jan 28, 2020 at 2:32 PM Jacob Faibussowitsch <jacob.fai at gmail.com>

> 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.



> 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200128/28b7e2b2/attachment.html>

More information about the petsc-dev mailing list