/cae

CalculiX Advanced Environment is designed to guide you through the CalculiX keywords creation process and is aimed to help you reach the correct input file with no mistakes.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

© Ihor Mirzov, 2019-2023
Distributed under GNU General Public License v3.0

Github All Releases




Downloads | Features | Screenshots | How to use | Your help | For developers | TODO




CalculiX Adanced Environment (CAE)

CAE is a software package consisting of CalculiX GraphiX, CrunchiX and keyword editor. The last one - is a very simple, free and open source GUI/pre-processor for CalculiX. Program is based on the keywords hierarchy, is designed to guide you through the keywords creation process and is aimed to help you reach the correct input file with no mistakes.

It is implied that you have already created geometry and generated mesh in some other software like FreeCAD or Salome-platform.



Features

  • CAE comes with the latest CGX and CCX compiled for both Linux and Windows. Analysis runs on all cores automatically.

  • CAE is distributed with standalone Python. All requirements will be installed automatically on app start. To start using the software you have to simply download it, unpack and run.

  • INP format for all needs: program parses .inp-file and generates model on the fly, so separate format for the model is not needed. Final model is saved also with .inp format ready to be calculated with CCX. Robust INP importer algorithm is tested on over 20 000 INP files, including Abaqus models (see log).

  • Official HTML documentation is natively integrated into the keyword edit dialogs (Help button).

  • Calculix keywords with all attributes are maintained in editable XML file. It allows for all CalculiX keywords to have their own GUI - keyword edit dialogs.

  • Solid mesh parser supports includes in the input file. Tested on the all official CalculiX examples. See mesh.log.

  • Application's global settings could be set up in the File->Settings menu. Settings are maintained in editable Python file - it is automatically overwritten during the workflow.

  • CGX window is connected to the keyword editor and accepts commands from it.

  • Cute modern design with nice icons.

  • Optimal job management:

    • if you use subroutines, CalculiX sources could be automatically recompiled from GUI;
    • run analysis directly from GUI;
    • open results in GraphiX or convert to VTU format and open them in Paraview.
  • CAE uses converters:

    • ccx2paraview - CalculiX to Paraview converter (frd to vtk/vtu)
    • unv2ccx - Salome universal to CalculiX converter (unv to inp)



Screenshots

Keyword editor and CGX windows with imported mesh and painted surfaces: img1

"New keyword" dialog with corresponding chapter from HTML manual: img2

Keyword editor and CGX windows with calculated model: img3

New CGX colormaps - viridis, inferno, turbo: img4

Calculation result exported to Paraview: img5



How to use

CalculiX Advanced Environment - Download and run

Download latest release and unpack it.

Linux only: open terminal in unpacked CAE directory, allow all files to be executed:

sudo chmod -R 777 ./*

Run the software with command (or double click those files):

in Linux:       ./cae.sh
in Windows:     cae.bat

You can edit default startup model name in File->Settings or leave it empty.

The intended workflow is:

  • create geometry and mesh in FreeCAD or Salome-platform,
  • save mesh as UNV or export it to INP with Salome to CalculiX mesh exporter,
  • import INP or UNV mesh into CAE and continue creating model,
  • if needed, edit Fortran subroutines and rebuild CCX (menu Job),
  • submit job from CAE,
  • view job result in GraphiX or export it to post-process in Paraview.

In Windows to work with subroutines and to recompile CalculiX sources from CAE you'll need cygwin. Install it to 'C:\cygwin64' with:

  • gcc-g++ 11.3.0-1
  • gcc-fortran 11.3.0-1
  • make 4.3-1
  • perl 5.32.1-2
  • libglut3 3.2.1-1

Attention! Do not move CCX or CGX from 'bin' directory!



Your help

Please, you may:

  • Star this project.
  • Simply use this software and ask questions.
  • Share your models and screenshots.
  • Report problems by posting issues. Please, attach ./cae.log (or other logs) to the problem report.
  • Do something from the TODO-list as a developer.
  • Maybe draw better icon set.
  • Or even become a sponsor to me.



For developers

Visual Studio Code

Keyword editor is written in Python3 and utilizes PyQt5.

As a developer you may also need libraries:

qttools5-dev-tools
pycallgraph



TODO

Examples and training materials:

  • Shortcut/symlink to folder in another repo: examples.
  • Prool's INP-templates and snippets.
  • Interface for Martin Kraska examples.
  • Menu Help: wiki, YouTube videos for beginners.

Python API:

FreeCAD:

  • Embeded CAE into FreeCAD.
  • Connector for FreeCAD: listen to port and obtain meshed geometry.

CGX:

Parsers:

  • Reparse mesh/model after tree.actionDeleteImplementation.
  • Reparse mesh/model after new item creation. New elsets/nodesets are not highlighted in CGX.
  • Parsers for loads and boundary conditions.

Importer:

  • treeView: import certain keyword with descendants (tree branch) from INP-file.
  • Interface for materials import: right click on *Material -> Import.
  • Meshio converter.
  • Import mesh from FRD, VTK, VTU, Gmsh.
  • Open .fbd/.fbl and forward to CGX. Then import generated model.

KeywordDialog:

  • Insert Combo widget into Table cell.
  • Table widget: redundant comma in the end of line.
  • Draw a separator (black line) in GUI for group with newline=1.
  • Argument form='Combo' with sub-arguments: regenerate GUI on Combo index change. Current form='VOr' is not user friendly.
  • Unittests for KeywordDialog: compare generated INP code with the one which should be.

Other:

  • Main Window: filter tree items - search item.
  • Main Window: treeView - highlight background of the collections.
  • Open collective / Patreon.
  • Video: Download CAE, unpack and run. Capture video with OBS Studio, edit with DaVinci Resolve.
  • Test presense of gfortran and gcc compilers for subroutines.