Hi Tom!

On 01/04/12 17:31, Tom Aldcroft wrote:

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.

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 6-DOF 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/doc-devel/examples/piezo_elasticity/piezo.html [2] http://docs.sfepy.org/doc-devel/examples/linear_elasticity/linear_elastic_tr...