|
FhSim
3.1.0
Marine systems simulation
|
Collaboration diagram for Bar-element net with a stiffness-augmented mass matrix:A NetStructureTest with a different equation of motion. The explicit per-element forces are replaced by one sparse linear solve. Each taut element adds a stiffness term to the mass matrix. The solver then finds all node accelerations at once.
tests/NetStructureTestFamily_Test.cpp) runs a two-bar net for 1 s. The behaviour below was read from the source.Units are SI: m, s, kg, N, Pa.
FinalSetup requires one. OdeFcn calls GetParticleVelocity for each element, but it never uses the result.These are the same as for NetStructureTest.
| Name | Width | Description |
|---|---|---|
| <tag>Force | 3 | External force in N on the node mapped to <tag>. There is one port per tag in NodesInputForce. It is added to the right-hand side of the solve. |
| colorLimits | 2 | Never read, but the port must still be connected (an unconnected input port is an error). |
The constructor is inherited, so the ports are the same as for NetStructureTest. This class's OdeFcn never calls the element force routine, so several outputs are never updated:
| Name | Width | Description |
|---|---|---|
| <tag>Force | 3 | Echo in N of the <tag>Force input port, as in NetStructureTest (including the overlapping buffer). |
| <tag>Pos | 3 | Position in m of the node mapped to <tag>. |
| <tag>Vel | 3 | Velocity in m/s of the node mapped to <tag>. |
| CurrentVelocity | 3 | The environment's particle velocity at the first node in m/s, as in NetStructureTest. It is not used by this class's dynamics. |
| appendixForce | 3 | Always 0. This class never calls the element force routine, and the members are zero-initialised. |
| cableForce | 3 | Always 0. This class never calls the element force routine, and the members are zero-initialised. |
| dragForce | 3 | Always 0. This class never calls the element force routine, and the members are zero-initialised. |
| meanProjectedVelocity | 1 | Always 0. The per-element value is initialised to 0 and never updated. |
| projectedArea | 1 | Always 0. The per-element value is initialised to 0 and never updated. |
| meanDragDeduction | 1 | Mean drag-reduction factor as computed in FinalSetup (see NetStructureTest). It does not affect this class's dynamics. |
The constructor is inherited, so the parameters are exactly those of NetStructureTest. These are BinaryFile, XmlFile, ABAQUSFile (with ModelMeshLength), NodesInputForce, NodesOutputPosAndVel, and in visualisation builds LineVisualization and ColorBy (required there). The net-file format and the element attributes are also the same. See NetStructureTest for names, widths and defaults.
Of the element attributes, only these affect this class's dynamics:
Conn.L: the unstretched length L0.D and E: through the axial stiffness E·A.D, Rho, and the sphere and disk masses and sizes: through the node mass.SpherePos and DiskPos: they split each appendix mass between the two end nodes. The split has the same inconsistency as described on the NetStructureTest page.NoOfFoldingPoints.The drag coefficients, the weight in water and the element damping are not used.
These are the same as for NetStructureTest.
| Name | Width | Description |
|---|---|---|
| Pos_<i> | 3 | Position of node i in m. For nodes on an element, a NaN entry is replaced by 0. |
| Vel_<i> | 3 | Velocity of node i in m/s. For nodes on an element, a NaN entry is replaced by 0. |
OdeFcn works on each element from node a to node b in turn. It uses l = |x_b − x_a|, the unit vector c = (x_b − x_a)/l, and the fixed β = 100. Only an element with l > L0 (a taut element) contributes:
The node masses go on the diagonal of the system matrix. The external input forces are added to the right-hand side. The accelerations come from an incomplete-LU (Eigen::IncompleteLUT) solve.
The position derivative is the velocity. The Euler_i/Heun_i correction of NetStructureTest is not applied.
This is a constraint model without loads. It has no drag, no weight in water, no buoyancy, no appendix (sphere or disk) forces, no element end loads and no element damping: only the constraint tension and the external input forces act. The current of CurrentVelocity has no effect. So only the mean sag is comparable with NetStructureTest: with the same net and loads (and the weight in water added as an input force) the net rests where NetStructureTest rests, but with no drag it rings around that place instead of settling (owner ruling 2026-10-21, MARE-0407).
This SimObject is referred to as Net/NetStructureConstrained