Base excitation via keyword editor

Hi all,
I was trying to run a steady-state dynamics analysis with base excitation. Since PrePoMax currently does not support *base motion, I tried to use “edit calculix keyword” route to set up the model. As you know with the *base motion keyword, you’d need to apply homogeneous boundary condition before the *steady state dynamics step as follows:
*Boundary
Node_set, 1

I could define such boundary condition using the keyword, but when I create new *Frequency and *Steady state dynamics steps, the program is automatically adding the following keyword that erases the homogeneous boundary above:
*Boundary, op=New
and I don’t seem to have a way to delete this keyword in the GUI. I am wondering if anyone ran into such issue and has a tip to go around it?

I think my option is to export the inp file and ran it manually, but I’d prefer to run it in PrePoMax for easy post-processing the time history outputs.

Thanks,

Here’s the example set up:

** Initial conditions ++++++++++++++++++++++++++++++++++++++
**
*Boundary
Internal_Selection-1_Fixed-1, 1
*Boundary
Internal_Selection-1_Fixed-1, 2
*Boundary
Internal_Selection-1_Fixed-1, 3
**
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step
*Frequency, Solver=Pardiso, Storage=Yes
20
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1: Deactivated
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step
**
** Step-2 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step
*Steady state dynamics, Solver=Pardiso
1, 300, 40, 3
**
*Modal damping
1, 1000000, 0.05
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1: Deactivated
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
*BASE MOTION,DOF=2,AMPLITUDE=A1,TYPE=DISPLACEMENT
**
**
*Node print, Nset=Internal_Selection-1_NODE_SELECTION-1, Global=Yes
U
*El print, Elset=Internal_Selection-1_ELEMENT_SELECTION-1, Global=Yes
S
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step

Exporting and modifying the .inp file outside of PrePoMax would make sense here. After solving the analysis with standalone ccx binary, you can still open the .frd file in PrePoMax for postprocessing.

However, I would still try with a BC defined in the frequency step. PrePoMax always adds the OP=NEW parameter but also redefines the BCs that are propagated to subsequent steps.

2 Likes

Thanks a lot Jakub for your suggestions.

I tried to define fixed (homogeneneous) boundary conditions in step 1 which propagated to step 2, but because of op=New flag, calculix doesn’t seem to recognize the *base motion command in the second step, so the output is zero for displacement and stresses.

Alternatively, I tried to apply inhomoneneous boundary as follows, and in the second step, I applied non-zero boundary for the given axis. This seems to generate some solution, but I have yet to verify the solution accuracy. I am a bit concerned with the statement made below in the calculix manual that the *boundary should be pre-defined in the previous step otherwise unexpected effects may occur.

The following is the shortened set-up that generated some outcome:

**
** Heading +++++++++++++++++++++++++++++++++++++++++++++++++
**
*Heading
Hash: LgKQJrsQ, Date: 07/13/2025, Unit system: MM_TON_S_C
**
** Nodes +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Node
... hidden data ...
**
** Elements ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Element, Type=C3D20, Elset=Solid_part-1
... hidden data ...
**
** Additional elements +++++++++++++++++++++++++++++++++++++
**
... hidden data ...
**
** Node sets +++++++++++++++++++++++++++++++++++++++++++++++
**
*Nset, Nset=tipNodes
... hidden data ...
*Nset, Nset=Internal_Selection-1_Rigid_Body-1
... hidden data ...
*Nset, Nset=Internal_Selection-1_Displacement_Rotation-1
... hidden data ...
*Nset, Nset=Internal_Selection-1_NODE_SELECTION-1
... hidden data ...
**
** Additional node sets ++++++++++++++++++++++++++++++++++++
**
... hidden data ...
**
** Element sets ++++++++++++++++++++++++++++++++++++++++++++
**
*Elset, Elset=Volume1
... hidden data ...
*Elset, Elset=VolOnly
... hidden data ...
*Elset, Elset=Internal_Selection-1_Solid_Section-1
... hidden data ...
*Elset, Elset=Internal_Selection-1_ELEMENT_SELECTION-1
... hidden data ...
**
** Surfaces ++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Physical constants ++++++++++++++++++++++++++++++++++++++
**
**
** Coordinate systems ++++++++++++++++++++++++++++++++++++++
**
**
** Materials +++++++++++++++++++++++++++++++++++++++++++++++
**
*Material, Name=steal
*Elastic
210000, 0.3
*Density
1E-09
**
** Sections ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Solid section, Elset=Internal_Selection-1_Solid_Section-1, Material=steal
**
** Additional sections +++++++++++++++++++++++++++++++++++++
**
... hidden data ...
**
** Pre-tension sections ++++++++++++++++++++++++++++++++++++
**
**
** Constraints +++++++++++++++++++++++++++++++++++++++++++++
**
*Rigid body, Nset=Internal_Selection-1_Rigid_Body-1, Ref node=2901, Rot node=2902
**
** Surface interactions ++++++++++++++++++++++++++++++++++++
**
**
** Contact pairs +++++++++++++++++++++++++++++++++++++++++++
**
**
** Amplitudes ++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Initial conditions ++++++++++++++++++++++++++++++++++++++
**
**
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step
*Frequency, Solver=Pardiso, Storage=Yes
5
**
** Controls ++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Displacement_Rotation-1
*Boundary
Internal_Selection-1_Displacement_Rotation-1, 1, 1, 0
Internal_Selection-1_Displacement_Rotation-1, 2, 2, 0
Internal_Selection-1_Displacement_Rotation-1, 3, 3, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step
**
** Step-2 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step
*Steady state dynamics, Solver=Pardiso
0, 300, 30, 3
**
** Damping +++++++++++++++++++++++++++++++++++++++++++++++++
**
*Modal damping
1, 1000000, 0.05
**
** Controls ++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Displacement_Rotation-1
*Boundary, Load case=1
Internal_Selection-1_Displacement_Rotation-1, 1, 1, 0
Internal_Selection-1_Displacement_Rotation-1, 2, 2, 0
Internal_Selection-1_Displacement_Rotation-1, 3, 3, 0
Internal_Selection-1_Displacement_Rotation-1, 2, 2, 0.01
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
*Node print, Nset=Internal_Selection-1_NODE_SELECTION-1, Global=Yes
U
*El print, Elset=Internal_Selection-1_ELEMENT_SELECTION-1, Global=Yes
S
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step

Yes, it might be safest to export the input file, delete the *BOUNDARY, OP=NEW keywords, add *BASE MOTION, submit using standalone CalculiX and postprocess in PrePoMax.

Thanks a lot for confirming, I was able to run the analysis successfully and load the results to plot them. I observed a peculiar displacement response though with a kink in the tip elements. Thinking it may be more of a solver issue, I posted it in Calculix forum here: