This project has moved. For the latest updates, please go here.

Error in continuous beam reactions Vb.Net

Sep 6, 2015 at 9:24 PM
Edited Sep 7, 2015 at 2:56 AM
Hello first of all thank you for working and sharing this project is definitely unique and memorable.

I am writing routines in the library with VB.Net. however I can not extract the reactions as these do not coincide with the moment diagram and shear

Image

In case 1 is a simply supported continuous beam (see figure) the sum of the reactions is 2 * 4 = 8 and the library returns R1=-0.5, R2=1.0 y R3=-0.5

In case 2 there is a continuous beam with embedding (see figure) the sum of the reactions is 2 * 4 = 8 and the library returns R1=-0.142, R2=0.57 y R3=-0.42.
Recess the moment does not match the value calculated in the frame.

I appreciate the guidance to find my error.
 Private Shared Sub Example3()
        Dim model = New Model()
        Dim n1 = New Node(0, 0, 0)
        Dim n2 = New Node(2, 0, 0)
        Dim n3 = New Node(4, 0, 0)

       model.Nodes.Add(n1, n2, n3)

        Dim secAA = SectionGenerator.GetISetion(0.24, 0.67, 0.01, 0.006)

        Dim e1 = New FrameElement2Node(n1, n2)
        e1.Label = "e1"
        Dim e2 = New FrameElement2Node(n2, n3)
        e2.Label = "e2"

        e1.Geometry = InlineAssignHelper(e2.Geometry, secAA)

        e1.E = InlineAssignHelper(e2.E, InlineAssignHelper(e2.E, 210000000000.0))
        e1.G = InlineAssignHelper(e2.G, InlineAssignHelper(e2.G, 210000000000.0 / (2 * (1 + 0.3))))

        e1.UseOverridedProperties = InlineAssignHelper(e2.UseOverridedProperties, False)

        model.Elements.Add(e1, e2)

        ''Caso 1
        n1.Constraints = Constraint.FixedDY And Constraint.FixedRX And Constraint.FixedRZ
        n1.Constraints = n1.Constraints And Constraint.MovementFixed

        'Caso 2
        'n1.Constraints = n1.Constraints And Constraint.MovementFixed And Constraint.RotationFixed

        n2.Constraints = Constraint.FixedDY And Constraint.FixedRX And Constraint.FixedRZ
        n2.Constraints = n3.Constraints And Constraint.MovementFixed

        n3.Constraints = Constraint.FixedDY And Constraint.FixedRX And Constraint.FixedRZ
        n3.Constraints = n3.Constraints And Constraint.MovementFixed

         Dim cse = New LoadCase("Case1", LoadType.Live)
        Dim comb = New LoadCombination()
        comb(cse) = 1.0

        Dim ll = New UniformLoad1D(-2, LoadDirection.Z, CoordinationSystem.[Global], cse)

        e1.Loads.Add(ll)
        e2.Loads.Add(ll)

        Dim wnd = WpfTraceListener.CreateModelTrace(model)
        'model.CheckForErrors()
        'wnd.ShowDialog();
        model.Solve()
        wnd.ShowDialog()

        'n1 = model.Nodes.Item(0)
        'n2 = model.Nodes.Item(1)
        'n3 = model.Nodes.Item(2)

        Dim r1 = n1.GetSupportReaction(comb).Forces()
        Dim m1 = n1.GetSupportReaction(comb).Moments()
        Dim r2 = n2.GetSupportReaction(comb).Forces()
        Dim m2 = n2.GetSupportReaction(comb).Moments()
        Dim r3 = n3.GetSupportReaction(comb).Forces()
        Dim m3 = n3.GetSupportReaction(comb).Moments()

        Dim strReacciones As String = "Reaciones" & vbCrLf & "Rx, Ry, Rz // Mx, Mym, Mx" & vbCrLf

        strReacciones = strReacciones & r1.ToString & "  " & m1.ToString & vbCrLf & r2.ToString & " // " & m2.ToString & vbCrLf & r3.ToString & "  " & m3.ToString & vbCrLf
        MsgBox(strReacciones)

        MsgBox("Suma de reacciones es: " & r1.Z + r2.Z + r3.Z)

        e1 = model.Elements.Item(0)
        Dim Fi = e1.GetInternalForceAt(0.0, comb)
        MsgBox("Cortante a distancia 0 =" & Fi.Fz)
        MsgBox("Momento a distancia 0 =" & Fi.My)

    End Sub
in C#
      private static void Example3()
        {
            dynamic model = new Model();

            dynamic n1 = new Node(0, 0, 0);
            dynamic n2 = new Node(2, 0, 0);
            dynamic n3 = new Node(4, 0, 0);

            model.Nodes.Add(n1, n2, n3);

            dynamic secAA = SectionGenerator.GetISetion(0.24, 0.67, 0.01, 0.006);

            dynamic e1 = new FrameElement2Node(n1, n2);
            e1.Label = "e1";
            dynamic e2 = new FrameElement2Node(n2, n3);
            e2.Label = "e2";

            e1.Geometry =  secAA;
            e2.Geometry = secAA;

            e1.E = e2.E = 210e9;
            e1.G = e2.G = 210e9 / (2 * (1 + 0.3));//G = E / (2*(1+no))

            e1.UseOverridedProperties = e2.UseOverridedProperties = false;

            model.Elements.Add(e1, e2);

            //'Caso 1
            //n1.Constraints = Constraint.FixedDY & Constraint.FixedRX & Constraint.FixedRZ;
            //n1.Constraints = n1.Constraints & Constraint.MovementFixed;

            //Caso 2
            n1.Constraints = n1.Constraints & Constraint.MovementFixed & Constraint.RotationFixed;


            n2.Constraints = Constraint.FixedDY & Constraint.FixedRX & Constraint.FixedRZ;
            n2.Constraints = n3.Constraints & Constraint.MovementFixed;

            n3.Constraints = Constraint.FixedDY & Constraint.FixedRX & Constraint.FixedRZ;
            n3.Constraints = n3.Constraints & Constraint.MovementFixed;

            dynamic cse = new LoadCase("Case1", LoadType.Live);
            dynamic comb = new LoadCombination();
            comb[cse] = 1.0;

            dynamic ll = new UniformLoad1D(-2, LoadDirection.Z, CoordinationSystem.Global, cse);

            e1.Loads.Add(ll);
            e2.Loads.Add(ll);


            dynamic wnd = WpfTraceListener.CreateModelTrace(model);
            //model.CheckForErrors()
            //wnd.ShowDialog();
            model.Solve();
            wnd.ShowDialog();

            var r1 = n1.GetSupportReaction(comb); //.Forces();
            var r2 = n2.GetSupportReaction(comb); //.Forces();
            var r3 = n3.GetSupportReaction(comb); //.Forces();
            
            var F1 = e1.GetInternalForceAt(0.0, comb);
            var F2 = e2.GetInternalForceAt(0.0, comb);

//Why F1.My <> r1.My ?

        }
Excuse my bad English, I only speak Spanish

Bye
Coordinator
Sep 7, 2015 at 6:30 AM
Edited Sep 7, 2015 at 9:50 AM
First thanks for your detailed question. Actually this is not you'r error, its bug within the library. I'll try to find and fix...
edit:
also in the method code it was noted that method not works correctly:
public Force GetSupportReaction(LoadCombination cmb)
        {
            //TODO: this methods not works correctly!
Coordinator
Sep 7, 2015 at 1:01 PM
I think problem is resolved, for your example it give right result, can you please check again?
Thank you