<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 30, 2018 at 5:45 AM, Valerio Barnabei <span dir="ltr"><<a href="mailto:valerio.barnabei@uniroma1.it" target="_blank">valerio.barnabei@uniroma1.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello again,</div><div>I have a few questions about DT and DMPlex in general, not exclusively related to petsc4py implementation: in fact at the current state of my project, which is still being set up, I can choose either to program with C++ or python. <br></div><div><br></div><div>-So far, we used PETSc indirectly through libmesh interface. We have a fully working FEM code for FSI problems, and that's our starting point for further research. We're currently interested in developing our own, lighter, simpler interface for the same class of problems, by simply cutting out libmesh, and directly accessing to PETSc. We are strongly determined to implement the "space-time variational formulation of incompressible flows" by Tezduyar and Takizawa (eventually you can find theory informations in <a href="https://www.worldscientific.com/doi/abs/10.1142/S0218202512300013" target="_blank">https://www.worldscientific.<wbr>com/doi/abs/10.1142/<wbr>S0218202512300013</a>). In this approach the 3D problem becomes a 4D problem including the time dimension, as well discretized with it's own temporal basis functions, resulting in a sequence of time slabs (spatial meshes of a space-time slab is the deformed versions of each other). Unfortunately, as I already mentioned, I'm not quite confident with DT 
and DMPlex, and even reading examples has not helped my understanding. <br></div><div>Do you think DT and DMPlex can handle this kind of 4D representation, or do you think this is incompatible with the current state of that classes?</div></div></blockquote><div><br></div><div>Too easy answer: yes</div><div><br></div><div>More nuanced answer: I am not an expert in this area. I agree with Jed that representing it fully is probably not what you want. Usually these</div><div>4D things are tensor products. Its not hard to do this in Plex (I do it in PyLith), but the discretization support is somewhat clunky for this. The</div><div>truly beautiful way to do this is implemented in Firedrake (which uses Plex underneath). I want to incorporate it, but have not had any time.</div><div><br></div><div>Bottom line: DT is not going to do this out of box. However, in order to do it, you would need all the pieces in DT, judging by the way its done</div><div>in Firedrake: <a href="https://www.geosci-model-dev.net/9/3803/2016/">https://www.geosci-model-dev.net/9/3803/2016/</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>-If DMPlex and DT could handle the above mentioned model, do you think we could get any help in implementing the python interface for petsc4py?</div></div></blockquote><div><br></div><div>Yes, its not that hard to wrap stuff. The reason its not already done is that DT has a bunch of arrays passing in the interface, and that is</div><div>still not automatic in 2018.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>-If DMPlex and DT could NOT handle the above mentioned model, do you think they can be adapted to achieve that purpose? If they can be adapted, is it a huge, deep modification of those classes, to the point it is not worth even trying?</div></div></blockquote><div><br></div><div>I think the adaptation is not a research effort, since everything has already been worked out. I think its definitely an MS project level of difficulty</div><div>in the programming and verification.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I apologize for my verbose mail, I'm available for further explanation if required.</div></div></blockquote><div><br></div><div>No problem. The questions are interesting.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="gmail-"><div>Best regards,</div><div>Valerio Francesco Barnabei<br></div><div><br></div></span></div><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">2018-05-30 9:38 GMT+02:00 Valerio Barnabei <span dir="ltr"><<a href="mailto:valerio.barnabei@uniroma1.it" target="_blank">valerio.barnabei@uniroma1.it</a>></span><wbr>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="auto"><div dir="auto">Thank you Matt,</div><div dir="auto">I've read some of your works and  I'm interested in your approach. I would like to keep in touch with you, both to consider the option to make python interfaces for DT class, and to have a deeper understanding of Sieve. <br></div><div dir="auto"><br></div><div>Best regards,<br></div><div dir="auto"><div dir="auto">Valerio Francesco Barnabei</div></div></div><div><div class="gmail-m_-451940769053052399h5"><div class="gmail_extra"><br><div class="gmail_quote">Il 29 mag 2018 23:22, "Matthew Knepley" <<a href="mailto:knepley@gmail.com" rel="noreferrer" target="_blank">knepley@gmail.com</a>> ha scritto:<br type="attribution"><blockquote class="gmail-m_-451940769053052399m_-8553261511449569287m_3300769673930009297m_-6141332836395524964quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="gmail-m_-451940769053052399m_-8553261511449569287m_3300769673930009297m_-6141332836395524964quoted-text">On Tue, May 29, 2018 at 1:14 PM, Valerio Barnabei <span dir="ltr"><<a href="mailto:valerio.barnabei@uniroma1.it" rel="noreferrer noreferrer" target="_blank">valerio.barnabei@uniroma1.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hello,</div><div>I'm trying to figure how to translate snes/ex12, snes/ex56, snes/ex62, snes/ex77 in python using petsc4py. Unfortunately I'm having trouble finding something analogue to the DT class of C++ PETSc, to call methods like PetscFECreateDefault and similar.</div><div>Is this something that can be achieved using petsc4py? <br></div><div>I mean, is there something included in DM, DMDA or DMPlex that takes care of the discretization of a generic value field that I'm missing? (As far as I can see and understand, no DT class is implemented in petsc4py)<br></div><div>I hope i explained myself, unfortunately I'm still a new user.</div></div></blockquote><div><br></div></div><div>Hi Valerio,</div><div><br></div><div>There are no Python interfaces for DT because it is all experimental code. We have not yet agreed that this is</div><div>the correct way to do things, so its all my own C experimentation. I could help you understand it to make Python</div><div>interfaces if you wanted to.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-m_-451940769053052399m_-8553261511449569287m_3300769673930009297m_-6141332836395524964quoted-text"><div dir="ltr"><div>Thanks in advance for your help.</div><div><br></div><div>Best regards,<br></div><div>Valerio<br></div></div>

<br>
</div><div style="font-size:small;font-family:arial;background-color:rgb(255,255,255)">______________________________<wbr>_____________</div><div style="font-size:12.8px;font-family:arial,sans-serif;color:rgb(34,34,34);background-color:rgb(255,255,255)"><div style="font-size:12.8px"><b style="color:rgb(150,53,66);font-size:12.8px">Il tuo <span>5</span> diventa 1000</b></div><div style="font-size:12.8px"><span style="font-size:12.8px"><div style="font-size:12.8px">Fai crescere la tua università</div><div style="font-size:12.8px">Dona il <span>5</span> <span>per</span> <span>mille</span> alla Sapienza</div></span><div style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:13px"><font style="font-family:arial,sans-serif;font-size:small">Codice fiscale: </font><b style="font-family:arial,sans-serif;font-size:large">80209930587</b></div><div style="font-size:12.8px;color:rgb(0,0,0);font-family:arial,helvetica,sans-serif"><font size="1"><a href="https://www.uniroma1.it/it/pagina/fai-crescere-la-tua-universita-con-il-cinque-mille" style="color:rgb(17,85,204)" rel="noreferrer noreferrer" target="_blank">https://www.uniroma1.it/it/pag<wbr>ina/fai-crescere-la-tua-univer<wbr>sita-con-il-cinque-mille</a></font></div><div><br></div></div></div></blockquote></div><div class="gmail-m_-451940769053052399m_-8553261511449569287m_3300769673930009297m_-6141332836395524964signature-text"><br><br clear="all"><div><br></div>-- <br><div class="gmail-m_-451940769053052399m_-8553261511449569287m_3300769673930009297m_-6141332836395524964m_-7290498701905013781gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" rel="noreferrer noreferrer" target="_blank">https://www.cse.buffalo.edu/~k<wbr>nepley/</a><br></div></div></div></div></div>
</div></div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>

<br>
<div style="font-size:small;font-family:arial;background-color:rgb(255,255,255)">______________________________<wbr>_____________</div><div style="font-size:12.8px;font-family:arial,sans-serif;color:rgb(34,34,34);background-color:rgb(255,255,255)"><div style="font-size:12.8px"><b style="color:rgb(150,53,66);font-size:12.8px">Il tuo <span>5</span> diventa 1000</b></div><div style="font-size:12.8px"><span style="font-size:12.8px"><div style="font-size:12.8px">Fai crescere la tua università</div><div style="font-size:12.8px">Dona il <span>5</span> <span>per</span> <span>mille</span> alla Sapienza</div></span><div style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:13px"><font style="font-family:arial,sans-serif;font-size:small">Codice fiscale: </font><b style="font-family:arial,sans-serif;font-size:large">80209930587</b></div><div style="font-size:12.8px;color:rgb(0,0,0);font-family:arial,helvetica,sans-serif"><font size="1"><a href="https://www.uniroma1.it/it/pagina/fai-crescere-la-tua-universita-con-il-cinque-mille" style="color:rgb(17,85,204)" target="_blank">https://www.uniroma1.it/it/pag<wbr>ina/fai-crescere-la-tua-univer<wbr>sita-con-il-cinque-mille</a></font></div><div><br></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>