J'essaye d'exécuter un code écrit en C++ qui devrait être le même que celui que j'ai en Python. Ils utilisent tous les deux Fenics.Comment convertir un Python en C++?
Mon problème est que je ne peux pas traduire une classe Python dans une classe C++.
Par exemple, mon code Python est:
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)
Le problème ici est que le compilateur ne peut pas trouver En car il n'est pas défini à l'intérieur de la classe.
Mon C++ Code:
double f(const GenericVector& x)
{
u.vector() = x;
return assemble(F);
}
int main()
{
//...things that apparently work...
Function u(Vh);
MyClass::BilinearForm F;
}
Comment puis-je résoudre ce problème?
Comment peut-il trouver «u»? – ballsatballsdotballs
Ni 'u' ni' En' ne sont définis dans le fragment Python. Veuillez donner un [exemple vérifiable complet minimal] (http://stackoverflow.com/help/mcve). –
Ce n'est pas le cas. C'est une autre erreur de compilateur. 'En' et' u' sont définis dans le main et je ne peux pas les passer à la classe car f est une méthode virtuelle avec une signature fixe. –