LoadCase

A material and the loads on a part: the input a solve job reads beside its mesh (node-workers §NWI-10, construct-fea-solve §FEJ-1).

In the namespace femjob. Declared in src/libs/libfemjob/femjob/LoadCase.hpp.

Detailed description

The JSON form, version 2. Every key that version 1 did not have is optional, so a version 1 load case reads as it did, with one exception: a pressure needs faces (construct-fea-solve matrix FEP-5).

{
  "units": "mm",                           // or "SI", the default
  "part": "Bracket",                       // optional: the name messages use
  "solver": "auto",                        // or "direct" or "iterative"; default "auto"
  "transform": [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1], // column-major; default identity
  "material": "steel",                     // or {"name", "E", "nu", "yieldStrength", "density"}, in SI
  "loads": [
    {"type": "fixed", "where": {"band": {"axis": "z", "side": "min", "fraction": 0.05}}},
    {"type": "fixed", "where": {"nodes": {"name": "Base", "indices": [0, 1, 2, 7]}}},
    {"type": "force", "where": {"faces": {"name": "Tip", "triangles": [[4, 5, 6]]}}, "value": [0, 0, -1000]},
    {"type": "pressure", "where": {"faces": {"name": "Top", "triangles": [[8, 9, 10]]}}, "value": 2.5}
  ]
}

`type` is `fixed`, `displacement`, `force` or `pressure`. `where` holds one of `box` (`min`, `max`), `plane` (`point`, `normal`, `tolerance`), `band` (`axis`, `side`, `fraction`), `nodes` (`name`, `indices`) or `faces` (`name`, `triangles`). The materials by name are `steel`, `aluminum`, `titanium`, `pla` and `abs`.

`units` `"mm"` is the mm, N, MPa system (§FEJ-2): positions in mm, forces in N, pressures and stresses in MPa. The material is always given in SI. fromJson() divides E and the yield strength by 1e6 for `"mm"`, so `material` holds the values the solve uses.

`transform` is the item's world matrix. The job maps the node positions through it before it selects and assembles, so position selectors, loads and the displacement are in world axes. Face triangles are wound outward in the frame of the mesh file. A transform with a negative determinant mirrors the part, and the job turns the face normals with it, so a pressure still pushes in.

In this section