← Back to team overview

fenics team mailing list archive

pde.solve() command parameters

 

Hi.

I am trying to use fenics to solve a 2D elasticity problem.  I have written
and compiled a .form file using ffc with no problem.  However, when I try to
compile the main.cpp file that I've written, I get this error message:

main.cpp: In function 'int main(int, char**)':
main.cpp:177: error: no matching function for call to
'dolfin::LinearPDE::solve(dolfin::Function&, dolfin::Function&,
dolfin::Function&, dolfin::Function&)'
/home/grad/chabaud/local/include/dolfin/pde/LinearPDE.h:53: note:
candidates are: void dolfin::LinearPDE::solve(dolfin::Function&)
/home/grad/chabaud/local/include/dolfin/pde/LinearPDE.h:56: note: void
dolfin::LinearPDE::solve(dolfin::Function&, dolfin::Function&)
/home/grad/chabaud/local/include/dolfin/pde/LinearPDE.h:59: note: void
dolfin::LinearPDE::solve(dolfin::Function&, dolfin::Function&,
dolfin::Function&)
scons: *** [main.o] Error 1
scons: building terminated because of errors.
The offending line in my cpp file seems to be

pde.solve(sigma,u,p,epsilon);

The lines immediately above it are

// Set up PDE
SolidBilinearForm a(n);
SolidLinearForm L(f1,g,u_prev,eps_prev,u0,F,uD,n);
LinearPDE pde(a,L,mesh);

// Solve PDE
Function u;
Function epsilon;
Function sigma;
Function p;

The solutions u, epsilon, sigma, p to the problem are defined in my .form
file by

Element1 = VectorElement("Discontinuous Lagrange", "triangle", 0, 4)

Element2 = VectorElement("Discontinuous Lagrange", "triangle", 0, 4)

Element3 = VectorElement("Discontinuous Lagrange", "triangle", 0)

Element4 = FiniteElement("Discontinuous Lagrange", "triangle", 0)

combo = MixedElement([Element1, Element3, Element4, Element2])

(z, v, q, w) = TestFunctions(combo)

(sigma, u, p, epsilon) = TrialFunctions(combo)

Do anyone know how to fix this error? Thanks.

Follow ups