I’ve been setting 0 or 1 to the Curve/Surface Refinement components and today, I tried higher numbers for my first time.
The results are not like I was expected.
As shown below, with a higher refinement number (second image), the deformation gets unrealistically large. (the first image is the one with 0/1 refinement number.)
Does this mean I should keep using 0 or 1 for the refinement number or am I misunderstanding what is refinement?
I attached the GH definition (it’s very simple.) Could anyone

I hope the result with a higher refinement number is wrong because we have already done tons of calculations with 0/1 refinement number. (but to me, the one with a higher refinement number looks clearly wrong).

Thank you!!


kiwi hypar (17.6 KB)


the necessary refinement depends always on your initial surface parametrization. You have to have enough nodes, i.e. control points, to enable the correct deformation, just like for classical FEM. So usually, you should use refinement and a degree of 3 is definetely strongly recommended (P and Q) if your surface is not already of degree 3. Only if your initial surface has already a lot of control points, it might be good to use 0/1 in order to avoid increasing the computation time.

Have you checked your input values? A cantilevering steel plate with a thickness of 1cm and 10m span seems a bit out of range doesn’t it? Furthermore, if the displacements are that large as already for the 0/1 refinement, the result of a linear analysis are a bit questionable as linear analysis is only valid for small deformations.

Thanks Anna!

Ummm, it’s weird, after several tests with higher refinement numbers, it seems like the deformation matches the other software only when the thickness is small.
I’m actually trying to write my own isogeometric analysis code and it matches Karamba well.
Kiwi does not match either of them when the thickness is large.
Sorry for keeping bother you, but I think karamba is already trustworthy…



kiwi hypar test kiwi-karamba (87.8 KB)

I don’t have Karamba but I checked the rest your file of your file. There is a rotational support missing in the second file. At least I assume that there should be one like in the first. After setting the rotational support, I get a displacement of around 15mm at the corner of the cantilever which is the same for Sofistik for a thickness of 0.5 and steel like in your file. Is it possible that the scaling is not showing the same results?

Ah. I see, after turning on rotational constraint on the supports, both results from Karamba and Kiwi matched. (nice!)

I’m still wondering why releasing the rotational constraint makes Kiwi and Karamba give different results. But probably that’s because pin-supported cantilever is nonsense.
(Maybe that’s the supported edges far off from the original location in the second example in the first image (middle) suggest…)