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.
The value of the number indicates the severity of the warning from low (100 series) to high (500 series).
A warning may be ignored if the consequence is found acceptable.
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 |
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. |
- verify that a lower than physical contact force is acceptable and continue. |
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. |
- If difference is acceptable then accept and continue |
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. |
Cable:300 Using experimental solve-length-shifts function |
speaks for itself |
|
TODO |
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 |
RiggingString:500 Invalid linearization |
The linearized model has become invalid due to changes in the model. Model can not be re-created in same state. |
- return to full mode |
SlingGrommet:500 Sling splice contact |
The splice or eye of a sling physically contacts a connection other than the connection in the eye or comes within 5 diameters. |
- Shorten the splice length |
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),]