- 博客(135)
- 资源 (18)
- 收藏
- 关注
原创 MFEM源码分析:代数库
数值计算引擎通常需要将表征物理模型的数学模型转化为线性/非线性方程组,进而求解这些线性/非线性方程组来获取数值解。因此,代数库自然成为数值计算引擎不可或取的模块。而且,普遍认为,代数库的性能在很大程度上决定数值计算引擎的性能。随着软硬件的发展,特别是异构并行计算的成熟,已经涌现出众多性能良好的代数库,因此,代数库在设计阶段,就要将可拓展、灵活性作为接口设计的重要工作。MFEM是一套开源跨平台的有限元开发框架,借助于算子运算,构筑了统一的代数库编程模型,因此,有必要对MFEM 代数库模块予以分析总
2024-12-06 21:41:50
431
原创 数值分析:常微分方程数值解法
对于结构动力学、流体动力学、电磁等数值仿真分析,在空间域上完成离散之后,通常会得到一组半离散的常微分方程组/微分代数方程组。另外,在流线生成等后处理中,也需要求解常微分方程组。因此,非常有必要就常微分方程(组)数值解法相关知识点予以分析总结。
2024-11-14 21:51:04
627
原创 Kratos源码分析:异构容器
Kratos是一款开源跨平台的多物理场有限元框架,因此,物理场的表示、存储、操作自然就是Karos首先需要考虑的基本问题。这一点亦可从Kratos架构师Dadvand博士所著书籍中可以看出。在Kratos中,借助于VBI (Varaible Base Interface)实现了异构容器(Heterogeneous Container)用于存储不同类型的数据,旨在解决多物理场中不同物理问题数据存储的差异性。本文拟就Kratos中异构容器实现予以分析,希望对从事国产CAE软件研发的朋友们有所帮助。
2024-10-19 09:52:25
675
原创 Toolchain: Install and use packages with vcpkg in Visual Studio Code
【代码】Toolchain: Install and use packages with vcpkg in Visual Studio Code。
2024-09-21 20:36:12
845
原创 数值计算引擎:搭建远程容器开发环境
大型CAE软件开发技术栈通常依赖多个第三方库,因此从零开始配置开发、编译、运行等环境通常较为繁琐。但随着公司的发展壮大,却经常需要为新加入的成员配备相应的开发环境;另外,有时候也需要为软件多个不同配置准备相应的环境。这种重复性的工作会消耗团队许多时间成本。由于容器提供了轻量级的、独立的运行环境,可以考虑将软件开发、编译、运行等环境打包成镜像,然后根据需要生成对应的容器即可。而且,VS Code Remote Developement 插件也提供了针对远程容器的开发支持。
2024-08-16 22:03:19
706
原创 MinGW-w64编译安装Acise
Acise(Axndustrialoftwarecology)是一款跨平台的CAx软件开发框架,本文记录在Windows下编译安装Acise的流程。
2024-08-03 14:57:08
616
原创 数值计算引擎:设计原则、关键组件
在前面的博文中,已就大型CAE软件等内容进行了分析总结。求解器无疑是整个CAE仿真计算中最为关键的部分,因此,后续博文将对这一领域的开发技术做些研究。也希望大家批评指教。本文以笔记的形式记录求解器开发相关的一些工具。
2024-08-03 10:37:09
520
原创 VTK源码分析:Type System
作为一款开源跨平台的数据可视化代码库,VTK以其清晰的流水线工作方式、丰富的后处理算法、异种渲染/交互方式,而被众多CAx软件选作后处理实施方案。而异种渲染/交互方式的实现,主要是倚重于VTK的类型系统,因此,有必要对这个问题予以研究分析。另外,结合前面对FreeCAD类型系统的分析,本文旨在导出类型系统在设计与实现等方面的(非)技术约束。
2024-07-20 12:57:52
562
原创 FreeCAD源码分析:Serialization
序列化(Serialization)是在程序运行时将对象转换成字节流的过程,进而将二进制字节流罗盘到文件系统或者通过网络发送到远端。而反序列化(Deserialization)则恰恰相反,是由二进制字节流重新构建对象的过程。
2024-07-17 12:02:00
519
原创 FreeCAD源码分析:Type System
虽然C++11引入了RTTI、Metaprogramming 等技术,但C++在Reflection方面依旧功能有限。作为反射系统的组成部分,类型系统(Type System)提供运行时类型信息(RTTI)、依据类名创建对象等功能。在FreeCAD中,类型系统是插件式开发框架、分层架构等核心实现的基础,因此,有必要对这个基础问题予以研究分析。
2024-07-16 16:10:45
1400
原创 FreeCAD源码分析:Property System
按照面向对象设计(Object-Oriented Design, OOD)的信条,OOD大体上包括两方面的内涵:一方面,需要将业务数据抽象成(树状/层状)数据对象,这就是所谓的数据对象模型(Data Object Model);另一方面就是职责的分摊与聚合,将业务逻辑分摊到逻辑单元,逻辑单元之间通过预定义的接口完成交互,进而完成功能/逻辑的聚合,这也就是所说的面向接口编程(Interface-Oriented Programming)。
2024-07-10 16:15:56
1669
1
原创 SALOME源码分析:View Model
作为一款开源的CAx(CAD/CAE/CAM)软件集成平台,为了实现各个Module支持不同的数据显示与交互方案,出于扩展性的考虑,SALOME引入了View Model,用以支持OpenGL、OCC、VTK、ParaView、Qwt等数据显示与交互实现。本文将以OCCViewer、SVTK为例,来阐述SALOME中的View Model相关内容。
2024-07-04 12:00:05
914
原创 Qt源码分析:窗体绘制与响应
作为一套开源跨平台的UI代码库,窗体绘制与响应自然是最为基本的功能。在前面的博文中,已就Qt中的元对象系统(反射机制)、事件循环等基础内容进行了分析,并捎带阐述了窗体响应相关的内容。因此,本文着重分析Qt中窗体绘制相关的内容。在本文最后,通过FreeCAD SheetTableView单元格缩放功能的实现,来对研究分析予以检验与测试。
2024-06-29 13:03:54
1265
1
原创 SALOME源码分析:MDF框架
SALOME是由EDF、CEA、Open CASCADE等联合开发的开源CAE集成平台。作为一款开源CAE软件集成平台,SALOME以其现代化的架构设计、良好的扩展性,提供了几何建模、网格生成、数据同化、求解器调用、后处理可视化、流程管理、作业管理等方面的支持。而这一切,主要得益于SALOME的模块化开发框架(Modular Development Framework, MDF)。
2024-05-28 15:29:23
1320
FindPETSc.cmake
2024-08-09
sketcher.pdf
2021-07-20
FreeCAD 0.19.txt
2021-04-06
NSIS构建FreeCAD安装包(Installer)
2021-02-27
Open Inventor Quarter-1.1.0编程手册
2020-11-21
Open Inventor (Coin-4.0.1) 帮助手册
2020-11-21
VTK开发精要:数据结构与管线机制
2020-08-15
FreeCAD源码分析:数据显示流程(试用版)
2020-07-14
FreeCAD源码分析:FreeCADGui模块
2020-04-25
FreeCAD源码分析:FreeCADApp模块
2020-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人