Feedbacks on a fluid reconstruction problem setup

Hi all, I am new to FEniCs and fluid simulation and I am trying to set up a problem on FEniCs and Dolfin Adjoint, I would love to get some feedback on problem setup, methods, etc. Any thoughts would be greatly appreciated. Thanks in advance!

Problem statement:
We want to reconstruct the fluid dynamic from a trajectory of measurements that is sparse in both space and time. The problem is tested out using synthetic data and solved using gradient-based (adjoint) optimization techniques.

Dynamics:
Non-compressible Navier Stoke equation (the simplest fluid model)

Synthetic observation generation:
We start with 0 velocity field and simulate with Chorin’s method.
The target trajectory is between 100dt and 300dt, where we have sparse measurements at sensor locations every 50dt, i.e. at {150dt,200dt,250dt,…,300dt}.

Goal:
Here we are trying to optimize the estimated initial velocity field, u_0, to minimize the predicted measurement if we simulate with, u_0, and the actual observations.

\min_{u_0} \sum_{t=1}^{t_{\text{end}}}\|Pu_t-Pu_t^{gt}\|_2^2\\ u_t=Mu_{t-1} \quad \text{for }t\in [1,t_{\text{end}}]

where here P is the observation operator that evaluates the u_t at sensor locations, M is the propagation operator.

Method:
I am currently following samples given here. Set up the J to be the objective function described above, and the control being u_0.