Yes, of course.
I use Dolfin 1.5 on a Mac 10.10 Yosemite.
The complete code is:
##################################
from dolfin import *
import sys,os
os.system('dolfin-convert brain.1.mesh brain.xml')
mesh = Mesh ("brain.xml")
dt = 1 #day
rho = 0.02 #day^(-1)
theta = 100 #cells mm^(-2)
Dg = 0.002 #mm^2 * day^(-1)
alpha = 0.025 #day^(-1)
Ki = 0.25 #mm^(-1)
Tm = 10000 #cells mm^(-2)
Dm = 0.10 #mm^2 / day
tf = 360 #day
A = dt*0.5*Dg
B = alpha*dt*0.5
C = dt*Ki*0.5
Am = 0.5*dt*Dm
D = 0.5*dt*rho
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))*dx
+ \
- (g_0*v1*dx - A*inner(nabla_grad(g_0),nabla_grad(v1))*dx +
B*g_0*(1-((g_0+m_0)/Tm))*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)
######################################################
and the complete error message is:
Traceback (most recent call last):
File "gbm_sys.py", line 56, in <module>
problem = NonlinearVariationalProblem(F, U, J=dF)
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 58, in __init__
sd = form.subdomain_data()
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/form.py",
line 169, in subdomain_data
self._analyze_subdomain_data()
File
"/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/form.py",
line 327, in _analyze_subdomain_data
data = subdomain_data[domain].get(it)
KeyError: Domain(Cell('tetrahedron', 3), label=None, data=None)
Valentina
> Il giorno 15/mag/2015, alle ore 15:46, Jan Blechta
> <[email protected]> ha scritto:
>
> On Fri, 15 May 2015 15:24:49 +0200
> Valentina <[email protected] <mailto:[email protected]>> wrote:
>
>> Right, thanks.
>>
>>>> B*g_0*(1-((g_0+m_0)/Tm))*v1*dx+
>>>> C*g_0*inner(nabla_grad(g_0),nabla_grad(v1))*v1*dx)
>>
>> I remove that error, but I receive a new kind of error:
>
> Can you post the complete code reproducing the error and report FEniCS
> version used?
>
> Jan
>
>>
>> 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 58, in __init__ sd = form.subdomain_data() File
>> "/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/form.py",
>> line 169, in subdomain_data self._analyze_subdomain_data() File
>> "/Applications/FEniCS.app/Contents/Resources/lib/python2.7/site-packages/ufl/form.py",
>> line 327, in _analyze_subdomain_data data =
>> subdomain_data[domain].get(it) KeyError: Domain(Cell('tetrahedron',
>> 3), label=None, data=None)
>>
>>
>> Valentina
>>
>>> Il giorno 15/mag/2015, alle ore 15:17, Jan Blechta
>>> <[email protected]> ha scritto:
>>>
>>> On Fri, 15 May 2015 15:07:32 +0200
>>> Valentina <[email protected] <mailto:[email protected]>
>>> <mailto:[email protected] <mailto:[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