PFC-FLAC3D Coupling Examples

news2024/12/23 15:53:50

目录

PFC-FLAC3D Coupling Examples

Punch Indentation of a Bonded Material

Sleeved Triaxial Test of a Bonded Material

命令流

结果


PFC-FLAC3D Coupling Examples


Punch Indentation of a Bonded Material


这个例子展示了一个粘合颗粒模型(BPM)被圆形冲头压缩时的压痕反应冲床的应力/变形不能在PFC中评估,因为墙体只作为刚性边界。2

在创建一个耦合的PFC-FLAC3D模型之前,必须加载PFC模块,可以通过 " 工具 "►" 加载PFC "菜单项或者使用以下命令来加载模块。一旦一个项目被保存并加载了任何额外的模块,只要再次打开该项目,这些模块就会被加载。

PFC球是在FLAC3D的无效区域内创建的。由于PFC总是在大应变模式下运行,因此必须明确激活区域和结构元素的大应变模式。(the model largestrain command

PFC球和团块的创建可以没有初始重叠,也可以有任意的初始重叠。在这种情况下,球的分布命令被用来在一个平行四边形体积内创建一个具有任意重叠的球云,并达到指定的体积分数。然后分配球的属性,并使用接触cmat命令来指定接触模型的行为。采取这些步骤后,可以允许球重新排列。模型循环命令中的calm关键字被用来周期性地消除系统中的所有动能。最后,所有溢出生成区域的球被删除

;create a bed of zones for the balls to sit inside
zone create brick size 35 35 35 point 0 -4 -4 -4.5 point 1 4 -4 -4.5 ...
                                point 2 -4 4 -4.5 point 3 -4 -4 -1 group 'bed'
zone cmodel assign elastic
zone property young [materialMod] poisson 0.25
zone cmodel null ...
            range position-x -1.5 1.5 position-y -1.5 1.5 position-z -2 -1
;as the balls are packing into this region - 
;fix the gridpoint motions as the balls are settling
zone gridpoint fix velocity

;wrap the bed with walls
wall-zone create name 'bed' starting-zone 30013
;create a wall over the top 
wall generate name 'top' plane position 0 0 -1 

;create a cloud of balls that are arbitrarily overlapping  (任意重叠)
ball distribute porosity 0.4 box -1.5 1.5 -1.5 1.5 -2 -1 radius 0.04 0.06

;set the ball density and local damping coefficient
ball attribute density 2600 damp 0.7
;set the default contact behavior - 
;the deformability method sets properties of the linear portion 
;of the contact model
contact cmat default model linearpbond method deformability ...
                   emod [materialMod] kratio 1.0 
;allow the balls to rearrange, nulling the linear 
;and angular velocities every 100 cycles
model cycle 1000 calm 100
;delete any balls that flew out of the bed
ball delete range position -1.5 -1.5 -2  1.5 1.5 -1 not

把材料转化成BPM

pb_deform方法设置线性平行键接触模型的pb_kn和pb_ks属性;此时,球-球和球-面接触的平行结合强度也被分配。

球-面的平行结合强度被设置得非常大,以确保边界处的球保持与邻近区域的结合。

;bond the balls together with the specified gap
contact method bond gap 2.0e-3
;set the parallel bond properties from the pb_deform method
contact method pb_deform emod [materialMod] kratio 1.0
;remove the linear portion of the contact properties
;and set the contact strength
;this will be a relatively weak material
contact property lin_mode 1 pb_ten 2e4 pb_coh 2e5 ...
        range contact type 'ball-ball'
;set the ball-facet contact strength to be very high
contact property lin_mode 1 pb_ten 1e100 pb_coh 1e100 ...
        range contact type 'ball-facet'
;remove the box
wall delete wall range name 'top'
;set the default behavior for new ball-ball and ball-facet contacts
contact cmat default model linear type ball-ball method deformability ...
                   emod [materialMod] kratio 1.0 property fric 0.3
contact cmat default model linear type ball-facet method deformability ...
                   emod [materialMod] kratio 1.0 property fric 0.3
;remove all velocities, fix the balls, 
;cycle 2 to remove any contact forces that previously existed from 
;the simple packing procedure
model calm
ball fix velocity spin
ball attribute force-contact multiply 0.0
contact property lin_force 0 0 0
model cycle 2
ball free velocity spin

大规模失效前位移图

大规模失效后位移图

加载命令

;push the punch into the balls with just minimal failure of the material
model cycle 1000
zone gridpoint fix velocity-z 0.0 range group "fixed"
;solve to an equilibrium state to show the current displacements
model solve ratio-average 1.0e-4 
model save 'beforeFailure'

;push the punch in and watch the zone displacement
;diminish after the onset of failure
zone gridpoint fix velocity-z -.0001 range group "fixed"
model cycle 1000
zone gridpoint fix velocity-z 0.0 range group "fixed"
;failure will continue and the granular specimen will rearrange,
;reducing the displacements
model solve ratio-average 1.0e-3 
model save 'afterFailure'

Sleeved Triaxial Test of a Bonded Material


        这个例子展示了使用基于壳的结构元素粘合颗粒模型(BPM)进行一套套筒式三轴试验。这种性质的模型可以单独使用PFC进行研究。然而,在这种情况下,为了使套筒壁模仿弹性膜的行为,将需要相当数量的FISH。

        在创建一个耦合的PFC-FLAC3D模型之前,必须加载PFC模块。PFC球是在FLAC3D外壳组成的圆柱形套筒内创建的。为了在每次运行数据文件时创建相同的球的初始云,模型随机命令被用来初始化随机种子到一个指定的值由于PFC总是在大应变模式下运行,因此必须明确激活区域和结构元素的大应变模式(见模型最大应变命令)。


命令流

弧线被创建为几何边缘,并被垂直挤压以创建圆柱形套筒。

;define relevant parameters for the cylinder
[rad = 1.0]
[height = 3.0]
[segments = 6]
[halfLen = height/2.0]
[freeRegion = height/2.0*0.8]

;create the cylinder with the geometry logic
;first create arcs making a circle of edges 首先创建弧线,形成一个圆的边缘
geometry edge create by-arc origin (0,0,[-halfLen]) ...
   start ([rad*(-1)],0,[-halfLen]) end (0,[rad*(-1)],[-halfLen]) ...
   segments [segments]
geometry edge create by-arc origin (0,0,[-halfLen]) ...
   start (0,[rad*(-1)],[-halfLen]) end ([rad],0,[-halfLen]) ...
   segments [segments]
geometry edge create by-arc origin (0,0,[-halfLen]) ...
   start ([rad],0,[-halfLen]) end (0,[rad],[-halfLen]) ...
   segments [segments]
geometry edge create by-arc origin (0,0,[-halfLen]) ...
   start (0,[rad],[-halfLen]) end ([rad*(-1)],0,[-halfLen]) ...
   segments [segments]
;extrude the edges to make a cylinder
geometry generate from-edges extrude (0,0,[height]) segments [segments*2]

结构外壳导入命令用于从创建的几何体中创建外壳。元素和节点组都被分配,以简化边界条件分配。代码片段还显示了一个FISH函数,用来设置每个节点的本地轴系,使其指向圆柱体的中心,这样就可以使用结构壳应用命令对模型中间的壳元素施加压力。z方向直接指向圆柱体的中心,y方向指向上方。节点的速度和旋转是固定的,这样球就可以在套筒内得到平衡。

;import the structural elements as a shell from the geometry logic
;and assign groups and properties
structure shell import from-geometry 'Default' element-type dkt-cst 
structure node group 'middle' range position-z [-freeRegion] [freeRegion]
structure node group 'top' range position-z [freeRegion] [freeRegion+1]
structure node group 'bot' range position-z [-freeRegion-1] [-freeRegion]
structure shell group 'middle' range position-z [-freeRegion] [freeRegion]
structure shell property isotropic (1e6, 0.0) thick 0.25 density 930.0
;initialize the structural element related data structures 
model cycle 0
;In order to use the STRUCTURE SHELL APPLY command 
;set the local system of each structural
;element to be pointing to the center of the triaxial cell
fish define setLocalSystem
    loop foreach local s struct.node.list()
        local p = struct.node.pos(s)
        local nid = struct.node.id.component(s)
        local mvec = vector(0,0,comp.z(p))
        zdir = math.unit(p-mvec)
        ydir = vector(0,0,1)
        command
            structure node system-local z [zdir] y [ydir] ...
                      range component-id [nid]
        endcommand
    endloop
	command
	  structure node fix system-local
	endcommand
end
@setLocalSystem
;make sure that local damping is active for the structural elements
structure damp local
;fix the structural element nodes for specimen creation
structure node fix velocity rotation

为套筒和压板创建墙体

;create a wall representation of the structural element
wall-structure create
;parameter to set the platen width relative to the cylinder radius
[rad2 = rad*1.3]
;create the platens
wall generate name 'platenTop' polygon ([-rad2],[-rad2],[halfLen]) ...
                                       ([rad2],[-rad2],[halfLen])  ...
                                       ([rad2],[rad2],[halfLen])   ...
                                       ([-rad2],[rad2],[halfLen])
wall generate name 'platenBottom' polygon ([-rad2],[-rad2],[-halfLen]) ...
                                          ([rad2],[-rad2],[-halfLen])  ...
                                          ([rad2],[rad2],[-halfLen])   ...
                                          ([-rad2],[rad2],[-halfLen])
;set the wall resolution strategy to full and set the cutoff angle for 
;proximity contacts                                          
wall resolution full
wall attribute cutoff-angle 20

设置接触

;set the ball modulus and generate a cloud of balls with arbitrary overlap
[ballemod = 1.0e8]
ball distribute box [-rad] [rad] [-rad] [rad] [-halfLen] [halfLen] ...
                porosity 0.3 radius 0.05 0.1 ...
                range cylinder end-1 (0,0,[-halfLen]) end-2 (0,0,[height]) ...
                      radius [rad*0.95]

;set the ball attributes
ball attribute density 2600 damp 0.8
;set the default contact behavior - 
;the deformability method sets properties of the 
;linear portion of the contact model
contact cmat default model linearpbond method deformability ...
                   emod [ballemod] kratio 1.0 
;allow the balls to rearrange, 
;nulling the linear and angular velocities every 100 cycles
model cycle 1000 calm 100

;provide some friction to kill additional energy 
;and apply this to all of the contacts
contact cmat default model linearpbond method deformability ...
                   emod [ballemod] kratio 1.0 property fric 0.3
contact cmat apply
;solve to a small average ratio
model solve ratio-average 1e-8

;bond the ball-ball contacts
contact method bond gap 1.0e-2 range contact type 'ball-ball'
;change the existing contact properties 
;so that the linear force is incremental and
;supply strength
contact property lin_mode 1 lin_force 0 0 0 pb_ten 2e5 pb_coh 2e6
;set the stiffness of the parallel-bond portion of the contact model 
contact method pb_deformability emod [ballemod] kratio 1.0 ...
        range contact type 'ball-ball'

;this set of operations removes all ball velocities 
;and all contact forces in the model
;so that the specimen is completely stress free and bonded
model calm
ball fix velocity spin
model cycle 2
ball free velocity spin

;free the nodes in the middle section of the sleeve 
;while keeping the top and bottom edges fixed
structure node free velocity rotation range group 'middle'

监测应力应变

;define the stress FISH function to measure the stress and strain
fish define stress
    local topForce = math.abs(comp.z(wall.force.contact(platenTop))) 
    local botForce = math.abs(comp.z(wall.force.contact(platenBottom)))
    currentStress = 0.5*(topForce+botForce)/area
    stress = currentStress
    strain = (height - (comp.z(wall.pos(platenTop)) - ...
              comp.z(wall.pos(platenBottom))))/height * 100
    if failureStress <= currentStress
        failureStress = currentStress
        failureStrain = strain
    endif
end

设置停止条件

        一旦当前应力水平低于最大应力的85%,循环将停止。一个FISH函数可以用来终止循环,用模型解决fish-halt命令。一旦函数halt的返回值为1,循环将终止。

;define the halt FISH function to stop cycling 
;as the platens displace and the material fails
fish define halt
    halt = 0
    if currentStress < failureStress * 0.85
        halt = 1
    endif
end

利用FISH函数逐步增加压板和套筒的约束应力。此外,还使用了内置的壁面伺服机制,通过壁面伺服命令来提供压板上的应力。

;define a FISH function to increase the isotropic confining pressure 
;in increments so that the bonded material does not break during loading
fish define rampUp(beginIn,ending,increment)
    command
        ball attribute displacement (0,0,0)
        structure node initialize displacement (0,0,0)
    endcommand
    begin = beginIn
    loop while (math.abs(begin) < math.abs(ending))
        begin = begin + increment
        command
            ;apply the confining stress
            structure shell apply [begin] range group 'middle'
            ;apply the same confining stress on the platens
            wall servo force (0,0,[begin*area]) activate true ...
                 range name 'platenTop'
            wall servo force (0,0,[-begin*area]) activate true ...
                 range name 'platenBottom'
model cycle 200
            model calm
        endcommand
    endloop
    command
        ;once the stress state has been installed cycle and turn off the servo 
        ;mechanism on the walls
model cycle 1000
        wall servo activate false
        wall attribute velocity (0,0,0) range name 'platenTop'
        wall attribute velocity (0,0,0) range name 'platenBottom'
    endcommand
end

结果

与实际材料一样,峰值强度随着密闭度的增加而增加。此外,随着密闭度的增加,应力-应变曲线保持线性和相似的斜率。低密闭度下应力的轻微下降可归因于使用墙壁来测量应力和相对较少的球数。

 BPM在UCS测试中的应力应变反应以及断裂的接触键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目经历该如何写?

大家好&#xff0c;我是帅地。 这不春招来了吗&#xff0c;帮训练营的帅友们修改了很多简&#xff0c;其中问题最多的就是项目经历 专业技能这块了&#xff0c;特别是项目经历这块&#xff0c;很多人写了一大堆描述功能描述&#xff0c;但是自己具体干了什么却没怎么写&#…

研发工程师玩转Kubernetes——使用Deployment进行多副本维护

多副本维护是指&#xff0c;对一组在任何时候都处于运行状态的 Pod 副本的稳定集合进行维护。说的直白点&#xff0c;就是保证某种的Pod数量会被自动维持——增加了该类Pod会自动删除多余的&#xff0c;减少了该类Pod会自动新增以弥补&#xff0c;以保证Pod数量不变。 Kubernet…

day37_Tomcat_Maven

今日内容 一、Maven 二、Tomcat 一、Maven 1.1 引言 项目管理问题 项目中jar包资源越来越多&#xff0c;jar包的管理越来越沉重。 繁琐 要为每个项目手动导入所需的jar&#xff0c;需要搜集全部jar 复杂 项目中的jar如果需要版本升级&#xff0c;就需要再重新搜集jar 冗余 相…

基于Spring-动态调整线程池阻塞队列长度

最近在做一个动态线程池的组件&#xff0c;遇到了关于阻塞队列长度刷新的问题,所以记录下来&#xff0c;很有意思 我们都知道常用线程池分为二类&#xff0c;Spring-ThreadPoolTaskExecutor和JDK-ThreadPoolExecutor的&#xff0c;当然了Spring也是基于JDK做一步封装&#xff0…

​数据库原理及应用上机(实验四 SQL连接查询)

✨作者&#xff1a;命运之光 ✨专栏&#xff1a;数据库原理及应用上机实验 目录 ✨一、实验目的和要求 ✨二、实验内容及步骤 ✨三&#xff0e;实验结果 ✨四、实验总结 &#x1f353;&#x1f353;前言&#xff1a; 数据库原理及应用上机实验报告的一个简单整理后期还会不…

Zerto 10.0 发布 - 勒索软件防护、灾难恢复和多云移动性的统一解决方案

Zerto 10.0 发布 - 勒索软件防护、灾难恢复和多云移动性的统一解决方案 请访问原文链接&#xff1a;https://sysin.org/blog/zerto-10/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 携手 ZERTO 提升勒索软件保护与灾难恢复水…

Python异常处理

1. 异常概述 在程序运行过程中&#xff0c;经常会遇到各种错误&#xff0c;这些错误称为“异常”。这些异常有的是由于开发者一时疏忽将关键字敲错导致的&#xff0c;这类错误多数产生的是SyntaxError:invalid syntax&#xff08;无效的语法&#xff09;&#xff0c;这将直接导…

JVM笔记

Java中对象一定分配在堆空间上吗&#xff1f;判断一个对象是否还活着GCgc频繁 Java中对象一定分配在堆空间上吗&#xff1f; 逃逸分析&#xff1a;分析对象动态作用域&#xff0c;当一个对象在方法中被定义后&#xff0c;它可能被外部方法所引用&#xff0c;例如作为调用参数传…

Redis6.2.5安装布隆过滤器BloomFilter

最近学习需要用到布隆过滤器&#xff0c;所以去RedisLabsModules下载RedisBloom插件&#xff0c;简单介绍一下安装的过程&#xff0c;首先需要先安装好Redis&#xff0c;建议使用Redis6以上版本&#xff0c;Redis安装教程查看https://smilenicky.blog.csdn.net/article/details…

什么是客户自助服务门户及其搭建方法

随着信息技术的快速发展&#xff0c;越来越多的企业开始转向以客户为中心的服务模式&#xff0c;而客户自助服务门户&#xff08;Customer Self-Service Portal&#xff09;则成为了重要的服务方式。它可以让客户在不需要人工干预的情况下&#xff0c;自行解决问题&#xff0c;…

chatgpt赋能Python-python_ai建模

用Python构建AI模型&#xff1a;一步步解析 随着人工智能技术的发展和普及&#xff0c;越来越多的企业开始寻找高效可靠的AI建模技术来提高业务水平和竞争力。Python作为一种强大的编程语言和开发工具&#xff0c;在AI建模领域也扮演着重要的角色。本文将介绍Python AI建模的基…

chatgpt赋能Python-python_ai下载

Python AI 下载&#xff1a;实现自动化数据处理的利器 介绍 Python作为一种脚本语言&#xff0c;凭借其简洁灵活的语法、强大的库支持和生态系统&#xff0c;成为了今天最流行的编程语言之一。在人工智能领域&#xff0c;Python也是最常用的语言之一&#xff0c;因为它的开发…

18-04 数据库分布式架构

分布式ID UUID 优点&#xff1a; 使用简单无需引入额外组件 缺点 无序&#xff0c;无法实现范围查询插入操作比自增ID性能差不少&#xff08;大概四倍&#xff09;建议用自增ID&#xff08;表的主键&#xff09; UUID&#xff08;唯一标识&#xff09; Redis Incr指令优点…

Hudi系列23:常见问题

文章目录 一. 存储一直看不到数据二. 数据有重复三. NoSuchMethodError3.1 问题描述3.2 解决方案3.2.1 查看源码3.2.2 avro版本问题3.2.3 hudi-flink1.14-bundle jar包的问题 四. Merge On Read 写只有 log 文件4.1 问题描述4.2 解决方案1(测试未通过)4.2 解决方案2(测试通过:)…

[LitCTF 2023]Flag点击就送!(cookie伪造)

随便输一个名字 尝试admin 但是我们在cookie里找到了一些东西 session&#xff1a;"eyJuYW1lIjoiYWRtaW4ifQ.ZGs1vw.7ikpuOhUtXxyB2UV-FH7UGIZkaE" 想到session伪造 先说一下session的作用&#xff1a; 由于http协议是一个无状态的协议&#xff0c;也就是说同一个用…

chatgpt赋能Python-pythonseries访问元素

Python Series: 访问元素 在Python中&#xff0c;我们可以使用列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;和字典&#xff08;Dictionary&#xff09;等可迭代对象存储和处理数据。在处理这些可迭代对象时&#xff0c;我们经常需要对它们的元素进行…

【WSN覆盖】基于麻雀搜索算法的二维混合无线传感器网络覆盖优化 WSN覆盖空洞修复【Matlab代码#24】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. SSA算法2. WSN节点感知模型3. 混合WSN覆盖优化4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 1. SSA算法 网上…

数字逻辑(计科专业)

半加器 用与非门实现 全加器 编码器 编码就是将信息装换成独特的代码或信号输出的电路 普通编码器&#xff1a;任何时候只允许输入一个有效编码信号&#xff0c;否则输出就会发生混乱。 优先编码器&#xff1a;允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信…

【算法学习系列】05 - 对数器的说明与使用

文章目录 对数器说明对数器使用创建随机样本生成器实现 isSorted(int[] arr) 函数验证排序正确性实现选择排序算法进行大样本随机测试验证算法正确性 总结 对数器说明 在算法领域中&#xff0c;对数器指的是一个用于测试算法正确性的工具。对于一个需要被测试的算法A&#xff0…

Redis分片集群搭建及其原理

Redis分片集群搭建及其原理 1.Redis分片集群1.1.搭建分片集群1.2.准备实例和配置1.3.启动1.4.创建集群1.5.测试 2.散列插槽原理2.1.插槽原理2.2.小结 3.集群伸缩3.1.需求分析3.2.创建新的redis实例3.3.添加新节点到redis3.4.转移插槽 4.故障转移4.1.自动故障转移4.2.手动故障转…