我正在使用Pyomo DAE工具箱来求解偏微分方程,并且一个自变量(比如m.x)的域长度非常小(如1e-6)。
在我看来,DAE工具箱不能适当地离散域,因为离散化的mx只有2个点(我使用了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个点。
我想知道DAE工具箱是否存在1e-6容差或限制。如果有,我该如何自定义此值?
提前谢谢!