maybe it can start by single element to understand clearly regarding surface spring and traction implemented in PrePoMax.
validation and verification of linear spring can take from external reference such as textbook or paper, this can be review for both linear and quadratic element also.
in case compression-only by gap element, it’s actually simplification problem of elastic contact. Comparable with full model (two part) with penalty contact or tied contact with stiffness overrides.
**
** Heading +++++++++++++++++++++++++++++++++++++++++++++++++
**
*Heading
Hash: uyOtHNO2, Date: 11/27/2023, Unit system: MM_TON_S_C
**
** Nodes +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Node
1, 0.00000000E+000, 1.00000000E+000, 0.00000000E+000
2, 0.00000000E+000, 0.00000000E+000, 0.00000000E+000
3, 1.00000000E+000, 1.00000000E+000, 0.00000000E+000
4, 1.00000000E+000, 0.00000000E+000, 0.00000000E+000
5, 0.00000000E+000, 1.00000000E+000, 5.00000000E-001
6, 0.00000000E+000, 0.00000000E+000, 5.00000000E-001
7, 1.00000000E+000, 0.00000000E+000, 5.00000000E-001
8, 1.00000000E+000, 1.00000000E+000, 5.00000000E-001
9, 0.00000000E+000, 5.00000000E-001, 0.00000000E+000
10, 5.00000000E-001, 1.00000000E+000, 0.00000000E+000
11, 1.00000000E+000, 5.00000000E-001, 0.00000000E+000
12, 5.00000000E-001, 0.00000000E+000, 0.00000000E+000
13, 0.00000000E+000, 5.00000000E-001, 5.00000000E-001
14, 5.00000000E-001, 0.00000000E+000, 5.00000000E-001
15, 1.00000000E+000, 5.00000000E-001, 5.00000000E-001
16, 5.00000000E-001, 1.00000000E+000, 5.00000000E-001
17, 1.00000000E+000, 0.00000000E+000, 2.50000000E-001
18, 0.00000000E+000, 0.00000000E+000, 2.50000000E-001
19, 1.00000000E+000, 1.00000000E+000, 2.50000000E-001
20, 0.00000000E+000, 1.00000000E+000, 2.50000000E-001
**
** Elements ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Element, Type=C3D20, Elset=Solid_part-1
1, 1, 2, 4, 3, 5, 6, 7, 8, 9, 12, 11, 10, 13, 14, 15,
16, 20, 18, 17, 19
*Element, Type=SPRING1, Elset=Surface_Spring-1_All
2, 1
3, 2
4, 4
5, 3
6, 9
7, 12
8, 11
9, 10
**
** Node sets +++++++++++++++++++++++++++++++++++++++++++++++
**
*Nset, Nset=Internal-1_Internal_Selection-1_Surface_Spring-1_Master
1, 2, 3, 4, 9, 10, 11, 12
*Nset, Nset=Internal-1_Internal_Selection-1_Surface_Traction-1
5, 6, 7, 8, 13, 14, 15, 16
*Nset, Nset=Internal_Selection-1_Displacement_Rotation-1
5
**
** Element sets ++++++++++++++++++++++++++++++++++++++++++++
**
*Elset, Elset=Internal-1_Internal_Selection-1_Surface_Spring-1_Master_S1
1
*Elset, Elset=Internal-1_Internal_Selection-1_Surface_Traction-1_S2
1
*Elset, Elset=Surface_Spring-1_1_DOF_3
2
*Elset, Elset=Surface_Spring-1_2_DOF_3
3
*Elset, Elset=Surface_Spring-1_4_DOF_3
4
*Elset, Elset=Surface_Spring-1_3_DOF_3
5
*Elset, Elset=Surface_Spring-1_9_DOF_3
6
*Elset, Elset=Surface_Spring-1_12_DOF_3
7
*Elset, Elset=Surface_Spring-1_11_DOF_3
8
*Elset, Elset=Surface_Spring-1_10_DOF_3
9
**
** Surfaces ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Surface, Name=Internal_Selection-1_Surface_Spring-1_Master, Type=Element
Internal-1_Internal_Selection-1_Surface_Spring-1_Master_S1, S1
*Surface, Name=Internal_Selection-1_Surface_Traction-1, Type=Element
Internal-1_Internal_Selection-1_Surface_Traction-1_S2, S2
**
** Physical constants ++++++++++++++++++++++++++++++++++++++
**
**
** Materials +++++++++++++++++++++++++++++++++++++++++++++++
**
*Material, Name=S235
*Density
7.8E-09
*Elastic
210000, 0.28
*Expansion, Zero=20
1.1E-05
*Conductivity
14
*Specific heat
440000000
**
** Sections ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Solid section, Elset=Solid_part-1, Material=S235
*Spring, Elset=Surface_Spring-1_1_DOF_3
3
-8.33333333E+001
*Spring, Elset=Surface_Spring-1_2_DOF_3
3
-8.33333333E+001
*Spring, Elset=Surface_Spring-1_4_DOF_3
3
-8.33333333E+001
*Spring, Elset=Surface_Spring-1_3_DOF_3
3
-8.33333333E+001
*Spring, Elset=Surface_Spring-1_9_DOF_3
3
333.333333333333
*Spring, Elset=Surface_Spring-1_12_DOF_3
3
333.333333333333
*Spring, Elset=Surface_Spring-1_11_DOF_3
3
333.333333333333
*Spring, Elset=Surface_Spring-1_10_DOF_3
3
333.333333333333
**
** Pre-tension sections ++++++++++++++++++++++++++++++++++++
**
**
** Constraints +++++++++++++++++++++++++++++++++++++++++++++
**
**
** Surface interactions ++++++++++++++++++++++++++++++++++++
**
**
** Contact pairs +++++++++++++++++++++++++++++++++++++++++++
**
**
** Amplitudes ++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Initial conditions ++++++++++++++++++++++++++++++++++++++
**
**
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step
*Static
**
** 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
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
** Name: Surface_Traction-1
*Cload
5, 3, 83.3333333333333
8, 3, 83.3333333333333
7, 3, 83.3333333333333
6, 3, 83.3333333333333
16, 3, -3.33333333E+002
15, 3, -3.33333333E+002
14, 3, -3.33333333E+002
13, 3, -3.33333333E+002
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step