Hello!

I am extremely new to FEniCS. I am trying to integrate the following system:

I am using approach that is proposed in FEniCS for temporal derivaties: discretize it and iterate over time. Then, for each time step construct corresponding variational problem and solve it sequentially for all time steps.

As a machine I am using google colab

dolfin version: 2019.1.0

from fenics import *

T = 5.0 # final time

num_steps = 500 # number of time steps

dt = T / num_steps # time step size

mesh = UnitIntervalMesh(10) # Define mesh for the coordinate interval

P1 = FiniteElement(‘P’, interval, 1) # Define function space for system of pressure and throughput

element = MixedElement([P1, P1])

V = FunctionSpace(mesh, element)

v_1, v_2 = TestFunctions(V) # Define test functions

u = Function(V) # Define functions for pressure and throughput

u_n = Function(V)

u_1, u_2 = split(u) # Split system functions to access components

u_n1, u_n2 = split(u_n)

k = Constant(dt) # Define expressions used in variational forms

two = Constant(2)

F = ((u_1 - u_n1) / k) * v_1 * dx + div(u_2) * v_1 * dx

+ two * u_1 * div(u_1) * v_2 * dx + u_2 * abs(u_2) * v_2 * dx # Define variational problem

vtkfile_u_1 = File(‘transient_system/u_1.pvd’) #Create VTK files for visualization output

vtkfile_u_2 = File(‘transient_system/u_2.pvd’)

progress = Progress(‘Time-stepping’) # Create progress bar

set_log_level(LogLevel.PROGRESS)

t = 0 # Time-stepping

for n in range(num_steps):

t += dt # Update current time

solve(F == 0, u) # Solve variational problem for time step

_u_1, _u_2, _u_3 = u.split() # Save solution to file (VTK)

vtkfile_u_1 << (_u_1, t)

vtkfile_u_2 << (_u_2, t)

vtkfile_u_3 << (_u_3, t)

u_n.assign(u) # Update previous solution

progress.update(t / T) # Update progress bar

interactive() # Hold plot

The error message is:

## Calling FFC just-in-time (JIT) compiler, this may take some time.

Attempting to index with (Ellipsis, Index(8)), but object is already indexed:

UFLException Traceback (most recent call last)

in ()

5

6 # Solve variational problem for time step

----> 7 solve(F == 0, u)

8 # Save solution to file (VTK)

9 _u_1, _u_2, _u_3 = u.split()

26 frames

/usr/lib/python3/dist-packages/ufl/log.py in error(self, *message)

170 “Write error message and raise an exception.”

171 self._log.error(*message)

–> 172 raise self._exception_type(self._format_raw(*message))

173

174 def begin(self, *message):

UFLException: Attempting to index with (Ellipsis, Index(8)), but object is already indexed: