3D Curved Ceramic Poling 回答済み

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?



  • 正式なコメント

    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.



    コメントアクション 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. 


    コメントアクション 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'



    コメントアクション 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 


         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,


    コメントアクション 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. 


    コメントアクション Permalink
  • Thank you very much, that has really helped!

    コメントアクション Permalink