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