calculix 2.16 buckling problem??

I think calculix 2.16 (at least the version for win32bit that I use with mecway9) omits to calculate or miscalculates the lowest buckling modes when acr<1 (I am aware of the shift point concept). Mecway solver in general ,or calculix 2.15 have no problem. Anyone else noticed this?

Comments

  • edited April 2020
    If the problem is wrong frequencies and random displacement errors on some nodes, that can be caused by using multithreaded CCX with the SPOOLES solver. You should use the single-threaded one for buckling or at least don't set the environment variable OMP_NUM_THREADS to anything higher than 1.

    Otherwise, can you upload an example with the solution showing what the error looks like?
  • edited April 2020
    Hi Victor, thanks for the reply,

    Here is a summary of the problem:

    The number of procesors in my computer's system variables is 1.

    When the buckling factor (acr) is greater or equal to 1 there is no problem with calculix 2.16.

    When the acr is<1 the calculix 2.16 gives wrong results, while other versions e.g. 2.15 and lower have no problem.

    I use mecway9,32bit, and ccx,32bit versions. Please see attached images and liml file.

    In the particular example when I use calculix 2.15 or mecway solver the acr~0.16, but calculix2.16 shows acr~0.86 and from the buckling shape it is obvious that omitts lower buckling modes.
  • I see the same problem with the CCX 2.16 included with Mecway but not with CCX 2.16 from dhondt.de, nor CCX 2.15. So this could be a big bug. I'll reply on this thread when I have more progress. Thanks for bringing it up!

  • edited April 2020
    This turned out to be a tricky and serious problem but I'm not sure what to do about it yet.

    There are two "versions" of CCX 2.16. An older one and a newer one. The differences are:

    Older version:
    • Released before 2019-11-30
    • Automatically finds the shift point.
    • Has a bug that causes negative buckling factors for the attached example. This is Bug 26 here https://mecway.com/product.html#bugs
    • Exists in the Windows .exe available on dhondt.de
    • Has, at a guess, this code in arpackbu.c:
        if((5.>d[0]/sigma)||(50000.<d[0]/sigma)){
          if(iconverged<-4) {
            printf("no convergence for the buckling factor; maybe no buckling occurs");
            FORTRAN(stop,());
          }
          sigma=d[0]/500.;
          printf("no convergence; new iteration\n\n");
          --iconverged;
          SFREE(z);SFREE(d);
        }
        else{iconverged=0;}

    Newer version:
    • Released after 2019-11-30
    • Appears to always use a shift point of 1, suppressing any modes with buckling factor below 1.
    • Only positive buckling factors for the attached example.
    • Exists in the source code available on dhondt.de and the ccx.exe and source code included with Mecway 13.0.
    • Has this code in arpackbu.c:
      /*  if((5.>d[0]/sigma)||(50000.<d[0]/sigma)){
          if(iconverged<-4) {
            printf("no convergence for the buckling factor; maybe no buckling occurs");
            FORTRAN(stop,());
          }
          sigma=d[0]/500.;
          printf("no convergence; new iteration\n\n");
          --iconverged;
          SFREE(z);SFREE(d);
        }
        else{iconverged=0;}*/
      
        iconverged=0;
  • I see, thank you!
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!