Re: Digest for sfepy...@googlegroups.com - 2 Messages in 1 Topic
On Thu, Jan 5, 2012 at 5:46 AM, <sfepy...@googlegroups.com> wrote:
Today's Topic Summary
Group: http://groups.google.com/group/sfepy-devel/topics
Modeling an adjustable X-ray optic [2 Updates]
Modeling an adjustable X-ray optic
Tom Aldcroft <tald...@gmail.com> Jan 04 08:31AM -0800
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 <cimr...@ntc.zcu.cz> Jan 04 06:36PM +0100
Hi Tom!
On 01/04/12 17:31, Tom Aldcroft wrote:
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.
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?
Yes, the problem is linear. As for the specific equations to be solved, this should be standard linear elastic shell (2-d) formulation, but I don't have experience in actually solving the equations with real inputs and boundary conditions. To be more concrete, I want to solve for the bending of a thin plate due to an attached piezo: http://en.wikipedia.org/wiki/File:Piezo_bending_principle.jpg
In our problem each piezo actuator is small compared to the mirror surface, about 10% of the size in each dimension. I'm not really interested in the details of the voltage potential (as in [1]), but instead just the effect of the piezo as a bending actuator to control the mirror surface.
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.
Yes, 2D. Well, technically it is 3D structure (the surface of a cylinder) but it satisfies the requirements for a thin plate structure and only requires a 2D mesh. A time of minutes is great.
- 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.
I guess if the problem can be specified and solved in Cartesian coordinates then it's easy enough to transform to cylindrical at the end. I'm not sure if a plate formulation is specified everywhere in terms of the in-plane and out-of-plane coordinates or if it is in fixed cartesian coords.
- 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.
I'm thinking of the case where the mount constrains all displacements and rotations at the mount point to a fixed value. Maybe I'm thinking about the problem incorrectly, but in our current model outputs there are 6 DOF (x,y,z, theta_x, theta_y, theta_z) at each point.
Thanks for your interest, I would like to see some nice SfePy applications outside of my workplace.
Excellent, I'm excited to use SfePy and would be happy to provide the code and some outputs as another documentation example when it's done.
Thanks, Tom
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...
You received this message because you are subscribed to the Google Group sfepy-devel. You can post via email. To unsubscribe from this group, send an empty message. For more options, visit this group.
-- You received this message because you are subscribed to the Google Groups "sfepy-devel" group. To post to this group, send email to sfepy...@googlegroups.com. To unsubscribe from this group, send email to sfepy-devel...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
Hi Tom,
(Could you respond to the original messages? Responding to digest spoils the thread subject...)
On 01/05/12 17:33, Tom Aldcroft wrote:
Robert Cimrman<cimr...@ntc.zcu.cz> Jan 04 06:36PM +0100
Hi Tom!
On 01/04/12 17:31, Tom Aldcroft wrote:
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.
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?
Yes, the problem is linear. As for the specific equations to be solved, this should be standard linear elastic shell (2-d) formulation, but I don't have experience in actually solving the equations with real inputs and boundary conditions. To be more concrete, I want to solve for the bending of a thin plate due to an attached piezo: http://en.wikipedia.org/wiki/File:Piezo_bending_principle.jpg
Ok I see. It will involve adding new terms, as we have not touched shells (bending) yet. We have only membrane elements (but large deformation!) so far.
I am very much interested in having shell elements in SfePy, but do not have experience with the theory behind. Is something like in [3] ok? If we take this route, it will take some time, so if you (or anybody) could help, that would be great (particularly, finding the element equations/description in literature).
What if you try to do an initial testing with 3D elements (a few layers)? It might not be efficient, but will get you acquainted with SfePy, and also easily solve the rotation boundary conditions you write about below.
In our problem each piezo actuator is small compared to the mirror surface, about 10% of the size in each dimension. I'm not really interested in the details of the voltage potential (as in [1]), but instead just the effect of the piezo as a bending actuator to control the mirror surface.
So the piezo-elements are be represented as given surface loads of the thin shell, and the problem is pure linear elasticity, right?
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.
Yes, 2D. Well, technically it is 3D structure (the surface of a cylinder) but it satisfies the requirements for a thin plate structure and only requires a 2D mesh. A time of minutes is great.
Take this with grain of salt - I was not aware that shells will be required.
- 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.
I guess if the problem can be specified and solved in Cartesian coordinates then it's easy enough to transform to cylindrical at the end. I'm not sure if a plate formulation is specified everywhere in terms of the in-plane and out-of-plane coordinates or if it is in fixed cartesian coords.
Yes, I would start with implementing general shell elements in Cartesian coordinates, as they would have wider applicability. The transformation of results to a different coordinate system is easy.
- 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.
I'm thinking of the case where the mount constrains all displacements and rotations at the mount point to a fixed value. Maybe I'm thinking about the problem incorrectly, but in our current model outputs there are 6 DOF (x,y,z, theta_x, theta_y, theta_z) at each point.
I see, now that I know we are speaking about shells it's clear.
Thanks for your interest, I would like to see some nice SfePy applications outside of my workplace.
Excellent, I'm excited to use SfePy and would be happy to provide the code and some outputs as another documentation example when it's done.
That would be great.
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...
[3] http://www.simytec.com/docs/Short_communicaion_%20four_node_plate.pdf
On Thu, Jan 5, 2012 at 2:37 PM, Robert Cimrman <cimr...@ntc.zcu.cz> wrote:
Hi Tom,
(Could you respond to the original messages? Responding to digest spoils the thread subject...)
Oops, sorry. I switched to getting individual emails anyway.
On 01/05/12 17:33, Tom Aldcroft wrote:
Robert Cimrman<cimr...@ntc.zcu.cz> Jan 04 06:36PM +0100
Hi Tom!
On 01/04/12 17:31, Tom Aldcroft wrote:
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.
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?
Yes, the problem is linear. As for the specific equations to be solved, this should be standard linear elastic shell (2-d) formulation, but I don't have experience in actually solving the equations with real inputs and boundary conditions. To be more concrete, I want to solve for the bending of a thin plate due to an attached piezo: http://en.wikipedia.org/wiki/File:Piezo_bending_principle.jpg
Ok I see. It will involve adding new terms, as we have not touched shells (bending) yet. We have only membrane elements (but large deformation!) so far.
Sorry, I should have also made it more clear that the actual deflections we will correct are very small, no more than 1 micron (10^-6 m) versus a shell thickness of 200 microns and a overall mirror radius of 1 meter. This is just doing extremely fine tuning of a precise X-ray optic. The edges will all be clamped as well, this thing has to survive launch into orbit. So in that sense I don't think there is the normal concern with large deflections in shells. Does that help?
I am very much interested in having shell elements in SfePy, but do not have experience with the theory behind. Is something like in [3] ok? If we take this route, it will take some time, so if you (or anybody) could help, that would be great (particularly, finding the element equations/description in literature).
Well I dusted off my Landau and Lifshiftz Theory of Elasticity this morning, but it would probably be a stretch for me to provide very useful theoretical input on the right equations. I could do testing however.
What if you try to do an initial testing with 3D elements (a few layers)? It might not be efficient, but will get you acquainted with SfePy, and also easily solve the rotation boundary conditions you write about below.
If the new information about small deflections doesn't change things, I will go ahead with trying a 3-d simulation. As long as I can get a good answer in less than an hour it will be useful. (But of course faster is better).
Is there any numerical issue with having very different node spacing in the thin (shell) dimension versus the other two? Right now we have a 1 mm spacing in each direction, so that would be much larger than the in-shell spacing of ~0.050 mm (for 4 layers). [In case you are wondering, we are not modeling an entire 360 degree cone but rather just a 23 degree pie section].
In our problem each piezo actuator is small compared to the mirror surface, about 10% of the size in each dimension. I'm not really interested in the details of the voltage potential (as in [1]), but instead just the effect of the piezo as a bending actuator to control the mirror surface.
So the piezo-elements are be represented as given surface loads of the thin shell, and the problem is pure linear elasticity, right?
Yes. When actuated the thin-film piezo wants to expand isotropically and so it exerts a surface (in-plane) force radially from the center of the piezo.
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.
Yes, 2D. Well, technically it is 3D structure (the surface of a cylinder) but it satisfies the requirements for a thin plate structure and only requires a 2D mesh. A time of minutes is great.
Take this with grain of salt - I was not aware that shells will be required.
- 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.
I guess if the problem can be specified and solved in Cartesian coordinates then it's easy enough to transform to cylindrical at the end. I'm not sure if a plate formulation is specified everywhere in terms of the in-plane and out-of-plane coordinates or if it is in fixed cartesian coords.
Yes, I would start with implementing general shell elements in Cartesian coordinates, as they would have wider applicability. The transformation of results to a different coordinate system is easy.
- 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.
I'm thinking of the case where the mount constrains all displacements and rotations at the mount point to a fixed value. Maybe I'm thinking about the problem incorrectly, but in our current model outputs there are 6 DOF (x,y,z, theta_x, theta_y, theta_z) at each point.
I see, now that I know we are speaking about shells it's clear.
Thanks for your interest, I would like to see some nice SfePy applications outside of my workplace.
Excellent, I'm excited to use SfePy and would be happy to provide the code and some outputs as another documentation example when it's done.
That would be great.
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...
[3] http://www.simytec.com/docs/Short_communicaion_%20four_node_plate.pdf
-- You received this message because you are subscribed to the Google Groups "sfepy-devel" group. To post to this group, send email to sfepy...@googlegroups.com. To unsubscribe from this group, send email to sfepy-devel...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
On 01/05/2012 09:57 PM, Tom Aldcroft wrote:
On Thu, Jan 5, 2012 at 2:37 PM, Robert Cimrman<cimr...@ntc.zcu.cz> wrote:
On 01/05/12 17:33, Tom Aldcroft wrote:
Robert Cimrman<cimr...@ntc.zcu.cz> Jan 04 06:36PM +0100
Hi Tom!
On 01/04/12 17:31, Tom Aldcroft wrote:
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.
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?
Yes, the problem is linear. As for the specific equations to be solved, this should be standard linear elastic shell (2-d) formulation, but I don't have experience in actually solving the equations with real inputs and boundary conditions. To be more concrete, I want to solve for the bending of a thin plate due to an attached piezo: http://en.wikipedia.org/wiki/File:Piezo_bending_principle.jpg
Ok I see. It will involve adding new terms, as we have not touched shells (bending) yet. We have only membrane elements (but large deformation!) so far.
Sorry, I should have also made it more clear that the actual deflections we will correct are very small, no more than 1 micron (10^-6 m) versus a shell thickness of 200 microns and a overall mirror radius of 1 meter. This is just doing extremely fine tuning of a precise X-ray optic. The edges will all be clamped as well, this thing has to survive launch into orbit. So in that sense I don't think there is the normal concern with large deflections in shells. Does that help?
Yes, now I am beginning to see what you are up to. Very cool!
I am very much interested in having shell elements in SfePy, but do not have experience with the theory behind. Is something like in [3] ok? If we take this route, it will take some time, so if you (or anybody) could help, that would be great (particularly, finding the element equations/description in literature).
Well I dusted off my Landau and Lifshiftz Theory of Elasticity this morning, but it would probably be a stretch for me to provide very useful theoretical input on the right equations. I could do testing however.
No problem, I can find the equations... BTW, what was the element type in the commercial FEA you tried? Maybe it has some theoretical description. Just curious.
What if you try to do an initial testing with 3D elements (a few layers)? It might not be efficient, but will get you acquainted with SfePy, and also easily solve the rotation boundary conditions you write about below.
If the new information about small deflections doesn't change things, I will go ahead with trying a 3-d simulation. As long as I can get a good answer in less than an hour it will be useful. (But of course faster is better).
Is there any numerical issue with having very different node spacing in the thin (shell) dimension versus the other two? Right now we have a 1 mm spacing in each direction, so that would be much larger than the in-shell spacing of ~0.050 mm (for 4 layers). [In case you are wondering, we are not modeling an entire 360 degree cone but rather just a 23 degree pie section].
For such a thin structure I think the 3D elements cannot be used for the actual computation (I may be wrong), and linear shell elements seem to be a natural choice.
For testing purposes and for developing the "application", however, the 3D model might be useful, as it could be done right now. You could try to set up the loading, the tuning procedure etc. and then just change the equation terms. This is big IMHO...
In our problem each piezo actuator is small compared to the mirror surface, about 10% of the size in each dimension. I'm not really interested in the details of the voltage potential (as in [1]), but instead just the effect of the piezo as a bending actuator to control the mirror surface.
So the piezo-elements are be represented as given surface loads of the thin shell, and the problem is pure linear elasticity, right?
Yes. When actuated the thin-film piezo wants to expand isotropically and so it exerts a surface (in-plane) force radially from the center of the piezo.
Good.
Cheers, r.
participants (2)
-
Robert Cimrman -
Tom Aldcroft