Internal Force And Displacement

After solving the Model, BarElement will have some internal forces. Internal force at each location of element can be different and it can be retrieved with method BarElement.GetInternalForceAt and BarElement.GetExactInternalForceAt. both methods gives the internal force at specified iso parametric coordinate. The difference between BarElement.GetInternalForce and BarElement.GetExactInternalForce is that BarElement.GetInternalForceAt only consider nodal displacement for internal force but Exact one (GetExactInternalForceAt) also considers effect of elemental loads (like distributed loads) in element in addition to nodal displacements. Internal force means 3 forces and 3 moments: axial load (Fx), two shear loads (Fy,Fz), torque moment (Mx) and two biaxial moments (My,Mz) which are shown in picture:

../../../_images/barinternalforce.png

Note that value returned from this method is in element’s local coordination system.

For example the beam below with both ends fixed, after solve does not have any nodal displacement, so the standard FEM formula D*B*u will return 0, so BarElement.GetInternalForceAt for this example returns 0, but BarElement.GetExactInternalForceAt at middle will not return zero…

var model = new Model();

    Node n1, n2;

    model.Nodes.Add(n1 = new Node(0, 0, 0) { Constraints = Constraints.Fixed });
    model.Nodes.Add(n2 = new Node(1, 0, 0) { Constraints = Constraints.Fixed });

    var elm = new BarElement(n1, n2);

    elm.Section = new BriefFiniteElementNet.Sections.UniformParametric1DSection(a: 0.01, iy: 0.01, iz: 0.01, j: 0.01);
    elm.Material = BriefFiniteElementNet.Materials.UniformIsotropicMaterial.CreateFromYoungPoisson(210e9, 0.3);

    var load = new Loads.UniformLoad();

    load.Case = LoadCase.DefaultLoadCase;
    load.CoordinationSystem = CoordinationSystem.Global;
    load.Direction = Vector.K;
    load.Magnitude = 10;

    elm.Loads.Add(load);
    model.Elements.Add(elm);

    model.Solve_MPC();

    var f1 = elm.GetInternalForceAt(0);
    var f2 = elm.GetExactInternalForceAt(0);

TODO: internal displacement