Apply moment to 1d beam element

I have a cantilever beam to which I’d like to apply moment
Screenshot from 2024-02-13 18-16-45

I’ve tried using *MPC MEANROT and modelling the moment “as is”: creating two “ghost” points to which I applied *CLOAD. However, none produced any result. What am I doing wrong?

The screenshots of results can be viewed here: Applying moment - Album on Imgur

mpc_meanrot.inp

*Node, NSET=Nall
1, 0, 0, 0
2, 2000, 0, 0
3, 200, 0, 0
4, 400, 0, 0
5, 600, 0, 0
6, 800, 0, 0
7, 1000, 0, 0
8, 1200, 0, 0
9, 1400, 0, 0
10, 1600, 0, 0
11, 1800, 0, 0
12, 100, 0, 0
13, 300, 0, 0
14, 500, 0, 0
15, 700, 0, 0
16, 900, 0, 0
17, 1100, 0, 0
18, 1300, 0, 0
19, 1500, 0, 0
20, 1700, 0, 0
21, 1900, 0, 0
22, 0, 1, 0

*Element, TYPE=B32R, ELSET=Eall
1, 1, 12, 3
2, 3, 13, 4
3, 4, 14, 5
4, 5, 15, 6
5, 6, 16, 7
6, 7, 17, 8
7, 8, 18, 9
8, 9, 19, 10
9, 10, 20, 11
10, 11, 21, 2

*ELSET,ELSET=M0B0RstdD0
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,

*MATERIAL, NAME=MechanicalMaterial
*ELASTIC
210000, 0.3

*BEAM GENERAL SECTION, ELSET=M0B0RstdD0, MATERIAL=MechanicalMaterial, SECTION=PIPE
50, 5
-0, 1, 0

*MPC
MEANROT, 2, 2, 2, 22

*STEP
*STATIC

*BOUNDARY
1, 1, 6

*BOUNDARY
22, 1, 1, 0.9

*NODE FILE, OUTPUT=3d
U
*EL FILE
S, E

*NODE PRINT, NSET=ConstraintFixed, TOTALS=ONLY
RF

*END STEP 

mpc_beam.inp

*Node, NSET=Nall
1, 0, 0, 0
2, 2000, 0, 0
3, 200, 0, 0
4, 400, 0, 0
5, 600, 0, 0
6, 800, 0, 0
7, 1000, 0, 0
8, 1200, 0, 0
9, 1400, 0, 0
10, 1600, 0, 0
11, 1800, 0, 0
12, 100, 0, 0
13, 300, 0, 0
14, 500, 0, 0
15, 700, 0, 0
16, 900, 0, 0
17, 1100, 0, 0
18, 1300, 0, 0
19, 1500, 0, 0
20, 1700, 0, 0
21, 1900, 0, 0
22, 2000, 0, 100
23, 2000, 0, -100

*Element, TYPE=B32R, ELSET=Eall
1, 1, 12, 3
2, 3, 13, 4
3, 4, 14, 5
4, 5, 15, 6
5, 6, 16, 7
6, 7, 17, 8
7, 8, 18, 9
8, 9, 19, 10
9, 10, 20, 11
10, 11, 21, 2

*ELSET,ELSET=M0B0RstdD0
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,

*MATERIAL, NAME=MechanicalMaterial
*ELASTIC
210000, 0.3

*BEAM GENERAL SECTION, ELSET=M0B0RstdD0, MATERIAL=MechanicalMaterial, SECTION=PIPE
50, 5
-0, 1, 0

*MPC
BEAM, 2, 22

*MPC
BEAM, 2, 23

*STEP
*STATIC

*BOUNDARY
1, 1, 6

*CLOAD
22, 1, 100

*CLOAD
23, 1, -100

*NODE FILE, OUTPUT=3d
U
*EL FILE
S, E
*NODE PRINT, NSET=ConstraintFixed, TOTALS=ONLY
RF

*END STEP 

But beam elements have rotational DOFs even in CalculiX so you can apply the rotation directly to the beam end node.

You mean something like this: (2 is the beam end node)

*BOUNDARY
2, 5, , 0.01

Then, 0.01 is radians, right? How can I “convert” it to torque? (Or torque to radians)
With “ghost” nodes and applied force to them I know how to calculate torque: perpendicular_distance(ghost_node, beam_end) * force_applied_to_ghost_node, but I don’t understand how to achieve the same through rotation

Yes and you can also use *CLOAD in the same way:

*CLOAD
2, 5, 1000

then it will be torque instead of force (1000 Nmm here - just some dummy value).

1 Like

Although this example is OK, beware that the moment or rotation should be aligned with the beam’s axis and/or the beam should be aligned with a global axis otherwise it gives the wrong result.

The problem occurs with all ways - *BOUNDARY, *CLOAD, and *MPC since all of them use the mean rotation MPC internally.

1 Like

indeed, rotational transmit at beam end node from boundary or load seems to have a problem in some case. If i can remember correctly, several early version of CalculiX generate knot at these nodes to eliminate. However, later versions change the behavior by mean rotation. Maybe a new specific keyword like *Knot is required to assign manually of rigid section surfaces at location interest.

1 Like

Yea I would love to be able to force a knot at a node, and don’t know why Guido changed it to avoid knots? A workaround is to attach a dummy beam hanging off the node with different orientation or section but that’s a bit ugly looking.

below my approach to get identical results, and it seems not too bad in looking.

1 Like

Replace one beam with two half-width beams? That’s an idea. It’ll make the solution look a bit weird with all those extra nodes and elements though, so it would be nice to have an invisible way.

this approach is similar to composite shell available with some exception and limitation.