Link constraints

Hi

I’m looking into the way SoFiSTiK handles link constraints with different definitions in 3D (material and work law) and comparing it to the simpler CP command in 2D.

I have made a file containing a two cantilever square bars connected by constrains in the middle, which the captures the compression forces. (It’s inactive in tension).

The file contains the two cantilever bars modelled in three different ways, 2D beam (M1), 3D shell (M2) and 3D shell with the flanges divided (M3) (for future thickness variation).

The link constrains in the 3D models is defined either as a work law or as a material, which is variable.
I have made the constrains quite stiff so I see very similar spring forces regardless of constraint definition.

Looking into the results I have a few remarks/inquiries:

  1. Comparing the spring forces in M2 and M3, I see that the shared node only have half the force in M3 as it does in M2, which I don’t think is correct, is there any way to account for that?

  2. Looking at the sum of the spring forces in models M2 and M3 should be comparable to the spring force in M1, but differs by 15-20% which seems like a lot. Am I missing something here?

https://ibb.co/HNVK9qw

The full model can be found here:

+prog aqua urs:17.2 $ Materials
    CONC 1 C 40 EC 17500
    STEE 2 B FY 500
    STEE 3 S FY 355
    SECT 1 MNO 3
    PROF TYPE 'RHS' Z1 200 Z2 200 Z3 25 VR1 0 VR2 0 MNO 3 DTYP T
    MAT 4 E 200000[MPa]
    BMAT 4 MREF 4 h 0.1[m] CRAC 0
    SMAT 5 LTYP STD MTYP plas TITL "Joint"
        SFLA U -1.0[mm]  F -50000[kN] type p
        SFLA U  0.0[mm]  F 0[kN]
        SFLA U  1.0[mm]  F 0[kN]
    sto#MNO 5
END

+prog sofimshc urs:17.1   $ Beam Geometry (M1)
    SYST 3D GDIV 100000 GDIR NEGZ
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    let#CP 1e8[kN/m3]
    SPT 102 0     0   0 fix ff
    SPT 202 1000  0   0
    SPT 302 1100  0   0
    SPT 402 2100  0   0 fix ff
    SPT 201 REF PT 202  X 0 Y 0 Z 100
        SPTP F REF 202
    SPT 203 REF PT 202  X 0 Y 0 Z -100
        SPTP F REF 202
    SPT 301 REF PT 302  X 0 Y 0 Z 100
        SPTP F REF 302
        SPTS 1 REF 201 CP #CP CRAC 0
    SPT 303 REF PT 302  X 0 Y 0 Z -100
        SPTP F REF 302
        SPTS 3 REF 203 CP #CP*0.5 CRAC 0
    SLN 1 102 202 SNO 1
    SLN 2 302 402 SNO 1
END

+prog sofimshc urs:17.5 $ Shell Geometry (M2)
    SYST REST
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    SPT 1001 0    300 -100  ;  SPT 2001 1000    300 -100
    SPT 1002 0    500 -100  ;  SPT 2002 1000    500 -100
    SPT 1003 0    500  100  ;  SPT 2003 1000    500  100
    SPT 1004 0    300  100  ;  SPT 2004 1000    300  100
    loop#i 4
        SPT 3001+#i REF PT 1001+#i X 1100
        SPT 4001+#i REF PT 2001+#i X 1100
    endloop
    loop#i 2
        SAR 11+10*#i t 25 MNO 3
            SARB TYPE OUT NA 1001+#i*2000 NE 2001+#i*2000
            SARB TYPE OUT NA 2001+#i*2000 NE 2002+#i*2000
            SARB TYPE OUT NA 2002+#i*2000 NE 1002+#i*2000
            SARB TYPE OUT NA 1002+#i*2000 NE 1001+#i*2000
        SAR 12+10*#i t 25 MNO 3
            SARB TYPE OUT NA 1001+#i*2000 NE 2001+#i*2000
            SARB TYPE OUT NA 2001+#i*2000 NE 2004+#i*2000
            SARB TYPE OUT NA 2004+#i*2000 NE 1004+#i*2000
            SARB TYPE OUT NA 1004+#i*2000 NE 1001+#i*2000
        SAR 13+10*#i t 25 MNO 3 GRP 1
            SARB TYPE OUT NA 1004+#i*2000 NE 2004+#i*2000
            SARB TYPE OUT NA 2004+#i*2000 NE 2003+#i*2000
            SARB TYPE OUT NA 2003+#i*2000 NE 1003+#i*2000
            SARB TYPE OUT NA 1003+#i*2000 NE 1004+#i*2000
        SAR 14+10*#i t 25 MNO 3
            SARB TYPE OUT NA 1003+#i*2000 NE 2003+#i*2000
            SARB TYPE OUT NA 2003+#i*2000 NE 2002+#i*2000
            SARB TYPE OUT NA 2002+#i*2000 NE 1002+#i*2000
            SARB TYPE OUT NA 1002+#i*2000 NE 1003+#i*2000
    endloop
    loop#i 2
        let#i #i*3
        SLN 1101+#i*1000 1001+#i*1000 1002+#i*1000 fix ff
        SLN 1102+#i*1000 1002+#i*1000 1003+#i*1000 fix ff
        SLN 1103+#i*1000 1003+#i*1000 1004+#i*1000 fix ff
        SLN 1104+#i*1000 1004+#i*1000 1001+#i*1000 fix ff
    endloop
    SLN 2101 2001 2002 ; SLN 3101 3001 3002
    SLNS REFT >SLN 2101 MNO #MNO
    SLN 2103 2003 2004 ; SLN 3103 3003 3004
    SLNS REFT >SLN 2103 MNO #MNO
END

+prog sofimshc urs:17.6 $ Divided Shell Geometry (M3)
    SYST REST
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    SPT 11001 0    600  -100 ;  SPT 12001 1000    600  -100
    SPT 11002 0    700  -100 ;  SPT 12002 1000    700  -100
    SPT 11005 0    800  -100 ;  SPT 12005 1000    800  -100
    SPT 11006 0    800   100 ;  SPT 12006 1000    800   100
    SPT 11003 0    700   100 ;  SPT 12003 1000    700   100
    SPT 11004 0    600   100 ;  SPT 12004 1000    600   100
    loop#i 6
        SPT 13001+#i REF PT 11001+#i X 1100
        SPT 14001+#i REF PT 12001+#i X 1100
    endloop
    loop#i 2
        SAR 111+10*#i t 25 MNO 3
            SARB TYPE OUT NA 11001+#i*2000 NE 12001+#i*2000
            SARB TYPE OUT NA 12001+#i*2000 NE 12002+#i*2000
            SARB TYPE OUT NA 12002+#i*2000 NE 11002+#i*2000
            SARB TYPE OUT NA 11002+#i*2000 NE 11001+#i*2000
        SAR 112+10*#i t 25 MNO 3
            SARB TYPE OUT NA 11001+#i*2000 NE 12001+#i*2000
            SARB TYPE OUT NA 12001+#i*2000 NE 12004+#i*2000
            SARB TYPE OUT NA 12004+#i*2000 NE 11004+#i*2000
            SARB TYPE OUT NA 11004+#i*2000 NE 11001+#i*2000
        SAR 113+10*#i t 25 MNO 3 GRP 2
            SARB TYPE OUT NA 11004+#i*2000 NE 12004+#i*2000
            SARB TYPE OUT NA 12004+#i*2000 NE 12003+#i*2000
            SARB TYPE OUT NA 12003+#i*2000 NE 11003+#i*2000
            SARB TYPE OUT NA 11003+#i*2000 NE 11004+#i*2000
        SAR 114+10*#i t 25 MNO 3 GRP 2
            SARB TYPE OUT NA 11003+#i*2000 NE 12003+#i*2000
            SARB TYPE OUT NA 12003+#i*2000 NE 12006+#i*2000
            SARB TYPE OUT NA 12006+#i*2000 NE 11006+#i*2000
            SARB TYPE OUT NA 11006+#i*2000 NE 11003+#i*2000
        SAR 115+10*#i t 25 MNO 3
            SARB TYPE OUT NA 11006+#i*2000 NE 12006+#i*2000
            SARB TYPE OUT NA 12006+#i*2000 NE 12005+#i*2000
            SARB TYPE OUT NA 12005+#i*2000 NE 11005+#i*2000
            SARB TYPE OUT NA 11005+#i*2000 NE 11006+#i*2000
        SAR 116+10*#i t 25 MNO 3
            SARB TYPE OUT NA 11005+#i*2000 NE 12005+#i*2000
            SARB TYPE OUT NA 12005+#i*2000 NE 12002+#i*2000
            SARB TYPE OUT NA 12002+#i*2000 NE 11002+#i*2000
            SARB TYPE OUT NA 11002+#i*2000 NE 11005+#i*2000
    endloop
    loop#i 2
        let#i #i*3
        SLN 11101+#i*1000 11001+#i*1000 11002+#i*1000 fix ff
        SLN 11102+#i*1000 11002+#i*1000 11005+#i*1000 fix ff
        SLN 11103+#i*1000 11005+#i*1000 11006+#i*1000 fix ff
        SLN 11104+#i*1000 11006+#i*1000 11003+#i*1000 fix ff
        SLN 11105+#i*1000 11003+#i*1000 11004+#i*1000 fix ff
        SLN 11106+#i*1000 11004+#i*1000 11001+#i*1000 fix ff
    endloop
    SLN 12101 12001 12002 ; SLN 13101 13001 13002
        SLNS REFT >SLN 12101 MNO #MNO
    SLN 12201 12002 12005 ; SLN 13102 13002 13005
        SLNS REFT >SLN 12201 MNO #MNO
    SLN 12103 12003 12004 ; SLN 13103 13003 13004
        SLNS REFT >SLN 12103 MNO #MNO
    SLN 12203 12003 12006 ; SLN 13203 13003 13006
        SLNS REFT >SLN 12203 MNO #MNO
END

+prog SOFILOAD urs:17.3 $ Loads
    LC 1 TYPE 'NONE' TITL 'Beam load'
        BEAM SLN 1,2 PA -10
    LC 2 TYPE 'NONE' TITL 'Shell load'
        QUAD GRP 1 P -50
    LC 3 TYPE 'NONE' TITL 'Shell load'
        QUAD GRP 2 P -50
END

+PROG ASE urs:51
    Head Analysis
    CTRL SOLV 4
    let#LC_no 1,2,3
    #DEFINE LC
        SYST PROB NONL ITER 400 TOL 0.01
        LC #LC_no(#i)
    #ENDDEF
    loop#i LC_no
        #include LC

        END
    endloop
END
  1. If you look closely (uncheck the remove overlap), you actually have to springs in the same position in M3 with half the force each. → So it is correct
  2. You have modelled a 200x200x25 RHS profile 200x200 is the OUTER perimeter. The shells are modelled along a 200x200 line in the center → your shells are a 212.5x212.5x25 RHS profile
1 Like
  1. ah I see. As the springs are modelled in SLNs, this would happen at the start/end of each SLN. Even though the end result is correct, given that there are two springs sharing half of the force each, it’s not very intuitive. Is there any way to tell the SLN that it should not generate overlapping springs when SLNs connect?

  2. Makes sense, didn’t think of this due to the beam geometry being thin-walled. This has now been changed. However, the sum of the spring forces are still not identical (differs about 10%, which seems too much to be counted off as numerical inaccuracies). See result here

Please see the updated geometry below:

+prog aqua urs:17.2 $ Materials
    CONC 1 C 40 EC 17500
    STEE 2 B FY 500
    STEE 3 S FY 355
    SECT 1 MNO 3
    sto#h 200
    sto#t 25
    PROF TYPE 'RHS' Z1 #h+#t Z2 #h+#t Z3 #t VR1 0 VR2 0 MNO 3 DTYP T
    MAT 4 E 200000[MPa]
    BMAT 4 MREF 4 h 0.1[m] CRAC 0
    SMAT 5 LTYP STD MTYP plas TITL "Joint"
        SFLA U -1.0[mm]  F -50000[kN] type p
        SFLA U  0.0[mm]  F 0[kN]
        SFLA U  1.0[mm]  F 0[kN]
    sto#MNO 5
END

+prog sofimshc urs:17.1   $ Beam Geometry (M1)
    SYST 3D GDIV 100000 GDIR NEGZ
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    let#CP 1e8[kN/m3]
    SPT 102 0     0   0 fix ff
    SPT 202 1000  0   0
    SPT 302 1100  0   0
    SPT 402 2100  0   0 fix ff
    SPT 201 REF PT 202  X 0 Y 0 Z #h/2
        SPTP F REF 202
    SPT 203 REF PT 202  X 0 Y 0 Z -#h/2
        SPTP F REF 202
    SPT 301 REF PT 302  X 0 Y 0 Z #h/2
        SPTP F REF 302
        SPTS 1 REF 201 CP #CP CRAC 0
    SPT 303 REF PT 302  X 0 Y 0 Z -#h/2
        SPTP F REF 302
        SPTS 3 REF 203 CP #CP*0.5 CRAC 0
    SLN 1 102 202 SNO 1
    SLN 2 302 402 SNO 1
END
+prog sofimshc urs:17.5 $ Shell Geometry (M2)
    SYST REST
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    SPT 1001 0    1.5*#h -#h/2  ;  SPT 2001 1000    1.5*#h -#h/2
    SPT 1002 0    2.5*#h -#h/2  ;  SPT 2002 1000    2.5*#h -#h/2
    SPT 1003 0    2.5*#h  #h/2  ;  SPT 2003 1000    2.5*#h  #h/2
    SPT 1004 0    1.5*#h  #h/2  ;  SPT 2004 1000    1.5*#h  #h/2
    loop#i 4
        SPT 3001+#i REF PT 1001+#i X 1100
        SPT 4001+#i REF PT 2001+#i X 1100
    endloop
    loop#i 2
        SAR 11+10*#i t #t MNO 3
            SARB TYPE OUT NA 1001+#i*2000 NE 2001+#i*2000
            SARB TYPE OUT NA 2001+#i*2000 NE 2002+#i*2000
            SARB TYPE OUT NA 2002+#i*2000 NE 1002+#i*2000
            SARB TYPE OUT NA 1002+#i*2000 NE 1001+#i*2000
        SAR 12+10*#i t #t MNO 3
            SARB TYPE OUT NA 1001+#i*2000 NE 2001+#i*2000
            SARB TYPE OUT NA 2001+#i*2000 NE 2004+#i*2000
            SARB TYPE OUT NA 2004+#i*2000 NE 1004+#i*2000
            SARB TYPE OUT NA 1004+#i*2000 NE 1001+#i*2000
        SAR 13+10*#i t #t MNO 3 GRP 1
            SARB TYPE OUT NA 1004+#i*2000 NE 2004+#i*2000
            SARB TYPE OUT NA 2004+#i*2000 NE 2003+#i*2000
            SARB TYPE OUT NA 2003+#i*2000 NE 1003+#i*2000
            SARB TYPE OUT NA 1003+#i*2000 NE 1004+#i*2000
        SAR 14+10*#i t #t MNO 3
            SARB TYPE OUT NA 1003+#i*2000 NE 2003+#i*2000
            SARB TYPE OUT NA 2003+#i*2000 NE 2002+#i*2000
            SARB TYPE OUT NA 2002+#i*2000 NE 1002+#i*2000
            SARB TYPE OUT NA 1002+#i*2000 NE 1003+#i*2000
    endloop
    loop#i 2
        let#i #i*3
        SLN 1101+#i*1000 1001+#i*1000 1002+#i*1000 fix ff
        SLN 1102+#i*1000 1002+#i*1000 1003+#i*1000 fix ff
        SLN 1103+#i*1000 1003+#i*1000 1004+#i*1000 fix ff
        SLN 1104+#i*1000 1004+#i*1000 1001+#i*1000 fix ff
    endloop
    SLN 2101 2001 2002 ; SLN 3101 3001 3002
    SLNS REFT >SLN 2101 MNO #MNO
    SLN 2103 2003 2004 ; SLN 3103 3003 3004
    SLNS REFT >SLN 2103 MNO #MNO
END

+prog sofimshc urs:17.6 $ Divided Shell Geometry (M3)
    SYST REST
    UNIT 6
    CTRL MESH 1
    CTRL HMIN 0.05[m]
    SPT 11001 0    3.5*#h  -#h/2 ;  SPT 12001 1000    3.5*#h  -#h/2
    SPT 11002 0    4.0*#h  -#h/2 ;  SPT 12002 1000    4.0*#h  -#h/2
    SPT 11005 0    4.5*#h  -#h/2 ;  SPT 12005 1000    4.5*#h  -#h/2
    SPT 11006 0    4.5*#h   #h/2 ;  SPT 12006 1000    4.5*#h   #h/2
    SPT 11003 0    4.0*#h   #h/2 ;  SPT 12003 1000    4.0*#h   #h/2
    SPT 11004 0    3.5*#h   #h/2 ;  SPT 12004 1000    3.5*#h   #h/2
    loop#i 6
        SPT 13001+#i REF PT 11001+#i X 1100
        SPT 14001+#i REF PT 12001+#i X 1100
    endloop
    loop#i 2
        SAR 111+10*#i t #t MNO 3
            SARB TYPE OUT NA 11001+#i*2000 NE 12001+#i*2000
            SARB TYPE OUT NA 12001+#i*2000 NE 12002+#i*2000
            SARB TYPE OUT NA 12002+#i*2000 NE 11002+#i*2000
            SARB TYPE OUT NA 11002+#i*2000 NE 11001+#i*2000
        SAR 112+10*#i t #t MNO 3
            SARB TYPE OUT NA 11001+#i*2000 NE 12001+#i*2000
            SARB TYPE OUT NA 12001+#i*2000 NE 12004+#i*2000
            SARB TYPE OUT NA 12004+#i*2000 NE 11004+#i*2000
            SARB TYPE OUT NA 11004+#i*2000 NE 11001+#i*2000
        SAR 113+10*#i t #t MNO 3 GRP 2
            SARB TYPE OUT NA 11004+#i*2000 NE 12004+#i*2000
            SARB TYPE OUT NA 12004+#i*2000 NE 12003+#i*2000
            SARB TYPE OUT NA 12003+#i*2000 NE 11003+#i*2000
            SARB TYPE OUT NA 11003+#i*2000 NE 11004+#i*2000
        SAR 114+10*#i t #t MNO 3 GRP 2
            SARB TYPE OUT NA 11003+#i*2000 NE 12003+#i*2000
            SARB TYPE OUT NA 12003+#i*2000 NE 12006+#i*2000
            SARB TYPE OUT NA 12006+#i*2000 NE 11006+#i*2000
            SARB TYPE OUT NA 11006+#i*2000 NE 11003+#i*2000
        SAR 115+10*#i t #t MNO 3
            SARB TYPE OUT NA 11006+#i*2000 NE 12006+#i*2000
            SARB TYPE OUT NA 12006+#i*2000 NE 12005+#i*2000
            SARB TYPE OUT NA 12005+#i*2000 NE 11005+#i*2000
            SARB TYPE OUT NA 11005+#i*2000 NE 11006+#i*2000
        SAR 116+10*#i t #t MNO 3
            SARB TYPE OUT NA 11005+#i*2000 NE 12005+#i*2000
            SARB TYPE OUT NA 12005+#i*2000 NE 12002+#i*2000
            SARB TYPE OUT NA 12002+#i*2000 NE 11002+#i*2000
            SARB TYPE OUT NA 11002+#i*2000 NE 11005+#i*2000
    endloop
    loop#i 2
        let#i #i*3
        SLN 11101+#i*1000 11001+#i*1000 11002+#i*1000 fix ff
        SLN 11102+#i*1000 11002+#i*1000 11005+#i*1000 fix ff
        SLN 11103+#i*1000 11005+#i*1000 11006+#i*1000 fix ff
        SLN 11104+#i*1000 11006+#i*1000 11003+#i*1000 fix ff
        SLN 11105+#i*1000 11003+#i*1000 11004+#i*1000 fix ff
        SLN 11106+#i*1000 11004+#i*1000 11001+#i*1000 fix ff
    endloop

    SLN 12101 12001 12002 ; SLN 13101 13001 13002
        SLNS REFT >SLN 12101 MNO #MNO
    SLN 12201 12002 12005 ; SLN 13102 13002 13005
        SLNS REFT >SLN 12201 MNO #MNO
    SLN 12103 12003 12004 ; SLN 13103 13003 13004
        SLNS REFT >SLN 12103 MNO #MNO
    SLN 12203 12003 12006 ; SLN 13203 13003 13006
        SLNS REFT >SLN 12203 MNO #MNO
END

+prog SOFILOAD urs:17.3 $ Loads
    LC 1 TYPE 'NONE' TITL 'Beam load'
        BEAM SLN 1,2 PA -10
    LC 2 TYPE 'NONE' TITL 'Shell load'
        QUAD GRP 1 P -50
    LC 3 TYPE 'NONE' TITL 'Shell load'
        QUAD GRP 2 P -50
END

+PROG ASE urs:51
    Head Analysis
    CTRL SOLV 4
    let#LC_no 1,2,3
    #DEFINE LC
        SYST PROB NONL ITER 400 TOL 0.01
        LC #LC_no(#i)
    #ENDDEF
    loop#i LC_no
        #include LC

        END
    endloop