Modular finite element analysis software
Modular finite element analysis software
(OP)
Hi everyone,
I posted on the structural engineering general discussion forum and was pointed here with my question. Here it goes:
I am doing research on iterative solvers and would like to ask if there are any modular FEA packages out there. Let me explain. What I am after is something along the lines of Geometry modeller (optional) -> Boundary condition/Load processor -> Meshing routine (different elements ideally) -> Solver -> Post-processor. At every step "->" information from the modules should be exportable in some format (doesn't matter what, this can be taken care of with a custom piece of code) and importable to the next. In my particular case, I want to run the above pipeline up to and including the Meshing step, export assembled global matrices and load vectors and use them to get displacements from the custom solver I work on. These displacements, formatted appropriately should then go the Post-processor module to get stresses, strains, etc.
This might be a tall order, but I had to ask. Alternatively, a software which can work with externally generated displacement data would also do in a pinch.
Any suggestions are more than welcome!
I posted on the structural engineering general discussion forum and was pointed here with my question. Here it goes:
I am doing research on iterative solvers and would like to ask if there are any modular FEA packages out there. Let me explain. What I am after is something along the lines of Geometry modeller (optional) -> Boundary condition/Load processor -> Meshing routine (different elements ideally) -> Solver -> Post-processor. At every step "->" information from the modules should be exportable in some format (doesn't matter what, this can be taken care of with a custom piece of code) and importable to the next. In my particular case, I want to run the above pipeline up to and including the Meshing step, export assembled global matrices and load vectors and use them to get displacements from the custom solver I work on. These displacements, formatted appropriately should then go the Post-processor module to get stresses, strains, etc.
This might be a tall order, but I had to ask. Alternatively, a software which can work with externally generated displacement data would also do in a pinch.
Any suggestions are more than welcome!
RE: Modular finite element analysis software
https://en.wikipedia.org/wiki/List_of_finite_eleme...
https://www.researchgate.net/post/What_is_the_best...
Googled it
TTFN (ta ta for now)
I can do absolutely anything. I'm an expert! https://www.youtube.com/watch?v=BKorP55Aqvg
FAQ731-376: Eng-Tips.com Forum Policies forum1529: Translation Assistance for Engineers Entire Forum list http://www.eng-tips.com/forumlist.cfm
RE: Modular finite element analysis software
Let me preface this message with a disclaimer - I work for Coreform where we develop and sell the Coreform Cubit mesh generation software. Prior to joining Coreform I worked for ~8 years as an FEA analyst, as a contractor to the US DOE and did a lot of experimenting with various codes and utilities. I will layout multiple options that you might have, but invariably I will be mentioning Coreform Cubit in many of the options. However I will also provide several other options based on open-source or other commercial codes.
I think the central key is finding an FEA code that either outputs your necessary linear system information, or at least exposes it in code so that you might be able to export (but potentially requiring code development). After selecting your code I would look at your tool for mesh-generation.
a. Abaqus - there is an option for generating and outputting the linear system information to files. Here's the documentation for this functionality, note that this isn't available from with the GUI application, you have to add it manually into the input file: https://abaqus-docs.mit.edu/2017/English/SIMACAEAN.... A nice thing about Abaqus is that you could use its GUI (Abaqus CAE) to do your geometry modeling and mesh generation, the Abaqus solver to create the matrix files, and its post-processor for analyzing the results. Also you can automate this process via its Python API.
b. MOOSE - www.mooseframework.com -- Open-source Multi-physics FEM from Idaho National Labs. I don't know if they have a built-in functionality for outputting the linear systems, but they use PETSc for their solvers and there is a PETSc method for writing matrices to disk: https://www.mcs.anl.gov/petsc/petsc-current/docs/m... -- You might need to write some code to enable this from a MOOSE run. For a recent MOOSE workshop I made a YouTube video (and an accompanying Zenodo repository with files) demonstrating how to install / run MOOSE on a Windows machine. MOOSE has some basic capabilities for building "primitive" meshes within the solver step, but they recommend using an external meshing software such as Cubit, GMSH, or others. Note that the preferred input mesh file format is Exodus - which is native to Cubit and many DOE-related codes. MOOSE natively exports Exodus files, which can be natively visualized in ParaView - or using the open-source SEACAS applications like "exo2mat" or "exodus.py" to do your own quantitative post-processing.
c. MFEM - www.mfem.org - another DOE-based, open-source FEM code. This is a little less polished than MOOSE (MFEM is primarily a research code) but it supports high-order elements and other exotic element types. They support a variety of mesh formats (as well as their own "hand-generated" specification) such as Cubit, GMSH, NETGEN, and VTK. Alternatively, you might just use some of their really cool examples from that last link. I think they also use PETSc - again I don't know if they support direct export from within MFEM, but you might give it a look.
d. FEniCS - https://fenicsproject.org/ - an open-source Python based solver. I have little experience with this tool, but this presentation makes it look like you can use the Exodus format from Cubit or a GMSH format for input. Again, you'll probably need to write a function to export the linear systems to a file, but this might be easier to do in FEniCS than MOOSE or MFEM.
Regarding tools for mesh-generation. In my personal opinion, many of the open-source mesh-generation tools are fantastic at generating quality tetrahedral meshes, but few (if any) succeed at generating quality hex-meshes.
a. Abaqus - see discussion above.
b. You might be interested in Coreform Cubit Learn - which is free for non-commercial use (export limited to 50k elements, but this is flexible if you talk to us). Like Abaqus it has a built-in geometry modeler (though admittedly not as powerful as Abaqus from a usability standpoint due to lack of constraint-based sketching) and you can automate Cubit via its Python API. Cubit can generate 1D, 2D (quad/tri), and 3D (hex/tet) meshes.
c. GMSH - https://gmsh.info/ - fantastic for building tetrahedral meshes, not so good for hex meshes (currently does subdivision of tets, which leads to bad element quality). This might change once they finish integrating HEXTREME into GMSH (I'm excited anyways!)
d. SALOME - https://www.salome-platform.org/ - This is another free (open-source?) mesh generation tool that I'm aware of, but I honestly don't have any experience with it. But it's worth looking into as I've heard good things about it and I'm pretty sure you can create hex-meshes.
Hope that's helpful. Feel free to ask for any clarifications or to continue brainstorming.
RE: Modular finite element analysis software
I would add the following options -
Open source solvers: FEAP, deal.II, and CalculiX.
Commercial codes: LS-DYNA and ADINA seem to give plenty of low level access to developers. LS-DYNA has an old open source version (DYNA2D and DYNA3D) out there somewhere.
Commercial meshing tools: TrueGrid is a very inexpensive tool but it is NOT user-friendly. HyperMesh and ANSA two leading pre-processors.
*********************************************************
Are you new to this forum? If so, please read these FAQs:
http://www.eng-tips.com/faqs.cfm?fid=376
http://www.eng-tips.com/faqs.cfm?fid=1083