← Back to team overview

ufl team mailing list archive

Re: [Question #227431]: UFL Exception : Found argument in Power(...)

 

Question #227431 on UFL changed:
https://answers.launchpad.net/ufl/+question/227431

Jan Blechta proposed the following answer:
On Thu, 25 Apr 2013 09:06:39 -0000
imranal <question227431@xxxxxxxxxxxxxxxxxxxxx> wrote:
> New question #227431 on FEniCS Project:
> https://answers.launchpad.net/fenics/+question/227431
> 
> My question is as following : What does this error message tell me?
> (Error message has been added after the code.)
> 
> I was trying to solve the nonlinear Falkner-Skan equation through the
> following code :
> 
> """
> We solve the non-linear differential equation :
> 
> f''' + f*f'' + beta*(1 - (f')^2) = 0,
> 
> beta = 2*m/(1+m)
> 
> with the boundary conditions :
> 
> f'(0) = f(0) = 0, f'(inf) = 1,
> 
> also known as the Falkner-Skan equation. 
> 
> This is a generalization of the Blasius boundary layer f,g
> by considering a wedge at an angle of attack beta from 
> uniform velocity U.
> 
> The outer flow is of the form :
> 
> u_e(x) = U(x/L)^m
> """
> 
> from dolfin import *
> 
> N = 50
> beta = Constant(2)
> n = Constant(7) # value of "infinity"
> 
> mesh = UnitInterval(N)
> V = FunctionSpace(mesh,"CG",2)
> VV = V*V
> gh = TrialFunction(VV)
> g,h = split(gh)
> vg,vh = TestFunctions(VV)
> 
> def left(x,on_boundary):
>     return on_boundary and near(x[0],0)
> def right(x,on_boundary):
>     return on_boundary and near(x[0],1)
>     
> bc0 = DirichletBC(VV.sub(0), 0, left)
> bc1 = DirichletBC(VV.sub(1), 0, left)
> bc2 = DirichletBC(VV.sub(1), 1, right)
> bcs = [bc0,bc1,bc2]
>     
> gh_ = Function(VV)
> a = (-h.dx(0)*vh - n*n*h*g*vh + n*n*beta*(1 - h*h)*vg)*dx # Weak

Clearly this is not bilinear form. You need to solve it as nonlinear
problem - by Newton solver, SNES solver or Picard (fixed-point)
iteration.

> fomulation L = Constant(0)*vg*dx
> A,b = assemble_system(a,L,bcs)
> 
> The final line produces the following error message :
> 
> $ python falk_skan_solver.py
> Traceback (most recent call last):
>   File "falk_skan_solver.py", line 49, in <module>
>     A,b = Assemble(a,L,bcs)
> NameError: name 'Assemble' is not defined
> crackhead@Crack:~/Programming/mek4300/mek4300_assignment/assignment2$
> python falk_skan_solver.py Calling FFC just-in-time (JIT) compiler,
> this may take some time. Found Argument in
> Power(Indexed(Argument(MixedElement(*[FiniteElement('Lagrange',
> Cell('interval', Space(1)), 2, None), FiniteElement('Lagrange',
> Cell('interval', Space(1)), 2, None)], **{'value_shape': (2,) }), 1),
> MultiIndex((FixedIndex(1),), {})), IntValue(2, (), (), {})), this is
> an invalid expression. Traceback (most recent call last): File
> "falk_skan_solver.py", line 49, in <module> A,b =
> assemble_system(a,L,bcs) File
> "/usr/lib/python2.7/dist-packages/dolfin/fem/assembling.py", line
> 248, in assemble_system subdomains, form_compiler_parameters) File
> "/usr/lib/python2.7/dist-packages/dolfin/fem/form.py", line 54, in
> __init__ common_cell) File
> "/usr/lib/python2.7/dist-packages/dolfin/compilemodules/jit.py", line
> 66, in mpi_jit return local_jit(*args, **kwargs) File
> "/usr/lib/python2.7/dist-packages/dolfin/compilemodules/jit.py", line
> 154, in jit return jit_compile(form, parameters=p,
> common_cell=common_cell) File
> "/usr/lib/python2.7/dist-packages/ffc/jitcompiler.py", line 73, in
> jit return jit_form(ufl_object, parameters, common_cell) File
> "/usr/lib/python2.7/dist-packages/ffc/jitcompiler.py", line 130, in
> jit_form common_cell=common_cell) File
> "/usr/lib/python2.7/dist-packages/ffc/compiler.py", line 150, in
> compile_form analysis = analyze_forms(forms, object_names,
> parameters, common_cell) File
> "/usr/lib/python2.7/dist-packages/ffc/analysis.py", line 64, in
> analyze_forms common_cell) for form in forms) File
> "/usr/lib/python2.7/dist-packages/ffc/analysis.py", line 64, in
> <genexpr> common_cell) for form in forms) File
> "/usr/lib/python2.7/dist-packages/ffc/analysis.py", line 151, in
> _analyze_form ffc_assert(len(compute_form_arities(preprocessed_form))
> == 1, File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 332, in compute_form_arities parts =
> compute_form_with_arity(form, arity) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 317, in compute_form_with_arity res = transform_integrands(form,
> _transform) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 837, in transform_integrands integrand =
> transform(itg.integrand()) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 313, in _transform e, provides = pe.visit(e) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 160, in visit r = h(o) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 138, in sum part, term_provides = self.visit(term) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 156, in visit r = h(o, *map(self.visit, o.operands())) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 156, in visit r = h(o, *map(self.visit, o.operands())) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 160, in visit r = h(o) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 138, in sum part, term_provides = self.visit(term) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 156, in visit r = h(o, *map(self.visit, o.operands())) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/transformations.py",
> line 160, in visit r = h(o) File
> "/usr/lib/python2.7/dist-packages/ufl/algorithms/formtransformations.py",
> line 68, in expr error("Found Argument in %s, this is an invalid
> expression." % repr(x)) File
> "/usr/lib/python2.7/dist-packages/ufl/log.py", line 148, in error
> raise self._exception_type(self._format_raw(*message))
> ufl.log.UFLException: Found Argument in
> Power(Indexed(Argument(MixedElement(*[FiniteElement('Lagrange',
> Cell('interval', Space(1)), 2, None), FiniteElement('Lagrange',
> Cell('interval', Space(1)), 2, None)], **{'value_shape': (2,) }), 1),
> MultiIndex((FixedIndex(1),), {})), IntValue(2, (), (), {})), this is
> an invalid expression.
>

-- 
You received this question notification because you are a member of UFL
Team, which is an answer contact for UFL.


References