Setting up and accessing your problem with a StaticSetup.

SimpleStatics.StaticSetupType
StaticSetup(T::Type=Float64)

Create a blank StaticSetup where data is stored in type T. Measurement types are supported and tested for. Unitful types should be supported, but tests haven't been written for them yet. (todo)

source
SimpleStatics.add_member_weights!Method
add_member_weights!(setup::StaticSetup)

Add the weights that each ALL members exert on the setup as forces to their corresponding nodes.

  • Note that nothing is checking if this function is being called multiple times, if you accidentally call this function twice, members will just act like they're twice as heavy.
source
SimpleStatics.constrained_arrayMethod

Construct a view of an array where constrained indices, indicated by a mapping, are removed. This is useful for solving matrices as zero rows will cause det(M)==0.

source
SimpleStatics.dof_indicesMethod

Get the indices of the x and y rows, respectively, in a square DOF-like matrix (e.g., global stiffness matrix) for a vertex (joint) index.

source

Available Constraint

Available Solvers

SimpleStatics.equilibrium_positionsMethod
equilibrium_positions(setup, displacements)

Given a setup and its displacements, calculate the equilibrium positions of all of the joints. Returned indices match joint indices.

source
SimpleStatics.solve_displacementsMethod
solve_displacements(setup)

Solve the distances that each joint moves to keep the system stationary. The results of this function are necessary for most other properties that can be calculated.

source
SimpleStatics.solve_member_forcesMethod
solve_member_forces(setup, displacements)

Using already calculated displacements, determine the forces in Newtons that each member undergoes when at equilibrium. Compressive forces are negative and tensile forces are *positive, indexes match member ids.

source
SimpleStatics.solve_reaction_forcesMethod
solve_reaction_forces(setup, displacements)

Using already calculated displacements, find the forces that each constrained node needs to keep the system stationary.

source
SimpleStatics.solve_stress_utilizationMethod
solve_stress_utilization(setup, stresses)

Calculate how close each member is to its yield strength, where 0 is no stress and 1 is right at the yield point of the member.

  • Stresses can be calculated via solve_member_stresses.
source

Material Properties

SimpleStatics.StaticMaterialMethod
StaticMaterial(area, modulus, [yield=Inf], [density=0.0])

Create a new material for use in a statics problem with a... - area: Cross sectional area in square meters. - modulus: Elastic (Youngs) modulus in pa i.e., N/m^2. - yield: Yield strength (same units as modulus), used primarily when approximating structure failure and safety ratings. - density: Material density in g/cm3, used primarily to calculate self-loading and structure mass.

source
SimpleStatics.weightMethod

Calculate how much a given length of the material weighs, in Newtons. Optionally, gravity can be specified in m/s2.

source

Materials

SimpleStatics.Materials.CircularTubingMethod

CircularTubing(material::Function, outerdiameterm, thickness_m)

Create a pipe-like material from another raw material, i.e., a material function that accepts only an area.
E.g., 
    ```
    large_steel_pipe = Materials.CircularTubing(Materials.MildSteel, 1.5 * 0.0381, 1.897 / 1000)  # 1.5" diameter steel pipe with 14 gauge thickness
    small_steel_pipe = Materials.CircularTubing(Materials.MildSteel, 1.0 * 0.0381, 1.518 / 1000)  # 1.0" diameter steel pipe with 16 gauge thickness
    ```
source
SimpleStatics.Materials.SquareTubingMethod
SquareTubing(material::Function, outer_length_m, thickness_m)

Create a square tubing material from another raw material, i.e., a material function that accepts only an area. E.g., large_steel_beam = Materials.SquareTubing(Materials.MildSteel, 1.5 * 0.0381, 1.897 / 1000) # 1.5" steel tubing with 14 gauge thickness small_steel_beam = Materials.SquareTubing(Materials.MildSteel, 1.0 * 0.0381, 1.518 / 1000) # 1.0" steel tubing with 16 gauge thickness

source

Visualization

SimpleStatics.plot_setupFunction
plot_setup(setup, [name]; [dsize=800, padding, displacements, stresses, reactions])

Arguments

  • setup::StaticSetup: The setup to plot.
  • name::String: The filename or path (without extension) of the image to be created. If unspecified, image will be returned but not saved.
  • dsize::Integer: The diagonal pixel size of the image. The actual width and height will depend on the setup being plotted.
  • padding::Float64: The amount of extra distance to include on the border of the setup boundaries. 0 padding will make the image as small as possible, and you will likely lose details as they go off of the screen. Default is 0.4.

Additional details that can be included.

  • displacements: Previously calculated displacements using solve_displacements.
  • member_forces: Previously calculated member forces using solve_member_forces.
  • reactions: Previously calculated reaction forces using solve_reaction_forces.
source

Helper Functions

Index