SfePy August 2012
1D line elements in SfePy
by Nimish
I am currrently looking for FEM packages to help me solve a system of beams and columns, basically a collection of 1D bernoulli/timoshenko line elements. I started reading SfePy docs and i am getting the idea that doing the above is not really possible here, am i right? Are only 2D area elements permitted in SfePy? Or is there any direct support for solving 1D line elements too.. Cheers Nimish
Evaluate a solution in the arbitrary point in the domain
by Alec Kalinin
Dear SfePy users, Is it possible to evaluate a solution not only in the FEM mesh node, but in any arbitrary point in the domain with the given (x, y, z) coordinates? For example, consider Dirichlet problem for Poisson equation. We apply essential boundary conditions on the surface nodes and after the problem has been solved we have the solution vector, i.e. vector of values in the FEM mesh nodes. But I want to know the solution in point v(x, y, z) that is not FEM mesh node. What is the best way to obtain solution in this point v? Sincerely, Alec Kalinin
Modeling an adjustable X-ray optic
by Tom Aldcroft
I'm working on modeling a next-generation X-ray mirror for which the shape can be actively controlled by use of many thin piezo-electric actuators mounted on the mirror surface. The mirror is basically a glass conical paraboloid with a 1 meter radius and 200 micron thickness (e.g. http://en.wikipedia.org/wiki/X-ray_optics). Our project is currently using a proprietary FEA package, but the model setup and turnaround time is slow, in part because there is only one part-time engineer who can run it. SfePy looks like a great package and we're hoping that it could be used to automate running a large number of different cases. I've spent some time reading the documentation but I have a few questions that I hope can be answered before going too much further. I want to apologize in advance if some of my wording is imprecise, I have a physics background but this topic is a bit outside my realm... - Is SfePy appropriate for this problem? - If a specify a grid with about 800 x 400 points (azimuthal, axial) and about 10 boundary conditions (corresponding to mount points), what is the rough order of magnitude of time to compute the solution? Is it seconds, minutes, hours, or days? - The linear elastic examples show a problem with a specified displacement. How do I specify an input force? The piezo essentially provides a tensile force along the surface. - Is there a way to specify the problem and solve in cylindrical coordinates? This is the natural coordinate system. - How do I specify 6-DOF constraints which correspond to the mirror mounts? Thanks in advance for any help! Tom Aldcroft
Description of the weak form for the Poisson equation
Hello, In the previous topic [1] I promised to David to write the description of the weak form terms for the Poisson equation. So, here is it. You can freely use and modify this description without any restrictions. But I am not very sure that the text is very accurate. [1] https://groups.google.com/d/topic/sfepy-devel/9-cf42ZKsog/discussion
Fwd: [Numpy-discussion] A sad day for our community. John Hunter: 1968-2012.
Very sad news. -------- Original Message -------- Subject: [Numpy-discussion] A sad day for our community. John Hunter: 1968-2012. Date: Wed, 29 Aug 2012 19:57:22 -0700 From: Fernando Perez <fpere...(a)gmail.com> Reply-To: Discussion of Numerical Python <numpy-di...(a)scipy.org> To: IPython Development list <ipyth...(a)scipy.org>, IPython User list <ipytho...(a)scipy.org>, Discussion of Numerical Python <numpy-di...(a)scipy.org> Dear friends and colleagues, [please excuse a possible double-post of this message, in-flight internet glitches] I am terribly saddened to report that yesterday, August 28 2012 at 10am, John D. Hunter died from complications arising from cancer treatment at the University of Chicago hospital, after a brief but intense battle with this terrible illness. John is survived by his wife Miriam, his three daughters Rahel, Ava and Clara, his sisters Layne and Mary, and his mother Sarah. Note: If you decide not to read any further (I know this is a long message), please go to this page for some important information about how you can thank John for everything he gave in a decade of generous contributions to the Python and scientific communities: http://numfocus.org/johnhunter. Just a few weeks ago, John delivered his keynote address at the SciPy 2012 conference in Austin centered around the evolution of matplotlib: http://www.youtube.com/watch?v=e3lTby5RI54 but tragically, shortly after his return home he was diagnosed with advanced colon cancer. This diagnosis was a terrible discovery to us all, but John took it with his usual combination of calm and resolve, and initiated treatment procedures. Unfortunately, the first round of chemotherapy treatments led to severe complications that sent him to the intensive care unit, and despite the best efforts of the University of Chicago medical center staff, he never fully recovered from these. Yesterday morning, he died peacefully at the hospital with his loved ones at his bedside. John fought with grace and courage, enduring every necessary procedure with a smile on his face and a kind word for all of his caretakers and becoming a loved patient of the many teams that ended up involved with his case. This was no surprise for those of us who knew him, but he clearly left a deep and lasting mark even amongst staff hardened by the rigors of oncology floors and intensive care units. I don't need to explain to this community the impact of John's work, but allow me to briefly recap, in case this is read by some who don't know the whole story. In 2002, John was a postdoc at the University of Chicago hospital working on the analysis of epilepsy seizure data in children. Frustrated with the state of the existing proprietary solutions for this class of problems, he started using Python for his work, back when the scientific Python ecosystem was much, much smaller than it is today and this could have been seen as a crazy risk. Furthermore, he found that there were many half-baked solutions for data visualization in Python at the time, but none that truly met his needs. Undeterred, he went on to create matplotlib (http://matplotlib.org) and thus overcome one of the key obstacles for Python to become the best solution for open source scientific and technical computing. Matplotlib is both an amazing technical achievement and a shining example of open source community building, as John not only created its backbone but also fostered the development of a very strong development team, ensuring that the talent of many others could also contribute to this project. The value and importance of this are now painfully clear: despite having lost John, matplotlib continues to thrive thanks to the leadership of Michael Droetboom, the support of Perry Greenfield at the Hubble Telescope Science Institute, and the daily work of the rest of the team. I want to thank Perry and Michael for putting their resources and talent once more behind matplotlib, securing the future of the project. It is difficult to overstate the value and importance of matplotlib, and therefore of John's contributions (which do not end in matplotlib, by the way; but a biography will have to wait for another day...). Python has become a major force in the technical and scientific computing world, leading the open source offers and challenging expensive proprietary platforms with large teams and millions of dollars of resources behind them. But this would be impossible without a solid data visualization tool that would allow both ad-hoc data exploration and the production of complex, fine-tuned figures for papers, reports or websites. John had the vision to make matplotlib easy to use, but powerful and flexible enough to work in graphical user interfaces and as a server-side library, enabling a myriad use cases beyond his personal needs. This means that now, matplotlib powers everything from plots in dissertations and journal articles to custom data analysis projects and websites. And despite having left his academic career a few years ago for a job in industry, he remained engaged enough that as of today, he is still the top committer to matplotlib; this is the git shortlog of those with more than 1000 commits to the project: 2145 John Hunter <jdh...(a)gmail.com> 2130 Michael Droettboom <mdb...(a)gmail.com> 1060 Eric Firing <efi...(a)hawaii.edu> All of this was done by a man who had three children to raise and who still always found the time to help those on the mailing lists, solve difficult technical problems in matplotlib, teach courses and seminars about scientific Python, and more recently help create the NumFOCUS foundation project. Despite the challenges that raising three children in an expensive city like Chicago presented, he never once wavered from his commitment to open source. But unfortunately now he is not here anymore to continue providing for their well-being, and I hope that all those who have so far benefited from his generosity, will thank this wonderful man who always gave far more than he received. Thanks to the rapid action of Travis Oliphant, the NumFOCUS foundation is now acting as an escrow agent to accept donations that will go into a fund to support the education and care of his wonderful girls Rahel, Ava and Clara. If you have benefited from John's many contributions, please say thanks in the way that would matter most to him, by helping Miriam continue the task of caring for and educating Rahel, Ava and Clara. You will find all the information necessary to make a donation here: http://numfocus.org/johnhunter Remember that even a small donation helps! If all those who ever use matplotlib give just a little bit, in the long run I am sure that we can make a difference. If you are a company that benefits in a serious way from matplotlib, remember that John was a staunch advocate of keeping all scientific Python projects under the BSD license so that commercial users could benefit from them without worry. Please say thanks to John in a way commensurate with your resources (and check how much a yearly matlab license would cost you in case you have any doubts about the value you are getting...). John's family is planning a private burial in Tennessee, but (most likely in September) there will also be a memorial service in Chicago that friends and members of the community can attend. We don't have the final scheduling details at this point, but I will post them once we know. I would like to again express my gratitude to Travis Oliphant for moving quickly with the setup of the donation support, and to Eric Jones (the founder of Enthought and another one of the central figures in our community) who immediately upon learning of John's plight contributed resources to support the family with everyday logistics while John was facing treatment as well as my travel to Chicago to assist. This kind of immediate urge to come to the help of others that Eric and Travis displayed is a hallmark of our community. Before closing, I want to take a moment to publicly thank the incredible staff of the University of Chicago medical center. The last two weeks were an intense and brutal ordeal for John and his loved ones, but the hospital staff offered a sometimes hard to believe, unending supply of generosity, care and humanity in addition to their technical competence. The latter is something we expect from a first-rate hospital at a top university, where the attending physicians can be world-renowned specialists in their field. But the former is often forgotten in a world often ruled by a combination of science and concerns about regulations and liability. Instead, we found generous and tireless staff who did everything in their power to ease the pain, always putting our well being ahead of any mindless adherence to protocol, patiently tending to every need we had and working far beyond their stated responsibilities to support us. To name only one person (and many others are equally deserving), I want to thank Dr. Carla Moreira, chief surgical resident, who spent the last few hours of John's life with us despite having just completed a solid night shift of surgical work. Instead of resting she came to the ICU and worked to ensure that those last hours were as comfortable as possible for John; her generous actions helped us through a very difficult moment. It is now time to close this already too long message... John, thanks for everything you gave all of us, and for the privilege of knowing you. Fernando. ps - I have sent this with my 'mailing lists' email. If you need to contact me directly for anything regarding the above, please write to my regular address at Fernand...(a)berkeley.edu, where I do my best to reply more promptly. _______________________________________________ NumPy-Discussion mailing list NumPy-Di...(a)scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
by Matyáš Novák
Hi, I wrote an extension for sfepy, that requires compiling and linking additional fortran sources (invoked by cython). I found out, that these libraries can be easily added using distutils config.add_library() function, but there is the problem. The --fcompiler command doesn't propagate to the stage where the libraries are compiled, so the default (and in my case wrong) compiler is used. (If I try compile the files using add_extension method, they are compiled by desired compiler, but I need combine more sources in one extension so I think that I can't use add_extension). Is there any way how to force python to use the right compiler, or at least hardcode the compiler in the setup.py? Thanks a lot for suggestions, Matyas My setup.py: def configuration(parent_package='', top_path=None): import os.path as op from numpy.distutils.misc_util import Configuration from sfepy import Config site_config = Config() auto_dir = op.dirname(__file__) auto_name = op.split(auto_dir)[-1] config = Configuration(auto_name, parent_package, top_path) flags= site_config.compile_flags() flags.append('-I'+os.path.dirname(__file__)) config.add_library('xc_default', ['default/dft.c'], extra_compile_args=flags, f2py_options = '--fcompiler=gnu95', extra_link_args=site_config.link_flags() ) config.add_library('xc_vackar', ['vackar/vscxc.f90'], extra_compile_args=flags, f2py_options = {'fcompiler' : 'gnu95'}, extra_link_args=site_config.link_flags()
examples/diffusion/poisson.py null von Neumann conditions
by David Libault
Hi ! I could install sfepy and run the examples wihout any issue so far. Congratulations ! In the "examples/diffusion/poisson.py" example, the Dirichlet conditions are explicitly specified on the "Gamma_Left" and "Gamma_Right" regions, but the Von Neumann boundary conditions (grad(T).n = 0) on "all other" surfaces are not specified although the solution does complies with them... How is this working ? Are the "0 Von Neumann conditions" implicit in that case ? What am I missing ? David.
Question on the ``examples/diffusion/poisson.py''
Dear SfePy users, I am new to the SfePy and first of all I want to say thank you to the developers of this FEM engine. Now I am trying to use SfePy for my tasks and I got several questions. Consider problem in the example ``examples/diffusion/poisson.py'' (I will use LaTeX notations further for the math). We need to find unknown function $t(x)$ such that $$ c \Delta t = 0, x \in \Omega, $$ $$ t(x) = T_1, x \in \Gamma_{D1}, $$ $$ t(x) = T_2, x \in \Gamma_{D2}, $$ $$ \frac{\partial t(x)}{\partial n} = 0, x \in \Gamma_{N}, $$ where $T_1$ and $T_2$ is known functions, $\Gamma_{D1} = \{x \mid x < 0.00001\}$, $\Gamma_{D2} = \{x \mid x > 0.099999\}$, $\Gamma_{N} = \partial \Omega \setminus (\Gamma_{D1} \cup \Gamma_{D2})$. This is the mixed boundary value problem with both Dirichlet and Neumann boundary conditions. Could you, please, answer me on following questions: 1. Is it possible to get a flux on the $\Gamma_{D1}$ and $\Gamma_{D2}$ surfaces after the problem has been solved? 2. Suppose we solve pure Dirichlet problem (no Neumann conditions). We need to specify essential boundary conditions on the all surface nodes? What is the best way to select all surface nodes? 3. Suppose the Neumann boundary conditions is not zero. In this case we need to add surface integral with the flux. Do we need to add new term for the flux in the problem description? And this term will be the surface integral but in the problem description we have only tetrahedral domain 3D mesh. What is the best way to select only surface part of the mesh for the surface integration? Thanks, Alec Kalinin
euroscipy 2012
Hi, next week I am going to EuroSciPy to Brussels - will anybody be around as well? r.