Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
Many thanks in advance for your patience and help.
- Tom
Hi Tom,
On Fri, 3 Feb 2012, Tom Aldcroft wrote:
Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
It should be possible to define such a load - I will prepare an example showing that, with dw_surface_ltr and/or dw_point_load (with a tweak) terms.
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
This is certainly possible as well, but imho defining the right thermal expansion coefficient is difficult, no? Maybe it would be more feasible to model directly the piezo effect? Anyway, I think I have a thermo-elasticity example somewhere, I will send it to you...
Cheers, r.
On Fri, Feb 3, 2012 at 7:35 PM, Robert Cimrman cimr...@ntc.zcu.cz wrote:
Hi Tom,
On Fri, 3 Feb 2012, Tom Aldcroft wrote:
Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
It should be possible to define such a load - I will prepare an example showing that, with dw_surface_ltr and/or dw_point_load (with a tweak) terms.
This sounds great. I'll be presenting the results of these calculations at the San Diego SPIE meeting in August, so FWIW your efforts will get a viewgraph or two in my talk and reference in the conference paper.
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
This is certainly possible as well, but imho defining the right thermal expansion coefficient is difficult, no? Maybe it would be more feasible to model directly the piezo effect? Anyway, I think I have a thermo-elasticity example somewhere, I will send it to you...
Cheers, r.
-- 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 02/04/2012 02:27 AM, Tom Aldcroft wrote:
On Fri, Feb 3, 2012 at 7:35 PM, Robert Cimrmancimr...@ntc.zcu.cz wrote:
Hi Tom,
On Fri, 3 Feb 2012, Tom Aldcroft wrote:
Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
It should be possible to define such a load - I will prepare an example showing that, with dw_surface_ltr and/or dw_point_load (with a tweak) terms.
So here it is. In plate_load.py, there is get_load_vectors() that defines the load towards the patch centre depending on normals. For dw_point_load (in this file) everything is defined in mesh nodes. For dw_surface_ltr (in plate_load2.py) the normals and load vectors are defined in surface quadrature points. I have used some ad-hoc values for the material parameters, etc. so the examples are by no means physical, but they should get you started. They use some new utility functions that were just added - use the latest git version to try them.
The mesh has been generated using
./script/blockgen.py -d[1,1,0.01] -s[21,21,3] -o plate.mesh
- if you try a different one, do not forget to change the region definitions accordingly.
Note that after we add the plate/shell elements, the load will be given in a slightly different way, depending on the model used.
Let us know how it goes.
This sounds great. I'll be presenting the results of these calculations at the San Diego SPIE meeting in August, so FWIW your efforts will get a viewgraph or two in my talk and reference in the conference paper.
That would be great, thanks!
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
This is certainly possible as well, but imho defining the right thermal expansion coefficient is difficult, no? Maybe it would be more feasible to model directly the piezo effect? Anyway, I think I have a thermo-elasticity example somewhere, I will send it to you...
There is also new examples/thermo_elasticity/thermo_elasticity.py, in case you would like to explore this way.
r.
Hi -
I've tested both codes and they appear to work as expected. My only question at the moment is whether there is a reason to prefer version 1 or 2 in terms of performance etc. Conceptually version 1 seems more clear to me so I would prefer that one if all else is equal.
Thanks, Tom
On Sun, Feb 5, 2012 at 12:25 PM, Robert Cimrman cimr...@ntc.zcu.cz wrote:
On 02/04/2012 02:27 AM, Tom Aldcroft wrote:
On Fri, Feb 3, 2012 at 7:35 PM, Robert Cimrmancimr...@ntc.zcu.cz wrote:
Hi Tom,
On Fri, 3 Feb 2012, Tom Aldcroft wrote:
Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
It should be possible to define such a load - I will prepare an example showing that, with dw_surface_ltr and/or dw_point_load (with a tweak) terms.
So here it is. In plate_load.py, there is get_load_vectors() that defines the load towards the patch centre depending on normals. For dw_point_load (in this file) everything is defined in mesh nodes. For dw_surface_ltr (in plate_load2.py) the normals and load vectors are defined in surface quadrature points. I have used some ad-hoc values for the material parameters, etc. so the examples are by no means physical, but they should get you started. They use some new utility functions that were just added - use the latest git version to try them.
The mesh has been generated using
./script/blockgen.py -d[1,1,0.01] -s[21,21,3] -o plate.mesh
- if you try a different one, do not forget to change the region definitions accordingly.
Note that after we add the plate/shell elements, the load will be given in a slightly different way, depending on the model used.
Let us know how it goes.
This sounds great. I'll be presenting the results of these calculations at the San Diego SPIE meeting in August, so FWIW your efforts will get a viewgraph or two in my talk and reference in the conference paper.
That would be great, thanks!
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
This is certainly possible as well, but imho defining the right thermal expansion coefficient is difficult, no? Maybe it would be more feasible to model directly the piezo effect? Anyway, I think I have a thermo-elasticity example somewhere, I will send it to you...
There is also new examples/thermo_elasticity/thermo_elasticity.py, in case you would like to explore this way.
r.
-- 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.
As concerns performance, I did not test it - the example was so small, that it was solved "immediately" in both cases. From the puristic FE perspective, the second approach is cleaner as you integrate a force tractions over a surface - there is a clear "continuous" analogy. The first approach makes use of the fact, that the approximation uses (linear) nodal basis, i.e. a function value in a vertex is equal to the degree of freedom (coefficient of the corresponding base function). Because this is the only basis sfepy has so far, it's not a limitation. So use whatever suits you best. I do not know how far it will be possible to go with volume elements anyway.
I discussed with colleagues which plate elements would be the best to implement first, so now I need some spare time to try implementing them [1], [2]. It seems to me that due to thinness and small curvature, there is no need to go for shells immediately.
r.
[1] http://en.wikipedia.org/wiki/Mindlin%E2%80%93Reissner_plate_theory [2] http://en.wikipedia.org/wiki/Kirchhoff%E2%80%93Love_plate_theory
On 02/08/2012 04:10 PM, Tom Aldcroft wrote:
Hi -
I've tested both codes and they appear to work as expected. My only question at the moment is whether there is a reason to prefer version 1 or 2 in terms of performance etc. Conceptually version 1 seems more clear to me so I would prefer that one if all else is equal.
Thanks, Tom
On Sun, Feb 5, 2012 at 12:25 PM, Robert Cimrmancimr...@ntc.zcu.cz wrote:
On 02/04/2012 02:27 AM, Tom Aldcroft wrote:
On Fri, Feb 3, 2012 at 7:35 PM, Robert Cimrmancimr...@ntc.zcu.cz wrote:
Hi Tom,
On Fri, 3 Feb 2012, Tom Aldcroft wrote:
Hi -
I'm trying to specify a localized traction pressure which is a providing a radial outward force over a square patch in my adjustable x-ray optics model. A schematic picture is shown in the link below, where the dots represent nodes, and red dots with arrows are forces:
http://hea-www.harvard.edu/~aldcroft/tmp/force_plot.png
This is a 2-d plot, but in reality the nodes are on a 3-d thin shell cylinder, so the forces won't all lie in the same plane. I've looked at the traction pressure example but I am unable to extrapolate from that example to specify my problem.
It should be possible to define such a load - I will prepare an example showing that, with dw_surface_ltr and/or dw_point_load (with a tweak) terms.
So here it is. In plate_load.py, there is get_load_vectors() that defines the load towards the patch centre depending on normals. For dw_point_load (in this file) everything is defined in mesh nodes. For dw_surface_ltr (in plate_load2.py) the normals and load vectors are defined in surface quadrature points. I have used some ad-hoc values for the material parameters, etc. so the examples are by no means physical, but they should get you started. They use some new utility functions that were just added - use the latest git version to try them.
The mesh has been generated using
./script/blockgen.py -d[1,1,0.01] -s[21,21,3] -o plate.mesh
- if you try a different one, do not forget to change the region definitions accordingly.
Note that after we add the plate/shell elements, the load will be given in a slightly different way, depending on the model used.
Let us know how it goes.
This sounds great. I'll be presenting the results of these calculations at the San Diego SPIE meeting in August, so FWIW your efforts will get a viewgraph or two in my talk and reference in the conference paper.
That would be great, thanks!
As an aside, it's quite possible I'm going about this all wrong. Recall that I'm trying to simulate a piezoelectric patch mounted on a glass thin walled cylinder. I think that the radial force input represents the situation when the piezo is actuated (but maybe not). Certainly this can be modeled as a thermo-elastic problem, with two materials: the cylinder with a CTE of 0.0 and the piezo material with a non-zero CTE. Then change the temperature of the whole system and calculate the resultant displacements. I don't see any examples that seem to show the thermo-elastic equations.
This is certainly possible as well, but imho defining the right thermal expansion coefficient is difficult, no? Maybe it would be more feasible to model directly the piezo effect? Anyway, I think I have a thermo-elasticity example somewhere, I will send it to you...
There is also new examples/thermo_elasticity/thermo_elasticity.py, in case you would like to explore this way.
participants (2)
-
Robert Cimrman
-
Tom Aldcroft