Here’s a list of the most important limitations of the CalculiX solver, particularly the undocumented ones. Some can be considered recurring bugs, while others are just unimplemented features or side effects of the CalculiX’s unusual ways of handling some things (like no true 1D/2D elements or rotational DOFs). Feel free to add more in the comments.
- Rigid body constraints can’t be used with 2D elements in explicit dynamics. A workaround is to imitate rigid body by increasing Young’s modulus (this will decrease the stable time increment unless the minimum allowed increment size is fixed by the user): https://github.com/Dhondtguido/CalculiX/issues/59
- Initial velocity is not transferred to the expanded nodes of 1D and 2D elements in dynamic analyses. A workaround is to define a dummy node-based surface from the node set used for the initial velocity definition: https://github.com/Dhondtguido/CalculiX/issues/63
- Contact print with node-to-surface contact leads to no results of an analysis: https://calculix.discourse.group/t/possible-bug-using-contact-print/927
- Models with shells, Nlgeom and rigid body constraints may not converge. A workaround is to extrude shell elements to solids (e.g. using the Thicken Shell Mesh tool in PrePoMax), at least for the region with rigid body constraint applied: https://calculix.discourse.group/t/rigid-body-constraint-convergance-problems/369
- The first buckling mode might be skipped when the applied load is much bigger than the buckling load (also Spooles has tendencies to provide wrong eigenvalue results in general): https://github.com/Dhondtguido/CalculiX/issues/74
- Tie constraint on shells may fail when *CLOAD is applied to the slave nodes (*DLOAD works). A workaround is to swap master/slave: https://github.com/Dhondtguido/CalculiX/issues/34
- Section print with FLUX requested, together with orthotropic thermal conductivity, makes CalculiX “think” that fluid simulation is performed, and it throws an error: https://github.com/Dhondtguido/CalculiX/issues/70
- Constraining drilling rotation (rotation DOF normal to the shell’s mid-surface) may lead to overconstraint and incorrect results or even non-convergence (particularly for curved edges). A workaround is to use a local coordinate system: https://github.com/Dhondtguido/CalculiX/issues/64 and https://calculix.discourse.group/t/contact-of-two-shell-pipes-no-convergence-in-newer-ccx-releases/2865
- Shells in steady state dynamics and modal dynamics analyses can’t have modified BCs in those steps with respect to the frequency step (*BOUNDARY, OP=NEW and respecified BC also counts as modification) and load applied in the SSD step has to be applied with 0 magnitudes also in the frequency step: https://prepomax.discourse.group/t/potential-bug-applying-radial-displacement-to-rigid-surface/2963
- Local coordinate systems can’t be used for boundary conditions applied to rigid body reference points (analyses fail silently): https://prepomax.discourse.group/t/potential-bug-applying-radial-displacement-to-rigid-surface/2963
- Reaction moment read from rigid body reference point might be zero in 2D (plane stress/strain) analyses: https://calculix.discourse.group/t/zero-reaction-moment-when-reading-from-rot-node-in-2d/1312
- Only the last value of the FREQUENCY parameter from output requests is used: https://calculix.discourse.group/t/different-frequency-for-dat-file-and-node-file/974
- Models with beam elements and tied contact (anywhere) may not converge: https://github.com/Dhondtguido/CalculiX/issues/83
- Results might be wrong for non-axis-aligned beams with rotational constraint or moment applied. A workaround is to use a local coordinate system: https://github.com/Dhondtguido/CalculiX/issues/124
- Minimum time increment can’t be lower than 1e-6 * step time for static steps and 1e-10 * step time for dynamic steps. A workaround is to split the analysis into more steps: https://calculix.discourse.group/t/minimum-time-increment-cant-be-lower-than-1e-5/1201
- Results of a multistep analysis with shells might be incorrect when BC is applied to rotational DOFs and uses OP=NEW: https://github.com/Dhondtguido/CalculiX/issues/13
- Analyses with creep are prone to convergence issues: https://calculix.discourse.group/t/creep-calculation-and-results/868
- EVOL (element volume) output doesn’t account for deformation: https://github.com/Dhondtguido/CalculiX/issues/73