将 DirichletBC 传递给 BoundaryCondition 向量

Passing a DirichletBC to a BoundaryCondition vector

我正在使用 FEniCS 包来做一些 FEM。我正在尝试将 DirichletBC 实例推入 const BoundaryCondition* 类型的向量中。目前我有

std::vector<const BoundaryCondition*> bcs;
DirichletBC bcl(V0, c, left);
bcs.push_back(&bcl)

尽管这是在我见过的示例中完成的,但我收到了错误

no matching function for call to
std::vector<const dolfin::BoundaryCondition*>::push_back(dolfin::DirichletBC&)

查看 dolfin 库文件后,我看到一个 SWIG typemap .i 文件似乎允许这种行为,我是在使用它,还是错过了什么?

我不知道为什么我花了这么长时间才尝试制作 DirichletBC* 类型的向量。现在我有

std::vector<const DirichletBC*> bcs; DirichletBC bcl(V0, c, left); bcs.push_back(&bcl)

而且效果很好。