Segmentation fault with ccx_2.19 dynamic modal analysis

Hello,

I am using the ccx_2.19 pre-compiled binary.
I have slightly modified the example shell model shellf.inp to run a modal dynamic analysis:

...
*NSET,NSET=N15
15
*AMPLITUDE,NAME=A1
0.,0.,5.E-5,1.,5.E-4,1.
*STEP
*FREQUENCY,STORAGE=YES
10
*CLOAD
15,3,3,0.
*END STEP
*STEP
*MODAL DYNAMIC
1.E-5,1.E-4
*CLOAD,AMPLITUDE=A1
15,3,3,1.E-6
*MODAL DAMPING,RAYLEIGH
,,50.,0.
*NODE PRINT,NSET=N15
U
*END STEP

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:

  1. I am able to run the other modal dynamic examples without errors (beamdy1, beamdy2, beamdy3, beamdy4, beamdy5, beamdy6, beamdy17).
  2. 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.

1 Like

hello,

maybe these:
shell elements are expanded into threedimensional elements !?
maybe you can try first a simulation with solid elements !?
wbr

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:

  1. Is there a way to force knot generation rather than MPCs? Assuming this might solve the problem.
  2. 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.
1 Like

hello,

maybe these can help for the second question:

*NODE FILE,OUTPUT=3D
U,

after these you can send out the new mesh in pre
with
seta new e all
seta new n all
send new abq

you can have one example

1 Like

I changed the concentrated load by a distributed one and got same error. My guess is that there is a bug but, more investigation is needed.

2 Likes

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

1 Like

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.

1 Like

An option may be to use a gmsh script within your automated python code. If I recall correctly, there is a python wrapper for gmsh.

1 Like

Hi all,

I will look into that (Sept 2022).

Best greetings,

Guido

1 Like

Is there any progress on this issue?

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.

This problem was noticed in another post Steady state dynamics randomly terminates without error where I will post my new findings.

I am sorry for the confusion in this topic, but maybe both problems are connected.

1 Like

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