# Modeling an adjustable X-ray optic

54 views

### Tom Aldcroft

Jan 4, 2012, 11:31:17 AM1/4/12
to sfepy-devel
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

### Robert Cimrman

Jan 4, 2012, 12:36:20 PM1/4/12
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.

### Artem Sobolev

May 16, 2013, 6:49:58 AM5/16/13

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.

### Robert Cimrman

May 16, 2013, 7:04:39 AM5/16/13
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 time-stepping scheme than
the current backward Euler method would have to be introduced.

r.

### Artem Sobolev

May 20, 2013, 4:56:36 AM5/20/13
Thank you Robert.
I will try and report to you results.

### Artem Sobolev

May 21, 2013, 11:52:24 AM5/21/13
Hi Robert!

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.

### Robert Cimrman

May 21, 2013, 12:16:38 PM5/21/13
On 05/21/2013 05:52 PM, Artem Sobolev wrote:
> Hi Robert!
>
> 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 point-wise (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.
>