288 lines
8.6 KiB
Markdown
288 lines
8.6 KiB
Markdown
<!-- source-page: 631 -->
|
||
|
||
# 2.1.13 OBTAINING WAVE KINEMATIC DATA IN AN Abaqus/Aqua ANALYSIS
|
||
|
||
# Product: Abaqus/Aqua
|
||
|
||
# References
|
||
|
||
• “UEL,” Section 1.1.28
|
||
• “UWAVE,” Section 1.1.59
|
||
• “Abaqus/Aqua analysis,” Section 6.11.1 of the Abaqus Analysis User’s Guide
|
||
• \*AQUA
|
||
• “UEL,” Section 4.1.14 of the Abaqus Verification Guide
|
||
|
||
# Overview
|
||
|
||
Utility routines GETWAVE, GETWAVEVEL, GETWINDVEL, and GETCURRVEL are provided to access the fluid kinematic data for an Abaqus/Aqua analysis.
|
||
|
||
These routines can be used only from within user subroutine UEL.
|
||
|
||
# GETWAVE (get wave kinematics)
|
||
|
||
# Interface
|
||
|
||
```matlab
|
||
PARAMETER (MWCOMP=number of wave components)
|
||
DIMENSION WAMP (MWCOMP), WPERD (MWCOMP), WXLAMB (MWCOMP),
|
||
1 WPHI (MWCOMP), WOFF (3), WANG (2, MWCOMP)
|
||
...
|
||
CALL GETWAVE (MWCOMP, NWCOMP, WAMP, WPERD, WXLAMB, WPHI, WOFF, WANG,
|
||
1 ELEVB, ELEVS, JWTYPE, JRCD)
|
||
```
|
||
|
||
# Variables returned from the utility routine
|
||
|
||
# NWCOMP
|
||
|
||
Number of wave components (always 1 for Stokes wave theory).
|
||
|
||
# WAMP
|
||
|
||
Array containing the amplitude of the wave components.
|
||
|
||
# WPERD
|
||
|
||
Array containing the period of the wave components.
|
||
|
||
# WXLAMB
|
||
|
||
Array containing the wavelength of the wave components.
|
||
|
||
<!-- source-page: 632 -->
|
||
|
||
# WPHI
|
||
|
||
Array containing the phase angle of the wave components.
|
||
|
||
# WOFF
|
||
|
||
Used only for gridded wave data (JWTYPE=2), when WOFF gives the position of the origin of the gridded coordinate system with respect to the global system.
|
||
|
||
# WANG(2,\*)
|
||
|
||
For Stokes fifth-order wave theory WANG(1,1) and WANG(2,1) are the direction cosines of wave travel. For Airy wave theory WANG(1,K1) and WANG(2,K1) are the direction cosines of the direction of travel of the K1th wave. For gridded wave data WANG(1,1) and WANG(2,1) are the direction cosines of the wave data grid. In all cases these direction cosines are with respect to the global coordinate system.
|
||
|
||
# ELEVB
|
||
|
||
User-defined elevation of the seabed.
|
||
|
||
# ELEVS
|
||
|
||
User-defined elevation of the still water surface.
|
||
|
||
# JWTYPE
|
||
|
||
Integer flag indicating the wave type, as follows:
|
||
|
||
```txt
|
||
JWTYPE=0 Airy wave theory
|
||
JWTYPE=1 Stokes fifth-order wave theory
|
||
JWTYPE=2 Wave data obtained from gridded values
|
||
```
|
||
|
||
# JRCD
|
||
|
||
The error flag JRCD is returned from GETWAVE as 0 if all the wave kinematic data are read correctly and as −1 if an error occurred (for instance, NWCOMP is greater that MWCOMP).
|
||
|
||
GETWAVEVEL, GETWINDVEL, and GETCURRVEL (get wave, wind, and current velocities)
|
||
|
||
# Interface
|
||
|
||
```txt
|
||
CALL GETWAVEVEL (NDIM, X, V, A, LERROR, NOEL, XINTERMED)
|
||
CALL GETWINDVEL (NDIM, X, V, NOEL, XINTERMED)
|
||
CALL GETCURRVEL (NDIM, X, V, NOEL, XINTERMED)
|
||
```
|
||
|
||
<!-- source-page: 633 -->
|
||
|
||
# Variables to be provided to the utility routine
|
||
|
||
# NDIM
|
||
|
||
Dimensionality of the element. It should be set to 2 for two-dimensional cases (for example, beams in a plane) and 3 for three-dimensional cases (for example, beams in space).
|
||
|
||
# X(1..NDIM)
|
||
|
||
Global coordinates of the point.
|
||
|
||
# Variables returned from the utility routine
|
||
|
||
# V(1..NDIM)
|
||
|
||
Velocity components in the global coordinate system.
|
||
|
||
# A(1..NDIM)
|
||
|
||
Wave acceleration components in the global coordinate system. This variable is returned by GETWAVEVEL only.
|
||
|
||
# LERROR
|
||
|
||
For gridded wave data LERROR is returned as 0 if the current point is within the grid or above the crest; it is returned as 1 if the point is outside the bounds of the grid. For Airy and Stokes waves LERROR is always returned as 0. If LERROR is returned as 1, the global coordinates of the nearest grid point are returned in X. LERROR is returned by GETWAVEVEL only.
|
||
|
||
# NOEL
|
||
|
||
Element number.
|
||
|
||
# XINTERMED(NDIM)
|
||
|
||
An array containing the intermediate configuration coordinates of the load integration point. For nonstochastic analysis this array is not used. In a stochastic analysis the wave field is based upon this configuration. Additional details are found in “UWAVE,” Section 1.1.59.
|
||
|
||
<!-- source-page: 634 -->
|
||
|
||
<!-- source-page: 635 -->
|
||
|
||
# 2.1.14 PRINTING MESSAGES TO THE MESSAGE OR STATUS FILE
|
||
|
||
Products: Abaqus/Standard Abaqus/Explicit
|
||
|
||
# References
|
||
|
||
• “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide
|
||
• “UWAVE and UEXTERNALDB,” Section 4.1.27 of the Abaqus Verification Guide
|
||
• “VUMAT: rotating cylinder,” Section 4.1.38 of the Abaqus Verification Guide
|
||
|
||
# Overview
|
||
|
||
Utility routines STDB\_ABQERR and XPLB\_ABQERR can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to issue an informational, a warning, or an error message to the message (.msg) file in Abaqus/Standard or the status (.sta) file in Abaqus/Explicit.
|
||
|
||
# Interface
|
||
|
||
```txt
|
||
DIMENSION INTV(*), REALV(*)
|
||
CHARACTER*8 CHARV(*)
|
||
...
|
||
CALL STDB_ABQERR(LOP, STRING, INTV, REALV, CHARV)
|
||
or
|
||
CALL XPLB_ABQERR(LOP, STRING, INTV, REALV, CHARV)
|
||
...
|
||
```
|
||
|
||
# Variables to be provided to the utility routine
|
||
|
||
# LOP
|
||
|
||
Flag for the type of message to be issued.
|
||
|
||
Set LOP = 1 if an informational message is to be issued.
|
||
|
||
Set LOP = –1 if a warning message is to be issued.
|
||
|
||
Set LOP = –2 if an error message is to be issued and the analysis is to be continued.
|
||
|
||
Set LOP = –3 if an error message is to be issued and the analysis is to be stopped immediately.
|
||
|
||
# STRING
|
||
|
||
A string of at most 500 characters long between single quotes containing the message to be issued. If the string needs to be written on more than one line, several one line long strings (between single quotes) should be concatenated using the double forward slash (//) operator.
|
||
|
||
Integer, real, and character variables can be referenced inside the message using the %I, %R, and %S inserts, respectively. The integer, real, or character variables are passed into the utility routine via
|
||
|
||
<!-- source-page: 636 -->
|
||
|
||
# PRINTING MESSAGES
|
||
|
||
the INTV, REALV, and CHARV variables, respectively. The variables are then output in the order they are stored in these arrays.
|
||
|
||
# INTV
|
||
|
||
Array of integer variables to be output. The first %I in STRING will output INTV(1), the second INTV(2), and so on.
|
||
|
||
# REALV
|
||
|
||
Array of real variables to be output. The first %R in STRING will output REALV(1), the second REALV(2), and so on.
|
||
|
||
# CHARV
|
||
|
||
Array of at most 8 character long variables to be output. The first %S in STRING will output CHARV(1), the second CHARV(2), and so on.
|
||
|
||
<!-- source-page: 637 -->
|
||
|
||
# 2.1.15 TERMINATING AN ANALYSIS
|
||
|
||
Products: Abaqus/Standard Abaqus/Explicit
|
||
|
||
# References
|
||
|
||
• “User subroutines: overview,” Section 18.1.1 of the Abaqus Analysis User’s Guide
|
||
• “UMAT and UHYPER,” Section 4.1.21 of the Abaqus Verification Guide
|
||
• “UWAVE and UEXTERNALDB,” Section 4.1.27 of the Abaqus Verification Guide
|
||
• “VUMAT: rotating cylinder,” Section 4.1.38 of the Abaqus Verification Guide
|
||
|
||
# Overview
|
||
|
||
Utility routines XIT and XPLB\_EXIT can be called from within any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, (except UEXTERNALDB) to terminate an analysis.
|
||
|
||
XIT or XPLB\_EXIT should be used instead of STOP to ensure that all files associated with the analysis are closed properly.
|
||
|
||
# Interface
|
||
|
||
```csv
|
||
CALL XIT
|
||
or
|
||
CALL XPLB_EXIT
|
||
```
|
||
|
||
<!-- source-page: 638 -->
|
||
|
||
<!-- source-page: 639 -->
|
||
|
||
# 2.1.16 OBTAINING SENSOR INFORMATION
|
||
|
||
Products: Abaqus/Standard Abaqus/Explicit
|
||
|
||
# References
|
||
|
||
• “UAMP,” Section 1.1.19
|
||
• “VUAMP,” Section 1.2.9
|
||
• “Crank mechanism,” Section 4.1.2 of the Abaqus Example Problems Guide
|
||
|
||
# Overview
|
||
|
||
Given the user-defined name for a sensor, utility routines can be used to obtain the sensor ID or the sensor value using a computationally efficient searching technique.
|
||
|
||
Utility routines IGETSENSORID and GETSENSORVALUE can be called only from Abaqus/Standard user subroutine UAMP. Utility routines IVGETSENSORID and VGETSENSORVALUE can be called only from Abaqus/Explicit user subroutine VUAMP.
|
||
|
||
# Interface
|
||
|
||
```prolog
|
||
character*80 mySensorName
|
||
...
|
||
iMySensorID = IGETSENSORID(mySensorName, jSensorLookUpTable)
|
||
iMySensorID = IVGETSENSORID(mySensorName, jSensorLookUpTable)
|
||
dMySensorValue = sensorValues(iMySensorID)
|
||
...
|
||
dMySensorValue = GETSENSORVALUE(mySensorName,
|
||
C jSensorLookUpTable, sensorValues)
|
||
dMySensorValue = VGETSENSORVALUE(mySensorName,
|
||
C jSensorLookUpTable, sensorValues)
|
||
...
|
||
```
|
||
|
||
# Variables to be provided to the utility routine
|
||
|
||
# mySensorName
|
||
|
||
User-defined character string, uppercase, left justified.
|
||
|
||
# jSensorLookUpTable
|
||
|
||
Pointer to an object containing a binary tree look up table for sensors. The calling user subroutine provides this variable.
|
||
|
||
<!-- source-page: 640 -->
|
||
|
||
# sensorValues
|
||
|
||
Array containing the latest sensor values for all sensors in the model.
|
||
|
||
# Variables returned from the utility routine
|
||
|
||
# iMySensorID
|
||
|
||
Index in the sensorValues array for this sensor name.
|
||
|
||
# dMySensorValue
|
||
|
||
Sensor value for this sensor name.
|