NAN in Pardiso solver( the penalty contact method )

I am running a static analysis with CalculiX (CCX). I first modeled the bonded interface using the *TIE constraint, but the results were unsatisfactory. I then switched to the penalty contact method instead. However, the Pardiso solver produced NaN values during computation.

I tried activating the adjust option to adjust the contact initial state—for the identical mesh model in Ansys, I have to enforce full initial contact to obtain valid results. When I set adjust to values ranging from 0.0001 down to 0.000001, the solver threw an error stating that negative Jacobian matrices exist in some elements. Has anyone encountered similar issues and found effective solutions?

How many nodes/elements do you have in your model ? Did you try with PaStiX ?

This is a very common problem when using adjustment. If the tolerance is too large, the surfaces are too far from each other or the meshes are too misaligned, the elements may become severely distortoed leading to negative jacobian errors. Then it might be best to disable adjustment (tolerance can still be high - tie constraint can work even at a significant distance).

2 Likes

My model contains approximately 110,000 nodes and 270,000 elements. I will provide the legend on Monday. I attempted to employ the Pastix solver, and the error message “err: nan” appeared during the solution phase when the adjust parameter was not added.

These are my contact settings

*CONTACT PAIR, INTERACTION=surface_interac_669,TYPE=SURFACE TO SURFACE
contact_slave_669,contact_master_669
*SURFACE INTERACTION, NAME=surface_interac_669
*SURFACE BEHAVIOR,PRESSURE-OVERCLOSURE=TIED
1E11

The solving process of the PaStiX solver is shown in the figure below.


The model is divided into two parts: the upper sluice structure and the lower foundation. Currently, contact has only been defined on the large bottom surface for a trial calculation to check whether the model can solve normally.


Mesh quality assessment was carried out in ANSYS. Despite red flags on a few metrics, the element quality and Jacobian determinant checks passed without defects.

@pzu4 Apart from these “nan” values shown during the solution phase, do you get any errors at the end of the analysis with tied contact or does it complete successfully ? Tied contact is usually redundant since you can just use tie constraints unless you need CPRESS, for instance.

1 Like

I am currently troubleshooting the model. When applying the *tie constraint with the face-to-face formulation, the analysis stops automatically, flagging problematic degrees of freedom at roughly 5,000 nodes. The model can only complete the run with the node-to-face tie formulation; however, the resulting stress distribution is asymmetric, which I consider unphysical and incorrect.

I also tested both the surface-to-surface and mortar formulations for general contact pairs, yet both cases produce NaN values during computation. In contrast, identical bonded contact setups run without any errors in ANSYS. For standard contact analyses, poor meshing quality causes the superstructure to undergo unphysical rigid-body separation under gravity alone unless mesh revisions are performed.

Accordingly, I plan to carry out multiple mesh modification trials. I suspect the curved geometry of the contact surfaces is the source of these numerical issues. My intended solution is to align nodal coordinates perfectly at all contact interfaces via dedicated meshing techniques. Could you assess whether this troubleshooting approach is reasonable and provide relevant suggestions? Thank you very much.

When I apply the *TIE constraint method, negative Jacobian errors occur during computation. The simulation only runs successfully if I set adjust=no. What confuses me is that I have inspected the elements flagged for negative Jacobian, and their mesh quality is reasonably good.

Meanwhile, the penalty function method fails to converge and yields “NAN” values. I cannot figure out the underlying mechanism: this issue arises from a singular global stiffness matrix. How can this singularity be explained from a mesh perspective?

As I’ve mentioned before, this is a very common behavior with adjustment enabled. Adjustment stretches the elements to put the slave nodes exactly on the master surface. If it stretches them too much, they get negative jacobians.

1 Like

Maybe the following „golden rule“ helps in debugging the negative Jacobians:

4. 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.

There must be some severe deformation going on.

In general, make sure the SURFACE is of type ELEMENT and not NODE for better accuracy.

The nan values could again be a result from problematic Jacobians.

I included the LAST ITERATIONS keyword, yet the file ResultsForLastIterations.frd failed to generate. I suspect NaNs emerged during solving with the Pastix solver, leading to a failure to compute displacement results.