Hi, I’m new with fenics, working with version 2019.1.0
I encountered a problem while using Raviart-Thomas Finite Elements. Here is my code :
from __future__ import print_function
from fenics import *
from mshr import *
domain = Rectangle(Point(-0.05,-0.05),Point(0.10,0.10))
mesh = generate_mesh(domain,30)
P2 = VectorElement('RT', mesh.ufl_cell(), 3)
P1 = FiniteElement('RT', mesh.ufl_cell(), 3)
element = MixedElement([P2, P1])
V = FunctionSpace(mesh, element)
class InitialConditions(UserExpression):
def eval(self, values, x):
values[0] = 0
values[1] = 0
values[2] =0.2*exp(-pow(x[0],2)-pow(x[1],2))
def value_shape(self):
return (3,)
w0 = InitialConditions(V.ufl_element())
wn = interpolate(w0, V)
un, hn = split(wn)
And the error message i get :
>>> runfile('/home/chrx/shallow_water.py', wdir='/home/chrx')
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
execfile(filename, namespace)
File "/usr/lib/python3/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 88, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "/home/chrx/shallow_water.py", line 41, in
wn = interpolate(w0, V)
File "/usr/lib/python3/dist-packages/dolfin/fem/interpolation.py", line 71, in interpolate
Pv.interpolate(v._cpp_object)
File "/usr/lib/python3/dist-packages/dolfin/function/function.py", line 365, in interpolate
self._cpp_object.interpolate(u)
RuntimeError:
*** -------------------------------------------------------------------------
*** DOLFIN encountered an error. If you are not able to resolve this issue
*** using the information listed below, you can ask for help at
***
*** fenics-support@googlegroups.com
***
*** Remember to include the error message listed below and, if possible,
*** include a *minimal* running example to reproduce the error.
***
*** -------------------------------------------------------------------------
*** Error: Unable to interpolate function into function space.
*** Reason: Dimension 0 of function (3) does not match dimension 0 of function space (6).
*** Where: This error was encountered inside FunctionSpace.cpp.
*** Process: 0
***
*** DOLFIN version: 2019.1.0
*** Git changeset: unknown
*** -------------------------------------------------------------------------
Obviously, the error concerns the definition of the initial condition but I can’t figure out what is the problem since it was perfectly working when I was using Lagrange Elements.
I also tried defining the initial condition other way like for exemple :
w0 = Expression(('(0,0)','0.2*exp(-pow(x[0],2)-pow(x[1],2))'), V.ufl_element())
so as to respect the function space dimensions, but it didn’t work either.
Could someone help me with this issue ?