3D Curved Ceramic Poling Answered

I am trying to define poling for a 3D focused bowl transducer. Following the 2D example is fine but this does not work for 3D.

In 3D I use the site tool to define a sphere of PZT material to create the bowl transducer but it appears there is no way to create various different sections of a sphere through different angles. This means I can't assign the many different PZT material copies to different parts of the bowl in order to assign the appropriate poling axis to them.

Is there a way to get around this?

Thanks.

8 comments

  • Official comment

    Hey Laura,

    I understand what you are trying to do here but you are correct it could prove difficult. A much easier option if you have it available to you would be to draw your transducer in an external CAD package e.g. OnShape (which is free to use) and import the step file into OnScale. Essentially what you would do is draw your transducer so each piezo element was it's own part.

    This would make it easier to pole, as we could apply a unique material to an individual part.

    This would be the easiest way to do this and wouldn't require advanced logic in the FLXINP file to generate the model.

    Regards,

    Oliver 

    Comment actions Permalink
  • Hey Laura,

    Sorry I was assuming the transducer was segmented and that would be a much easier to get that model into OnScale. In regards to the poling you would need to set up a custom spherical coordinate system using the axis command (see the command reference for more information on this) and then you would apply that axis to the piezoelectric material. 

    Oliver

    Comment actions Permalink
  • Hi Oliver,

    Thanks for your help. I have created a spherical coordinate system and it generates lots of copies of the piezo material to pole it radially just like I wanted. However, now when I try to assign the loads I can't use nod2 to find the nodes between the piezo and the water to create the load, because the bowl is now split up into hundreds of copies of the piezo material. 

    Is there a nice simple way to do the load definition in this case?

    Another problem I'm having is that there is a maximum number of segments I can use to split up the sphere. I get the following error when I try to increase the numbers when assigning the spherical axis to the piezo material: 

    'Error message--character array exceeded by matr_labl 
    100000 81260'

    Thanks,

    Laura

    Comment actions Permalink
  • Hi Laura,

    So a do loop might work in this case. For example if the materials are listed like this PZT_1, PZT_2.... PZT_n you could loop through the material names and still use nod2 this is maybe how it would look in your case:

     

    symb nsegments = 10 

    piez 

         wndo * * * * * *

         defn elec_top 

    do loop1 J 1 $nsegments 1 

          nod2 water PZT_$J

    end$ loop

     

    Feel free to send us your files at us and I'll have a look if this doesn't make sense.

    I think the problem with max segments is due to character memory you can adjust the character memory settings in the settings

     

    Hope this helps,

    Oliver

    Comment actions Permalink
  • Also you could check the command reference for the PIEZ NOD2 syntax and try the root option this should eliminate the need for looping through the material names like I explained above. 

    Oliver

    Comment actions Permalink
  • Thank you very much, that has really helped!

    Comment actions Permalink
  • Hello Sir, 

    This seems to be the problem I am having how. I have a spherical array already modelled using 'SITE SPHR' syntax but I have problem poling the piezoceramic elements using PIEZ NOD2 syntax . I keep getting 'no node is defined' error

    Please! How can you help?

    Comment actions Permalink
  • I need to add the piezoceramic elements are equally spaced along the curved surface and need to pole them circumferentially in 3D

    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post