ANNIE - User Guide
(this page is under development)
Introduction - ANNIE Architecture & Road Map
ANNIE has three operating modes: a standalone mode, a client/server mode, and a distributed mode. The standalone mode is intended for quick and easy exploration, with small projects and simulations. The client-server mode handles most simulations except the very big ones. The distributed mode is for very large simulations.
In most cases, users will begin by creating manifold watertight geometry. This is necessary for computation at the single-cell level. Subsequently, cells are partitioned to whatever resolution is required, and partitioned cells are grouped into higher level structures like modules and layers.
Once a usable geometry is achieved at the single-cell level, physical materials are applied and boundary conditions are defined for the relationships between compartments. The entire structure can be placed into higher level enclosures (like vasculature, meninges and bony tissue, or abstract volume conduction spheres).
Upon successful creation of the physical structure, ANNIE saves the entire simulation in various formats. From this point ANNIE's geometry can be used directly for finite element simulations in tools like MOOSE and Elmer. However ANNIE then goes beyond, converting the geometry into differential form suitable for the methods of discrete exterior calculus. In this form, convergence is much easier to achieve and one need not worry about underflows.
ANNIE's output can be saved and viewed in any convenient form, ranging from the STEP and BREP files found in the open source ecosystem, to the HDF5 formats used by professional programs in the cloud.
ANNIE Server / Work Flows
ANNIE's server handles all the tasks that would ordinarily tie up a workstation, including numerical computation. The server listens on a TCP/IP port. Clients connect to the port, log in, and initiate a dialog. The server can handle multiple clients at once, it can be used in a classroom situation as long as student simulation size is limited (by user privileges or workstation configuration).
Typically an ANNIE server running on a PC with 64 gB of memory can handle about 100 million traditional neurons, but this number can increase to several billion with multiple GPU's, and decrease to only a few thousand when the mesh size is reduced to 100 Angstroms. Performance is dependent on mesh size, model type, and number of cells. Moving to the distributed mode is not a cure for poor performance. Generally a DEC simulation will be much faster than a finite element simulation, regardless of the underlying physics.
ANNIE Client / Dashboard
ANNIE's dashboard is a launching point for all of ANNIE's capabilities. The dashboard invokes other programs as needed. For quick and easy conversions, ANNIE provides utilities that only handle small sections of the work flow. Examples are the annie-swc utility that converts SWC skeletons to manifold watertight meshes in a common sharable format, and the annie-mesh utility that partitions meshes, applies physical materials to them, and saves the result in file formats used by simulation programs (.inp for Salome, .e for MOOSE, .msh for Elmer, and so on).
ANNIE-SWC
ANNIE-SWC is a stand-alone application that converts imperfect SWC tracings to perfect watertight meshes in triangular, tetrahedral, or voxelized form. The output from ANNIE-SWC is available in several formats including Wavefront OBJ, PLY, STL and glTF. ANNIE-SWC does not partition the mesh, that job is done by ANNIE-MESH.
To use annie-swc, open the .swc file of your choice using the buttons on the top left of the SWC dashboard, then push the buttons on the left in descending order. If anything goes wrong, ANNIE will let you know.
The order of file format conversion is:
- Convert SWC file to Pandas array
- Synthesize OBJ file from Pandas array
- Sample surface and reconstruct
- Triangulate surface in 2-d
- Heal as needed and make manifold
- Convert to tetrahedral mesh
- Convert to solid volume
- Voxelize
ANNIE-MESH
ANNIE-MESH is a stand-alone application that converts surface and volume meshes into computational formats suitable for the application of physical forces. ANNIE-MESH partitions the mesh and creates physical groups from the partitions, starting with a manifold watertight STL file exported from annie-swc. Annie-mesh converts the surface into a partitioned three dimensional computational object ready for the application of physical properties to each mesh element.
The processing sequences in annie-mesh is:
- Convert STL file to internal mesh format
- Partition mesh into computational compartments
- Define boundaries between compartments
- Apply continuity constraints to boundaries
- Save computational structure in common formats
The output from ANNIE-MESH is available in several forms, including .cgns, .msh, .vtk/.vtu, .geo, and .xml, and is ready for the application of physical materials to partitions and mesh elements. These materials may range from lipid bilayers, to voltage dependent ion channels (receptor linked or not), to trans-membrane proteins (like connexins), to the scaffolding associated with the cytoskeleton.
To use annie-mesh, open the pre-processed .stl file of your choice (from annie-mesh), then push the buttons on the left of the dashboard in descending order. If anything goes wrong, ANNIE will let you know. The most common error is trying to use an STL file that hasn't yet been made watertight by annie-swc. If you're starting with someone else's STL file, import it into annie-swc first and save it back out.
ANNIE-MATERIAL ANNIE-MATERIAL works interactively with ANNIE-MESH to generate a perfect geometry for your multi-physics simulation.
(this section is under development)
ANNIE-DEC ANNIE-DEC is a computational simulator that uses the methods of discrete exterior calculus to solve partial differential equations.
(this section is under development)
|