ADAMS/Solver |
|
|
|
| What's New | ||||||||||||
|
New functionality and features have been added to both ADAMS/Solver (C++) and ADAMS/Solver (FORTRAN). To help you identify the changes, this section is divided into three categories: both solvers, C++ only, and FORTRAN only. |
||||||||||||
| What's New
for both ADAMS/Solver (C++) and ADAMS/Solver (FORTRAN) |
||||||||||||
|
Speed improvement for 3D solid-to-solid contact (both solvers) Contact between tessellated 3D solids is now the default. All 3D solid geometry (with the exception of sphere) is automatically tessellated using a very fine mesh. Contact between solid geometries is now treated as contact between a pair of meshes. This is significantly easier and faster than calculating exact contact between two arbitrary geometries. Consequently, contact between 3D geometries is now significantly faster. In our testing, we have seen speed increases ranging from a factor of 1.5 to 150. Contact between tessellated geometry does not use the Parasolid geometry engine, and therefore avoids many of the software errors associated with deficiencies in Parasolid. Contact location and normal calculations are more robust in this release. The PREFERENCES statement allows you to specify the mesh refinement with the CONTACT_FACETING_TOLERANCE argument. You can use the CONTACT_GEOMETRY_LIBRARY argument to revert back to the Parasolid engine. Experimental features include:
|
||||||||||||
|
Contact between lists of geometry (both solvers) You can specify contact between a list of geometries on
one body and another list on a second body (for example, IGEOM=1, 3, 5
and JGEOM = 2, 16). You no longer need to have several individual CONTACT
statements to model multiple contacts between two bodies. This feature
works for both 2D and 3D geometries and has the effect of making the modeling
simpler and more intuitive. An unexpected benefit is that simulations
are often faster when multiple CONTACT statements are replaced with a
single CONTACT statement. Alternatively, your complex geometries may now be disassembled into a set of simpler geometries. This often speeds up the contact detection and can also make it more accurate and robust. |
||||||||||||
|
Broader availability of contact incident data (both solvers) Contact incidents may be postprocessed in more detail. Contact incident data (such as detailed information about the kinematics and kinetics at each of the contact points) is now stored as part of the simulation results when using the .xrf format (XML results file). These results can be plotted in ADAMS/View. Contact kinematics include the following data for each contact incident:
|
||||||||||||
|
Polylines supported in CONTACT (both solvers) The Polyline geometry type in ADAMS/View is now recognized as a Contact_Curve and, as such, can be picked off the screen and used for curve-based contact. This polyline is then represented as an ADAMS/Solver CURVE with ORDER=2, allowing sharp corners in geometry to be more accurately modeled. Polyline-based contacts could not be modeled in this fashion in the previous releases. |
||||||||||||
|
EVALUATE keyword for SENSOR Statement (both solvers) The SENSOR element now has an additional keyword, EVALUATE, which takes a function expression as its argument. There is an associated measure, SENVAL(senid), in the expression language. The purpose of this pair is that whenever the sensor triggers, it evaluates the EVALUATE expression and the resulting value is the value of SENVAL(senid) until the next time the sensor triggers.
|
||||||||||||
|
Higher order curve fitting (both solvers) Higher order curve fitting is now possible with the CURVE statement.
The CURVE statement allows for higher order B-spline curve fitting of
CURVE_POINTS through the new IORDER= argument. In the past, CURVE used
a fourth order tension |
||||||||||||
Linux operating system support (both solvers)ADAMS/Solver has been ported to the Linux operating system for the 2003 release; both the ADAMS/Solver (C++) and ADAMS/Solver (FORTRAN) solvers are supported. You can now run your stand-alone MSC.ADAMS solver jobs on a Linux machine. Please see the Hardware and Software specifications, provided with your distribution and available on the MSC.Software Web site, for further details. |
||||||||||||
| What's New for ADAMS/Solver (C++) | ||||||||||||
| How to select ADAMS/Solver
(C++)
You use an environmental variable, MDI_SOLVER_SELECT, to choose the solver. If you don’t specify the solver you want, ADAMS/Solver (FORTRAN) is automatically used. When you select ADAMS/Solver (C++), a checking function is invoked to see if it can handle the model (.adm file) being analyzed. If ADAMS/Solver (C++) cannot handle the model, control is automatically passed to ADAMS/Solver (FORTRAN). When an unsupported command (in the .acf file) is encountered, ADAMS/Solver (C++) issues an error message and subsequently halts the simulation. The following steps show how specify the environment variable for UNIX and Windows.
|
||||||||||||
|
GCON Generalized CONSTRAINT statement (C++ only) A new, expression-based constraint element, GCON, is available in the 2003 release. Nonstandard, user-defined constraints may be defined right inside the dataset as:
User-defined constraints may be holonomic (defined in terms of displacements only), or non-holonomic (linearly depending on velocities). User-defined constraints are allowed to also depend on VARIABLES, provided the VARIABLES only depend on time, positions, and velocities. This was not possible in the past. Note: Use of the GCON statement is limited to the .adm file. Currently there is no ADAMS/View graphical user interface or command language support associated with this statement. However, models and simulation results can be imported into ADAMS/View for visualization purposes. |
||||||||||||
|
Vector operators added to expression language (C++ only) This release marks the introduction of a new concept in the expression language of ADAMS/Solver. The function expression language has been enhanced with several new functions and operators. Function expressions can now use vector operations, as long as the final value of the expression is scalar. This often simplifies expression writing and is convenient when using the expression-based GCON constraint. With these new functions and operators in place, you can now use 3D expressions. At this time, however, this 3D expression feature has limited availability and is only accessible from the GCON statement and command. The new operators and functions are:
|
||||||||||||
|
SURFACE statement (C++ only) A new SURFACE entity is now supported. You can specify surface through data that is contained in a Parasolid file (sheet body), or user-defined subroutine (SURSUB). Surfaces are used to define SURFACE markers. These are then used to create a wide variety of constraints, previously not possible. Note that the surface must consist of only a single face. The ADAMS/Solver (C++) uses the face (u-v) parameters as states for the surface marker, so they must be continuous in the region in which the surface marker moves (the parameters can be bounded or periodic). |
||||||||||||
|
CURVE and SURFACE markers (C++ only) MARKERS can be defined to act like a CURVE or a SURFACE. These MARKERS can be used in any context where a regular MARKER could be. A variety of new and useful constraints can be modeled by defining standard "lower pair" constraints combined with CURVE and SURFACE MARKERS. Some examples include:
All standard kinematic measures (DX(…), VZ(…)) work as expected with CURVE and SURFACE markers. Using these measures, it is possible to obtain curve/surface tangent and normal directions, slip velocities, and so on, very easily. |
||||||||||||
|
PLANAR argument for PART statement (C++ only) A new argument, PLANAR, indicates that a PART only has three degrees-of-freedom (global X and Y translations, and a rotation about the global Z axis). It is best to think of the planar as a regular 3D part with a built-in planar joint. This is a combination of elements often found in certain models that contain 2D subsystems, such as belts or chains. Unlike a part and a planar joint pair which combine to add 18 equations to an index 3 dynamic analysis in ADAMS/Solver, the planar part only adds 6 equations. Fewer equations can improve performance, but since the planar part can be contained in a full 3D MSC.ADAMS model, coexist with and connected to 3D part elements, performance will not match software for 2D dynamics analysis. |
||||||||||||
| What's New for ADAMS/Solver (FORTRAN) | ||||||||||||
|
Speed improvement for FLEX_BODY (FORTAN only) The computational efficiency in the FLEX_BODY element has significantly improved in the 2003 release. The improvement is obvious in all models that have flexible bodies. The most dramatic improvement is with flexible bodies that have high numbers of selected modes (such as SELMOD in .mtx file). In an extreme case of a model dominated by a large FLEX_BODY that has 288 modes, the simulation times improved by 6.1 times. The improvements seen in a typical model are more modest, about 5-10%, and vary depending on how much the FLEX_BODY dominates the solution and how many enabled modes are in the FLEX_BODY. This change has no effect on the numerical results of the simulation. |
|
Changes |
||||
|
Several changes have been implemented in both ADAMS/Solver (C++) and ADAMS/Solver (FORTRAN). To help you identify the changes, this section is also divided into three categories: both solvers, C++ only, and FORTRAN only. |
||||
|
Changes for both ADAMS/Solver
(C++) and |
||||
|
XRF results file contains contact incidents (both solvers) The RESULTS statement has been extended to support results written in XML format. This format was first exposed in version 12.0, and is now officially supported. The FORMATTED, XRF results file now includes contact incident data. Please note that the results file will not contain contact incidents if you use the other results file formats (for example, binary). |
||||
|
Dynamic coefficient of friction can be greater than static coefficient (both solvers) The restriction that MU_DYNAMIC must be smaller than MU_STATIC for the FRICTION statement has been eliminated. The dynamic coefficient of friction can now be larger than the static coefficient, which enables the friction modeling of certain plastic materials. |
||||
|
Solver compatibility checker (both solvers) When your dataset (.adm) is submitted to ADAMS/Solver, a compatibility checker looks to see if the model contains statements or functions that are not available in the version of ADAMS/Solver you selected. The compatibility results are reported to the screen and message file (.msg) as ERROR messages. The commands in an ACF file are not checked for compatibility. Please report if you find that the checker has overlooked any incompatible modeling elements. |
||||
|
CURSUB now called with IORD=3 (both solvers) To support SI2 in PTCV and CVCV constraints, ADAMS/Solver now uses the third derivative of a curve. As a result, ADAMS/Solver now calls user-written CURSUBs with IORD=3 when they are referenced by either PTCV or CVCV constraints. |
||||
|
CONTROL_POINTS option discontinued (both solvers) The CONTROL_POINTS argument for the CURVE statement has been discontinued; you must use CURVE_POINTS instead. |
||||
|
.dll extension no longer required on Windows platform You no longer need to specify the .dll extension when creating a custom solver DLL. The following example now works:
|
||||
|
Changes for ADAMS/Solver (C++) only |
||||
|
Continued development of ADAMS/Solver (C++) Although the current, FORTRAN-based solver remains the commercial default and fully functional solver for this release, we continue to work toward transitioning to the next generation, C++-based solver. This change provides several benefits for extendibility, modularization, and other efficiencies. ADAMS/Solver (C++) has been outfitted with numerous updates thus far. As new functionality is added and more is learned about how it is used, it is sometimes necessary to phase out old solver functionality that may cause conflicts with new functionality or can no longer be supported. The following items are highlighted to inform you of functionality that has yet to be implemented in ADAMS/Solver (C++), as well as those features that are being discontinued (will not be transitioned). Please proceed with your modeling efforts with these changes in mind:
|
||||
|
ADAMS/Solver (C++) alternative for ADAMS/Car and ADAMS/Chassis (C++ only) Previously, models created with ADAMS/Car or ADAMS/Chassis could only run using ADAMS/Solver (FORTRAN). Now, the functionality gap between ADAMS/Solver (C++) and ADAMS/Solver (FORTRAN) has decreased significantly. This allows ADAMS/Solver (C++) to run models created in ADAMS/Car or ADAMS/Chassis. This progress is part of the continuation of our long-term transition plan for advancement of ADAMS/Solver (C++). The performance of ADAMS/Solver (C++) has improved since version 12.0. Our work up to this point has focused on functionality (getting everything working and making sure the answers are correct). You can now run most car models with ADAMS/Solver (C++) except those that use compliance matrix interface or that have the unsupported features outlined earlier (see table above). |
||||
|
MOTION statement may be dependent on VARVAL (C++ only) You are no longer required to use ADAMS/Solver (FORTRAN) when using a
VARVAL function to define a MOTION element. In fact, it works considerably
better in ADAMS/Solver (C++). For example, in ADAMS/Solver (C++) during
velocity ICs, the motion will be subject to the time derivative of the
variable. ADAMS/Solver (FORTRAN) just uses zero. In order to preserve
legacy behavior, MOTION will not transmit reaction forces through its
function expression. |
||||
|
MFORCE support (C++ only) It is no longer a requirement to use ADAMS/Solver (FORTRAN) when using the MFORCE. For details see What's New in ADAMS/Flex. |
||||
|
MARKERs on flexible bodies (C++ only) It is no longer a requirement that the location of a marker on a flexible body be coincident with a node. For details see What's New in ADAMS/Flex. |
||||
|
Extended modeling element compatibility for flexible bodies
All joints, joint primitives, and motion generators can now be attached directly to a flexible body. For details see What's New in ADAMS/Flex. |
||||
|
Modal coordinate function expressions for flexible bodies
New function expressions are now available for flexible body modal coordinates and their first two time derivatives. It is no longer a requirement to use a user-written subroutine. For details see What's New in ADAMS/Flex. |
||||
|
Changes for ADAMS/Solver (FORTRAN) only |
||||
|
Zeroing out tiny values in REQUEST (FORTAN only) Any REQUEST (or REQSUB) containing expressions now have their values set to zero when the magnitude is less than 1.0E-14. |
|
Issues resolved |
|
During the course of 2003 release development, many maintenance and support issues have been resolved. The list below illustrates some of the key issues. Contact your local MSC.ADAMS support provider for determining the status of other specific issues. Items resolved in the 12.0 Service Pack The 2003 release of ADAMS/Solver includes all of the fixes that were provided in the 12.0 Service Pack. The items include: 24282 30131 32392 35632 35691 For the full list of items that were fixed for 12.0 and further details, please refer to the ADAMS/Solver 12.0 Service Pack, APN-120-176. |
|
Additional items resolved 12635 15709 21614 24379 24382 24477 25510 27306, 37877 29202 29723 30696 30892 30917 30996 35835 32765, 35934 37087 35934 35994 36162 36307 36352 36432 36444 37065 37085 37087 37426 37451 37709 37920 38602 38846 38938 39006 39310 |
|
Known issues |
|
Please go to the Knowledge Base to read all of the Known Issues for ADAMS/Solver 2003 |
|
Go
to What's New and Release Notes for
C++ only |
Go
to What's New and Release Notes for
FORTRAN only
|
Go
to What's New and Release Notes common for
both solvers
|
|
Copyright © 2003 MSC.Software Corporation. All rights reserved. Revised: 09/06/05 |