 
 
 
 
 
 
 
  
 Next: Simple example problems
 Up: CalculiX CrunchiX USER'S MANUAL
 Previous: Units
     Contents 
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, use the face-to-face penalty contact method. In general, for
  contact between faces the face-to-face penalty method will converge
  much better than the node-to-face method. The type of contact has to be
  declared on the *CONTACT PAIR card.
 
- 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.
If you experience problems you can:
- look at the screen output. In particular, the convergence information
  for nonlinear calculations may indicate the source of your problem.
 
- look at the .sta file. This file contains information on the number of
  iterations needed in each increment to obtain convergence
 
- look at the .cvg file. This file is a synopsis of the screen output: it
  gives you a very fast overview of the number of contact elements, the
  residual force and the largest change in solution in each iteration (no
  matter whether convergent or not).
 
- use the ``last iterations'' option on the *NODE FILE
  or similar card. This generates a file with the name
  ResultsForLastIterations.frd with the deformation (for mechanical
  calculations) and the temperature (for thermal calculations) for all
  non-converged iterations starting after the last convergent increment.
 
- if you have contact definitions in your input deck you may use the
  ``contact elements'' option on the *NODE FILE
  or similar card. This generates a file with the name ``contactelements.inp''
  with all contact elements in all iterations of the increment in which this
  option is active. By reading this file in CalculiX GraphiX you can visualize
  all contact elements in each iteration and maybe find the source of your
  problems. 
 
- if you experience a segmentation fault, you may set the environment
  variable CCX_LOG_ALLOC to 1 by typing ``export CCX_LOG_ALLOC=1'' in a
  terminal window. Running CalculiX you will get information on which fields
  are allocated, reallocated or freed at which line in the code (default is 0).
 
 
 
 
 
 
 
  
 Next: Simple example problems
 Up: CalculiX CrunchiX USER'S MANUAL
 Previous: Units
     Contents 
guido dhondt
2015-11-19