Applying the finite element method to real-life problems is not always a piece of cake. Especially achieving convergence for nonlinear applications (large deformation, nonlinear material behavior, contact) can be quite tricky. However, adhering to a couple of simple rules can make life a lot easier. According to my experience, the following guidelines are quite helpful:

- Check the quality of your mesh in CalculiX GraphiX or by using any other
good preprocessor.
- If you are dealing with a nonlinear problem, RUN A LINEARIZED VERSION FIRST: eliminate large deformations (drop NLGEOM), use a linear elastic
material and drop all other nonlinearities such as contact. If the linear
version doesn't run, the nonlinear problem won't run either. The linear
version allows you to check easily whether the boundary conditions are
correct (no unrestrained rigid body modes), the loading is the one you meant
to apply etc. Furthermore, you get a feeling what the solution should look
like.
- USE QUADRATIC ELEMENTS (C3D10, C3D15, C3D20(R), S8, CPE8, CPS8, CAX8,
B32). The standard shape functions for quadratic elements are very
good. Most finite element programs use these standard functions. For linear
elements this is not the case: linear elements exhibit all kind of weird behavior such
as shear locking and volumetric locking. Therefore, most finite element
programs modify the standard shape functions for linear elements to
alleviate these problems. However, there is no standard way of doing this,
so each vendor has created his own modifications without necessarily
publishing them. This leads to a larger variation in the results if you use
linear elements. Since CalculiX uses the standard shape functions for linear
elements too, the results must be considered with care.
- If you are using shell elements or beam elements,
use the option OUTPUT=3D on the *NODE FILE card in CalculiX (which is default). That way you
get the expanded form of these elements in the .frd file. You can easily
verify whether the thicknesses you specified are correct. Furthermore, you
get the 3D stress distribution. It is the basis for the 1D/2D stress
distribution and the internal beam forces. If the former is incorrect, so
will the latter be.
- If you include contact in your calculations and you are using quadratic
elements, first avoid to include middle nodes in the slave surface. In
CalculiX, slave middle
nodes in contact formulations are internally connected to their neighboring
vertex nodes by means of multiple
point constraints. This makes the contact area stiffer. It may lead to
undesirable results if a lot of bending is involved.
- if you do not have enough space to run a problem, check the numbering. The memory needed to run a problem depends on the largest node and element numbers (the computational time, though, does not). So if you notice large gaps in the numbering, get rid of them and you will need less memory. In some problems you can save memory by choosing an iterative solution method. The iterative scaling method (cf. *STATIC) needs less memory than the iterative Cholesky method, the latter needs less memory than SPOOLES or PARDISO.