Pynite Analysis Report

{% if node_table == True %}

Nodes & Supports

{% for node in nodes %} {% endfor %}
Node X Y Z Support X Support Y Support Z Support RX Support RY Support RZ
{{ node.name }} {{ "%.4g" | format(node.X) }} {{ "%.4g" | format(node.Y) }} {{ "%.4g" | format(node.Z) }} {{ node.support_DX }} {{ node.support_DY }} {{ node.support_DZ }} {{ node.support_RX }} {{ node.support_RY }} {{ node.support_RZ }}
{% endif %} {% if member_table == True %}

Members

{% for member in members %} {% endfor %}
Member i-Node j-Node A Iy Iz J E G
{{ member.name }} {{ member.i_node.name }} {{ member.j_node.name }} {{ "%.4g" | format(member.section.A) }} {{ "%.4g" | format(member.section.Iy) }} {{ "%.4g" | format(member.section.Iz) }} {{ "%.4g" | format(member.section.J) }} {{ "%.4g" | format(member.material.E) }} {{ "%.4g" | format(member.material.G) }}
{% endif %} {% if member_releases == True %}

Member End Releases

{% for member in members %} {% endfor %}
Member Δxi Δyi Δzi θxi θyi θzi Δxj Δyj Δzj θxj θyj θzj
{{ member.name }} {{ member.Releases[0] }} {{ member.Releases[1] }} {{ member.Releases[2] }} {{ member.Releases[3] }} {{ member.Releases[4] }} {{ member.Releases[5] }} {{ member.Releases[6] }} {{ member.Releases[7] }} {{ member.Releases[8] }} {{ member.Releases[9] }} {{ member.Releases[10] }} {{ member.Releases[11] }}
{% endif %} {% if plate_table == True %}

Plates

{% for plate in plates %} {% endfor %}
Plate i-Node j-Node m-Node n-Node t E ν
{{ plate.name }} {{ plate.i_node.name }} {{ plate.j_node.name }} {{ plate.m_node.name }} {{ plate.n_node.name }} {{ "%.4g" | format(plate.t) }} {{ "%.4g" | format(plate.E) }} {{ "%.4g" | format(plate.nu) }}
{% endif %} {% if plate_table == True %}

Quads

{% for quad in quads %} {% endfor %}
Quad i-Node j-Node m-Node n-Node t E ν
{{ quad.name }} {{ quad.i_node.name }} {{ quad.j_node.name }} {{ quad.m_node.name }} {{ quad.n_node.name }} {{ "%.4g" | format(quad.t) }} {{ "%.4g" | format(quad.E) }} {{ "%.4g" | format(quad.nu) }}
{% endif %} {% if node_reactions == True %}

Node Reactions

{% for combo in load_combos %} {% for node in nodes %} {% endfor %} {% endfor %}
Node LC FX FY FZ MX MY MZ
{{ node.name }} {{ combo }} {{ "%.4g" | format(node.RxnFX[combo]) }} {{ "%.4g" | format(node.RxnFY[combo]) }} {{ "%.4g" | format(node.RxnFZ[combo]) }} {{ "%.4g" | format(node.RxnMX[combo]) }} {{ "%.4g" | format(node.RxnMY[combo]) }} {{ "%.4g" | format(node.RxnMZ[combo]) }}
{% endif %} {% if node_displacements == True %}

Node Displacements

{% for combo in load_combos %} {% for node in nodes %} {% endfor %} {% endfor %}
Node LC ΔX ΔY ΔZ θX θY θZ
{{ node.name }} {{ combo }} {{ "%.4g" | format(node.DX[combo]) }} {{ "%.4g" | format(node.DY[combo]) }} {{ "%.4g" | format(node.DZ[combo]) }} {{ "%.4g" | format(node.RX[combo]) }} {{ "%.4g" | format(node.RY[combo]) }} {{ "%.4g" | format(node.RZ[combo]) }}
{% endif %} {% if member_end_forces == True %}

Member End Forces

{% for combo in load_combos %} {% for member in members %} {% endfor %} {% endfor %}
Member LC Pi Pj Vyi Vzi Vyj Vzj Myi Mzi Myj Mzj Ti Tj
{{ member.name }} {{ combo }} {{ "%.4g" | format(member.axial(0, combo)) }} {{ "%.4g" | format(member.axial(member.L(), combo)) }} {{ "%.4g" | format(member.shear("Fy", 0, combo)) }} {{ "%.4g" | format(member.shear("Fz", 0, combo)) }} {{ "%.4g" | format(member.shear("Fy", member.L(), combo)) }} {{ "%.4g" | format(member.shear("Fz", member.L(), combo)) }} {{ "%.4g" | format(member.moment("My", 0, combo)) }} {{ "%.4g" | format(member.moment("Mz", 0, combo)) }} {{ "%.4g" | format(member.moment("My", member.L(), combo)) }} {{ "%.4g" | format(member.moment("Mz", member.L(), combo)) }} {{ "%.4g" | format(member.torque(0, combo)) }} {{ "%.4g" | format(member.torque(member.L(), combo)) }}
{% endif %} {% if member_internal_forces == True %}

Member Max/Min Internal Forces

{% for combo in load_combos %} {% for member in members %} {% endfor %} {% endfor %}
Member LC Pmax Pmin Vy,max Vy,min Vz,max Vz,min My,max My,min Mz,max Mz,min Tmax Tmin
{{ member.name }} {{ combo }} {{ "%.4g" | format(member.max_axial(combo)) }} {{ "%.4g" | format(member.min_axial(combo)) }} {{ "%.4g" | format(member.max_shear("Fy", combo)) }} {{ "%.4g" | format(member.min_shear("Fy", combo)) }} {{ "%.4g" | format(member.max_shear("Fz", combo)) }} {{ "%.4g" | format(member.min_shear("Fz", combo)) }} {{ "%.4g" | format(member.max_moment("My", combo)) }} {{ "%.4g" | format(member.min_moment("My", combo)) }} {{ "%.4g" | format(member.max_moment("Mz", combo)) }} {{ "%.4g" | format(member.min_moment("Mz", combo)) }} {{ "%.4g" | format(member.max_torque(combo)) }} {{ "%.4g" | format(member.min_torque(combo)) }}
{% endif %} {% if plate_corner_forces == True %}

Plate Out-of-Plane Corner Forces

{% for combo in load_combos %} {% for plate in plates %} {% endfor %} {% for quad in quads %} {% endfor %} {% endfor %}
Plate LC i-Node j-Node m-Node n-Node
Qx Qy Mx My Mxy Qx Qy Mx My Mxy Qx Qy Mx My Mxy Qx Qy Mx My Mxy
{{ plate.name }} {{ combo }} {{ "%.3g" | format(plate.shear(0, 0, combo)[0][0]) }} {{ "%.3g" | format(plate.shear(0, 0, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(0, 0, combo)[0][0]) }} {{ "%.3g" | format(plate.moment(0, 0, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(0, 0, combo)[2][0]) }} {{ "%.3g" | format(plate.shear(0, plate.height(), combo)[0][0]) }} {{ "%.3g" | format(plate.shear(0, plate.height(), combo)[1][0]) }} {{ "%.3g" | format(plate.moment(0, plate.height(), combo)[0][0]) }} {{ "%.3g" | format(plate.moment(0, plate.height(), combo)[1][0]) }} {{ "%.3g" | format(plate.moment(0, plate.height(), combo)[2][0]) }} {{ "%.3g" | format(plate.shear(plate.width(), plate.height(), combo)[0][0]) }} {{ "%.3g" | format(plate.shear(plate.width(), plate.height(), combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), plate.height(), combo)[0][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), plate.height(), combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), plate.height(), combo)[2][0]) }} {{ "%.3g" | format(plate.shear(plate.width(), 0, combo)[0][0]) }} {{ "%.3g" | format(plate.shear(plate.width(), 0, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), 0, combo)[0][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), 0, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width(), 0, combo)[2][0]) }}
{{ quad.name }} {{ combo }} {{ "%.3g" | format(quad.shear(-1, -1, combo)[0][0]) }} {{ "%.3g" | format(quad.shear(-1, -1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(-1, -1, combo)[0][0]) }} {{ "%.3g" | format(quad.moment(-1, -1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(-1, -1, combo)[2][0]) }} {{ "%.3g" | format(quad.shear(1, -1, combo)[0][0]) }} {{ "%.3g" | format(quad.shear(1, -1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(1, -1, combo)[0][0]) }} {{ "%.3g" | format(quad.moment(1, -1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(1, -1, combo)[2][0]) }} {{ "%.3g" | format(quad.shear(1, 1, combo)[0][0]) }} {{ "%.3g" | format(quad.shear(1, 1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(1, 1, combo)[0][0]) }} {{ "%.3g" | format(quad.moment(1, 1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(1, 1, combo)[2][0]) }} {{ "%.3g" | format(quad.shear(-1, 1, combo)[0][0]) }} {{ "%.3g" | format(quad.shear(-1, 1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(-1, 1, combo)[0][0]) }} {{ "%.3g" | format(quad.moment(-1, 1, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(-1, 1, combo)[2][0]) }}
{% endif %} {% if plate_center_forces == True %}

Plate Out-of-Plane Center Forces

{% for combo in load_combos %} {% for plate in plates %} {% endfor %} {% for quad in quads %} {% endfor %} {% endfor %}
Plate LC Qx Qy Mx My Mxy
{{ plate.name }} {{ combo }} {{ "%.3g" | format(plate.shear(plate.width()/2, plate.height()/2, combo)[0][0]) }} {{ "%.3g" | format(plate.shear(plate.width()/2, plate.height()/2, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width()/2, plate.height()/2, combo)[0][0]) }} {{ "%.3g" | format(plate.moment(plate.width()/2, plate.height()/2, combo)[1][0]) }} {{ "%.3g" | format(plate.moment(plate.width()/2, plate.height()/2, combo)[2][0]) }}
{{ quad.name }} {{ combo }} {{ "%.3g" | format(quad.shear(0, 0, combo)[0][0]) }} {{ "%.3g" | format(quad.shear(0, 0, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(0, 0, combo)[0][0]) }} {{ "%.3g" | format(quad.moment(0, 0, combo)[1][0]) }} {{ "%.3g" | format(quad.moment(0, 0, combo)[2][0]) }}
{% endif %} {% if plate_corner_membrane == True %}

In-Plane (Membrane) Corner Stresses

{% for combo in load_combos %} {% for plate in plates %} {% endfor %} {% for quad in quads %} {% endfor %} {% endfor %}
Plate LC i-Node j-Node m-Node n-Node
σx σy τxy σx σy τxy σx σy τxy σx σy τxy
{{ plate.name }} {{ combo }} {{ "%.3g" | format(plate.membrane(0, 0, combo)[0]) }} {{ "%.3g" | format(plate.membrane(0, 0, combo)[1]) }} {{ "%.3g" | format(plate.membrane(0, 0, combo)[2]) }} {{ "%.3g" | format(plate.membrane(0, plate.height(), combo)[0]) }} {{ "%.3g" | format(plate.membrane(0, plate.height(), combo)[1]) }} {{ "%.3g" | format(plate.membrane(0, plate.height(), combo)[2]) }} {{ "%.3g" | format(plate.membrane(plate.width(), plate.height(), combo)[0]) }} {{ "%.3g" | format(plate.membrane(plate.width(), plate.height(), combo)[1]) }} {{ "%.3g" | format(plate.membrane(plate.width(), plate.height(), combo)[2]) }} {{ "%.3g" | format(plate.membrane(plate.width(), 0, combo)[0]) }} {{ "%.3g" | format(plate.membrane(plate.width(), 0, combo)[1]) }} {{ "%.3g" | format(plate.membrane(plate.width(), 0, combo)[2]) }}
{{ quad.name }} {{ combo }} {{ "%.3g" | format(quad.membrane(-1, -1, combo)[0]) }} {{ "%.3g" | format(quad.membrane(-1, -1, combo)[1]) }} {{ "%.3g" | format(quad.membrane(-1, -1, combo)[2]) }} {{ "%.3g" | format(quad.membrane(1, -1, combo)[0]) }} {{ "%.3g" | format(quad.membrane(1, -1, combo)[1]) }} {{ "%.3g" | format(quad.membrane(1, -1, combo)[2]) }} {{ "%.3g" | format(quad.membrane(1, 1, combo)[0]) }} {{ "%.3g" | format(quad.membrane(1, 1, combo)[1]) }} {{ "%.3g" | format(quad.membrane(1, 1, combo)[2]) }} {{ "%.3g" | format(quad.membrane(-1, 1, combo)[0]) }} {{ "%.3g" | format(quad.membrane(-1, 1, combo)[1]) }} {{ "%.3g" | format(quad.membrane(-1, 1, combo)[2]) }}
{% endif %} {% if plate_center_membrane == True %}

In-Plane (Membrane) Center Stresses

{% for combo in load_combos %} {% for plate in plates %} {% endfor %} {% for quad in quads %} {% endfor %} {% endfor %}
Plate LC σx σy τxy
{{ plate.name }} {{ combo }} {{ "%.3g" | format(plate.membrane(plate.width()/2, plate.height()/2, combo)[0][0]) }} {{ "%.3g" | format(plate.membrane(plate.width()/2, plate.height()/2, combo)[1][0]) }} {{ "%.3g" | format(plate.membrane(plate.width()/2, plate.height()/2, combo)[2][0]) }}
{{ quad.name }} {{ combo }} {{ "%.3g" | format(quad.membrane(0, 0, combo)[0][0]) }} {{ "%.3g" | format(quad.membrane(0, 0, combo)[1][0]) }} {{ "%.3g" | format(quad.membrane(0, 0, combo)[2][0]) }}
{% endif %}