1. Model and degrees of freedom
Explore node and element data, truss versus frame behavior, and how a local component receives a global number.
This reference connects the main finite element ideas to MKE-F project functions. It works without internet access or Octave.
Explore node and element data, truss versus frame behavior, and how a local component receives a global number.
Inspect local stiffness and consistent mass matrices, checking symmetry, rank and rigid-body motion.
Rotate matrices into global axes and assemble sparse system matrices using the DOF map.
Separate free and constrained DOFs, match forces to displacements and construct four load histories.
Define relationships between DOFs, eliminate dependent displacements and interpret MPC forces.
Release end moments, inspect private rotations and check static and dynamic results.
Solve the reduced system, recover the full vector and reactions, and check global equilibrium.
Solve the generalized eigenvalue problem, expand the modes, and check residuals, scale and orthogonality.
Build the time grid, calculate initial acceleration, and examine accuracy, energy and response spectrum.
Recover local displacements, stresses and forces; understand their signs and how they differ from support reactions.
Follow the path from parser to result, exploring pure solvers, sparse assembly, project history and the regression-test map.
Find precise rules for sections, units, elements, supports, loads, repeated blocks and diagnostics.
Assemble stiffness and consistent mass for a two-element frame, then reproduce the published frequencies and mass-normalized modes.
Run the core without Docker or a browser GUI, call the three pure solvers, and repeat the project’s smoke and verification tests.
Follow three member matrices through assembly, sparse storage, support application, solution and reactions.
Switch between frame stiffness and mass to inspect rotation, assembly, reduction and the Newmark effective matrix.
Compare a dense square with the MKE-F triplet pipeline, follow sparse() and pass the reduced system to the Octave solver.
Element types, analyses, loads and supports: comparison of truss 112 and frame 113 capabilities.
Start the container interface, configure limits, verify the stack and explore the repository structure.
First inspect the diagram and make a hand prediction, then run the supplied function and explain its output. Each laboratory includes reference values and report requirements.
Open a terminal at the repository root, add the examples directory to the Octave path and run all laboratories:
addpath(pwd);
setup;
addpath(fullfile(pwd, "reference", "examples"));
results = run_reference_examples();
To create or open a model, run an analysis and view the result immediately in the browser, execute from the repository root:
docker compose up --build
For the older standalone Compose command, use docker-compose up --build. Then open http://127.0.0.1:8080/preprocessor/, prepare the model and click Run analysis. GNU Octave runs inside the container, and the resulting JSON opens automatically in the postprocessor.
These commands target GNU Octave. To check everything without printing matrices, use run_reference_examples(false). Call an individual laboratory by name, for example example_07_result_recovery().
Open an exercise below: the diagram, input data and tasks precede the reference values. Follow the labels in the Octave output; additional inspection and plotting commands are provided where needed. PASS confirms the example’s built-in checks; your report should explain the calculation and physical meaning of the results. Predict parameter changes from formulas; editing the supplied functions is unnecessary.
| Symbol | Meaning | Typical SI units |
|---|---|---|
| u | vector of nodal displacements and rotations | m, rad |
| K | stiffness matrix | depend on the DOF pair |
| M | consistent mass matrix | depend on the DOF pair |
| A, E, ρ, I | area, Young’s modulus, density, second moment of area | m², Pa, kg/m³, m⁴ |
| c, s | element direction cosines | dimensionless |
The solver does not convert units: the user must choose a consistent system.
createStructuralElement.m — element geometry, matrices and transformation;assembleGlobalMatrices.m — sparse assembly;example_01_element_matrices.m — matrix laboratory;example_02_sparse_assembly.m — assembly laboratory;example_03_static_bar.m — statics laboratory;example_04_load_histories.m — load laboratory;example_05_modal_frame.m — modal laboratory;example_06_newmark_sdof.m — Newmark laboratory;example_07_result_recovery.m — element-results laboratory;run_reference_examples.m — run every laboratory with one command.