OK. What I think is going on here is that mathematically your test functions are only defined on the surface. So having the test function inside the z integral does not really make sense. What we would need to do is integrate over z first and then feed that in as a term in the boundary integral. That's not something Firedrake can do yet. We should give some thought to what it will take and maybe that's something you might be able to contribute. Regards, David On Mon, 28 Sep 2015 at 07:04 Tomasz Salwa [RPG] <mmtjs@leeds.ac.uk> wrote:
Hi David,
This is the question, I don't know how to formulate weak form properly, provided I have the discrete one. It was my guess so far. I used the test function defined for the 3D domain (should it be different?).
Let's stick to the discrete equations. For index \alpha traversing the free surface nodes, the red coupling terms contribute only to the corner nodes which are at the free surface and coupling surface. Then, in the sum over 'm' (coupling surface), for CG1 elements, there will be a contribution from corner nodes and the neighbouring nodes below only. The question is how to input it so that FD gets it right.
Does it clarify a bit?
Regards,
Tomasz
------------------------------ *From:* David Ham <David.Ham@imperial.ac.uk> *Sent:* 28 September 2015 14:15
*To:* Tomasz Salwa [RPG]; firedrake *Subject:* Re: Firedrake issue Hi Tomasz,
I've gone over your working, and I can't understand how your weak form works. The test function \delta phi seems to simultaneously be defined over the xy free surface and the yz coupling surface. Since each discrete equation corresponds to one matrix row, I don't understand to which matrix rows the contributions are supposed to contribute.
Can you enlighten me?
Regards,
David
On Thu, 24 Sep 2015 at 08:06 Tomasz Salwa [RPG] <mmtjs@leeds.ac.uk> wrote:
Hi David,
Concerning the FD update, it will take a while, as I encounter problems installing petsc4py and I need to wait for IT guy. So I'm working on the version of 15/06/15 for the moment.
I'm new to github, but this should work: https://github.com/mmtjs/lin_coupled <https://github.com/mmtjs/lin_coupled> mmtjs/lin_coupled Contribute to lin_coupled development by creating an account on GitHub. Read more... <https://github.com/mmtjs/lin_coupled> I had an error in the previous formulation, so I redirived it and at the moment the solver is partitioned i.e. it doesn't require one matrix for the whole system, but just mappings of corresponding boundary nodes from one domain to the other (these work).
The issue is in lines 175-179, where the coupling terms are commented out ... a_eta = trial * v * ds_t L_eta = ( eta + dt*dot( n_w, grad(phi) ) ) * v * ds_t #+ dt/rho * phi * v * ds_v(2) - dt * Pw * v * ds_v(2) ... More on it in the previous pdf file.
Cheers, Tomasz
------------------------------ *From:* David Ham <David.Ham@imperial.ac.uk> *Sent:* 23 September 2015 10:27 *To:* Tomasz Salwa [RPG]; firedrake *Subject:* Re: Firedrake issue
Hi Tomasz,
Welcome back.
Let's get through a few preliminaries.
First, if you haven't used firedrake for 2-3 months then it will be quite out of date. You need to update to the current version. You can do this using your existing install and update all the packages, or you can use the new installer to get a new installation which will also have an attached update script. See http://firedrakeproject.org/download.html Obtaining Firedrake — Firedrake 0.11.0-658-ge79e125-dirty ... Running firedrake-install with no arguments will install firedrake in a python virtualenv created in a firedrake subdirectory of the current directory. Read more... <http://firedrakeproject.org/download.html>
Next, it's much better to have this sort of conversation on the Firedrake list. This keeps everyone in the loop and enables other people to intervene when I say something stupid ;). I have taken the liberty of adding you to the list and I'm replying to the list now so that this conversation ends up there.
Now, we need to be talking about code, not only maths, so please push what you're working on to a git repository on github or bitbucket so we can see what's going on.
Finally we can start to think about the actual problem. I think that last time we talked about this, we discussed setting up a mixed mass matrix across the two domains and checking that projection works. Does that still work (and can you post some code to a repository which does this)?
Once we get past that then we need to talk about how to assemble forms on the boundary facets. This will involve doing some mucking around with maps, because at the moment the facets belong to two different meshes. We need to think a little about how to do that, but we can do so when the first steps work.
Cheers,
David
On Tue, 22 Sep 2015 at 12:54 Tomasz Salwa [RPG] <mmtjs@leeds.ac.uk> wrote:
Dear David,
I was busy in the recent months and could not work on the fluid-structure interaction problem. Now I returned to it and reformulated it.
I am getting the following error:
RuntimeError: Nonlinear solve failed to converge after 0 nonlinear iterations. Reason: Inner linear solve failed to converge after 10000 iterations with reason: DIVERGED_MAX_IT
but the problem is with the proper formulation in Firedrake.
I include the pdf with it. Would you be able to help me with this?
Regards,
Tomasz
-----
Tomasz Salwa
PhD Research Student
University of Leeds