<div dir="ltr"><div>Thanks! I think I've got it now.</div><div><br></div><div>The only thing is that I'm not sure it's useful to assume equidistant Lagrange shape functions. Such shape functions would form a poorly behaved interpolation basis at high orders due to <a href="http://en.wikipedia.org/wiki/Runge%27s_phenomenon">Runge's phenomenon</a>. Basically, you could get bad values while trying to interpolate the "equispaced" points $x_i$ to the "Gauss-Lobatto" points $y_k$. One would want to use either an orthogonal set of polynomials (modal basis) or Lagrange interpolation at the zeros of such a set of polynomials (nodal basis -- the unevenly spaced Gauss-Lobatto points are in this category) to eliminate this issue.</div><div><br></div><div>I think what you mean is that you would compute the Vandermonde matrix $K_{ik} = \psi_k(\xi_i)$ where the $\psi_k(\xi)$ is a "good" basis and $\xi_i$ are the equispaced points obtained from Gmsh. You then want to know $x(\xi) = \sum_{k=1}^N c_k \psi_k(\xi)$ where $x(\xi)$ maps coordinates from the master element and $c_i$ is a set of N unknown coefficients. If your basis is formed by Lagrange polynomials at arbitrary points (perhaps Gauss-Lobatto) $xi_k$, then $c_k = y_k$. Thus, $c_k = y_k = inv(K_{ik}) x_i$. Of course, the Vandermonde matrix can be inverted once and then used to "reposition" the nodes of each element individually. However, the better way to think of it is that you are mapping the physical points (graciously generated by Gmsh) to expansion coefficients of an appropriate interpolation basis.</div><div><br></div><div>Hopefully this clarifies things for anyone else with the same question.</div><div><br></div><div>Thanks again!</div><div><br></div><div>Nick<br><br>On Tuesday, April 8, 2014 6:35:07 AM UTC-4, Jean-François Remacle wrote:</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;"><div style="-ms-word-wrap: break-word;"><br><div><div>Le 7 avr. 2014 à 21:50, Nicholas Glenn Chisholm <<a onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" href="javascript:" target="_blank" gdf-obfuscated-mailto="NacMDrU_7n8J">nick.g....@gmail.com</a>> a écrit :</div><br><blockquote type="cite">
<div style="-ms-word-wrap: break-word;"><div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">JF,</div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);"><br></div></div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">I greatly appreciate your reply! I seem to understand what you are saying, but could you clarify one thing for me? Are you suggesting that the equispaced nodes within each element (generated by Gmsh) could be mapped to the Gauss-Lobatto points in a master element implemented within my solver? This is simple and would essentially alter the Jacobian within the element due to the spacial “stretching”. However, I’ve tested this idea for a linear 1D problem, and it seems to severely slow the convergence rate even for elements of moderate order (e.g. P=5).</div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);"><br></div></div></blockquote><div><br></div><div>Assume you have an element generated by gmsh with its $N$ verices $x_i$. </div><div><br></div><div>Assume equidistant Lagrange shape functions $L_i(\xi)$ : we have </div><div> </div><div>$$x(\xi) = \sum_{i=1}^N L_i(\xi) x_i $$</div><div><br></div><div><div>Assume now your nice shape functions based e.g. on Gauss-Lobatto points $\xi_k$, $k=1,\dots,M$, with</div><div>$M$ not necessary equal to $N$. Then the Gauss Lobato points $y_k$ can be computed as</div><div><br></div><div>$$y_k=  \sum_{i=1}^N L_i(\xi_k) x_i,~~~k=1,\dots,M.$$</div><div>Matrix $K_{ik}=L_i(\xi_k)$ is a Vandermonde Matrix that </div><div>can be computed once and applied to each element.</div><div><br></div><div>JF</div><div><br></div></div><br><blockquote type="cite"><div style="-ms-word-wrap: break-word;"><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">Doing some kind of Lagrange interpolation from data at the equispaced points to the Gauss points seems equally troublesome due to the Runge phenomena.</div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);"><br></div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">Thanks again!</div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">Nick</div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);"><br></div><div style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(34, 34, 34); font-family: Arial,Helvetica,sans-serif; font-size: 13px; vertical-align: baseline; background-color: rgb(255, 255, 255);">On Apr 7, 2014, at 2:38 AM, Jean-François Remacle <<a onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" href="javascript:" target="_blank" gdf-obfuscated-mailto="NacMDrU_7n8J">jean-franc...@<wbr>uclouvain.be</a>> wrote:</div><div><br><blockquote type="cite"><div style="-ms-word-wrap: break-word;"><br><div><div>Le 6 avr. 2014 à 06:08, <a onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" href="javascript:" target="_blank" gdf-obfuscated-mailto="NacMDrU_7n8J">nick.g....@gmail.com</a> a écrit :</div><br><blockquote type="cite"><div dir="ltr">I'm thinking about using Gmsh for a research project which involves computing fluid flow fields via a spectral/hp-element method (p>5). I was reading through the documentation, and it seems to indicate that higher order nodes are assumed to be equispaced. However, if I am not mistaken, hp-element codes normally place the high-order nodes at the Gauss-Legendre(-Lobatto) points within, for example, a quadrilateral "master" element. This is especially nice if your solver uses a nodal basis for its shape functions. Is there any way to have Gmsh use a Gauss-Lobatto distribution of nodes within a high order element?<div><br></div></div></blockquote><div><br></div><div>Hello,</div><div><br></div><div>We presently use equidistant Lagrange elements for representing the geometry of the elements. The high order</div><div>points may be optimized in Gmsh, both for reducing the distortion of the elements and for increasing their</div><div>geometrical accuracy.  For more details </div><div><div><br></div><div>Johnen, A., Remacle, J. F., & Geuzaine, C. (2013). Geometrical validity of curvilinear finite elements. <i>Journal of Computational Physics</i>, <i>233</i>, 359-372.</div></div><div><br></div><div><div>Toulorge, T., Geuzaine, C., Remacle, J. F., & Lambrechts, J. (2013). Robust untangling of curvilinear meshes. <i>Journal of Computational Physics</i>, <i>254</i>, 8-26.</div><div><br></div></div><div>We agree there exist better nodal distributions such as Gauss Lobatto or the electrostatic node distribution of Warburton. Yet, those distributions can</div><div>(or should) be implemented in the solver itself, defining a master element for the interpolation and using our equidistant Lagrange interpolation for</div><div>computing node positions relative to the interpolation. In other words, the geometry and the solution do not have to use the same basis.</div><div><br></div><div>Best regards,</div><div><br></div><div>JF</div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite"><div dir="ltr"><div>Thanks!</div><div>Nick</div></div>______________________________<wbr>_________________<br>gmsh mailing list<br><a onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;" href="javascript:" target="_blank" gdf-obfuscated-mailto="NacMDrU_7n8J">gm...@geuz.org</a><br><a onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.geuz.org%2Fmailman%2Flistinfo%2Fgmsh\46sa\75D\46sntz\0751\46usg\75AFQjCNEJ3QLvAdHWrw4QzBDqKw4PAU6GzA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.geuz.org%2Fmailman%2Flistinfo%2Fgmsh\46sa\75D\46sntz\0751\46usg\75AFQjCNEJ3QLvAdHWrw4QzBDqKw4PAU6GzA';return true;" href="http://www.geuz.org/mailman/listinfo/gmsh" target="_blank">http://www.geuz.org/mailman/<wbr>listinfo/gmsh</a><br></blockquote></div><br><div>
<span style="border-collapse: separate; border-spacing: 0px;"><div style="-ms-word-wrap: break-word;"><span style="font: 12px/normal Helvetica; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; border-spacing: 0px; font-size-adjust: none; font-stretch: normal;"><div style="-ms-word-wrap: break-word;"><div><div><span style="font-size: inherit;"><div>------------------------------<wbr>------------------------------<wbr>------</div><div><font size="3"><span style="font-size: 12px;">Prof. Jean-Francois Remacle</span></font></div><div><font size="3"><span style="font-size: 12px;">Universite catholique de Louvain (UCL)</span></font></div><div><font size="3"><span style="font-size: 12px;">Ecole Polytechnique de Louvain (EPL) - Louvain School of Engineering</span></font></div><div><font size="3"><span style="font-size: 12px;">Institute of Mechanics, Materials and Civil Engineering (iMMC)</span></font></div><div><font size="3"><span style="font-size: 12px;">Center for Systems Engineering and Applied Mechanics (CESAME)</span></font></div><div><font size="3"><span style="font-size: 12px;">Tel : +32-10-472352 -- Mobile : +32-473-909930 </span></font></div><div><font size="3"><span style="font-size: 12px;"><br></span></font></div><div><font size="3"><span style="font-size: 12px;"> </span></font></div><div><font size="3"><span style="font-size: 12px;"><br></span></font></div><div><br></div></span></div></div></div></span></div><br></span><br>
</div>
<br></div></blockquote></div><br></div></blockquote></div><br><div>
<span style="color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate;"><div style="-ms-word-wrap: break-word;"><span style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; font-size-adjust: none; font-stretch: normal;"><div style="-ms-word-wrap: break-word;"><div><div><span style="font-size: medium;"><div>------------------------------<wbr>------------------------------<wbr>------</div><div><font size="3"><span style="font-size: 12px;">Prof. Jean-Francois Remacle</span></font></div><div><font size="3"><span style="font-size: 12px;">Universite catholique de Louvain (UCL)</span></font></div><div><font size="3"><span style="font-size: 12px;">Ecole Polytechnique de Louvain (EPL) - Louvain School of Engineering</span></font></div><div><font size="3"><span style="font-size: 12px;">Institute of Mechanics, Materials and Civil Engineering (iMMC)</span></font></div><div><font size="3"><span style="font-size: 12px;">Center for Systems Engineering and Applied Mechanics (CESAME)</span></font></div><div><font size="3"><span style="font-size: 12px;">Tel : +32-10-472352 -- Mobile : +32-473-909930 </span></font></div><div><font size="3"><span style="font-size: 12px;"><br></span></font></div><div><font size="3"><span style="font-size: 12px;"> </span></font></div><div><font size="3"><span style="font-size: 12px;"><br></span></font></div><div><br></div></span></div></div></div></span></div><br></span><br>
</div>
<br></div></blockquote></div>