Dear Lawrence and Matt, Thank you so much for your emails. I am not sure I understood correctly. In my case BDM is used for the stress (tensor), DGv for displacement (vector) and DGs for rotation (vector). If I write something like this: BDM = TensorFunctionSpace(mesh, "BDM", 1) DGv = VectorFunctionSpace(mesh, "DG", 0) DGs = VectorFunctionSpace(mesh, "DG", 0) # Mixed function spaces Vh_element = MixedElement([TensorElement(BDM), VectorElement(DGv), VectorElement(DGs)]) Vh = FunctionSpace(mesh, Vh_element) I have the following error: Traceback (most recent call last): File "Elasticity2D_Firedrake.py", line 116, in <module> BDM = TensorFunctionSpace(mesh, "BDM", 1) File "/home/simone/firedrake/src/firedrake/firedrake/functionspace.py", line 213, in TensorFunctionSpace assert sub_element.value_shape() == () AssertionError Thank you so much, probably I am a little bit confused how to use these terms. Thanks in advance, have a wonderful day. Best regards, Simone On Tue, Jun 25, 2019 at 6:33 AM Matthew Knepley <knepley@gmail.com> wrote:
On Tue, Jun 25, 2019 at 7:22 AM Lawrence Mitchell <wence@gmx.li> wrote:
On 25 Jun 2019, at 11:49, Matthew Knepley <knepley@gmail.com> wrote:
On Tue, Jun 25, 2019 at 6:44 AM Ham, David A <david.ham@imperial.ac.uk> wrote: I *think* that the concept is that the physical cell is mapped to the reference cell, so you are pulling back reference values through that mapping to get physical values.
Ah. I named them the opposite way :) This is a good window into how my mind works. I thought since the Jacobian maps reference to real (and phi for that matter) that the default direction of any mapping should be ref-to-real. It seems like this is the overwhelming convention in large deformations.
If you have a mapping
\phi : \hat{K} \to K
Then
\phi^* : Alt^k(K) \to Alt^k(\hat{K})
is the pullback defined by
\phi^* w(v_1, ..., v_k) = w(\phi v_1, ... \phi v_k), v_i \in \hat{K}, w \in Alt^k(K)
So at least differential geometry says the pullback goes in the opposite direction to the mapping.
Yes, exactly. So if the mapping is ref-to-real, then then pulllback should be real-to-ref, which is what I needed for dual basis application. I needed ref-to-real for cell integration (since tabulations are in ref), which I called pushforward.
Thanks,
Matt
Lawrence
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/> _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- *Simone Puel* Ph.D. student in Geological Sciences at the University of Texas at Austin Jackson School of Geosciences & Institute for Geophysics (UTIG) JGB 5.332 & ROC 2.116L spuel@utexas.edu +1 (737)-230-6811