基于gid-code_bright软件的批量修改单元材料方法
技术领域
1.本发明涉及岩土工程、矿山开采、近海工程,水利工程,防灾减灾工程技术领域,特别是基于gid-code_bright软件的批量修改单元材料方法。
背景技术:2.目前在有限元计算中,针对各种类型的岩土体本构,在应力应变响应的过程中土体性质和形状均会发生改变,并且这种改变的程度在各个单元格内并不相同,因此应当根据解决问题的实际需要,更改不同时间步中不同离散单元的本构参数。但是在有限元软件中附着材料过程中都是以面域进行附着,gid软件虽然提供了可以改变单个单元格材料的功能,但是计算改变参数时,提取原有单元格计算参数数据庞大,在对网格材料修改时人工修改工作量大,不贴合实际。经过发明人长期研究,发明了基于gid-code_bright软件的批量修改单元材料方法。
技术实现要素:3.本发明的目的在于克服现有技术的缺点,提供基于gid-code_bright软件的批量修改单元材料方法。
4.本发明的目的通过以下技术方案来实现:基于gid-code_bright软件的批量修改单元材料方法,包括以下步骤:
5.s1:使用gid-code_bright建立几何模型,选定土体材料,设置边界条件和时间步,并完成计算;
6.s2:提取软件数据;
7.s3:读取软件数据;
8.s4:根据提取结果计算变化值;
9.s5:利用源文件生成不土体材料,替换不同单元格内土体材料;
10.s6:重新计算,整理数据结果。
11.优选的,步骤s2中,利用“res_read.m”文件,读取结果文件中名为“工程名字.post.msh”和“工程名字.post.res”的文件,将所有网格、节点坐标以及各节点、高斯点物理量数据存储在“result.mat”子程序库中。
12.优选的,步骤s3中,利用“res_save_nodes.m、res_save_gauss.m”提取节点、高斯点至matlab中指定矩阵中。
13.优选的,结果文件中,位移、水压力的物理信息存储在网格节点上,使用“res_save_nodes.m”程序读取,而其他物理信息储存在高斯点上,使用“res_save_gauss.m”文件读取。
14.优选的,步骤s4中,不同离散单元内塑性应变量不同,因此本构数值变化不同,而数据提取后是存储在矩阵中,将矩阵数值带入经验公式中计算参数该变量,由此得到不同离散单元内不同本构数值。
15.优选的,步骤s5中,由于不同单元内本构参数不同,根据单元数量生成相应数量的材料,使用“replace.m”程序读取“工程文件名.mat”中的本构材料数据,确定复制材料的编号后,将该编号材料的数据按照单元数量,使用“replace.m”程序进行复制,再利用“replace.m”程序将所述步骤s3中的数据替换至新材料中,对新材料进行编号,生成新的“工程文件名.mat”文件,完成新材料的生成。
16.优选的,步骤s5中,使用“replace.m”程序读取“工程文件名.msh”中的网格信息,再利用其对材料编号进行替换,生成新的“工程文件名.msh”文件完成新材料的替换。
17.优选的,步骤s6中,重新进行计算,完成后使用“res_read.m”程序整理计算结果,再用“res_save_nodes/gauss.m”程序读取结果生成矩阵。
18.本发明具有以下优点:本发明通过gid-code_bright建立几何模型,选定土体材料,通过软件读取数据相比于人工更便捷,减少了人工工作量,而且利用源文件生成不土体材料,替换不同单元格内土体材料,其参数精准度高,减少人为误差,计算结果更接近工程实际。
附图说明
19.图1为批量修改单元材料流程方法的结构示意图;
20.图2为实例计算所用模型的结构示意图;
21.图3为抗剪强度参数与耦合塑性应变关系的结构示意图;
22.图4为耦合塑性应变与微观弹性应变关系的结构示意图;
23.图5为替换完成后的材料填充的结构示意图;
24.图6为计算结果差异的结构示意图;
具体实施方式
25.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。通常在此处附图中描述和示出的本发明实施方式的组件可以以各种不同的配置来布置和设计。
26.因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
27.需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。
28.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
29.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须
具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
30.在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
31.在本实施例中,如图1所示,基于gid-code_bright软件的批量修改单元材料方法,包括以下步骤:
32.s1:使用gid-code_bright建立几何模型,选定土体材料,设置边界条件和时间步,并完成计算;
33.s2:提取软件数据;
34.s3:读取软件数据;
35.s4:根据提取结果计算变化值;
36.s5:利用源文件生成不土体材料,替换不同单元格内土体材料;
37.s6:重新计算,整理数据结果。通过gid-code_bright建立几何模型,选定土体材料,通过软件读取数据相比于人工更便捷,减少了人工工作量,而且利用源文件生成不土体材料,替换不同单元格内土体材料,其参数精准度高,减少人为误差,计算结果更接近工程实际。
38.进一步的,步骤s2中,利用“res_read.m”文件,读取结果文件中名为“工程名字.post.msh”和“工程名字.post.res”的文件,将所有网格、节点坐标以及各节点、高斯点物理量数据存储在“result.mat”子程序库中。具体地说,“findx.m”程序逐行读取“工程名字.msh”文件中存储nodes(节点)和elems(单元)的数据,并根据特殊字段“nodes”和“elems”,以文本的形式分类存储在临时矩阵中,该程序用于节点单元的查询,需要三个输入值:第一个值,输入结构化数组(包含了所有的数据),第二个值,输入一个向量(n*1或1*n),代表了需要查询的节点码或者单元码,第三个值输入变量类型,'nodes'表示查询节点,'elems'表示查询单元;有三个输出值:第一个是查询位置的坐标值,若查询对象是节点,则为n行2列的矩阵(两列分别是x和y),若查询对象是单元,则为一个n行1列的矩阵元胞数组(cell),cell中每一个元素对应一个单元,即一个3*2或4*2的矩阵,第二个是查询位置的中心坐标值,若查询对象是节点,则它与第一个输出完全相同,若查询对象是单元,则它为一个n行2列的矩阵(两列分别是x和y),即对应我们问题中的高斯点坐标(注意:前两个输出中所有变量的维度n与输入的x一一对应,即x中第k个码,对应输出中cell的第k组或坐标值的第k行),第三个是查询类别的输出,统一为:'nodes'和'elems'。“res_read.m”程序首先读取“工程名字.msh”和“工程名字.mat”文件,先汇总几何信息,先将节点坐标读取,再读取不同网格组成的节点编号,分离不同种类的网格,将汇总结果分类以文本形式存储在“result..mat”文件中,再选择需要读取的数据种类,并为不同的结果数据准备不同的存储本本格式(如位移包含横向、纵向、总位移;应力包含三个方向的应力和三个应力面的剪切应力),程序对mat文件逐行搜索读取信息,最后将目标结果分类存储在“result..mat”文件中来。
39.在本实施例中,步骤s3中,利用“res_save_nodes.m、res_save_gauss.m”提取节点、高斯点至matlab中指定矩阵中。进一步的,结果文件中,位移、水压力的物理信息存储在网格节点上,使用“res_save_nodes.m”程序读取,而其他物理信息储存在高斯点上,使用“res_save_gauss.m”文件读取。具体地说,“res_save_nodes.m、res_save_gauss.m”两个程序逻辑相同,均先加载“result..mat”文件,利用“findx.m”程序寻找节点或高斯点信息,因为高斯点与单元数量相同,且高斯点为网格的中心点,确定需要的数据种类,建立可容纳数据的矩阵,之后逐行读取“result..mat”文件中该类型数据的文本,以矩阵的形式进行存储,并为数据编号使其和单元格编号一一对应,而“res_save_nodes.m”还需要一个步骤就是将节点数据平均后再储存。
40.在本实施例中,步骤s4中,不同离散单元内塑性应变量不同,因此本构数值变化不同,而数据提取后是存储在矩阵中,将矩阵数值带入经验公式中计算参数该变量,由此得到不同离散单元内不同本构数值。也就是说,由于本构方程,折减函数,变形区域存在较大差异,因此改变的参数矩阵需要在matlab中重新计算得到新参数矩阵。
41.在本实施例中,步骤s5中,由于不同单元内本构参数不同,根据单元数量生成相应数量的材料,使用“replace.m”程序读取“工程文件名.mat”中的本构材料数据,确定复制材料的编号后,将该编号材料的数据按照单元数量,使用“replace.m”程序进行复制,再利用“replace.m”程序将所述步骤s3中的数据替换至新材料中,对新材料进行编号,生成新的“工程文件名.mat”文件,完成新材料的生成。进一步的,步骤s5中,使用“replace.m”程序读取“工程文件名.msh”中的网格信息,再利用其对材料编号进行替换,生成新的“工程文件名.msh”文件完成新材料的替换。具体地说,“replace.m”程序有两个功能,第一个是生成材料,需要先读取源文件的“工程文件名.mat”文件为字符串,使用matlab自带函数寻找复制的目标材料,并将其材料字字符段进行复制,修改材料编号使编号连贯,第二次寻找材料中需要修改的数值,将新数据以二进制格式编入原字符串中,注意新数据与源数据小数位相同,将新的字符串写入新的“工程文件名.mat”文件中,此时完成材料复制;第二个是替换材料,需要先读取源文件的“工程文件名.msh”文件为单列矩阵,先根据“result..mat”文件中读取的网格与节点数量,确定文件中各个单元中材料编号在矩阵中的位置,再对矩阵中的编号进行替换,将新矩阵写入新的“工程文件名.msh”文件中,完成材料替换。
42.在本实施例中,步骤s6中,重新进行计算,完成后使用“res_read.m”程序整理计算结果,再用“res_save_nodes/gauss.m”程序读取结果生成矩阵。
43.实例计算:
44.以计算含有膨胀土软弱夹层的渠坡开挖蓄水为例,根据膨胀土软弱夹层的耦合塑性膨胀大小改变不同时间段土体的抗剪强度。
45.首先建立如图2的模型,浅层土与深层使用摩尔库伦模型,膨胀土夹层使用bexm模型,该模型的抗剪强度参数为m,其强度与耦合塑性应变关系示意图如图3所示,耦合塑性应变与微观弹性应变关系如图4所示,微观弹性公式如下:
[0046][0047]
其中κm为微观侧面的矩阵弹性刚度参数,em为微观孔隙比,为有效应力。
[0048]
将不同单元格内发生的耦合塑性应变算出后,计算出m减小值,替换下一时间步的
m,替换完成后的材料填充示意图如图5所示,重复上述步骤至完全替换完成,得出计算结果,其计算结果差异如图6所示,可以看出,考虑软化后,横向位移峰值增高、区域变大,滑动趋势增加,渗流过程中坡角处有明显位移峰值,抗剪能力下降。软化后模型坡角处有较为明显的位移先增大,为膨胀土后退式破坏前兆,且导致剪应力峰值右移,破坏面向坡内延伸,为膨胀土后退式破坏发展阶段。
[0049]
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。