Calculix Extras

**Thank you for your interest in CalculiX Extras.

(Last update 7/23/2021)**

Extensions written by Peter A. Gustafson.

Current patch level - 2.17

Capabilities

CalculiX Extras builds on the CalculiX v2.17 code base

  • It adds CUDA based solvers. Please note this is research level code. It is considered a stable code but must be used with due diligence.
    • Currently, these solvers can be called for static analysis in mechanical models in CalculiX.
      • Cuda-Cusp
        • (Outstanding performance for appropriate models.)
      • SuiteSparse Cholmod
        • (Modest performance at last testing in ccx version 2.11. However, since then CUDA has been added to Cholmod and it has not been subsequently testing with CalculiX Extras)
  • It extends CalculiX to write results into ExodusII format. Postprocessing can be accomplished with several readers. A recommended postprocessor is Paraview.

ccx_exodusII

Build Instructions

These instructions are limited. They assume you are able to build CalculiX from source. Warning: building all these libraries from source can be a challenge for seasoned developers. Ubuntu specific instructions can be found at CalculiX Extras for Ubuntu

  1. Choose your extra: exo, solver, or both
    1. For exo files: download, build, and install ExodusII
    2. For additional solvers: download and install:
      1. Cuda-Cusp (The cuda based solver requires an install of Nvidia’s CUDA SDK and libs
      2. SuiteSparse (which includes Cholmod )
  2. Download CalculiX ccx version 2.17
    wget https://openaircraft.com/assets/code/calculix/ccx_2.17.src.tar.bz2
    
  3. Download CalculiX Extras patches
    wget https://openaircraft.com/assets/code/calculix/ccx_extras.2.17.Makefile.patch
    wget https://openaircraft.com/assets/code/calculix/ccx_extras.2.17.exo.patch
    wget https://openaircraft.com/assets/code/calculix/ccx_extras.2.17.solver.patch
    
  4. Unpack ccx_2.17.src.tar.bz2
    tar xavf ccx_2.17.src.tar.bz2
    
  5. Patch the Makefile
    cd CalculiX/ccx_2.17
    patch -p2 < ../../ccx_extras.2.17.Makefile.patch
    
  6. Apply patches your extra: exo, solver, or both (order of patch application doesn’t matter)
    patch -p2 < ../../ccx_extras.2.17.exo.patch
    patch -p2 < ../../ccx_extras.2.17.solver.patch
    
  7. Modify the Makefile based on the locations of your libraries
    cd src
    emacs Makefile
    
  8. Make
    make
    
  9. Send bug reports to peter.gustafson@wmich.edu

FAQ

  • If you’ve made an attempt… Yes, I’d be glad to help you!
    • But you must be able to compile ccx (without my patches) first.
    • See the first line of the build instructions… this can be tough and this is the minimum starting point for support from me.
    • (PS The ccx mailing list is great.)
  • If you’ve not yet made an attempt, please try before you contact me. See the FAQ to understand my reasoning…

Usage

  • The solvers can be called using the *static keyword:
    *static, solver=cudacusp
    *static, solver=cholmod
    
  • ExodusII output format is called on job execution using the command line.
    ccx -i jobname -o exo
    

Benchmarking

A rigorous round of benchmarking has been completed. If you are unable to download the paper, please contact me using the submission form below.

    • I’m happy to collaborate with others who are interested in further benchmarking.
    • Benchmarking will be highly dependent on hardware and software configuration.
    • I’m seeking additional “real world” models for use in benchmarking.
    • An NSF grant to WMU funded the hardware used for benchmarking.

Known Bugs and Functional Deficits

  • The solvers have only been applied to static solid mechanics models.
  • The solvers have have not been actively tested since version 2.11 so your mileage may vary.
  • There are known limitations for output requests with ExodusII
    • Several output requests to ExodusII format are untested.
    • It is not currently possible to change output requests between steps
    • Node sets are partially implemented but element sets are not implemented
  • Developing for CalculiX
    • Doxygen was used to generate documentation which may help with development for CalculiX. The documentation is here. Note also the user documentation for ccx and cgx.

Download

  • In order to quantify interest and justify ongoing development, I ask that you submit your name and organizational info via email to peter.gustafson@wmich.edu. This info will not be used for any marketing. It will not be sold. Without any expressed interest, my time on this project is not justified.
    • Your participation is voluntary. Please resubmit with each version you download.
    • Thank you for your consideration.

Download the latest patches.

Support maintenance of this code

Please donate to support maintenance of this code!