Grasshopper

algorithmic modeling for Rhino

I've been trying out the new buckling analysis component in Karamba. It's really a great addition. I want to wrap around it with Octopus, and therefore keep the computation minimal. Specifically, I'd like to compute only the first positive buckling load factor without having to calculate enough buckling modes that one should be positive. Is there any way to achieve this right now, i.e. only calculate until it finds a positive one?

Views: 851

Replies to This Discussion

The AnalyzeThII-component offers the option to switch off the stiffening effect of tensile forces by setting 'NoTenNII' to true. There are however cases where this does not help.

The current algorithm for calculating the buckling factors is a Van Mises iteration which always converges to the buckling factors with the smallest absolute values. In the next release of Karamba I plan to add other algorithms which allow better control.

Best,

Clemens

Hi Clemens,

Thanks for the reply. Can I hack into it and write my own GH component that iterates until it finds a positive one?

I'm having trouble doing this right now; Buckling(inModel.febmodel,1,2,300,1e-5)

gives me

Runtime error (ArgumentTypeException): expected Model, got Model

No luck with this option either:

import Karamba.Algorithms.Component_Buckling as Buckling
Buckling.solve(inModel,1,2,300,1e-5)

Hi Diederik,

try the following: type 'GrasshopperDeveloperSettings' in the Rhino text window, and then set the hook at 'Memory load *.GHA...'. Otherwise GH loads Karamba.gha twice.

Best, C.

Unchecking that worked!

For my next question; FromInd in the buckling component doesn't seem to work. For example, in the ShellBuckling.gh example found on the Karamba3D website, changing FromInd from 1 to 2 seems to not influence the results.

Ofcourse my question is related to computing only positive load factors in a relatively efficient way.

This seems to be a bug in version 1.1.0. Thank you for the report.

I think it would be a good idea to have an option-flag on the buckling-component to limit the computation to positive buckling factors only. I will include this in the next release.

Best,

Clemens

Ok, so until that's fixed or the option-flag is included; this is the best option I can think of to generate only positive values, within computational reason;

import clr
clr.AddReferenceToFileAndPath("C:\Users\...\AppData\Roaming\Grasshopper\Libraries\karamba.gha")
import Karamba.Algorithms.Component_Buckling as Buckling

MaxModes = 10
num = 0
FromInd = 1
MaxIter = 300
Eps = 1e-5

for i in range(MaxModes):
    num = num+i
    if num < MaxModes:
        BLFac = map(float,Buckling.solve(inModel,FromInd,i+1,MaxIter,Eps)[0])[-1]
        if BLFac >= 0:
            break
    else:
        BLFacs =  map(float,Buckling.solve(inModel,FromInd,MaxModes,MaxIter,Eps)[0])
        BLFac = min([x for x in BLFacs if x >= 0 ])
        break

Dear Diederik, I have uploaded a new build of Karamba 1.1.0 which in case of buckling analysis returns only positive numbers as buckling load-factors.

Best, Clemens

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service