我使用Pyomo工具箱来求解一个偏微分方程,并且一个自变量(例如m.x)的区域长度非常小(比如1e-6)。
在我看来,DAE工具箱不能适当地对域进行离散,因为离散的m.x只有两个点(我使用ContinuousSet.get_finite_elements()方法来检查),即使我在选项中指定了10个有限元点(参见下面的代码)。
m.x = ContinuousSet(bounds=(0, 1e-6))
disc=TransformationFactory('dae.finite_difference')
disc.apply_to(m, nfe=10, wrt=m.x, scheme='BACKWARD')
我将m.x的上限增加为
m.x = ContinuousSet(bounds=(0, 1e-5))
并试图再次谨慎行事。这一次我在x域得到10分。
但是,当我增加有限元点的数量时,
m.x = ContinuousSet(bounds=(0, 1e-5))
disc.apply_to(m, nfe=100, wrt=m.x, scheme='BACKWARD')
返回的离散域x仍然有10分。
我想知道是否有一个1e-6容忍或限制DAE工具箱。如果有,我如何自定义这个值?
提前谢谢你!
https://stackoverflow.com/questions/45760414
复制相似问题