Warnings and errors#

A model can become invalid due to its state (the positions of the nodes) or due to manual changes to its structure.

DAVE does allow these to exist because they may occur temporarily during modelling or solving. Examples of warnings are SPMTs loosing contact, cables with excessive side-lead angles over circles or cables with exceeded maximum winding angles.

Errors can occur during model construction and are usually just a signal to the user that something still needs to be done. Examples are volumes (tanks, buoyancy) with an invalid mesh or invalid degrees of freedom combinations.

Warnings#

Invalid states are the result of the current positions/rotations. The warning may disappear if the nodes are brought to a different position, for example by solving statics.

Warnings have a “code” which is a combination of the node type followed by a number.

Code

Cause

Possible solutions

Frame:100 2 out of 3 rotational dofs are free. This is not recommended

Two of the three rotational DOFs are free while the third one is fixed. This does not mean that the frame is able to rotate about two axis, instead is means that the direction of the rotation vector is in the 2D plane spanned by the two free dofs. If this is what you want (which is unlikely) then you are ok.

- stack two frames with both of them a single rotational DOF free.

Cable:200 Maximum winding angle exceeded

Maximum winding of a cable over a circle is exceeded. This means the cable should physically disconnect from that circle, but because cables can not separate from a circle it is sticked on in a non-physical way.

- change the circle into a roundbar
- remove the connection of the cable to that circle

Cable:100 Ease-in factor is active

There is a cable that only very slightly contacts a roundbar. The contact forces are only partially applied.
The deviation is smaller than the weight of the cable sections adjacent to the roundbar. Note that the distance over which this occurs is a setting which is by default set to 1mm.
-THE MEAN SEGMENT TENSIONS AND SEGMENT END FORCES FOR THE SEGMENTS NEXT TO THE AFFECTED ROUDBAR ARE AFFECTED. THEY CONTAIN THE LOWERED FORCE. THE REST OF THE CABLE IS UNAFFECTED
image-20240208173432730

- verify that a lower than physical contact force is acceptable and continue.
- remove the weight from the cable.

Cable:101 Cable has more than one belly

There is a cable with multiple free hanging belly sections. Cable may physically run over the intermediate connection.
image-20240208091138391

- If difference is acceptable then accept and continue
- consider modelling as two separate cables instead.
- remove the weight from the cable

Cable:201 Sidelead exceeded

The sidelead on one of the circles that the cable runs over exceeds 45 degrees.

Cable:202 Contact forces applied

The edges of the connections of the cable are within the contact distance. A repulsing force has been applied.

- adjust model such that contact disappears.
- change contact distance or stiffness

Cable:300 Using experimental solve-length-shifts function

speaks for itself

TODO
SPMT:no_contact

One or more of the wheels of the SPMT do not have any surface below them within the maximum axle extension.

- Use springs (6D) or degrees of freedom to keep the SPMT in position
- enlarge the contact

Invalid model#

If a model is invalid when something is wrong with its structure.

Code

Cause

Possible solutions

hyd:parent_not_free

The parent of a wave-interaction node needs to have all its degrees of freedom set to free. This is because the hydrodynamic data can not be translated to a different origin.

- use a (6D, 2D) spring instead of a fixed degree of freedom

mesh:invalid

Tanks and buoyancy meshes need to be single closed volume meshes. This error signals that the selected mesh is not.

- repair the mesh using a mesh editor.

API#

Every Node has properties:

  • .warnings returns a list of strings with any state messages or warnings

  • .node_errors return a list of strings containing any model errors

These properties are also available at scene level. Here they return a list of tuples where each entry contains a reference to the node followed by the error string: Scene.state_errors , Scene.node_errors -> [(Node, str),]