{"id":116,"date":"2021-09-08T15:16:48","date_gmt":"2021-09-08T19:16:48","guid":{"rendered":"https:\/\/sites.nd.edu\/acerrone\/?page_id=116"},"modified":"2021-09-08T15:20:49","modified_gmt":"2021-09-08T19:20:49","slug":"codes","status":"publish","type":"page","link":"https:\/\/sites.nd.edu\/acerrone\/codes\/","title":{"rendered":"Codes"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Polycrystal Volume Mesher<\/h2>\n\n\n\n<p>Download <a href=\"https:\/\/drive.google.com\/file\/d\/1sj0oaEuMwxauREaelcVokmtv0LXU9R4I\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Here<\/a><\/p>\n\n\n\n<p>This Python 3 code orchestrates the volume meshing of a microstructure output from <a href=\"http:\/\/dream3d.bluequartz.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">DREAM.3D<\/a>. &nbsp;The code simply reads in binary STLs output by DREAM.3D, calls gmsh to volume mesh them, stitches the individual volume meshes together into a single conformal mesh, and outputs an ABAQUS .inp file ready for processing in ABAQUS CAE or (with the help of <a href=\"https:\/\/pypi.org\/project\/meshio\/\" target=\"_blank\" rel=\"noreferrer noopener\">translators<\/a>) other platforms. &nbsp;Please read the comments at the top of the code for usage instructions. &nbsp;The user need only modify three variables in the program: <em>working_directory<\/em>, <em>gmsh_executable<\/em>, and <em>stl_prefix<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Virion to Shell<\/h2>\n\n\n\n<p>Download <a href=\"https:\/\/drive.google.com\/file\/d\/1PBwobNWPIP80E-3b2P4YfxVPONHZDDVp\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Here<\/a><\/p>\n\n\n\n<p>This Python 3 code reconstructs a virus into a geometric model. In essence, it processes a <a rel=\"noreferrer noopener\" href=\"http:\/\/viperdb.scripps.edu\/\" target=\"_blank\">VIPER Database<\/a> (.vdb) file to capture the geometric features of the virion membrane. A grid-based description of the membrane is output into a .ph file for surface meshing in <a rel=\"noreferrer noopener\" href=\"http:\/\/dream3d.bluequartz.net\/\" target=\"_blank\">DREAM.3D<\/a>. In short, the code processes all atoms in a .vdb file, fits a three-dimensional grid around these atoms, and maps densities onto the grid points. The closer a grid point is to a cluster of atoms, the higher its density will be. Here, a grid point&#8217;s density is calculated using a Gaussian KDE. Based on a user-defined density threshold, grid points are categorized either as solid or vacuous space. This routine was inspired by the density-based reconstruction approach presented in <a rel=\"noreferrer noopener\" href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0006349508785084\" target=\"_blank\">this paper<\/a>. The user need only modify the variables <em>working_directory<\/em>, <em>vdb_file_name<\/em>, <em>ph_file_name<\/em>, <em>density_threshold<\/em>, and <em>grid_resolution<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion-1024x539.png\" alt=\"\" class=\"wp-image-99\" width=\"407\" height=\"214\" srcset=\"https:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion-1024x539.png 1024w, https:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion-300x158.png 300w, https:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion-768x404.png 768w, https:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion-1536x808.png 1536w, https:\/\/sites.nd.edu\/acerrone\/files\/2021\/03\/virion.png 1727w\" sizes=\"auto, (max-width: 407px) 100vw, 407px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Polycrystal Volume Mesher Download Here This Python 3 code orchestrates the volume meshing of a microstructure output from DREAM.3D. &nbsp;The code simply reads in binary STLs output by DREAM.3D, calls gmsh to volume mesh them, stitches the individual volume meshes together into a single conformal mesh, and outputs an ABAQUS .inp file ready for processing [&hellip;]<\/p>\n","protected":false},"author":3892,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-116","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/pages\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/users\/3892"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/comments?post=116"}],"version-history":[{"count":3,"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/pages\/116\/revisions"}],"predecessor-version":[{"id":122,"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/pages\/116\/revisions\/122"}],"wp:attachment":[{"href":"https:\/\/sites.nd.edu\/acerrone\/wp-json\/wp\/v2\/media?parent=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}