WELSIM - Quantify the Uncertain
WELSIM is the #1 engineering simulation software for the open-source community.
Friday, October 16, 2026
使用OpenRadioss的隐式瞬态求解功能
OpenRadioss给用户的第一印象是优秀的显式动力学求解器,用于碰撞、爆炸、冲击这类短时强非线性问题。但是OpenRadioss 也完整内置了隐式求解模块,支持线性静力、非线性静力、屈曲、回弹(springback)、准静态隐式动力学分析,适合冲压回弹、装配预紧、结构静力强度这类需要大时间步、无条件稳定的场景。
Image
尽管官方的OpenRadioss项目已经关闭,开源社区仍有项目和团队在维护,如OpenCourant有源代码和预编译的可执行文件。官方默认的预编译版本不含有隐式求解器,如果想使用隐式计算功能或者弧长法,用户需要结合开源线代求解器MUMPS自行编译整个OpenRadioss,开源社区也有一些含隐式功能的预编译版本。
WelSim已经支持了OpenRadioss的隐式求解器,不仅可以生成OpenRadioss的输入文本,还可以通过简单配置无缝连接OpenRadioss进行计算,显示结果云图。步骤如下:
1. 在首选项中配置好OpenRadioss求解器的文件夹位置。注意此OpenRadioss版本需要已经支持了隐式求解。
Image
2. 新建一个FEA项目,并设置为结构的隐式瞬态分析。导入模型,添加材料,并进行网格划分。
Image
3. 在分析节点属性中,对求解器进行设置。选用OpenRadioss求解器,并设置使用直接法MUMPS作为线性代数求解器,对应产生的命令是/IMPL/SOLVER/2。非线性求解器使用BFGS Quasi-Newton求解器,对应的命令是/IMPL/NONLIN/2。开启Arc-Length法,对应的命令是/IMPL/DT2或/IMPL/DT3 。值得注意的是,此分析没有接触和非线性材料,需要打开大变形开关,才能产生/IMPL/NONLIN命令,不然将会产生/IMPL/LINEAR命令。
Image
4. 由于是瞬态分析,同样在分析节点属性中,对载荷步和子步进行设置。这里是一个简单的单载荷步分析,只对子步进行设置,打开自动时间步,设置初始时间步为0.1,最小时间步0.01,最大时间步0.5。对应的命令是/IMPL/DTINI和/IMPL/DT/STOP。
Image
5. 设置完所有初始条件和边界条件后,直接求解,便可以得到瞬态的结果。每个子步结果的时间分布如下。
Image
6. 如果用户想查看生成的输入*.rad文件,和生成的结果文件。右键点击结果节点,弹出菜单中选择Open Containing Folder,就会打开对应文件夹。
Image
总结
OpenRadioss的隐式求解功能和显式功能同样优秀,计算结果可靠,速度快。作者通过一些测试发现,在简单问题上,隐式求解器的效率很高,求解时间更少。WelSim是仿真行业对OpenRadioss 求解器支持最全面的前后处理器之一。
WelSim与作者不隶属于OpenRadioss,OpenCourant, 和OpenRadioss,OpenCourant开发团队与机构没有直接关系。这里引用这些开源软件的名称和图片仅用作技术博客文章与软件使用的参考。
Sunday, October 11, 2026
OpenRadioss project officially shut down; repository deleted
On October 1, 2026, OpenRadioss officially discontinued its open-source project, taking down its website and deleting its code repository on GitHub. The original open-source project URL is no longer directly accessible. This comes approximately four years after it was initially open-sourced by Altair in 2022.
Press enter or click to view image in full size
Current Alternative Software
Although the official code repository and binary files have been removed, the open-source community has already established a new alternative version. Based on the original OpenRadioss repository, the open-source community has created OpenCourant as the official community continuation project. This project preserves the full Git commit history and has rebuilt a completely new CI/CD build pipeline that does not rely on commercial infrastructure. The official website for OpenCourant is opencourant.org.
Press enter or click to view image in full size
In addition, some developers and users on GitHub had created complete archives or mirror backups before the project was deleted (e.g., gabrielrussell/OpenRadioss).
Pre- and Post-Processing Support
As a general-purpose pre- and post-processor, WelSim has always provided strong support for OpenRadioss. Thanks to the existence of OpenCourant and numerous hard-forked OpenRadioss codebases, WelSim will continue to fully support OpenRadioss solver functions, including input script generation, result reading, and visualization.
WelSim and its author are not affiliated with OpenRadioss or OpenCourant, nor do they have any direct relationship with the development teams or organizations behind OpenRadioss and OpenCourant. References to the names and images of these open-source software tools are used here solely for technical blog articles and software usage context.
Saturday, October 10, 2026
OpenRadioss项目正式关闭,代码库已被删除
2026年10月1日, OpenRadioss官方取消了其开源项目,关闭了网站并删除了 GitHub上的代码仓库。原有的开源项目地址已无法直接访问。距其最初于2022年由 Altair 开源大约过去了四年。
图片
现阶段的替代软件
虽然官方的代码库和二进制文件已经删除,开源社区已经有了新的替代版本。OpenCourant以原 OpenRadioss 代码库为基础,建立了官方的社区接续项目 OpenCourant。该项目保留了完整的 Git 提交历史,并重建了不依赖商业基础设施的全新 CI/CD 编译构建流水线。OpenCourant的官方网站域名是opencourant.org。
图片
此外,在 GitHub 上也有部分开发者和用户在项目被删前进行了完整存档或镜像备份(例如 gabrielrussell/OpenRadioss)。
前后处理器支持
WelSim作为一款通用的前后端处理器,对OpenRadioss一直有着很好的支持。由于有OpenCourant和许多OpenRadioss硬分叉代码的存在,WelSim会继续全面支持OpenRadioss求解器的输入文件生成,结果读取,结果显示等功能。
WelSim与作者不隶属于OpenRadioss,OpenCourant, 和OpenRadioss,OpenCourant开发团队与机构没有直接关系。这里引用这些开源软件的名称和图片仅用作技术博客文章与软件使用的参考。
Sunday, September 27, 2026
Running CalculiX solver using WELSIM
CalculiX is a classic open-source, general-purpose finite element solver licensed under the GPL. It supports linear and nonlinear static, dynamic, thermal, and contact analyses, and is natively compatible with the Abaqus INP input file format. From university research to small-to-medium-sized enterprise simulations, CalculiX is widely used.
As a general-purpose CAE pre and post-processing software, WELSIM features native pre-processing support for CalculiX: users can either export CalculiX INP input scripts for offline calculation with a single click, or directly call the CalculiX solver within the WELSIM graphical user interface to complete computations, streamlining the workflow of “CAD import -> mesh -> material -> boundary conditions -> solving.”
This article outlines the steps for co-solving finite element models utilizing both software applications under the Windows operating system.
Software Preparation
Download and install the latest version of WELSIM; this blog’s example uses the 2026R3 development version.
Press enter or click to view image in full size
The CalculiX solver can be downloaded as a pre-compiled package from the official website (www.calculix.de) or GitHub. After extraction, you will find the solver executable files in the bin folder: ccx.exe (serial) and ccx_MT.exe (multi-threaded parallel version). Users do not need to modify any of the extracted CalculiX files. Please avoid placing the CalculiX folder on the system drive (such as the C drive) and refrain from having an excessively long absolute folder path.
Path Configuration
When executing the CalculiX solver via WELSIM for the first time, you need to briefly configure the CalculiX path. The steps are as follows:
Write on Medium
1.Open the WELSIM software, and click Preferences in the menu or toolbar.
Press enter or click to view image in full size
2.Locate the Solvers tab in the left-hand list.
3.Find the CalculiX file field on the right, click Browse, and select the extracted ccx_MT.exe or ccx.exe. On Windows, an example path could be: D:\WelSimLLC\executable34\CalculiX-2.23.0-win-x64\bin\ccx_MT.exe.
Press enter or click to view image in full size
4.Click OK to save the configuration.
5.During specific finite element analyses, simply set the Solver property of the Study Settings node to CalculiX in the project tree window.
Once configuration is complete, you can directly call the CalculiX solver.
Conclusion
This article describes how to configure the co-solving of finite element models between CalculiX and WELSIM under the Windows operating system. In a Linux environment, the setup and operations are largely identical. The WELSIM installation package does not include the CalculiX solver, so users should download the CalculiX binary program and configure its path themselves as demonstrated in the article.
WELSIM currently does not support post-processing for CalculiX results, but reading and displaying CalculiX result files will be supported in future versions.
WELSIM and the author are not affiliated with CalculiX or Abaqus, and have no direct relationship with the development teams or organizations of CalculiX and Abaqus. The names of the open-source software referenced here are used solely for technical blog articles and software usage reference.
Thursday, September 24, 2026
WELSIM调用有限元求解器CalculiX
CalculiX是一款经典开源通用有限元求解器,基于GPL协议,支持线性/非线性静力、动力学、热、接触等分析,原生兼容Abaqus INP输入文件格式,在高校科研、中小企业仿真中使用广泛。
WELSIM作为一款通用CAE前后处理软件,内置对CalculiX的前处理支持:既可以一键导出CalculiX的INP输入脚本离线计算,也可以在WELSIM图形界面内直接调用ccx求解器完成计算,打通「CAD导入→网格→材料→边界→求解」的流程。
本文介绍Windows操作系统下,两个软件联合求解有限元模型的步骤。
软件准备
下载并安装最新版本的WELSIM,文本使用2026R3开发版作为示例。
图片
CalculiX求解器可以从官网www.calculix.de或者GitHub下载预编译包,解压缩后在bin文件夹下会看到ccx.exe(串行)、ccx_MT.exe(多线程并行版本)的求解器可执行文件。用户无需对CalculiX解压缩后的文件做任何修改。需要注意的是,不要将CalculiX文件夹放置在系统盘如C盘,同时文件夹的绝对路径不宜过长。
配置路径
首次联合WELSIM调用CalculiX求解器时,需要简单配置一下CalculiX的路径。步骤如下:
1. 打开WELSIM软件,点击菜单或者工具栏的Preferences(首选项)。
图片
2. 在左侧列表找到 `Solvers`(求解器)选项卡。
3. 在右侧找到CalculiX file一栏,点击Browse,选中解压好的ccx_MT.exe,或者ccx.exe。Windows下示例路径可以是:D:\WelSimLLC\executable34\CalculiX-2.23.0-win-x64\bin\ccx_MT.exe。
图片
4. 点击OK,保存配置。
5. 具体有限元分析时,在项目结构树窗口中,将Study Settings节点的求解器(Solver)属性设为CalculiX即可。
图片
设置完成,可以直接调用CalculiX求解器。
总结
本文描述了如何在Windows操作系统下配置WELSIM与CalculiX联合求解有限元模型,Linux环境下的设置与操作基本一致。WELSIM安装包不自带CalculiX求解器,需要用户自行下载CalculiX二进制程序并配置路径,这是本文核心内容。
WELSIM还未支持CalculiX结果文件的后处理功能,将会在以后的版本中,支持读取并显示CalculiX的结果文件。
WelSim与作者不隶属于CalculiX, Abaqus。和CalculiX, Abaqus开发团队与机构没有直接关系。这里引用开源软件的名称仅用作技术博客文章与软件使用的参考。
Saturday, September 19, 2026
The mesh of engineering simulation 5: STL meshing
STL is a data format for representing outer surface models. It breaks down the surface of a 3D object into a large number of triangular facets. Each triangular facet stores the coordinates of three vertices and a unit normal vector (pointing outward from the model). Curved surfaces are not represented using analytical equations; instead, they are approximated and fitted using a massive number of small facets. Unlike parametric solid CAD data formats, STL only stores the surface and not the internal solid, as it lacks units, colors, materials, textures, CAD feature history, assembly trees, and other information.
Press enter or click to view image in full size
The data in an STL file must be a closed manifold mesh — otherwise, it cannot be used for subsequent 3D printing or finite element computation. However, the vertices in STL data are stored redundantly, meaning there are no “edges,” no “face ownership,” no sharp angle features, and no concept of inside versus outside. This imposes certain limitations when setting boundary conditions for future finite element analysis, requiring the construction of curved surfaces or sharp edges through parameterization.
STL has a vast range of use cases. For example, in 3D printing and additive manufacturing, STL is the de facto standard exchange format. 3D scanners (laser or structured light) output point clouds that are reconstructed into triangular meshes, which can be used for part replication, cultural heritage digitization, and shape inspection. Moreover, it is widely used in geometric inspection, model repair, and visual preview.
Press enter or click to view image in full size
Mesh Generation Algorithms
STL surface mesh data cannot be directly used for finite element computation, as it needs to be remeshed into high-quality volumetric meshes. Typically, there are two classical methods: the Direct Method and the Surface Classification Method. The main difference between these two methods is whether facet clustering is performed on the STL data. The Direct Method has a simpler workflow, performs no sharp-edge recognition, and does not repair geometric defects, but the watertightness of the STL data follows more stringent requirements. The Surface Classfication Method supports more flexible human-computer graphic interaction operations while simultaneously splitting multiple geometric faces to support more complex models.
Press enter or click to view image in full size
Direct Method
The Direct Method involves building a single closed shell directly based on the STL surface mesh. The steps are as follows:
1.Read STL data and build the enclosure topology.
Vertex merging (removing duplicate vertices): Each triangle in an STL file stores its vertices independently, resulting in a large number of duplicate coordinate points. Coincident vertices are merged based on a floating-point tolerance to establish a global vertex list.
Build edge-triangle adjacency relationships: Iterate through all triangles, extract each edge, and record how many triangular facets share each edge.
Topology checking: Identify boundary edges (belonging to only 1 triangle) and internal edges (belonging to 2 triangles); detect non-manifold edges (≥ 3 triangles sharing a single edge). Check if the shell is closed: if isolated boundary edges exist, determine that the shell surface is not closed.
Facet normal consistency check: Iterate through the facets and attempt to unify the outward normals. If the normals in the STL file are disorganized, it may lead to errors in ensuing mesh generation.
Build shell topology: Assemble the complete boundary triangular facet data structure for subsequent meshing algorithms (such as the Advancing Front method) to read boundaries.
Press enter or click to view image in full size
2.Perform 1D edge meshing, 2D surface meshing, and 3D volumetric meshing respectively. For 3D volumetric meshing, the classical Advancing Front method or parallel tetrahedral Delaunay method can be used.
Write on Medium
3.Mesh optimization. Optimize the overall mesh by inspecting element quality. Element quality optimization removes flat “thin elements” and improves the convergence of finite element computation.
Facet Classification Method
In many practical applications, we hope to generate a topology similar to a CAD model to facilitate setting up finite element boundary and other conditions later. In this case, the Facet Classification Method can be used to combine all facets into multiple geometric faces, effectively generating discrete B-Rep data. This method also handles complex or defective STL data better. The steps for the Facet Classification Method are as follows:
1.Read STL data and directly build the shell topology.
* Classify triangular facets based on normal angles: If the normal angle between adjacent triangles — namely the dihedral angle — is less than the threshold, they are grouped into the same smooth surface. If it exceeds the threshold, it is determined to be a sharp edge and used to capture corners.
* Determine and store the correspondence between edges and triangular facets.
* Perform classification and grouping on a large number of discrete STL facets using the surface mesh’s adjacency relationships, dihedral angles, curvature, and non-manifold markers. Triangles belonging to the same smooth geometric surface are categorized into one group, and the dividing boundaries (edges, non-manifold edges) are marked. The output is a set of connected facet regions.
Press enter or click to view image in full size
2.Build discrete solid.
Based on the categorized facets, reconstruct geometric solids (faces, lines, points) to transform the discrete triangular mesh into a geometric model resembling a B-Rep. The aim is to create a B-Rep geometric entity for each cluster. If high-order elements need to be created, the discrete surface can be fitted into a UV-parameterized surface. This upgrades the pure surface mesh into geometric faces or lines that can be recognized and manipulated by CAD modules.
3.Combine all outer surfaces into a closed surface loop to define a closed shell. Typically, the first surface loop is used as the outer closed shell, and all subsequent surface loops are internal cavities (holes), which are excavated from the outer domain. A 3D solid domain is then built on the basis of this shell to serve future 3D volumetric meshing.
4.Perform 1D edge meshing, 2D surface meshing, and 3D volumetric meshing respectively. (Same as the Direct Method)
5.Mesh optimization. (Same as the Direct Method)
Press enter or click to view image in full size
Conclusion
This article introduced two classical methods for generating finite element meshes from STL models. Unlike CAD models like B-Rep, STL data lacks topological data, considerably complicating mesh generation. In practical engineering, one often encounters defective STL files — such as those that are insufficiently airtight, contain holes, non-manifold edges, self-intersections, or inverted facet normals — which further increase the difficulty of meshing and place high demands on the robustness of the mesher.
The algorithms introduced in this text can also be used to repair STL files and reduce various issues that arise during subsequent meshing. Furthermore, these algorithms can also be applied to finite element meshing for other surface models such as OBJ, 3MF, OFF, and PLY.
Wednesday, September 16, 2026
工程仿真软件中的网格5:STL模型的网格划分
STL是一种外表面模型的数据格式。其原理是把三维物体表面拆成大量三角形面片,每个三角面片存储3个顶点坐标和面法向量(指向模型外侧)。模型曲面不使用解析方程,仅用大量小三角形近似拟合曲面。和参数化的实体 CAD数据格式不同,STL只存表面,不存内部实体;没有单位、颜色、材质、纹理、CAD 特征历史、装配树等信息。
Image
STL文件中的数据必须是闭合流形网格,否则无法用于后续的3D打印或有限元计算。同时,STL数据中的顶点重复存储,没有 “边”、没有 “面归属”,没有棱角特征与内部 / 外部的概念,这对后续有限元分析的边界条件设置带来一些限制,需要通过参数化构建曲线表面或棱角边。
STL有着大量的使用场景,如3D 打印 / 增材制造,STL是3D打印事实上的标准交换格式。三维扫描仪(激光 / 结构光)输出点云到重建三角网格,可用于零件复刻、文物数字化、外形检测。此外,在几何检查、模型修复、可视化预览也有广泛应用。
Image
网格划分算法
STL 表面网格数据无法直接用于有限元计算,需要重新划分高质量的体网格。常见经典方法有两种:直接法和面片类聚法。这两种方法的主要区别就是是否对STL数据进行面片类聚,直接法工作流更简单,不做锐边识别,不修复几何缺陷,但对 STL数据水密性要求更严苛;类聚法可以支持更灵活的人机图形交互操作,同时拆分多个几何面后支持更复杂模型。
Image
直接法
直接法即是直接在STL表面网格基础上构建单一封闭壳体。步骤如下:
1. 读取STL数据,构建外壳拓扑结构
顶点合并(去重复顶点):STL 文件中每个三角独立存储顶点,因此含有大量重复坐标点;按浮点容差合并重合顶点,建立全局顶点列表。
构建边-三角邻接关系。遍历所有三角,提取每条边,记录每条边被几个三角面片共享。
拓扑检查。识别边界边(只属于 1 个三角);内部边(属于两个三角形);检出非流形边(≥3 个三角共用一条边);检查壳体是否闭合:如果存在孤立边界边,判定壳体不封闭。
面片法向一致性校验。遍历面片,尝试统一外法向;如果STL文件的法向混乱,可能会导致后续网格划分错误。
构建外壳拓扑结构。组装完整的边界三角面片数据结构,供后续的网格算法(如前沿推进法)读取边界。
Image
2. 分别进行一维边网格、二维面网格、和三维体网格划分。其中三维网格划分,可以使用经典前沿推进法(Advancing Front),或者并行的四面体Delaunay法。
3. 网格优化。通过检查单元质量,来对整体网格进行优化。单元质量优化,移除扁平 “薄单元”,提升有限元计算收敛性。
面片类聚法
很多实际工作中,我们希望能够生成像CAD模型那样的拓扑结构,以便后续能更加容易设置有限元边界等条件。此时可以使用面片类聚法,将所有面片组合成多个几何面,即生成离散的B-Rep数据,这样一个过程,也能够更好的处理复杂或者有缺陷的STL数据。面片类聚法步骤如下:
1. 读取STL数据,直接构建外壳拓扑结构
按照法向夹角聚类三角面片。相邻三角法向夹角,即二面角(dihedral angle),小于阈值,归为同一个光滑曲面;超过阈值则判定为特征锐边,用于捕捉棱角。
确定、存储边-三角面的对应关系。
基于表面三角网格的邻接关系、二面角、曲率、非流形标记,对大量离散 STL 三角面片做聚类分组;把属于同一个光滑几何面的三角片归为一类,并标记分割边界(锐边、非流形边),输出一组面片连通区域。
Image
2. 建立离散实体图形。
基于分类后的面片,重建几何实体(面、线、点),把离散三角网格变成近似B-Rep的几何模型。方法是为每一个聚类创建一个B-rep 几何实体,如果要创建高阶单元,还可以通过拟合的方法,离散曲面成为UV参数化的曲面;把纯面网格升级成CAD模块可以识别、操作的几何面或线。
3. 将所有外表面组合成闭合表面环,定义一个封闭的壳。通常以第一个面环作为外封闭壳;后续所有传入的面环都是内部空腔(孔洞),从外域中挖去这些空腔。并在这个壳的基础上建立三维实体域。供后续生成 3D 体网格。
4. 分别进行一维边网格、二维面网格、和三维体网格划分。(同直接法)
5. 网格优化。(同直接法)
Image
总结
本文介绍了两种划分STL模型有限元网格的经典方法。由于STL数据相比B-Rep等CAD模型少了拓扑信息,给网格划分带来了不少挑战。实际工程中,还会遇到含有缺陷的STL文件,如不够密闭,孔洞、非流形边、自相交、面片法向,更加大了网格划分的难度。对网格划分器的鲁棒性提出较高要求。
文本所介绍算法还可以用于修复STL文件,以减少后续网格划分出现的各种问题。此外,算法也可以用于OBJ,3MF,OFF, PLY等其他表面模型的有限元网格划分。
Subscribe to:
Posts (Atom)