How to solve DASSL error in a 3D mechanical model?

Community Manager Community Manager
Community Manager

Q: What is the DASSL error and how to solve this when using a 3D mechanical model?

Sometimes, 3D mechanical model is not working, because of a DASSL error.

Here is an example for a simple 3D model.



When comiling, a DASSL error appears. 





A: DASSL is the solver which is used when there are implicits variables in your system.



Amesim implicits.png



A first good try is to remove the implicits variables from your system. With the 3D mechanical library, these implicit variables are generated by the default junction submodels.

To do so, go to "Submodel mode", select the junctions and change their submodels to the ones using contact forces:


Amesim 3D junction contact force.png


This will remove the implict variables:


Amesim no implicit.png


Moreover, the system presented here is over constrained. The single body has 6 degrees of freedom. Each 3D ball joint (M6DOFBALL00) constraints 3 translations and allows 3 rotations. So with two of these joints you total number of degrees of freedom is 6-3-3=0.


The best way to model this system is to use one 3D annular joint, submodel M6DOFTRBA00, which constraints only 2 translational degrees of freedom, and allow the one translational degree of freedom in y-direction for one joint. You will then have 6-3-2=1 degree of freedom and the DASSL solver has no issues.

This joint will look as follow (in 'Parameter Mode'):

7-21-2016 11-40-27 AM.jpg


Alternatively it is possible to change the submodel of one 3D ball joint to M6DOFBALL01 which has all 6 degrees of freedom unconstrained, but limits the 3 translations by means of explicit states from the contact force (you have to provide a contact stiffness and damping for the translational directions). These submodels with contact forces are useful to eliminate impicit states, which require the DASSL solver (solver of differential algebraic equations or DAE solver).