FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Bar-element net with a stiffness-augmented mass matrix
+ 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.

Author
Karl-Johan Reite
Note
One smoke test per class (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.

Example configuration excerpt

<Lib
LibName = "marine_elements"
SimObject = "Net/NetStructureConstrained"
Name = "NET"
XmlFile = "NetStructureTestInput.xml"
NodesInputForce = "Top"
NodesOutputPosAndVel = "Top,Bottom"
/>
Note
The simulation must include an Environment. FinalSetup requires one. OdeFcn calls GetParticleVelocity for each element, but it never uses the result.

Input Ports

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).

Output Ports

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.

Configuration parameters

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:

The drag coefficients, the weight in water and the element damping are not used.

Initial conditions

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.

Behaviour notes

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