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

Simple cantilever example (moment at clamped side)

adriaanpfeiffer opened this issue · comments

Hello, I think I am doing something wrong but I can't figure out what the misstake is.

I am trying a simple cantilever example and expect a moment of 125 at the clamped side.
uniform load q = 10
lengh l = 5

Simple verification: 0.5 x q x l x l = 0.5 x 10 x 5 x 5 =125

I am running the following code and seem to get a moment of 104.

Could anyone point me to something I am assuming in the wrong way?

public class SimpleCantilever
{
        public static void Run()
        {
            var model = new Model();
            var length = 5;
            var n1 = new Node(0, 0, 0);
            var n2 = new Node(length, 0, 0);
            //section and material properties are irrelevant for this test that's why they are set to 1.0
            var sec = new Sections.UniformParametric1DSection(1, 1, 1, 1);
            var mat = UniformIsotropicMaterial.CreateFromYoungShear(1, 1);
            model.Nodes.Add(n1, n2);
            var barElement = new BarElement(n1, n2) { Material = mat, Section = sec, Behavior = BarElementBehaviours.FullFrame };
            barElement.Loads.Add(new UniformLoad(LoadCase.DefaultLoadCase, -Vector.K, 10, CoordinationSystem.Global));
            model.Elements.Add(barElement);
            n1.Constraints = Constraints.Fixed;
            model.Solve(BuiltInSolverType.ConjugateGradient);
            var force = barElement.GetInternalForceAt(-1);
            var moment = force.Moments;
            Debug.Assert(moment.Y == 125.0);
        }
}

I think for this usage I should use the eulerbernouillybeam2d helper. I was a bit misstaken because in an earlier version of this library it worked correctly with the FrameElement. But I think the usage of BarElement cant be compared anymore

Hi,
I think you should use BarElement.GetExactInternalForce() method instead of BarElement.GetInternalForce() method.
Please take a look at here:
https://bfenet.readthedocs.io/en/latest/elements/finiteElements/Bar/internalforces.html

this is a frequently issue from users. maybe i should rename the method?

Hi, i'll check it out. Thanks for reply. Concerning the naming I'll get back

inactivity