I'm working on modeling a nextgeneration Xray mirror for which the shape can be actively controlled by use of many thin piezoelectric 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/Xray_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 parttime 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 6DOF constraints which correspond to the mirror mounts?
Thanks in advance for any help!
Tom Aldcroft
Hi Tom!
On 01/04/12 17:31, Tom Aldcroft wrote:
I'm working on modeling a nextgeneration Xray mirror for which the shape can be actively controlled by use of many thin piezoelectric 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/Xray_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 parttime engineer who can run it.
Looks like an interesting problem for SfePy.
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...
No problem, ask as you need, I will try to answer. But first I have some questions as well :)
 Is SfePy appropriate for this problem?
I guess so  could you be more specific what kind of equations you need to solve? Something like [1]? Is the problem linear?
 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?
So the problem is in 2D, right? How many unknowns per grid node? This again would depend on equations and hence the matrix. If there is a good linear solver available (e.g. like for Poisson equation or elasticity), I would say minutes or less.
 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.
Like in [2], i.e., use dw_surface_ltr term on the appropriate boundary.
 Is there a way to specify the problem and solve in cylindrical coordinates? This is the natural coordinate system.
Not per se, but it would IMHO be quite easy to add special terms for this.
 How do I specify 6DOF constraints which correspond to the mirror mounts?
Please clarify here a bit  what are exactly the DOFs you need to specify? In general, one specifies any DOFs using the ebcs keyword  look at any example.
Thanks for your interest, I would like to see some nice SfePy applications outside of my workplace.
Cheers, r.
[1] http://docs.sfepy.org/docdevel/examples/piezo_elasticity/piezo.html [2] http://docs.sfepy.org/docdevel/examples/linear_elasticity/linear_elastic_tr...
Hello.
Can you suggest how to SfePy set the second time derivative (with existing term or with new). The essence of the problem simple Mx (d2u/dt2) + Cx (du / dt) + Kxu = Q. This is a classical significance equation of motion mechanical system with damping. All my attempts to hurriedly add the desired derivative unaesthetic or ineffectual.
Artem Sobolev.
Hi Artem,
Instead of the second order equation:
Mx (d2u/dt2) + Cx (du / dt) + Kxu = Q.
I would use the standard trick to transform it to two first order equations:
du/dt = v Mx dv/dt = Q  Cx v  Kx u
Would that work for you? Otherwise some more advanced timestepping scheme than the current backward Euler method would have to be introduced.
r.
On 05/16/2013 12:49 PM, Artem Sobolev wrote:
Hello.
Can you suggest how to SfePy set the second time derivative (with existing term or with new). The essence of the problem simple Mx (d2u/dt2) + Cx (du / dt) + Kxu = Q. This is a classical significance equation of motion mechanical system with damping. All my attempts to hurriedly add the desired derivative unaesthetic or ineffectual.
Artem Sobolev.
Thank you Robert. I will try and report to you results.
Hi Robert! Help me please.))
I can't set du /dt in du/dt = v equation. I tried use ev_volume_integrate term and occure error. If set mass_scalar term sfepy write that dont know this term. Thank you.
Artem Sobolev.
On 05/21/2013 05:52 PM, Artem Sobolev wrote:
Hi Robert! Help me please.))
I can't set du /dt in du/dt = v equation. I tried use ev_volume_integrate term and occure error. If set mass_scalar term sfepy write that dont know this term.
Yeah, my answer was a bit quick. This equation is to be used pointwise (after the FE discretization)  it has no weak form. So a specialized solver will be needed after all. I will have to think about it.
BTW. if anybody has experience with solving dynamic problems, chime in, please!
r.
Thank you.
Artem Sobolev.
participants (3)

Artem Sobolev

Robert Cimrman

Tom Aldcroft