首页/文章/ 详情

vpsc8.0内置绘制极图和反极图的软件POLE8d介绍

1月前浏览527

在新版的粘塑性自洽晶体塑性模型vpsc8.0中,除了常规的本构模型升级之外,软件作者同时开源一个用于取向分布绘制的软件POLE8d,笔者发现使用改软件绘制的极图和反极图与aztex,mtex的常用的极图绘制软件相比,其风格更加简洁,清晰。对于使用粘塑性自洽模型和晶体塑性模型均可以完成对应的极图和反极图绘制。其常见的极图和反极图风格如下面图片所示:

因此这里对其使用进行简单介绍:

该软件的位置在vpsc8.0压缩包例子15之下

打开后包含如下文件:

包含说明书和8个使用案例介绍,首先对pole8.for这个主文件进行编译,编译可以在Ubuntu里面或者在win里面进行编译。

编译完成后生成exe克执行文件

datasx包含了单晶的晶格相关信息,用于读取和绘制极图(包含了大部分的金属晶格)

pole8.IN是主文件,包含tex取向文件和晶格.sx文件的位置说明,保证这三个文件位于同一个工作目录之下,并循行exe文件。运行结束后生成如下文件:

其中plt文件包含了其他文件。之后使用gnuplot对.DUMMY.plt进行绘图即可完成极图和反极图的绘制,格式为.eps。

以软件的案例一为例,FCC结构的平面应变压缩极图如下:

感兴趣的小伙伴可以下载该绘制极图的软件进行使用。

来源:我的博士日记
UMVPS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-29
最近编辑:1月前
此生君子意逍遥
博士 签名征集中
获赞 48粉丝 60文章 83课程 0
点赞
收藏
作者推荐

基于Python脚本提取黄永刚晶体塑性miller指数并转化为欧拉角绘制极图

前述介绍了几种方案用于提取黄永刚晶体塑性的欧拉角文件绘制极图,如(1)在huang子程序中进行晶体取向更新 (qq.com)------即修改umat问价加入状态变量提取(2)基于lingzhi-matlab脚本与huang-umat实现变形过程中的织构演化预测-技 术邻 (jishulink.com) ------在for中写出miller指数并使用matlab转化为欧拉角绘制极图这两类方案均可以较为方便的绘制极图,但方案一个别情况下会导致出现计算中的矩阵奇异,而方式二计算过程中因为线程原因无法并行运算,此外两类方案先显示中实现的效果通常极不方便。因此这里介绍第三类方法绘制黄永刚后处理的极图-------使用Python脚本进行状态变量的提取,然后使用matlab直接绘制极图,这类方案的的主要优势是无需修改对应的Fortran程序即可实现,对原始程序的收敛性无影响,而且适用于显示vumat程序来源于技术邻icpfem的开源分享:晶体塑性有限元仿真入门(5)—欧拉角与晶体取向_MATLAB ABAQUS-技 术邻 (jishulink.com)简单介绍如下:(1)使用黄永刚程序计算完之后,利用Python脚本提取miller指数:主要脚本如下(展示部分内容,完整代码可以查看原始网页):# SDV提取,本程序适用于将odb输出文件的SDV提取导出保存 import odbAccessimport numpy as np myOdb = odbAccess.openOdb(r"D:\CPFEM_Abaqus_V2\Course3_3\Job-1201-001.odb",readOnly=False)myStep = myOdb.steps["Step-1"]myFrame = myStep.framesi = len(myFrame)-1myField = myFrame[i].fieldOutputsAA = 3;myValue = myField["SDV37"].valuestemp_h = []for value in myValue: myData = value.data temp_h.append(myData) .......... (2)之后将miller指数数据转化为euler角并存储,这一步使用matlab完成clcclearclose all% Data = load('D:\CPFEM_Abaqus_V2\Course3_3\Out_end_rolling.txt');Data = load('D:\CPFEM_Abaqus_V2\Course3_3\Out_end_compression.txt');HKLandUVW = reshape(Data,length(Data)/6,6);data = HKLandUVW(1:1:end,:);Unique_data = data(1:20:end,:);Euler = zeros(length(Unique_data(:,1)),3);for i = 1:length(Unique_data(:,1)) Euler(i,:) = SDV_to_Euler(Unique_data(i,1:3),Unique_data(i,4:6));............(3)利用转化得到的欧拉角绘制极图cs = crystalSymmetry('cubic'); ss = specimenSymmetry('triclinic');ori = orientation.byEuler(Euler(:,1)*degree,Euler(:,2)*degree,Euler(:,3)*degree,cs,ss);plotPDF(ori,Miller({1,0,0},{1,1,0},{1,1,1},cs),'all','MarkerSize',1)pause(5) Index = transpose(1:length(Euler(:,1)));Phase = ones(length(Euler(:,1)),1);X = transpose(1:length(Euler(:,1)));Y = transpose(1:length(Euler(:,1)));MAD = rand(length(Euler(:,1)),1);BC = ceil(100*rand(length(Euler(:,1)),1));BS = zeros(length(Euler(:,1)),1);..............这里展示作者验证的结果可以看到使用这种方法可以很方便且正确的绘制极图,同时我使用该方案如前述方案进行了比较,发现结果具有良好的一致性,但原始网页未进行显示vumat程序的对比这里对比使用前述方案与Python提取方法在显示分析中晶体织构绘制的差异,验证模型在显示的适用性。多晶拉伸结束后的极图(显示结果)(a)以前的方案与python提取状态变量方案绘制极图分别如下可以看到两者具有很好的一致性。因此显示分析中该脚本同样适用。感兴趣的可以查看原始网页查看相关脚本。使用脚本过程中存在问题可以加入我的知识星球进行讨论交流,另外脚本使用的完整流程也可以加入我的知识星球进行获取。来源:我的博士日记

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈