Navigation:  Calculation Modules > Analysis > ENERCALC 3D > Static Analysis >

Solution Accuracy and Stability

Previous pageReturn to chapter overviewNext page

At the very basic level, the solution involves basic arithmetic operations such as addition, subtraction, multiplication and division on floating point numbers.  Since all numbers in computers are stored in finite number of bits or digits, round-off errors are introduced by manipulations of these numbers.  Round-off errors depend on the precisions of floating point arithmetic and may affect the solution accuracy and stability under certain circumstances. Two types of precisions are generally available on most computers today: single precision and double precision.  A single precision (or 32-bit) floating point value has numerical accuracy of about 7 significant digits while a double precision (or 64-bit) floating point value has numerical accuracy of about 15 or 16 significant digits.

 

Take a look at the following example:

 

 A = 1.00000001; B = -1.0; C = 1.0; D = C / (A + B);

 

Theoretically, D = 100000000.0.  With 64-bit floating point arithmetic, the statement yields D = 100000000.60775 while with 32-bit floating point arithmetic, the statement yields D = +∞.    As we can see, D is approximately (not exactly) equal to the theoretical answer with double precision arithmetic.  The solution collapsed (division by zero) with single precision arithmetic.  The reason for this to happen is during the addition of A and B, the fractional part of A (0.00000001) is rounded off due to lack of enough significant digits.  In general, 32-bit floating point arithmetic should never be used in any structural or finite element analysis programs.  

 

The 64-bit floating point (double precision) has been the predominant solver over the last several decades.  For most not-so-large and well-conditioned models, standard 64-bit floating point solvers produce results that are sufficiently accurate for practical uses.  However for very large and complex models and especially those under ill-conditioned circumstances, standard 64-bit floating point solvers sometimes produce inaccurate results.  

 

Ill-conditioning occurs when small errors in the coefficients of equations before or during the solution process have large impact on solution results.  It may make the solution unstable and results unreliable.  Very severe ill-conditioning may even make the coefficient matrix singular and thus a solution non-existent.  Some examples where ill-conditioning may occur are: finite elements with severe shape distortion or large aspect ratio; shells with very strong in-plane stiffness and very weak out-of-plane bending stiffness; very flexible elements connected to very stiff elements. It may be worthwhile to note that when ill-conditioning does happen, finer element meshes tend to make the problem worse.  

 

During the solution process of a large model, round-off errors tend to accumulate.  We can determine the number of significant digits lost based on the diagonal decay ratio [Ref. 3].

ri = Kii / Pii

 

where Kii is the original diagonal coefficient of the global stiffness matrix and Pii is the reduced value of Kii just before it is used for back-substitution.  The number of significant digits lost is about log10(ri).  For example, if ri is 108, then 8 digits are lost. The solution results given by the 64-bit floating point (double precision) are unreliable if 12 or more significant digits are lost during the solution process.  The program reports the number of digits lost during the solution process.  

 

Consider the following cantilever beam under a tip load of 10,000 lbs:

L = 100 in; Izz = 200 in4;

E = 2.9e7 psi; ν = 0.3;

P = -10000 lb

FASTFR~1_img262

 

The beam is modeled with 1, 1000, 10000, 20000, 50000 elements and an analysis is performed on each model.  Theoretically all models should yield the same tip deflection of -0.5747 inch (shear deformation ignored).   The following table shows tip deflections for the all five models using the 64-bit floating point (double precision) in the program.

 

Effect of number of elements on accuracy (the 64-bit skyline solver) of a cantilever beam

 

No of elements

1

1,000

10,000

20,000

50,000

Tip deflection (in)

-0.5747

-0.5748

-0.6522

-0.1534

No solution

No of digits lost

0

8

12

12

-

 

As we can see from the table above, the tip deflections given by the 64-bit skyline solver tend to deteriorate in accuracy as the number of elements increases.  For the model with 50,000 elements, some diagonal terms in the global stiffness matrix even become negative.  The solver has to abort and the solution is not obtainable anymore.

 

After identifying a severe ill-conditioning problem, the 64-bit floating point (double precision) generally stops the solution process. No results are better than wrong results. To address the problem, a more accurate solver is needed.  ENERCALC 3D implements a unique 128-bit floating point (quad precision) solver which offers unparalleled advantages in solution accuracy and most importantly solution stability over the standard 64-bit floating point (double precision) solver.  The 128-bit floating point (quad precision) provides numerical accuracy up to 30 significant digits.  Many of ill-conditioned problems for the 64-bit floating point solver become well-conditioned problems for the 128-bit floating point solver.  The superiority of the 128-bit floating point solver can be demonstrated by running the same cantilever beam above with 50,000 elements, the tip deflection given by the 128-bit floating point (quad precision) is -0.5747 inch, the correct answer.

 

A more practical application of the 128-bit floating point (quad precision) may be in the modeling of a rigid diaphragm (e.g. floor with much larger in-plane stiffness than out-of-plane stiffness).  Most of the other programs model this kind of rigid diaphragm action through equal displacement constraints in order to avoid numerical difficulties.  With the 128-bit floating point solver available in ENERCALC 3D, you may model the floor as a flexible diaphragm, yielding much more realistic results. 

 

It should be pointed out that the 128-bit floating point (quad precision) requires twice as much memory as the 64-bit floating point (double precision).  It is also significantly slower.  However, in situations where the standard 64-bit floating point solver produces unreliable or even wrong results, the 128-bit floating point (quad precision) provides an invaluable alternative.  Between faster but wrong results and slower but correct results, the latter is obviously preferable.

< <