Skip to content

A curated list of awesome CAE frameworks, libraries, and software from a full CAE workflow perspective, including the integration of AI technologies.

License

Notifications You must be signed in to change notification settings

anlijun/awesome-CAE-software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

Language

Awesome CAE Software -- From CAD to AI

A curated list of awesome CAE frameworks, libraries, and software from a full CAE workflow perspective, including the integration of AI technologies.


CAD (Computer-Aided Design)

Software tools used in the design phase for creating detailed geometric models, which serve as the foundation for further CAE processes.

Tool Name Language Open Source/Commercial Description
FreeCAD Windows, Mac, Linux Open Source FreeCAD is an open-source parametric 3D modeler that allows users to design real-life objects, modify designs via parametric modeling, create 3D models from 2D sketches, and is suitable for various fields such as product design, mechanical engineering, and architecture.
Blender Windows, Mac, Linux Open Source Blender is a free, open-source 3D creation suite that supports the entire 3D pipeline, offering tools for modeling, animation, rendering, and more, with a customizable Python API.
LibreCAD C++17 Open Source LibreCAD is a cross-platform 2D CAD program written in C++17. It can read DXF/DWG files and can write DXF/PDF/SVG files. It supports point/line/circle/ellipse/parabola/spline primitives. The user interface is highly customizable, and has dozens of translations.
OpenSCAD Windows, Mac, Linux Open Source LibreCAD is a cross-platform 2D CAD program written in C++17. It can read DXF/DWG files and can write DXF/PDF/SVG files. It supports point/line/circle/ellipse/parabola/spline primitives. The user interface is highly customizable, and has dozens of translations.
QCAD Windows, Mac, Linux Open Source QCAD is a free, open-source 2D CAD application for creating technical drawings such as architectural plans, interior layouts, mechanical parts, schematics, and diagrams. With a focus on modularity, extensibility, and portability, QCAD offers an intuitive interface that allows users, even without prior CAD experience, to quickly start drafting and designing.
LeoCAD Windows, Mac, Linux Open Source A CAD application for creating virtual LEGO models.
CAD_Sketcher Python Open Source Constraint-based sketcher extension for Blender that allows to create precise 2d shapes by defining a set of geometric constraints like tangent, distance, angle, equal and more. Sketches stay editable and support a fully non-destructive workflow.
cadmium Python Open Source Cadmium is a Python library for Solid Modeling that lets you create primitive shapes, apply CSG operations, and perform affine transformations like translation and rotation.
CadQuery Python Open Source CadQuery is an easy-to-use Python module for creating parametric 3D CAD models, offering advantages over OpenSCAD through its powerful CAD kernel, advanced modeling capabilities, efficient scripting, and support for high-quality formats like STEP and DXF, making it suitable for integration into servers and scientific applications.
Build123d Python Open Source Build123d could be considered as an evolution of CadQuery. Build123d is an advanced Python-based CAD framework leveraging the Open Cascade kernel for intuitive 2D/3D BREP modeling, facilitating complex designs for diverse manufacturing needs and seamless integration with mainstream CAD software through a more flexible and powerful scripting environment.
oce C++ Open Source OCE (Open Cascade Community Edition) is a fork of the Open Cascade 3D C++ modeling library that collects patches, changes, and improvements from the OCC community, with official documentation and sources available at the Open Cascade Development website.
OpenJSCAD Javascript Open Source JSCAD is an open source set of modular, browser and command line tools for creating parametric 2D and 3D designs with JavaScript code. It provides a quick, precise and reproducible method for generating 3D models, and is especially useful for 3D printing applications.
pythonocc Python Open Source pythonocc is a Python library based on the OpenCascade Technology modeling kernel, providing 3D modeling and data exchange features for CAD, PDM, PLM, and BIM development, with capabilities including full access to OpenCascade C++ classes, 3D visualization in various Python GUI frameworks, web browsers, and Jupyter notebooks, as well as support for popular data exchange formats like IGES, STEP, STL, PLY, OBJ, and GLTF.
Fornjot Rust Open Source Fornjot is an early-stage CAD kernel, written in Rust, focused on mechanical CAD applications like 3D printing and machining, prioritizing reliability, a friendly API for code-first modeling, and third-party extensions, while still under active development.

Meshing

Tools and libraries specifically for generating high-quality meshes from CAD models, essential for accurate and efficient simulation.

Tool Name Language Open Source/Commercial Description
Gmesh C++ Open Source Gmsh is an open source 3D finite element mesh generator with a built-in CAD engine and post-processor. Its design goal is to provide a fast, light and user-friendly meshing tool with parametric input and flexible visualization capabilities.
gridder C Open Source GRIDDER is an interactive grid generation tool that creates orthogonal 2D quadrilateral or 3D hexahedral grids, allowing for even, logarithmic, or geometric grid spacing across multiple regions and dimensions, with output options in formats such as AVS, Tracer 3D, Vector, and FEHM.
libMesh C++ Open Source libMesh is a numerical simulation library designed for solving partial differential equations using unstructured discretizations on both serial and parallel platforms, with a focus on adaptive mesh refinement and support for various geometric and finite element types.
meshpy Python Open Source MeshPy is a Python library for generating high-quality triangular and tetrahedral meshes, primarily for finite-element simulations, while also serving applications in computer graphics and robotics, utilizing interfaces to well-known mesh generators like Triangle and TetGen.
meshzoo Python Open Source Meshzoo is a straightforward and efficient mesh generation tool for finite element and finite volume computations, ideal for simple geometries, as it leverages the domain's structure without the complexity of advanced mesh generators.
Netgen C++ Open Source NETGEN is an automatic 3D tetrahedral mesh generator that supports input from CSG, BRep (STL), and handles IGES and STEP files, offering mesh optimization and hierarchical refinement modules.
pygmsh Python Open Source pygmsh combines the power of Gmsh with the versatility of Python. It provides useful abstractions from Gmsh's own Python interface so you can create complex geometries more easily.
pymesh Python Open Source PyMesh is a geometry processing platform for rapid prototyping that integrates various mesh processing functionalities and interfaces with top open-source packages, enabling operations like mesh reading/writing, local mesh processing, mesh booleans, mesh generation, and finite element matrix assembly in a unified environment.
Robust-Hexahedral-Re-Meshing Windows, Mac, Linux Open Source This repository contains the meshing software developed for Robust Hexahedral Re-Meshing as presented in the publication by Xifeng Gao et al. in ACM Transactions on Graphics (SIGGRAPH ASIA 2017).
smesh C++ Open Source smesh is a standalone MESH framework based on OpenCascade, forked from the SALOME SMESH project, designed for use in the pythonocc project. It builds on the original SALOME project by Fotis Soutis to offer mesh functionalities independently.
TetGen Python Python/C++ Open Source A Python interface to the C++ TetGen library to generate tetrahedral meshes of any 3D polyhedral domains.

Preprocessing and Boundary Condition Definition

Broader preprocessing tools, including meshing, defining boundary conditions, setting material properties, and other simulation parameters before running analysis.

Tool Name Language Open Source/Commercial Description
abapy Python Open Source AbaPy is a Python toolkit for automating finite element simulations in Abaqus, offering tools for mesh generation, post-processing of simulation results, material preprocessing, indentation analysis, and advanced examples for high-level research tasks.
abaqus2dyna Python Open Source abaqus2dyna is a script to convert, in a limited fashion, Abaqus keyword input files to LS-DYNA keyword input files. It is currently very limited. See example.inp for an example Abaqus file that can be converted.
AbqParse Python Open Source A simple parser for Abaqus input files that parses out the keywords, parameters, and data lines.
pyDOE Python Open Source Library for creating design of experiments studies.
pyvista Python Open Source PyVista is a Pythonic interface for VTK that simplifies 3D plotting, mesh data manipulation, and visualization of spatial datasets, offering a high-level API for rapid prototyping and analysis of complex geometries.
qd-ansa Python Open Source This library is a python utility library for ANSA and META from Beta CAE Systems SA.
Simright WebMesher Web Commercial Web-based preprocessor supporting interactive meshing and definitions of loads & BCs.
VTK C++ Open Source VTK is an open-source software system for image processing, 3D graphics, volume rendering, and visualization, widely used in academia, government research institutions, and industry, offering advanced algorithms and rendering techniques, with its origins tied to the textbook "The Visualization Toolkit."

Materials

Libraries and resources dedicated to defining material properties and constitutive models, including user subroutines for customized material behavior.

Tool Name Language Open Source/Commercial Description
ABAQUS_Subroutines Fortran Open Source Viscoplastic UMAT, rotational body force UEL, UMAT implmenentation of Linder et al. 2011-based three-element polymer viscoelasticity model (co-written with Pinkesh Malhotra).
ABAQUS_Subroutines 2 Fortran Open Source Collection of Abaqus user materials(.inp sample).
ABAQUS-US Fortran Open Source ABAQUS-US is a repository containing user element (UEL) and user material (UMAT) subroutines for ABAQUS, featuring classical and Cosserat elements with various constitutive models, along with input files linked in versheet.dat for easier use.

Solvers

Core computational tools that solve numerical models for various physics, including structural, thermal, and fluid simulations.

Tool Name Language Open Source/Commercial Description
CalculiX Fortran/C Open Source CalculiX is an open-source finite element analysis software used for solving complex structural and fluid dynamics problems, input style formats for CalculiX are based on those used by ABAQUS.
CFDEM C++ Open Source an Open Source framework that integrates Computational Fluid Dynamics (CFD) with the Discrete Element Method (DEM), combining the LIGGGHTS® DEM code and the OpenFOAM® CFD package for advanced fluid-particle simulations.
Code_Aster FORTRAN/Python Open Source Code_ASTER is an open-source software suite for finite element analysis and numerical simulation in structural mechanics, developed primarily for use in civil engineering and industry.
deal.II C++ Open Source A C++ software library supporting the creation of finite element codes and an open community of users and developers.
FEATool Multiphysics Matlab Open Source FEATool Multiphysics is an all-in-one simulation platform for multi-physics analysis, offering an easy-to-use GUI and integrated tools for 1D, 2D, and 3D geometry modeling, automatic meshing, state-of-the-art physics solvers, and pre-defined equations for various physics, making it ideal for students, researchers, and engineers to explore coupled physics phenomena and engineering problems. (Fully Integrated FEA, FEniCS, OpenFOAM, SU2 Solver GUI & Multi-Physics Simulation Platform)
FEBio C++ Open Source FEBio is an open-source nonlinear finite element solver designed for biomechanical applications, offering specialized modeling scenarios, constitutive models, and boundary conditions for solving complex 3D problems in computational biomechanics.
FEniCS C++ Open Source FEniCS is an open-source computing platform for efficiently solving partial differential equations (PDEs) using the finite element method (FEM), providing both high-level Python and C++ interfaces, and supporting a range of platforms from laptops to high-performance computing systems.
FreeFEM C++ Open Source FreeFEM is a solver for partial differential equations in non-linear multi-physics systems using the finite element method in 2D and 3D, featuring a fast interpolation algorithm and a specialized language for handling data on multiple meshes.
JuliaFEM Julia Open Source The JuliaFEM software library is a framework that allows for the distributed processing of large Finite Element Models across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.
MFEM C++ Open Source MFEM is a modular parallel C++ library for finite element methods. Its goal is to enable high-performance scalable finite element discretization research and application development on a wide variety of platforms, ranging from laptops to supercomputers.
MYSTRAN Fortran Open Source For anyone familiar with the popular NASTRAN computer program developed by NASA (National Aeronautics and Space Administration) in the 1970’s and popularized in several commercial versions since, the input to MYSTRAN will look quite familiar. Many structural analyses modeled for execution in NASTRAN will execute in MYSTRAN with little, or no, modification. MYSTRAN, however, is not NASTRAN. It is an independent program written in modern Fortran 95.
NASTRAN-95 Fortran Open Source NASTRAN is the NASA Structural Analysis System, a finite element analysis program (FEA) completed in the early 1970's. It was the first of its kind and opened the door to computer-aided engineering. Subsections of a design can be modeled and then larger groupings of these elements can again be modeled. NASTRAN can handle elastic stability analysis, complex eigenvalues for vibration and dynamic stability analysis, dynamic response for transient and steady state loads, and random excitation, and static response to concentrated and distributed loads, thermal expansion, and enforced deformations.
Netgen/NGSolve C++ Open Source Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily.
OpenFoam C++ Open Source OpenFOAM is a free, open source computational fluid dynamics (CFD) software package released by the OpenFOAM Foundation. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetics.
pyNastran Python Open Source pyNastran is an interface library to the various Nastran file formats (BDF, OP2, OP4). Using the BDF interface, you can read/edit/write Nastran geometry without worrying about field formatting. Many checks are also performed to verify that your model is correct. Using the OP2 interface, you can read large result files quickly and efficiently. Additionally, you can also extract a subset of the result data and write OP2/F06 result files.
SU2 C++ Open Source SU2 is an open-source C++ software suite designed for solving partial differential equations and performing PDE-constrained optimization, primarily used in computational fluid dynamics and aerodynamic shape optimization, but also extended to handle equations in areas like electrodynamics and chemically reacting flows.
SurveyofPDEPackages Library list Open Source This is a brief list of packages relevant when solving partial differential equations with Julia.

Postprocessing and Visualization

Software for analyzing simulation results, visualizing data, and extracting key insights from simulation outputs.

Tool Name Language Open Source/Commercial Description
abaqusPython Python Open Source A collection of frequently used Abaqus scripts and other useful gems.
ParaView C++ Open Source Open-source, multi-platform data analysis and visualization application based on Visualization Toolkit (VTK).
PyQus Python Open Source Python codes for post-processing Abaqus ODB files.
pyNastran Python Open Source pyNastran is an interface library to the various Nastran file formats (BDF, OP2, OP4). Using the BDF interface, you can read/edit/write Nastran geometry without worrying about field formatting. Many checks are also performed to verify that your model is correct. Using the OP2 interface, you can read large result files quickly and efficiently. Additionally, you can also extract a subset of the result data and write OP2/F06 result files.
Simright Viewer Web Commercial Web-based viewer for CAD/CAE models, used to create and share 3D snapshots.

Optimization

Tools for optimization and design exploration, enhancing performance and meeting design criteria by iterating on model parameters.

Tool Name Language Open Source/Commercial Description
CasADi Python Open Source CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation, enabling rapid and efficient implementation of various numerical optimal control methods for both offline contexts and nonlinear model predictive control (NMPC).
OpenMDAO Python Open Source Open-source high-performance computing platform for systems analysis and multidisciplinary optimization, written in Python.
opti4Abq Python Open Source Optimization method for Python2 and ABAQUS.
ToOptiX Python Open Source ToOptix is used for multiphysical topology optimization.
YALMIP MATLAB Open Source MATLAB toolbox for optimization modeling.

AI in CAE

Leveraging artificial intelligence and machine learning to enhance various aspects of the CAE workflow, including model generation, optimization, and decision-making.

Tool Name Language Open Source/Commercial Description
CAE Simulation Expert Natural ChatGPT Plus Expert in CAE simulations, providing detailed, technically accurate responses.

Tools and Utilities

Miscellaneous tools that assist in various aspects of the CAE workflow, such as file conversion, scripting, and data exchange.

Tool Name Language Open Source/Commercial Description
abqpy Python Open Source abqpy is a Python package that offers type hints for scripting Abaqus in Python, allowing fluent scriptwriting without accessing Abaqus directly, and includes simple APIs to execute Abaqus commands, enabling model building, job submission, and data extraction from a single Python script without opening Abaqus/CAE.
FEconv Python Open Source FEconv can convert finite element (FE) mesh written in several commercial file formats. It can also transform the FE type and/or perform some bandwidth optimizations.
nastran-find Python Open Source Solution for browsing Nastran input deck files.
odb2vtk Python Open Source Converts Abaqus ODB files to VTK format for Paraview visualization.
ODB2VTKplus Python Open Source Another python version of odb2vtk.
ODB2VTK C++ Open Source Another C++ version of odb2vtk.
Simright Converter Web Commercial Web-based tool for converting CAE models between different formats.
YJExchanger SDK Commercial Commercialized mesh format and CAE/CFD result format conversion components, support Abaqus .inp .odb / Ansys .cdb .rst / Fluent .cas .dat .cas.h5 .dat.h5 .msh / VTK .vtk .vtu .vtp
CEETRON Access SDK Commercial CEETRON Access from Tech Soft 3D is a toolkit designed to offer a comprehensive mechanism for accessing data from model and solution result files of various key commercial finite element analysis (FEA) software systems utilized in mechanical computer-aided engineering (MCAE) and computational fluid dynamics (CFD).

Editors and Plugins

Editors and plugins that provide syntax highlighting and features to support writing CAE scripts and input files.

Tool Name Platform Open Source/Commercial Description
ATOM language-abaqus Atom Open Source ABAQUS language highlighting in the editor ATOM.
ATOM language-nastran Atom Open Source Adds syntax highlighting to NASTRAN files in Atom.
vim-abaqus Vim Open Source Vim-plugin for ABAQUS input files.
vim-lexer-lsdyna Vim Open Source LS-DYNA keyword input file lexer for Vim.
vim-radioss Vim Open Source Vim-plugin for RADIOSS input files.

Documentation Tools

Projects related to extracting, managing, and enhancing documentation for CAE software, enabling better accessibility and usability.

Tool Name Platform Open Source/Commercial Description
Abaqus-Documentation-Scraper Python Open Source Python script to extract keywords, parameters, and parameter values from the Abaqus HTML documentation.
Abaqus-Sublime Sublime Text Open Source Sublime Text syntax highlighting for the Abaqus finite element software.
LS-DYNA-Sublime Sublime Text Open Source Sublime Text syntax highlighting for the LS-DYNA finite element software.

Summary

This curated list of CAE frameworks, libraries, and tools covers the full spectrum of the CAE workflow, from CAD modeling and meshing to solvers, postprocessing, and optimization. With the addition of AI in CAE, the future of simulation is being reshaped by machine learning, enabling faster model predictions, data-driven optimization, and enhanced automation in engineering processes.

Packages

No packages published