Optimise ellipsoid parameters on which to project nodes?
Hello everyone,
my goal is to optimise the cell heights of a 3-dimensional lattice composed of 1D beam elements. The enveloping shape is already close to a 3D ellipsoid. The nodes on the lattice's layers are to be projected onto layered ellipsoid shapes (using the freehand mode in Hypermorph), positioned between the innermost and outermost lattice layers (think of onion layers, see example below of cuboid lattice morphed to ellipsoid function). Their parameters a/b/c need to be fed into Hyperstudy to determine their optimum values.
1. Can this be done directly at the parameters a/b/c level, or is this only feasible with shape/handle perturbations?
2. Furthermore, would it possible to determine the optimal nodal position (within a certain tolerance) tangential to a certain surface, without the nodes being associated to it? This would not need to be performed at the same time as the layer height optimisation.
3. As can be seen in the attached figure (open image in new tab for better quality), some node positions are irregular after morphing. This seems to occur even after applying a symmetry constraint. What could be the reason of this behaviour?
Any help is greatly appreciated.
Best Answer
-
not sure if it would be helpful, but have you tried 'morph volumes' for creating these shape changes?
maybe it is not so accurate, but it might be useful for your case. just guessing.
0
Answers
-
not sure if it would be helpful, but have you tried 'morph volumes' for creating these shape changes?
maybe it is not so accurate, but it might be useful for your case. just guessing.
0 -
Adriano A. Koga_21884 said:
not sure if it would be helpful, but have you tried 'morph volumes' for creating these shape changes?
maybe it is not so accurate, but it might be useful for your case. just guessing.
Hi Adriano, from my very limited experience with morphing, morph volumes are rather intended to be used manually. The freehand approach of projecting the nodes to a defined surface yields pretty much exactly what I need. I've tried to use the morph volumes a little bit for this goal, but I couldn't figure out how to achieve the same structure after morphing.
0 -
Ingeniorator said:
Hi Adriano, from my very limited experience with morphing, morph volumes are rather intended to be used manually. The freehand approach of projecting the nodes to a defined surface yields pretty much exactly what I need. I've tried to use the morph volumes a little bit for this goal, but I couldn't figure out how to achieve the same structure after morphing.
correct. it would be very manual approach to create the shape variables. At least it keeps a good tangency.
maybe a combination of morph with morph constraints could be helpful. Or the 'map to geom' tools. not quite sure of the best option though.
0 -
Adriano A. Koga_21884 said:
correct. it would be very manual approach to create the shape variables. At least it keeps a good tangency.
maybe a combination of morph with morph constraints could be helpful. Or the 'map to geom' tools. not quite sure of the best option though.
Alright, we'll have to see what works and what does not. On another note, do you know if the procedure of my second question is feasible? Or, alternatively, if multiple node positions can be optimised independently given an allowable movement radius?
0 -
Ingeniorator said:
Alright, we'll have to see what works and what does not. On another note, do you know if the procedure of my second question is feasible? Or, alternatively, if multiple node positions can be optimised independently given an allowable movement radius?
if you were using OptiStruct, there is the 'free-shape' optiization that allowas nodes to move freely, over the boundaries, and you can limit the max distance (grow/shrink) for its movement.
Not sure if this would be helpful.
0 -
Adriano A. Koga_21884 said:
if you were using OptiStruct, there is the 'free-shape' optiization that allowas nodes to move freely, over the boundaries, and you can limit the max distance (grow/shrink) for its movement.
Not sure if this would be helpful.
Hm true, maybe something can be done with the equivalent static load method in conjunction with Optistruct. I'll look into that, thanks.
0 -
Adriano A. Koga_21884 said:
if you were using OptiStruct, there is the 'free-shape' optiization that allowas nodes to move freely, over the boundaries, and you can limit the max distance (grow/shrink) for its movement.
Not sure if this would be helpful.
@Adriano A. Koga By chance, do you know how to handle a TCL script in Hyperstudy? It seems that treating the whole problem in a TCL script is the easiest route. The script in question would need to call Hypermesh, perform some mesh operations (extracted from a manual procedure and fetched from the command.tcl file) with varying values and then run Radioss. Does this need to be defined inside an input file, for example in the beginning referring to sets etc to be manipulated, or does it need to happen in a TCL script opening HM, loading a model, performing manipulations etc? Unfortunately, there seems to be very little info available on TCL scripts in combination with Hyperstudy. If all else fails, making use of shapes/node perturbations will probably be the most promising route.
0 -
Ingeniorator said:
@Adriano A. Koga By chance, do you know how to handle a TCL script in Hyperstudy? It seems that treating the whole problem in a TCL script is the easiest route. The script in question would need to call Hypermesh, perform some mesh operations (extracted from a manual procedure and fetched from the command.tcl file) with varying values and then run Radioss. Does this need to be defined inside an input file, for example in the beginning referring to sets etc to be manipulated, or does it need to happen in a TCL script opening HM, loading a model, performing manipulations etc? Unfortunately, there seems to be very little info available on TCL scripts in combination with Hyperstudy. If all else fails, making use of shapes/node perturbations will probably be the most promising route.
you can create a 'dummy' model in HyperStudy, and assign it to run a customized script as your 'solver'.
This script would be simply a .bat or .sh file that would call hw or hmbatch executables and call the tcl files with the -t options.
Take a look at the attached documentation for hmbatch.
0 -
Adriano A. Koga_21884 said:
you can create a 'dummy' model in HyperStudy, and assign it to run a customized script as your 'solver'.
This script would be simply a .bat or .sh file that would call hw or hmbatch executables and call the tcl files with the -t options.
Take a look at the attached documentation for hmbatch.
Hi Adriano, thank you very much for this info. Just to be sure, the steps would be as follows:
-create model, save as .HM or other input file
-write .tcl script which performs the desired operations
-write .bat script opening hmbatch calling the .tcl script
-call Radioss or Optistruct with the .bat script
-run Hyperstudy by executing the .bat file
Are there any implied steps that would be missing here, for example giving control back to Hyperstudy after a run? This seems to be necessary in case of custom scripts, or is this not the case with hmbatch?
0 -
Ingeniorator said:
Hi Adriano, thank you very much for this info. Just to be sure, the steps would be as follows:
-create model, save as .HM or other input file
-write .tcl script which performs the desired operations
-write .bat script opening hmbatch calling the .tcl script
-call Radioss or Optistruct with the .bat script
-run Hyperstudy by executing the .bat file
Are there any implied steps that would be missing here, for example giving control back to Hyperstudy after a run? This seems to be necessary in case of custom scripts, or is this not the case with hmbatch?
i would include everything in the same .bat file, and leave HyperStudy call it as your 'solver script'.
Take care with your scripts, having in mind that HyperStudy will be changing the run folder all the time, but always something like:
run0004>>m_1>>
it's just like if HyperStudy opened the 'cmd', and change directory to this particular folder, and then call your script, wherever you have saved it.
Also, remmeber that for HSt to uderstand your problem you have to have at least 1 parametrized file there with your variables.
In this case, you can create your variables inside your TCL script, and make HyperStudy parametrize your .tcl code.
By doing this, you would make Hst generate a new TCL file each time it runs, but with your new variables.
Another way would be to make HyperStudy parametrize a simple .txt or .csv file and then use TCL commands to read that and do the magic.
0 -
Adriano A. Koga_21884 said:
i would include everything in the same .bat file, and leave HyperStudy call it as your 'solver script'.
Take care with your scripts, having in mind that HyperStudy will be changing the run folder all the time, but always something like:
run0004>>m_1>>
it's just like if HyperStudy opened the 'cmd', and change directory to this particular folder, and then call your script, wherever you have saved it.
Also, remmeber that for HSt to uderstand your problem you have to have at least 1 parametrized file there with your variables.
In this case, you can create your variables inside your TCL script, and make HyperStudy parametrize your .tcl code.
By doing this, you would make Hst generate a new TCL file each time it runs, but with your new variables.
Another way would be to make HyperStudy parametrize a simple .txt or .csv file and then use TCL commands to read that and do the magic.
Hi Adriano, sorry for the very late reply, it got lost somewhere in the daily swamp of tasks. Thank you very much for your insight, I'll try getting a batch and TCL script to work. You wouldn't happen to have an example of this on hand? Don't worry if that's not the case.
0