Hi,
I need to solve a system of 3 PDE and neumann boundary conditions with FEniCS
but i have some problem.
This is a piece of my code:
“V = FunctionSpace (mesh, 'CG',1)
W = MixedFunctionSpace ([V,V,V])
# Trial function and test function
U = Function(W)
u0 = Function (W)
dU = TrialFunction(W)
v1, v2, v3 = TestFunctions (W)
# Split mixed function
(dg,dm,dw) = split(dU)
(g,m,w) = split(U)
(g_0,m_0,w_0) = split(u0)
g_0 = Expression('c', c=Constant(0.0), cell = tetrahedron)
m_0 = Expression('c', c=Constant(0.0), cell = tetrahedron)
w_0 = Expression('c', c=Constant(0.0), cell = tetrahedron)
F1 = g*v1*dx +
A*inner(nabla_grad(g),nabla_grad(v1))*dx-B*g*(1-(g+m)/Tm)*v1*dx-C*g*inner(nabla_grad(w),nabla_grad(v1))*v1*dx
+ \
- (g_0*v1*dx - A*inner(nabla_grad(g_0),nabla_grad(v1))*dx +
B*g_0*(1-((g_0+m_0)/Tm))*v1*dx+
C*g_0*inner(nabla_grad(g_0),nabla_grad(v1))*v1*dx)
F2 = m*v2*dx + Am * inner(nabla_grad(m),nabla_grad(v2))*dx +
C*g*inner(nabla_grad(w),nabla_grad(v2))*dx + \
- (m_0*v2*dx -Am*inner(nabla_grad(m_0),nabla_grad(v2))*dx -
C*g_0*inner(nabla_grad(w_0),nabla_grad(v2))*dx)
F3 = w*v3*dx + D*w*((g+w)/(theta + g+ w))*v3*dx + \
- (w_0*v3*dx - D*w_0*((g_0+w_0)/(theta + g_0 + w_0))*v3*dx)
F = F1 + F2 + F3
dF = derivative(F,U,dU)
problem = NonlinearVariationalProblem(F, U, J=dF)
pdesys_newton = NonlinearVariationalSolver(problem) “
When I run it, I receive this message error:
"Traceback (most recent call last):
File "gbm_sys.py", line 56, in <module>
problem = NonlinearVariationalProblem(F, U)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/dolfin/fem/solving.py",
line 117, in __init__
F = Form(F, form_compiler_parameters=form_compiler_parameters)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/dolfin/fem/form.py",
line 70, in __init__
mpi_comm=mesh.mpi_comm())
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/dolfin/compilemodules/jit.py",
line 64, in mpi_jit
return local_jit(*args, **kwargs)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/dolfin/compilemodules/jit.py",
line 128, in jit
return form_compiler.jit(form, parameters=p)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/jitcompiler.py",
line 74, in jit
return jit_form(ufl_object, parameters)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/jitcompiler.py",
line 130, in jit_form
parameters=parameters)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/compiler.py",
line 151, in compile_form
analysis = analyze_forms(forms, parameters)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/analysis.py",
line 59, in analyze_forms
parameters) for form in forms)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/analysis.py",
line 59, in <genexpr>
parameters) for form in forms)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ffc/analysis.py",
line 132, in _analyze_form
form_data = compute_form_data(form)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/algorithms/compute_form_data.py",
line 304, in compute_form_data
check_form_arity(preprocessed_form, form.arguments()) # Currently testing
how fast this is
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/algorithms/check_arities.py",
line 123, in check_form_arity
check_integrand_arity(itg.integrand(), arguments)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/algorithms/check_arities.py",
line 117, in check_integrand_arity
args = map_expr_dag(rules, expr, compress=False)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/corealg/map_dag.py",
line 67, in map_expr_dag
r = function(v, *rops)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/corealg/multifunction.py",
line 72, in __call__
return self._handlers[o._ufl_typecode_](o, *args)
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/algorithms/check_arities.py",
line 54, in product
raise ArityMismatch("Multiplying expressions with overlapping form argument
number {0}, argument is {1}.".format(x.number(), x))
ufl.algorithms.check_arities.ArityMismatch: Multiplying expressions with
overlapping form argument number 0, argument is v_0.”
I don’t know very well the function NonlinearVariationalProblem and
NonlinearVariationalSolver, and I think there’s a syntax error.
How can I resolve my problem or where can I see the instruction to solve a
system of PDE in FEniCS?
Thanks.
King regards,
Valentina S._______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support