Repository navigation
Releases
dsh-abaqus 1.0.0
First release. Six DSH tools turn one declarative JSON model spec into solver input for two backends.
Abaqus backend — unverified
A generated CAE python script builds the real geometry, meshes it with the CAE mesher and writes the deck with writeInput, then the deck is solved with abaqus job= and the .odb is read through odbAccess.
This path has never been executed: no Abaqus installation or licence existed on the development machine. The script is generated, confirmed to be valid Python 3 by py_compile for four different model shapes, and hand-reviewed, but its CAE API calls are unproven against a live kernel.
CalculiX backend — verified end to end
A built-in structured mesher (box and cylinder, wedge core for a solid cylinder) writes a CalculiX/Abaqus deck directly and solves it with ccx. Reproduce everything with CCX_PATH=/path/to/ccx npm test.
Consistency:
- the set names the deck declares are exactly the names the results reader accepts, with no
*BOUNDARY/*CLOAD/*DLOADcard referencing an undeclared set - a spec region
{"plane":"x=max"}selects exactly the nodes of the named setbeam_xmax
Physics against independent numbers:
| case | check | result |
|---|---|---|
| box + concentrated load | tip deflection vs Euler-Bernoulli | FE/theory = 0.876 at 20x2x2 (mesh-limited) |
| tube R20/r15, 5 MPa on the annular end | FE sigma_zz = -p | -5.0000 MPa |
| solid cylinder, y axis, C3D6 wedge core, gravity | sigma vs rhogH = 2.119e-3 MPa | 1.927e-3 MPa |
| clamped bar, freq step, 6 modes | f1 vs Euler-Bernoulli 208.88 Hz | 223.07 Hz (+6.8 %) |
A 100x10x10 mm steel cantilever, 100 N tip load, against theory (tip deflection 0.190476 mm, outer-fibre bending stress 60.0 MPa):
| element | 80 elem | 640 elem | 5120 elem | max von Mises (finest) |
|---|---|---|---|---|
| C3D8 | 0.878 | 0.968 | 0.994 | 58.96 MPa |
| C3D8R | 1.180 | 1.042 | 1.013 | 50.32 MPa (0.84x theory) |
| C3D8I | 0.997 | 1.001 | 1.003 | 65.06 MPa |
Three findings worth knowing before choosing an element:
- C3D8 is stiffer than beam theory at every mesh and converges from below. That direction is physically required: a fully clamped end suppresses Poisson contraction, so the beam really is stiffer than Euler-Bernoulli.
- C3D8I (incompatible modes) is within 0.3 % of theory even on the coarsest mesh — the element to use for bending.
- C3D8R (one integration point) is much softer and converges from above, and its reported nodal stress is the element-centre value: with few elements through the thickness it cannot resolve the bending gradient, reporting 50 MPa where the outer fibre sees 60. Its ZZ error estimate also degenerates to 0 %.
Requirements
Node >= 20 and a solver. CalculiX is free (GPL); Abaqus needs a licence. Set ccxPath / abaqusCommand in the plugin config, or let discovery find them.
Known limitations
box and cylinder geometry only; shell sections rejected rather than silently solved as solids; traction loads are Abaqus-only and untested; regions resolve by bounding box, so a face sharing a bounding plane with another face selects both and curved faces cannot be addressed.