BriefFiniteElementNet / BriefFiniteElement.Net

BriefFiniteElementDotNET (BFE.NET) is a library for linear-static Finite Element Method (FEM) analysis of solids and structures in .NET

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add newmark-beta method for dynamic analysis

epsi1on opened this issue · comments

Newmark-beta method is used for finding the response of a structure with known stiffness, mass and damp matrix to external excitation like dynamic force and dynamic settlements (earthquake which vibrates the fixed DoFs).

More info on wikipedia: Link

Alternative method is central difference method, which can be better (need discussion)

Attached Files El mar, 29 mar 2022 a la(s) 14:14, epsi1on @.) escribió:

Newmark-beta method is used for finding the response of a structure with known stiffness, mass and damp matrix to external excitation like dynamic force and dynamic settlements (earthquake which vibrates the fixed DoFs). More info on wikipedia: Link https://en.wikipedia.org/wiki/Newmark-beta_method — Reply to this email directly, view it on GitHub <#127>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM3WCG22XYVWO2CMMNBDEJLVCM3BBANCNFSM5R7DAUZQ . You are receiving this because you are subscribed to this thread.Message ID: @.
>

Hi @MLiranzo,

I cannot see any attached file.

@MLiranzo
That is because you reply to the notification email directly. Please use this link 👍🏼
#127

Hi eps1on File Attachment.
EigenVectors.xlsx
eigenvectors

@MLiranzo
Thanks for great detailed calculation.
Can you please also write a simple code (10-15 lines of code) that makes your model? For your case there will be 8 nodes, and 9 elements.

Pretty much like this code which is from truss example:

private static void Example1()
{
        Console.WriteLine("Example 1: Simple 3D truss with four members");


        // Initiating Model, Nodes and Members
        var model = new Model();

        var n1 = new Node(1, 1, 0);
        n1.Label = "n1";//Set a unique label for node
        var n2 = new Node(-1, 1, 0) {Label = "n2"};//using object initializer for assigning Label
        var n3 = new Node(1, -1, 0) {Label = "n3"};
        var n4 = new Node(-1, -1, 0) {Label = "n4"};
        var n5 = new Node(0, 0, 1) {Label = "n5"};

        var e1 = new TrussElement2Node(n1, n5) {Label = "e1"};
        var e2 = new TrussElement2Node(n2, n5) {Label = "e2"};
        var e3 = new TrussElement2Node(n3, n5) {Label = "e3"};
        var e4 = new TrussElement2Node(n4, n5) {Label = "e4"};
        //Note: labels for all members should be unique, else you will receive InvalidLabelException when adding it to model

        e1.A = e2.A = e3.A = e4.A = 9e-4;
        e1.E = e2.E = e3.E = e4.E = 210e9;

        model.Nodes.Add(n1, n2, n3, n4, n5);
        model.Elements.Add(e1, e2, e3, e4);

        //Applying restrains


        n1.Constraints = n2.Constraints = n3.Constraints = n4.Constraints = Constraint.Fixed;
        n5.Constraints = Constraint.RotationFixed;


        //Applying load
        var force = new Force(0, 1000, -1000, 0, 0, 0);
        n5.Loads.Add(new NodalLoad(force));//adds a load with LoadCase of DefaultLoadCase to node loads

        //Adds a NodalLoad with Default LoadCase

        model.Solve();

        var r1 = n1.GetSupportReaction();
        var r2 = n2.GetSupportReaction();
        var r3 = n3.GetSupportReaction();
        var r4 = n4.GetSupportReaction();

        var rt = r1 + r2 + r3 + r4;//shows the Fz=1000 and Fx=Fy=Mx=My=Mz=0.0

        Console.WriteLine("Total reactions SUM :" + rt.ToString());
}

Thanks again