v0.6.0
Modia3D v0.6.0
- Modia3D supports
@instantiatedModel(FloatType = Float64, ...)
as defaultFloatType
. Now, further FloatTypes, such asFloat32
,DoubleFloats.Double64
,Measurements.Measurement{Float64}
,MonteCarloMeasurements.StaticParticles{Float64}
are supported. If FloatType is not Float64, the default integrator selected from DifferentialEquations.jl is utilized and no longer Sundials.CVODE_BDF (because CVODE_BDF is only supported for Float64). Since ModiaLang does not yet support integrators with analytic Jacobians, integrators with this feature cannot be used, e.g., this feature needs to be switched off with optionautodiff=false
, if necessary. Recommendation: useQBDF(autodiff=false)
if FloatType is not Float64. Note,Tsit5
usually does not work well for collisions, due to the stiff behavior in the contact area. Current limitations:FloatType = Float32
: usually fails when collisions occurFloatType = Measurements.xxx
, orMonteCarloMeasurements.xxx
fail if events occur (e.g. collision handling, switching between different sequences of rotation angles)FloatType = Measurements.xxx
: Animation is performed for the nominal values (plots show nominal values and the area of the variances)FloatType = MonteCarloMeasurements.yyy
: Animation is automatically switched off with a warning message (due to severe performance issues that will be fixed in the future)
- Object3D: use vectors instead of matrices for rotation
- Scene
maximumContactDamping = 2000.0
: The maximum damping used in the elastice response calculation (previously, this was set to the literal value of 1000 and could not be changed). This value is, for example, used if the normal contact velocity at contact start is small.
- Shape
FileMesh
is reading mesh-files with MeshIO.jl and no longer with an own parser. As a result, more input formats are supported, in particular also STL and OBJ with non-triangles. Furthermore, duplicate vertices in FileMesh are removed after reading a file. This reduces the computational effort of collision support point calculation. - Collision handling slightly improved, e.g., if colliding shapes get in contact with a small normal contact velocity at contact start, the colliding shapes are quickly fixed relative to each other (previously, a lot of events occured in this phase).
- Updated documentation and some bugs fixed
- Internal
- Changed most structs to parameterized structs with type parameter
F
(short forFloatType
) - Changed some remaining vectors and matrices to SVector and SMatrix, respectively, to improve efficiency
- Cleanup of Modia3D and of Modia (e.g. removed duplicate definition of ModiaInterface in Modia.jl)
- Event handling slightly changed, in particular the large contact hysteresis in the order of 1e-8 was reduced to 1e-13, after ModiaLang was using the new option RightRootFind of DifferentialEquations.jl. As a result, unnecessary events (signaled via
restart = NoRestart
) should no longer occur - Elastic response calculation simplified and improved. In particular, if the normal contact velocity at contact start is below
vsmall
(default = 0.01 m/s), coefficient of restitution is set to zero and no longer to 0.001. As a result, colliding shapes are quickly fixed relative to each other - Bug fixed: In some rare situations, it was not correctly checked that a multibody system has exactly one Object3D without parent and with feature=Scene (and no other Object3D has feature=Scene)
- Changed most structs to parameterized structs with type parameter
Merged pull requests:
- An use float type (#57) (@AndreaNeumayr)
- An use float type2 (#58) (@AndreaNeumayr)
- An use vector for rotation (#59) (@AndreaNeumayr)
- An use float type3 (#60) (@AndreaNeumayr)
- Parametrized float type for force elements (#61) (@GerhardHippmann)
- An use float type4 (#62) (@AndreaNeumayr)
- An use measurements (#63) (@AndreaNeumayr)
- rename AbstractFloat to VarFloatType (#64) (@AndreaNeumayr)
- update final states (#65) (@AndreaNeumayr)
- An use monte carlo (#66) (@AndreaNeumayr)
- An remove duplicates modia interface (#67) (@AndreaNeumayr)
- An remove duplicates interface2 (#68) (@AndreaNeumayr)
- An remove duplicates interface3 (#69) (@AndreaNeumayr)
- avoid visualization and animation if MonteCarloMeasurements is used (#70) (@AndreaNeumayr)
- cleanup models (#71) (@AndreaNeumayr)
- changes for type checks (#72) (@AndreaNeumayr)
- Enable FileMesh cleaning (#73) (@GerhardHippmann)
- Gh use mesh io.jl (#74) (@GerhardHippmann)
- Update testing (#75) (@GerhardHippmann)
- Contact hysteresis strategy slightly changed (and docu adapted + requ… (#76) (@MartinOtter)
- Gh enable push runtests (#77) (@GerhardHippmann)
- finalStates TwoCollidingBoxes.jl (Windows) (#78) (@AndreaNeumayr)
- update version numbers and date (#79) (@AndreaNeumayr)
- Revert contact hysteresis modification of #76 (#80) (@GerhardHippmann)
- update release notes v0.5.3 (#81) (@AndreaNeumayr)
- Require ModiaLang 0.8.6 + Project.toml/Manifest.toml files updated (#82) (@MartinOtter)
- update date (#83) (@AndreaNeumayr)
- version number 0.6.0 (#84) (@AndreaNeumayr)