Hi Justin, I'm clearly not understanding your new paper, but why does the new second derivative you create in 4.13 not go away by multiplying by a test funcion and integrating by parts? In addition, I don't understand why it makes sense to take a second derivative of a Q1 element. Q1 does not span P2 so you have a very big part of your space which is linear (and therefore has the same issue as P1). In addition, as Andrew already stated, C0 elements don't have enough continuity to take that derivative, so I don't understand why the second derivative in this case makes sense. Having said all that, as far as I know, it should be possible to just put the second derivative into UFL and let FFC deal with it. Does that produce an error? Cheers, David On Tue, 21 Jul 2015 at 20:17 Justin Chang <jychang48@gmail.com> wrote:
I am looking at equal order mixed formulations. Two discretizations in particular:
1) Our group recently released a paper on enforcing local mass balance and discrete maximum principles through the least-squares finite element method. The paper can found here:
http://arxiv.org/pdf/1506.06099v1.pdf
Equation 4.13 is what I want to solve using firedrake. Everything in that paper was written in MATLAB because the authors could not get FEniCS to do what they want. I am guessing it's because there were no Q1 elements available within FEniCS (double derivative of P1 elements makes no sense).
2) The other discretization, based on the variational multi-scale formulation, for Darcy-Brinkmann equations is described in this paper:
http://onlinelibrary.wiley.com/doi/10.1002/fld.2544/abstract
Though I am currently looking at the steady-state version of this. Appendix A1 describes how they discretize the \delta v and \delta w terms.
I could perhaps figure these out through trial and error, but I got my hands full with other things ATM :)
Thanks, Justin
On Tue, Jul 21, 2015 at 4:33 AM, David Ham <David.Ham@imperial.ac.uk> wrote:
Hi Justin,
Can you provide a little more information about the sort of discretisation you're talking about: if we can see what you're talking about then we'd be in a better position to tell you whether Firedrake can do that.
Cheers,
David
On Fri, 17 Jul 2015 at 07:39 McRae, Andrew <a.mcrae12@imperial.ac.uk> wrote:
It's possible to represent second derivatives in a form, such as assemble(div(grad(f))*dx). I assume this is true in FEniCS as well as Firedrake, because this is just UFL/FFC/FIAT functionality. This would produce the sum (over cells) of the Laplacian of f on each cell.
However, like FEniCS, none of our function spaces have more than C^0 continuity. That is, the functions are at most continuous, but won't have continuous derivatives. It's likely that you won't want to use second derivatives of C^0 functions in a practical discretisation (though I'm sure there are methods that *do* do this).
Andrew
On 17 July 2015 at 01:50, Justin Chang <jychang48@gmail.com> wrote:
Hi everyone,
Is it possible to do second derivatives? What I mean by that is things like div[grad[u]] and grad[grad[u]]. I haven't tried this out yet, but we use these discretizations a lot for our research, and FEniC's inability to do this made us sad (although our more major qualms had to do with its inability to support quads).
Thanks, Justin
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake