Mz end releases
An Mz end release lets a type 113 frame element rotate relative to its shared node while retaining compatible translations. A release belongs to a specific end of a specific element. It is available in static, modal and transient analysis.
What is released
At a conventional frame joint, attached elements use the same nodal thetaZ. A released end receives its own rotation, while its ux and uy remain shared with the node. The node is neither restrained nor duplicated.
| Mechanism | Applies to | Effect |
|---|---|---|
| Type 4 support | A node | Restrains ux and uy relative to ground; nodal rotation remains free. |
| MPC | Several nodal DOFs | Imposes a linear relationship between their displacements. |
| Mz release | An element end | Separates end rotation from shared nodal rotation without restraining translations. |
Releasing one of two meeting ends is sufficient to disconnect moment transfer between those two elements. Other unreleased ends at the same node still share a rotation and can transmit moments to each other. Replacing a release with a type 4 support would introduce translational restraints.
Case-file records
After an element section, add a releases block. Its first line is the record count; each record is elementId,end,Mz:
releases
2
1,1,Mz
1,2,Mz
This example releases both ends of element 1. end=1 refers to the first node in the element record and end=2 to the second. These are connectivity positions, not left/right on screen. Element IDs follow the overall input order starting at 1; coordinates and orientation are unrestricted.
The block is repeatable. The editor writes one section sorted by element and end. The elems_113 record stays unchanged; omitting releases or supplying an empty block retains the previous model. Only the exact component name Mz is supported; N/V releases and numeric component codes are rejected.
Using the preprocessor
- Select frame 113 and open the Elements table.
- Enable Release at end 1 or Release at end 2 on the intended element. Each checkbox releases Mz at its own end.
- Check the end circle on the diagram and the
Mz1 released/Mz2 releasedlabel in the element card. - Check supports, loads and model messages, then run the analysis.
Releases survive geometry and property edits and remain attached to node1/node2 positions. Deleting an element removes its releases and renumbers the remaining references. Deleting a node removes connected elements and their releases. Undo/Redo restores the entire operation.
Changing Mz release state does not delete element loads. Editing geometry or element properties removes associated element loads under the existing editor rule; that is a separate action.
How the DOF map changes
A shared nodal thetaZ exists while at least one attached end remains unreleased. If all attached ends release Mz, the shared rotation is removed from the system because it no longer belongs to any element. Every released end has its own private rotational DOF.
The dofRegistry distinguishes nodal coordinates from private end coordinates. The actual system size is numberOfDOFs. A dofPerNode value of 3 denotes possible frame components; it no longer implies that system size is always 3N. A zero in the third column of dofMap or iMnod means an absent shared rotation, not a restrained or zero rotation.
For one two-node element with both ends released:
dofMap = [1 2 0; 3 4 0]
element.dofs = [1; 2; 5; 3; 4; 6]
u = [ux1; uy1; ux2; uy2; thetaEnd1; thetaEnd2]
Existing nodal coordinates are numbered first in node/component order, followed by private rotations in element/end order. Models without releases retain the previous numbering.
Assembly and static recovery
The original local stiffness and consistent mass matrices are retained in full. Only the global assembly indices change. No rows are zeroed and no static condensation is applied. Equivalent distributed loads use the same map, including moments on private rotational coordinates.
ue,local = Re u[element.dofs]
fe,end = Ke,local ue,local − fe,load
Here Re transforms global element components into local axes, and fe,load is the consistent local element-load vector.
In statics, equilibrium of a free private rotation produces zero moment at the released end within numerical tolerance. These are entries 3 and 6 in localEndForces, ordered [N1,V1,Mz1,N2,V2,Mz2]. They are computed, not overwritten with zeros after solving. Axes and signs follow the result recovery chapter.
Why dynamics requires the complete balance
With consistent mass, a private rotation participates in element inertia. The condition for the released generalized coordinate is checked on the corresponding row:
rrelease = (Ma + Ku − F)release ≈ 0
rrelease,mode = (Kφ − ω²Mφ)release ≈ 0
The elastic Ku contribution alone may be nonzero because inertia balances it. The static zero-end-moment test therefore cannot simply be applied to elastic forces from the dynamic model. Removing mass or forcing a reported force to zero would alter the calculation.
Private rotations appear in eigenvectors and Newmark histories. Bending modes can have stationary geometric nodes: deformation inside an element is determined by end rotations. Programmatic transient initial conditions use vectors of length numberOfDOFs, including private coordinates, and must satisfy SPC/MPC constraints.
Supports, MPCs and model errors
| Situation | MKE-F behavior |
|---|---|
| An SPC restrains absent thetaZ | The rotational restraint is ignored with a warning. Translational restraints still apply; private rotations stay free. |
| A nonzero nodal Mz targets absent thetaZ | Error. This moment cannot be automatically distributed among independent ends. |
| An MPC or nodal monitor references absent thetaZ | Error. Existing nodal components may be used; case-file SPC/MPC records cannot address private rotations. |
| Duplicate release, unknown element, end other than 1/2, truss 112 or another component | Input error with a diagnostic; invalid records are not repaired automatically. |
| Releases create a mechanism | The analysis is rejected. A moment release does not replace required supports and constraints. |
If shared rotation is still connected to unreleased ends, nodal Mz, SPCs and MPCs act on that shared coordinate without directly restraining or loading the released end. Selecting a private DOF for a result chart does not make it addressable as a nodal component in the model file.
Reading results and JSON v4
The postprocessor builds deformed geometry using each element's six actual DOFs. Circles mark released ends. Element cards show both thetaZ values; absent shared nodal rotation is shown as not defined. Modal card values belong to the stored eigenvector, not the illustrative display scale.
For a transient chart, select the element under Node / element, then the intended end and thetaZ. Available charts still work with partial DOF exports. Geometry playback requires displacement histories for every global coordinate; partial exports disable it with an explanation.
JSON v4 contains releases, dofRegistry, numberOfDOFs, elements[].globalDOFs and warnings. MPC and distributed-load fields are included when those features are present. Models without releases continue to use v1/v2/v3.
Worked check: a uniformly loaded beam
Open CaseReleaseStatic.txt: one element with L = 4 m, E = 2·10¹¹ Pa, I = 8·10⁻⁶ m⁴, qy = −1000 N/m. Both ends are released; node 1 is restrained in ux/uy and node 2 in uy.
Ry1 = Ry2 = |qy|L/2 = 2000 N
θ1 = −|qy|L³/(24EI) = −0.00166667 rad
θ2 = +0.00166667 rad, Mz1 ≈ Mz2 ≈ 0
addpath(pwd);
setup;
problem = StructFEProblem(fullfile(pwd, 'examples', 'cases', 'CaseReleaseStatic.txt'));
model = problem.GetAnalysisModel();
result = problem.RunSelected();
disp(model.dofMap);
disp(result.displacements(model.elementData(1).dofs([3 6])));
disp(result.elementResults(1).localEndForces);
disp(result.equilibriumResidual);
Reactions and end rotations match the analytical solution in this example. However, the viewer interpolates displacements with cubic element functions: the single-element midspan deflection is |q|L⁴/(96EI), whereas the exact beam solution gives 5|q|L⁴/(384EI). Zero end moments do not establish accuracy of the entire field; refine the mesh for deflection accuracy while retaining releases at the physical beam ends.
CaseReleaseModal.txt demonstrates a bending mode with stationary nodes. CaseReleaseTransient.txt has two elements, releases at the outer ends and a midspan step load. Its interior connection remains rigid: mesh refinement does not require releasing every element end.
Implementation and verification
- buildDOFRegistry.m — shared nodal and private end coordinates;
- recoverElementResults.m — displacements and end forces;
- shared/releases.js — release semantics, diagnostics and markers;
- test_releases.m — analytical reactions, inclined geometry, equivalent MPC models, frequencies, energy and errors;
- test_releases_browser.cjs — editor, warnings, v4, shapes and private DOF histories.
This implementation covers linear planar frame 113 and Mz releases. It does not add N/V releases, elastic or plastic hinges, contact, large rotations or the full NAFEMS investigation.