我試圖運行用C++編寫的代碼,它應該與我在Python中使用的代碼相同。他們都使用Fenics。如何將Python轉換爲C++?
我的問題是,我不能將Python類翻譯成C++類。
例如,我的Python代碼是:
V = VectorFunctionSpace(mesh, "Lagrange", 1)
u = Function(V)
En = 5*dx - dot(3, u)*ds(2)
def f(self, x):
u.vector()[:] = x
return assemble(En)
的這裏的問題是,編譯器不能找到恩,因爲它沒有定義在類內部。
我的C++代碼:
double f(const GenericVector& x)
{
u.vector() = x;
return assemble(F);
}
int main()
{
//...things that apparently work...
Function u(Vh);
MyClass::BilinearForm F;
}
我怎樣才能解決這個問題?
它怎麼能夠找到'u'? – ballsatballsdotballs
Python片段中也沒有定義'u'和'En'。請給出一個[最小完整的可驗證示例](http://stackoverflow.com/help/mcve)。 –
不是。這是另一個編譯器錯誤。 'En'和'u'在main中定義,我不能將它們傳遞給類,因爲f是具有固定簽名的虛擬方法。 –