The run fails with a segmentaiton error in the dynamic analysis step. I can’t see anything obvioulsy wrong in the input, but maybe I am missing something?

Note:

I am able to run the other modal dynamic examples without errors (beamdy1, beamdy2, beamdy3, beamdy4, beamdy5, beamdy6, beamdy17).

I set CCX_LOG_ALLOC=1 , but must admit not sure what to do with the output.

Any ideas as to the cause of the error would be very much appreciated, as well as solutions / work arounds. Thanks.

Indeed, you are right, the shell elements are probably causing the error here (as I am able to run the solid element “beamdy” examples without difficulty)… But the geometry that I am meshing is 2D and so I do not want to transition to 3D elements from the start.

The manual (section 6.9.5 Modal dynamic analysis) seems to imply that *MODAL DYNAMIC should work with shell elements - and that is exactly the use-case I am trying to solve here. So to me this looks like a bug.

To investigate this further, I ran a straight forward *DYNAMIC analysis of the “shellf.inp” test example, with the following step definition:

*STEP,NLGEOM=NO
*DYNAMIC,DIRECT
1.E-5,1.E-4
*CLOAD,AMPLITUDE=A1
15,3,1.E-6
*NODE PRINT,NSET=N15
U
*END STEP

This worked without problem and generates sensible data.

I noticed an interesting difference in the .12d output files between this run and the modal dynamic analysis:

the *MODAL DYNAMIC analysis generates mean rotation MPCs at the SPC’d and loaded nodes

the *DYNAMIC analysis generates knots at the SPC locations only

Questions:

Is there a way to force knot generation rather than MPCs? Assuming this might solve the problem.

As an alternative workaround, is there a fast way of generating and saving an expanded shell model for further analysis? That way, I could run the frequency analysis directly on the 3D model to feed the dynamic modal analysis.

@OliviaS I don’t think there is a fast way to do number 2. I’ve experienced similar issues in the past and what I end up doing is expanding them manually and applying proper boundary conditions.

Thanks @jbr and @dichtstoff for the comments on option 2). I might try to do this manually for a specific model of interest, but since the cgx/ccx analysis I would like to use is part of a parametric loop where geometry and mesh change, I might give automating this a go aswell at some point and maybe share the code with the community (since other people might run into simmilar problems with shells).

In the meantime, I hope this bug might get resolved in future releases… Would be happy to contribute or test again in the future - please get in touch.

I can confirm some issues for windows versions of Calculix 2.16, 2.18, 2.19 and 2.20 and solid finite elements. It seems that CalculiX is able to solve problems with smaller number of nodes (for me, it is around 1000) but fails for a larger model (for me it is around 5000 nodes). It fails for PaStiX and Spooles solvers. I think it fails after the frequency step finishes and steady state dynamic step starts. It outputs the result for the starting frequency of the steady state dynamic step.

But I run a test with about 100.000 nodes on 2.16 version for Linux and it works. So maybe it is only a windows problem?

As a continuation I must highlight my mistake. I experienced this problem - a random termination of the solver - for *Steady state dynamics analysis step and not *Model dynamics step. I missed this detail in my previous comment, but the problems seemed similar.

Hi all - just to confirm from my side that this problem still applies to v2.20.
Also, not sure this is the same error as the one you mention @Matej, as the example model I used only has 21 nodes (51 nodes for the expanded solids). I am running the linux binary in WSL. For completeness - here is the ccx output:

************************************************************
CalculiX Version 2.20, Copyright(C) 1998-2022 Guido Dhondt
CalculiX comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
certain conditions, see gpl.htm
************************************************************
You are using an executable made on Sun Jul 31 18:08:37 CEST 2022
The numbers below are estimated upper bounds
number of:
nodes: 277
elements: 4
one-dimensional elements: 0
two-dimensional elements: 4
integration points per element: 27
degrees of freedom per node: 3
layers per element: 1
distributed facial loads: 0
distributed volumetric loads: 0
concentrated loads: 8
single point constraints: 408
multiple point constraints: 481
terms in all multiple point constraints: 3073
tie constraints: 0
dependent nodes tied by cyclic constraints: 0
dependent nodes in pre-tension constraints: 0
sets: 6
terms in all sets: 62
materials: 1
constants per material and temperature: 2
temperature points per material: 1
plastic data points per material: 0
orientations: 4
amplitudes: 4
data points in all amplitudes: 7
print requests: 1
transformations: 0
property cards: 0
STEP 1
Frequency analysis was selected
Decascading the MPC's
Determining the structure of the matrix:
Using up to 1 cpu(s) for setting up the structure of the matrix.
number of equations
119
number of nonzero lower triangular matrix elements
4110
Using up to 1 cpu(s) for setting up the structure of the matrix.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the symmetric stiffness/mass contributions.
Factoring the system of equations using the symmetric spooles solver
Using 1 cpu for spooles.
Calculating the eigenvalues and the eigenmodes
U^T*M*U=1.000000 for eigenmode 1
U^T*M*U=1.000000 for eigenmode 2
U^T*M*U=1.000000 for eigenmode 3
U^T*M*U=1.000000 for eigenmode 4
U^T*M*U=1.000000 for eigenmode 5
U^T*M*U=1.000000 for eigenmode 6
U^T*M*U=1.000000 for eigenmode 7
U^T*M*U=1.000000 for eigenmode 8
U^T*M*U=1.000000 for eigenmode 9
U^T*M*U=1.000000 for eigenmode 10
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
Using up to 1 cpu(s) for the stress calculation.
STEP 2
Dynamic analysis was selected
Determining the structure of the matrix:
Using up to 1 cpu(s) for setting up the structure of the matrix.
number of equations
119
number of nonzero lower triangular matrix elements
4110
Using up to 1 cpu(s) for setting up the structure of the matrix.
*WARNING: 1-D or 2-D elements may cause problems in modal dynamic calculations
ensure that point loads defined in a *MODAL DYNAMIC step
and applied to nodes belonging to 1-D or 2-D elements have been
applied to the same nodes in the preceding FREQUENCY step with
magnitude zero; look at example shellf.inp for a guideline.
Composing the dynamic response from the eigenmodes
Segmentation fault