Surface spring : can not reproduce a case previuosly succeed

hi,

i’m using latest development versions, need to know compression only features about how it’s actually work. Before conduct of these advanced new feature, i need to do compared to surface spring case i previously succeed. However, result out of expectation: deformation shown unstable, deflection is too large and nearly to rigid body motions. Also, stress along longitudinal of section shown uneven in distribution and low in values.

since this feature is an equivalency to *Foundation keyword in Abaqus which not available in CalculiX i.e special implementation of PrePoMax. So, i checked each step by step: only found a discrepancy in nodal spring values defined by PrePoMax, try to do re-adjustment still not changing the results and global behavior of structural model.

maybe i miss something, or it’s related to CalculiX solver versions, but i need to make it sure before submit a bug. Attached PrePoMax files (download) and some screenshot below,

regards,

This looks like some units are internally wrong converted in Prepomax or some Constraining problem?

Expected z displazement:

P/Ks=-0.0018 [MPa] /0.018 [Mpa/mm]= -0.1 mm.

Pressure is compressive . I think the representative value should be S33.

S33=-0.0018 MPa (Must be the same as applied)

Ccx + Mecway delivers the right displacement but just one half the expected S33 on shells. I guess it’s averaging with the zero value from the springs side ¿?¿.

When doing the solid model response is right. I think this is a prepomax problem not calculix.

probably no, i’m frequently used single node to constraint in-plane displacement only for stability purpose. Previous CalculiX version is working well, i.e no generate unstable structural models or rigid body motion.

i’m still thinking it’s related to CalculiX solver in the latest versions, i just remodeling using solid element and the result is uneven behavior similar to shell models.

U3 displacement is 1E+11 on a model with 3E+2 thickness. There is some issue on the BC or units. It fails in Nonlinear.

Changing the surface Spring stiffness doesn’t change anything.

¿Is this right?

*Spring, Elset=Surface_Spring-1_26_DOF_3
0 <--------
337500.

First line is Blank or an integer indicating the involved degree of freedom ¿Right?
¿What does 0 mean?

Also, the shell has free body rotation arround z.

i downloaded again of previous version (2018) as reference, re-run analysis and it seems i can be wrong. It may not related to the solver, but i have no idea which input section is inappropriate and difference with previous version of PrePoMax known working properly.

I would say there is an error in Prepomax wher translating the *Spring Card.
It is not reading the Stiffness.

It anticipates DOF_3 but dof is set to 0.

*Spring, Elset=Surface_Spring-1_20_DOF_3
0
1687500.

1 Like

i’m overlook at this, previously thinking ‘0’ (zero) will be the same as blank in reading by the solver CalculiX or throwing some error messages since DOF’s ‘0’ zero does not exist.

in conclusion, that’s main source of problem and the other contribute is spring stiffness value calculated by PrePoMax.

Sorry guys. I checked the code. I rewrote the spring class to a more general form to be able to add the gap class and failed to assign a direction properly. I fixed it and published a new version.

Please check if it works as expected.

2 Likes

Wow. really quick fix.

Removing the Rigid body rotation arround z and the punctual loads. I’m also considering
rigid plate.

S33=-0.0009MPa which is 1/2 the expected value.

indeed, as i guessed since previous version of PrePoMax have no problem at this case. Many thanks to consider returning surface spring feature to be working again.

Next, i’ll try the latest implementation of advanced feature in compression only support. It has spring stiffness adjustment values and capable to assign at surface, theoretically the behavior is similar to surface spring except in uplift.

[N/mm] is a unit of linear spring when the surface area of the surface string is not taken into account. The same spring is used regardless of the surface area. If you use [N/mm/mm^2] the computed stiffness depends on the surface area size.

The compression only constraint uses GAP elements, which are used for solving contact problems.

unit of spring stiffness for surface is in Pressure/Length(dsiplacment) e.g kPa/m or kN/m^2/m or kN/m3. It’s look unfamiliar for the latter of units but equal.

please refer to *Foundation keywords in Abaqus to be more clear, this implementation in PrePoMax should have similarity and equivalent.

1 Like

That seems to work different than Mecway.

So [N/mm/mm^2] is the proper one to obtain a uniform distributed support no matter the mesh ¿isn’t it?

¿Why do we obtain 1/2 the Expected stress?

thanks again for updating development versions. Defining surface spring with option stiffness per area is ;‘No’ (N/mm) given expected result. However, with option of stiffness per area is ‘Yes’ (N/mm3) shown to be too stiff. It seems nodal spring stiffness value is not properly defined.

Stiffness per area (No)

2023-11-12 03_03_08-Edit Constraint_ Surface_Spring-1

Stiffness per area (Yes)

2023-11-12 02_45_30-PropertyGrid

mesh is too coarse in the model, refining should increase the accuracy., Above problem can be simplified based on free-body diagram. The model structures act like cantilever due to distributed loads and supported at the midspan, when the mesh is too coarse, some nodal force is missing in the calculation of bending force thus make it lower than actually.

No.
It is not exclusive of Spring Supports.
Constraning the base in Z gives the same result. Stress S33 is 1/2 the expected value. Simple to check. 1 rigid plate under 1MPa uniform pressure end up with an overall S33 Stress of 1/2 the expected value (.5 MPa).

Your real stress is probably twice the one obtained in the areas under pure compression.

it seems referencing to another case, not a bending stress of the original problem input files i attached.

below shown, the accuracy is increase after mesh refinement

A model using input surface spring as units force/length (N/mm) is working as expected. However, switching to units of pressure/length (N/mm3) still have a problem due to improperly calculated of nodal spring values.

It seems many strange things are happening. I am looking into it and have fixed two bugs, but I will test extensively before releasing an update.