|
FhSim
3.1.0
Marine systems simulation
|
Collaboration diagram for Bar-element net with a stiffness-augmented mass matrix (Windows only):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.
WIN32 is defined (src/net/CMakeLists.txt, CONSTRAINT_STRUCTURE_SRC), and the type string Net/NetStructureConstrained is registered only under #ifdef WIN32 (src/fhsim_marine_elements.cpp). A Linux build has no such SimObject.tests/ builds or runs this class (see MARE-0031). This page was written from the source code. No simulation results were used to check it.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 | Registered but never read. |
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.
No drag, weight, buoyancy, appendix force or element damping is applied. The current of CurrentVelocity has no effect.