1 引言
PFC使用牛顿运动定律的显式动态解来解决离散系统的时间演化。通过执行一系列的计算循环{model cycle n }来推进模型状态。每个循环由一系列的操作组成,称为循环序列。本部分描述执行一系列循环的过程,包括自定义标准来终止一系列基于当前模型状态的循环 {model solve ratio-average 1e-5}以及循环序列的终止。
2 执行循环
PFC 使用两个命令启动程序的循环: model cycle 和 model solve. 循环一直持续到达到一个或多个求解限定值为止。
(1) model cycle
当使用model cycle 命令时,只有一个限定值,那就是输入的循环次数 i , 其中i是最新的时步数或循环数. 也可以使用 model step命令, 作用相同. 这个命令等效于model solve cycles i 命令. 除非按Shift Esc键中断计算,否则会执行i个时间步长,这将终止循环,退出当前数据文件(以及可能用于调用它的各级嵌套数据文件),并在当前步长完成后返回输入到命令提示符。可选的关键字calm用来在力学处理过程中每i2个循环将线性和角速度重置为零。
(2) model solve
另一方面,当使用model solve命令时,可以同时指定多个求解限制值。当至少一个限制值被满足时,循环就会终止, 通常会导致模型处于平衡状态。除非使用and关键字,在这种情况下,必须在循环停止之前满足所有准则。PFC中内置了许多求解限制。此外,一个或多个FISH函数可以被指定为限制条件,允许自定义循环终止准则。model solve可以带如下的关键字, 一些典型的用法如下所示.
model solve ratio-average 5e-2 calm 1000
model solve time-total 2.0
model solve time 2.0
model solve time [3.5*(l/cp)] fish-call 1.0 @pulse
model solve fish-halt @halt cycles 1000000
model solve fish-halt @halt cycles 100 and
model solve fish-call 1.0 @servo_domain ...
fish-halt @servo_halt ...
ratio-average 1e-3 ...
cycles 100 and
在初始化阶段,创建/删除接触,循环过程中使用的变量被重置,并检查在循环可以开始之前模型状态的有效性。例如,如果任何balls或clumps的质量为零循环就不能开始,因为这将导致结果不确定。在每个计算循环中,都会执行循环序列的操作。在计算周期完成后即检查限制值,如果有一个或多个限制值被满足或超过,则循环终止。如果沒有滿足限制值,则执行下一个循环。在最终阶段,创建/删除接触,并更新需要验证的数据结构,以确在将交互式控制台返回给用户进一步输入之前保模型状态一致。
注意,可以从The Editor Pane 编辑器窗格的工具栏中,或者在循环时按下Shift Esc组合键终止循环。如果要求手动循环终止,那么当前的计算周期将被完成,并在将控制权返回给用户之前执行最终确定阶段。
3 循环序列
循环序列(cycle sequence)是指在一个PFC计算循环内执行的操作序列。循环序列由一组有序的操作组成,每个操作都有一个浮点数对应着它,称为循环点(cycle point)。下表列出了具体操作和相关的循环点。
这些操作包括:
(1) 确定时步 {0.0}---PFC需要一个有效的、有限的时间步长,以确保模型的数值稳定性,并且在相互作用的力/力矩发展之前,所有分量之间都会产生接触,包括ball-ball、ball-pebble、pebble-pebble、ball-facet和pebble-facet。
(2) 运动定律 {10.0}---根据牛顿运动定律,利用当前的时间步长和上一个循环计算出的力/力矩,更新每个body/piece的位置和速度。
(3) 推进时间 {20.0}---通过将当前时间步长添加到之前的模型时间来推进模型时间。
(4) 接触检测 {35.0}---根据当前的piece的位置动态地创建/删除接触。
(5) 力-位移法定律 {40.0}---每个接触点的力/力矩都会被相应的接触点模型使用当前piece的状态更新。
该系统的引入是为了便于在循环序列中增加额外的操作。此外,循环点允许简单地识别循环序列操作,这样就可以通过fish callback命令在一个循环中的各个点上按照严格的顺序插入fish回调命令来执行。安装callback时,不能将循环点与任何预定义的循环点完全相等。同样需要注意的是,不能在循环点40.0和42.0之间安装callback,用户只能在循环点0.0之前使用callback创建/销毁模型分量。这些限制是为了保护用户不引入可能导致未定义行为的callback。例如,如果用户在确定了时步后后创建了一个ball,那么新形成的与这个ball的接触将不会被用来确定稳定的时步。由此产生的力和力矩可能会在下一个循环中产生系统的不稳定性。
参考文档:
PFC模型建立机制
PFC 之 attribute & property
离散断裂网络(DFN)[P3]: fracture contact-model
PFC 概述 (翻译)
Data Mining---岩土工程的数据挖掘