| 15 | |
| 16 | An explanation of the relationship between SHARP and various other projects/packages: |
| 17 | |
| 18 | John H Magerlein wrote: |
| 19 | > |
| 20 | > Tim, |
| 21 | > I'm afraid that I'm really confused about a number of things after |
| 22 | > reading the information you send yesterday and various links on the web. |
| 23 | > Below is a series of questions which I'd like to discuss with you. I'd |
| 24 | > really appreciate it if we can talk by phone on Thursday or you can |
| 25 | > reply by email. Thanks. |
| 26 | > |
| 27 | > * I don't understand the relationship among ITAPS, CGM, MOAB, CUBIT, |
| 28 | > and SHARP. Can you explain further? |
| 29 | |
| 30 | Sure. |
| 31 | |
| 32 | ITAPS is an effort to define common interfaces to geometry, mesh, and a |
| 33 | few other types of data, and to develop mesh-related tools based on |
| 34 | those interfaces. |
| 35 | |
| 36 | CGM and MOAB are my implementations of the iGeom and iMesh interfaces, |
| 37 | respectively. There are a few other implementations of iMesh, but for |
| 38 | the most part none of iGeom. |
| 39 | |
| 40 | CUBIT is a mesh generation toolkit developed at Sandia National Labs. |
| 41 | CUBIT uses CGM as its geometry capability (or, to be more precise, CGM |
| 42 | was taken out of cubit then re-integrated in component form). CUBIT is |
| 43 | not open source, but is available to those working under government |
| 44 | contract (see www.cubit.sandia.gov for more details). I am developing a |
| 45 | set of smaller, more component-based meshing tools, to be used in |
| 46 | conjunction with or separately from cubit. This effort is in the very |
| 47 | early stages. |
| 48 | |
| 49 | SHARP is a project at ANL to do coupled reactor simulation. The |
| 50 | approach we're taking is to access geometry and mesh data through common |
| 51 | interfaces, i.e. using the ITAPS interfaces. Infrastructure tools like |
| 52 | mapping solution results between meshes are also being implemented based |
| 53 | on these interfaces (though in a few cases we have to go all the way |
| 54 | down to MOAB directly). The so-called "SHARP framework" includes CGM, |
| 55 | MOAB, and these infrastructure tools. I say so-called because it's |
| 56 | really more of a collection rather than a monolith. |
| 57 | |
| 58 | > * If I understand what you said and what I read on the ITAPS web |
| 59 | > site, ITAPS is merely an interface specification. Am I correct |
| 60 | > that there is no code implementing ITAPS other than CGM and MOAB? |
| 61 | > However in your notes, you say things such as "Use ITAPS from |
| 62 | > Fortran & where memory isn't important, otherwise MOAB". I thus |
| 63 | > infer that there is some other implementation of ITAPS. Can you |
| 64 | > clarify? |
| 65 | |
| 66 | First, there are other implementations of iMesh (the ITAPS mesh |
| 67 | interface), but none of iGeom (specifically, there is one other one, but |
| 68 | it's based entirely on a mesh representation, at least as released in |
| 69 | the public domain). |
| 70 | |
| 71 | When I talk about using ITAPS vs. MOAB, I'm referring to the interface |
| 72 | functions. |
| 73 | |
| 74 | > * You say that MOAB only interfaces with C++. Is it not correct than |
| 75 | > many of the codes of interest are in Fortran or C? If so, how will |
| 76 | > we be able to use those codes with MOAB? |
| 77 | |
| 78 | Through iMesh, the ITAPS mesh interface. Most of the functionality |
| 79 | available in MOAB can be accessed through iMesh, and for what can't be, |
| 80 | we'll have to construct specific wrapper functions. In my experience |
| 81 | with SHARP, much of the driver code is in C++, which then calls into C- |
| 82 | or Fortran-based physics modules, so this usually isn't an issue. |
| 83 | |
| 84 | > * I can find almost nothing about SHARP. Your tutorial "SHARP |
| 85 | > Framework Tutorial" seems to discuss ITAPS and MOAB at some |
| 86 | > length, but it says little about SHARP. Is there some |
| 87 | > documentation or description? |
| 88 | |
| 89 | No documentation at the high level yet (we're working on the code first |
| 90 | :) ). There are two physics codes, UNIC (neutronics) and Nek (TH), |
| 91 | which are being developed as both standalone codes and modules which can |
| 92 | be called from a coupled code. It's the coupled code which we refer to |
| 93 | as sharp. This is in very early stages of development compared to Nek |
| 94 | and UNIC. Nek is available as open source, UNIC is not (since it |
| 95 | probably has export control restrictions). |
| 96 | |
| 97 | > * If I want to download some code and try it out, how should I |
| 98 | > begin? Is there any type of user interface and example data which |
| 99 | > I could use to get some idea that it is working? |
| 100 | > |
| 101 | |
| 102 | You could download CGM and MOAB and build each of them. They don't have |
| 103 | UI's, since they're mostly libraries. There are test applications for |
| 104 | both included with the distributions. You should probably start with |
| 105 | MOAB, since CGM will require a 3rd party package (OpenCascade) which |
| 106 | isn't small. MOAB includes some test meshes which you could use to test |
| 107 | small programs you wrote. MOAB's mbconvert utility can be used to |
| 108 | convert these meshes to the vtk format, which can be read by Visit, |
| 109 | Paraview, and other viz tools. |