damask 子程序在windows平台直接编译使用

前面介绍了damask2.03版本和abaqus配合使用,以及damask3.0版本和marc配合使用的案例介绍,当前推文的主要介绍如何把damask子程序正确移植到windows平台下并被abaqus正确调用,把 DAMASK 跑在 Windows 上这件事,看起来像是在“折腾编译环境”,但它真正的价值并不是让程序“能跑”,而是让晶体塑性与位错密度这类微观机制模型真正进入一个更高效、更可复现、更贴近工程实际的工作流。

很多材料模拟研究者和工程仿真团队的日常平台其实仍然以 Windows 为核心:Abaqus/CAE 的建模、网格与接触边界设置,实验配套软件(EBSD 取向处理、DIC 应变场分析、显微图像工具)、常用的脚本与可视化流程往往都围绕 Windows 生态展开。如果 DAMASK 必须依赖 Linux 才能稳定使用,那么在实际科研中就不可避免地出现“系统割裂”:前处理在 Windows、计算在 Linux、后处理又回到 Windows,过程中伴随文件搬运、路径差异、编码与环境变量问题、版本与库依赖不一致等大量隐性成本,而晶体塑性研究偏偏又是高频迭代的工作——要不断修改材料参数、控制文件、微结构与纹理、加载路径,再反复校准与验证。

把 DAMASK 在 Windows 下稳定编译并能直接接入 Abaqus 的 UMAT/VUMAT,本质上是把“建模—计算—后处理—实验对比—模型迭代”的闭环放进同一套系统里,减少无意义的迁移,让时间回到真正决定论文质量与工程可信度的环节:模型、数据与物理机制。

对科研而言,这种一致性最直接的收益就是迭代速度变快、复现更可靠:同一个工程文件夹里同时管理 Abaqus 输入、DAMASK 的材料与控制文件、纹理与微结构配置、以及 Python 后处理脚本,不再需要为了跑一次材料点或者做一次参数拟合而准备另一套系统环境;对实验对比而言,Windows 上更成熟的 EBSD/DIC/显微分析工具链能与仿真输出更紧密地衔接,纹理导入、局部应变场对比、参数反演与不确定性评估都更顺畅;

对工程落地而言,Abaqus 强大的接触、复杂边界、几何非线性与多物理耦合能力可以与 DAMASK 的微观本构优势直接结合,使微结构机制模型不再停留在“材料点验证”,而是更容易走向复杂构件与真实工况的结构仿真;对团队协作而言,Windows 环境的普及度更高,能显著降低新同学入门门槛与组内维护成本,环境文件、编译命令与目录结构一旦标准化,新成员拿到模板工程就能复现结果,这会把 DAMASK 从“少数人能用的高手工具”变成“团队可复制的生产力平台”。

因此,做这件事的意义并不是证明 Windows 也能跑 DAMASK,而是让晶体塑性与位错密度模型在主流工程仿真与实验数据生态中更容易被调用、被验证、被迭代,并最终更接近可复现、可交接、可落地的研究与工程实践。

再尝试编译过程中尝试了大量的damask版本,发现2.02和2.01版本最适合作为移植到abaqus的软件版本,原因是2.03虽然作为最后一个支持abaqus求解器的版本,然而当前版本不支持显示求解器,因此为了方便后期的动态求解问题,不适合使用,同时2.0以前的damask版本相应的功能虽然已经满足,但是存在各类不易轻易发现的bug,严重影响移植过程,同时damask移植过程中涉及到并行计算的问题,damask的子程序写法对并行计算支持度一般,且存在大量的数值读取和写出,严重影响多核心并并行计算,因此建议调试时使用单核心进行,移植到windows下支持的编译器和Fortran版本也有显著差异,当前使用vs2017,Fortran2019,abaqus2022发现可以正常使用计算。对damask在windows下编译感兴趣的可以下载相应版本的abaqus尝试编译和运行。

damask在windows下使用的案例效果如下:

在编译过程中测试了下图所示的案例,分别是BCC铁,位错密度模型,FCC铝,HCP镁合金,HCP钛合金,各项同性的粘塑性模型,taylor模型等以及动态显示vumat的实现,发现运行结果良好,计算效率相较于linux平台要稍快一些,指的注意的是,当前采用单核心计算,在后续的过程中会对整体的damask代码进行完整的重构,充分支持多核心并行计算,即运算效率会显著提到,运行效果如下:

同一个目录下包含如下文件

damask 子程序在windows平台直接编译使用的图1

预编译为OBJ格式可以显著较少每次编译所消耗的时间,

damask 子程序在windows平台直接编译使用的图2

使用包含200个晶粒进行拉伸拉伸测试,验证程序的可靠性

运行过程中,会生成包含输出变量含义的三个文件

damask 子程序在windows平台直接编译使用的图3

damask 子程序在windows平台直接编译使用的图4

damask 子程序在windows平台直接编译使用的图5

整体运行结束需要的时间。

单位统一使用m,pa,运行结束后的应力分布

damask 子程序在windows平台直接编译使用的图6

应变分布

damask 子程序在windows平台直接编译使用的图7

晶粒旋转角度分布

damask 子程序在windows平台直接编译使用的图8

使用欧拉角作为输出,变形结束后的极图分布(初始随机取向):

damask 子程序在windows平台直接编译使用的图9

damask 子程序在windows平台直接编译使用的图10

相应结果和linux平台下的进行了详细对比,结果保持一致。感兴趣的可以加入知识星球讨论交流,扫描如下二维码即可

damask 子程序在windows平台直接编译使用的图11

知识星球上传了原始damask2.02和2.01版本,感兴趣的可以下载这两个版本尝试在windows下编译使用

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP