On Fri, 15 May 2015 15:07:32 +0200
Valentina <[email protected]> wrote:

> 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)
                                         ^^   ^^
This term is quadratic in test function. It must be linear form, i.e.
linear in test function.

Jan

> 
> 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

Reply via email to