Ah, in that case the example I sent is not directly applicable. But I think you still need a pyop2 kernel to copy the nodal values -- you might be able to adapt the example: just remove the 2d function and do something like "func[d+e][c] = func[d][c];" in the kernel loop (depending on which surface you are copying from). The 3d function should have access op2.RW instead of op2.READ.

- Tuomas

On 12/10/2015 09:44 AM, Floriane Gidel [RPG] wrote:

No Onno, at the moment phis is a 3D function, phis(x,y,z), which is defined in the whole 3D domain but updated from the equations only at the surface z=H0. I would like to copy this update in the interior nodes. 

To include a 2D function phis(x,y) in the equations is a different problem (which might work as well, but it's not what we consider at the moment).

Floriane





De : firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> de la part de Onno Bokhove <O.Bokhove@leeds.ac.uk>
Envoyé : jeudi 10 décembre 2015 17:16
À : firedrake@imperial.ac.uk
Objet : Re: [firedrake] 2D to 3D function
 

To rephrase that:

The 2D function: phis(x,y) should become

a 3D function: phis_extended(x,y,z) independent of z, i.e.,

its value does not vary in the z-direction but can vary in the horizontal and time.

How does one do that in FD?






From: firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of Floriane Gidel [RPG] <mmfg@leeds.ac.uk>
Sent: Thursday, December 10, 2015 4:53 PM
To: firedrake@imperial.ac.uk
Subject: [firedrake] 2D to 3D function
 

Dear all,


First of all, thanks a lot for your time last Friday, and your help both for the implementation and for the installation of Firedrake. 


I am now trying to implement the equations we discussed on Friday, for the 3D potential flow equations. As a reminder, I solve the equations for phi, h, but also phi_s which is a 3D function, but is only updated at the free surface. However, I would like to update the interior nodes of phi_s as well, by copying the value of its surface nodes, as soon as they are updated (that is, simultaneously with solving the coupled equations). Is there a way to do this?

I attach a short pdf summarising the equations, the current implementation and the issue I get. 


Thank you very much,

Floriane 

 



_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake