mathing 发表于 2006-11-10 22:51:51

关于用solve elas命令进行应力初始化的疑问

用solve elas进行应力初始化,软件会分两步计算:1.弹性计算,2.强度参数还原为初始值,重新用m-c模型计算。问题是既然是应力初始化,第一步就可以了,为什么还要进行第二步计算,而且第二步计算后可能会出现部分屈服。

benjackxu 发表于 2006-11-10 23:01:15

solve elas目前只针对M-C模型有用,手册上说得很明白。第一步计算时,c和ten调到很大,计算平衡后,随即将c和ten调回原值,进行下一步的计算,肯定会出现塑性屈服啦。

mathing 发表于 2006-11-10 23:54:16

对于m-c模型考虑这两种应力初始化方法:
1. 先用model elas,然后solve ,将位移归零,再model mohr,并使用实际参数,再进行开挖等其它操作。则在第一个solve后,不会出现屈服,因为使用的是model elas
2.直接model mohr,使用实际强度参数,然后solve elas,再将位移归零,然后再进行开挖等其它操作。则在solve elas后可能会出现屈服。因为使用solve elas命令,软件会自动连续进行两步计算。
第一种应力初始化后不会出现屈服,而第二种应力初始化方法可能会出现屈服。
这么理解这种问题?

benjackxu 发表于 2006-11-10 23:56:47

因为在初始状态下,可能有些区域本身就已经达到了屈服!

mathing 发表于 2006-11-11 00:07:14

这两种方法会出现两种不同的结果,那么应该使用哪种应力初始化方法呢?
而且手册中提到可以用第一种方法进行应力初始化,那么solve elas命令该怎么理解,因为solve elas的第一步可以说已经完成了应力初始化(与第一种应力初始化方法类似,都是使用弹性求解),这个命令的第二步计算是什么道理?为什么要有这个第二步?

[ 本帖最后由 mathing 于 2006-11-11 00:13 编辑 ]

benjackxu 发表于 2006-11-11 00:20:23

这个大概是程序的设置问题吧,可能进行第二步能更好的得到符合实际的初始应力状态吧?希望有明白的能现身说法。

elite1218 发表于 2006-11-11 14:40:29

我觉得用melas 来初始化应力更好理解一些
用mm 模型,再solve elas 确实要分两步计算,等弹性计算完成之后继续进行塑性部分的计算,出现部分塑性区是正常的,但是有时候甚至会出现计算不能收敛的情况。应力初始化出现这种情况,确实不好理解。所以我觉得通过弹塑性来初始化应力应该把参数调大,尤其是c值和t值,在sovle之后再调回原始参数,继续solve求解初始应力。

mathing 发表于 2006-11-22 11:39:19

顶上去                   :D:D

benjackxu 发表于 2006-11-22 12:02:08

个人感觉,应力初始化的方法并没有惟一解。举个简单例子,对一个体系,取一对方向完全相反的力,可以达到平衡,力的大小取1或者100、1000KN都是一样的。对于岩土体,当然,这样产生的应力分布可能会不同。关键的,位移(速度)要归零。

freddie_1999 发表于 2006-11-22 12:50:36

建立初始应力场得方法:
1.设定为m-c模型,使用solve elas
2.设定为m-c模型,但加大屈服参数的量级
3.设定为弹性模型,按照弹性计算。

我一般用第一种方法,前面已经说过该方法执行两步计算,首先程序自动强化屈服参数,执行一次弹性计算,然后修正屈服参数为原始值,进行一步M-C模型计算。事实上,如果第一步已经迭代平衡,那么在第二步计算中,模型的最大不平衡力已经满足收敛条件,一般情况下第二步计算只迭代一步就可收敛,也不会出现有塑性区的问题。

mathing 发表于 2006-11-22 13:27:06

原帖由 freddie_1999 于 2006-11-22 12:50 发表
我一般用第一种方法,前面已经说过该方法执行两步计算,首先程序自动强化屈服参数,执行一次弹性计算,然后修正屈服参数为原始值,进行一步M-C模型计算。事实上,如果第一步已经迭代平衡,那么在第二步计算中,模型的最大不平衡力已经满足收敛条件,一般情况下第二步计算只迭代一步就可收敛,也不会出现有塑性区的问题。



考虑下面一个简单例子,进行应力初始化

new
config
grid 50 20
model mohr
gen 0 0 0 13 50 20 50 0
prop d=2000 b=3e7 s=1e7 c=1e4 f=10
fix x i 1
fix x i 51
fix x y j 1
set grav 10
solve elas

结果如图所示,塑性图中出现较大部分的屈服(红色部分),
而用model elas等方法进行应力初始化则不会出现屈服。
这两种应力初始化的结果对后续计算会有不同的影响结果
:'(:'(:'(

[ 本帖最后由 mathing 于 2006-11-22 13:33 编辑 ]

mathing 发表于 2006-11-22 13:29:33

原帖由 benjackxu 于 2006-11-22 12:02 发表
..........这样产生的应力分布可能会不同。关键的, ...

初始应力的分布不同,后续计算应该会出现不同的结果

elite1218 发表于 2006-11-22 13:31:17

可是我在算一个边坡模型的时候,当第一步弹性计算完成后,第二步运行了2000多步还没平衡呢?还请freddie_1999 版主指教啊
后来没办法,当弹性计算完后手动终止了计算。

[ 本帖最后由 elite1218 于 2006-11-22 13:37 编辑 ]

mathing 发表于 2006-11-22 13:46:15

原帖由 elite1218 于 2006-11-22 13:31 发表
可是我在算一个边坡模型的时候,当第一步弹性计算完成后,第二步运行了2000多步还没平衡呢?还请freddie_1999 版主指教啊
后来没办法,当弹性计算完后手动终止了计算。


这可能是由于那个边坡本来就是不稳定的,应此计算无法平衡。
但即使是稳定的斜坡,如我上面的例子,用solve fos计算的安全系数大于1,但
应力初始化仍然会出现较大部分的屈服。

[ 本帖最后由 mathing 于 2006-11-22 13:50 编辑 ]

elite1218 发表于 2006-11-22 14:00:41

哈哈,边坡肯定是稳定的,只是其他方法算完之后应力场有些不对

chunhuo420 发表于 2006-12-5 20:40:23

原帖由 freddie_1999 于 2006-11-22 12:50 发表
建立初始应力场得方法:
1.设定为m-c模型,使用solve elas
2.设定为m-c模型,但加大屈服参数的量级
3.设定为弹性模型,按照弹性计算。

我一般用第一种方法,前面已经说过该方法执行两步计算,首先程序自动强 ...


如果第一步已经迭代平衡,那么在第二步计算中,模型的最大不平衡力已经满足收敛条件,一般情况下第二步计算只迭代一步就可收敛,也不会出现有塑性区的问题

第一步计算完毕后,参数要调回原始参数,此时的参数将增加处于塑性区的单元,不平衡力变得无法满足精度要求,所以大部分情况下计算完第一步后还要进行第二步的计算,而且步数不会少。

sunston 发表于 2006-12-6 09:07:24

如果第一步已经迭代平衡,那么在第二步计算中,模型的最大不平衡力已经满足收敛条件,一般情况下第二步计算只迭代一步就可收敛,也不会出现有塑性区的问题
第一步计算完毕后,参数要调回原始参数,此时的参数将增加处于塑性区的单元,不平衡力变得无法满足精度要求,所以大部分情况下计算完第一步后还要进行第二步的计算,而且步数不会少

能否举例说明一下呀。

chunhuo420 发表于 2006-12-6 09:09:15

呵呵。你找个算例算一下就知道了。。。                  1

benjackxu 发表于 2006-12-6 09:11:39

建个简单模型一试便知,可参阅此帖。
http://www.simwe.com/forum/viewthread.php?tid=732925&highlight=solve%2Bela

柠檬咖啡 发表于 2007-10-29 11:08:02

benjackxu (君之枫) 对你真是很佩服!!
页: [1] 2
查看完整版本: 关于用solve elas命令进行应力初始化的疑问