Defines a discrete (lumped-parameter) element. Discrete elements have no spatial extent; therefore, the stiffness, mass, and damping matrices default to zero and are overridden only where the element contributes to the system. The inherited material is unused.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(material), | public | :: | material |
The material. |
Defines the signature of a routine for returning a matrix associated with the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
The resulting matrix.
Returns the element damping matrix. The default implementation returns a zero-valued matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
The N-by-N damping matrix, where N is the total number of element degrees of freedom.
Defines the signature of a routine for computing the value of the i-th element shape function at natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the shape function to evaluate. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinates at which to evaluate the shape function. |
The value of the i-th shape function at s.
Returns the element external force vector. Discrete elements do not support distributed loads; therefore, a zero-valued vector is returned. Concentrated loads should be applied directly to the global force vector.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The distributed load vector. This argument is unused and is present for interface compatibility. |
|
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility. |
The N-element force vector, where N is the total number of element degrees of freedom.
Defines the signature of a function performing a query on an integer-valued property of a element type.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
The resulting value.
Defines the signature of a function performing a query on an integer-valued property of a element type.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
The resulting value.
Defines the signature of a function for retrieving the requested node from the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node to retrieve. |
The node.
Defines the signature of a function performing a query on an integer-valued property of a element type.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
The resulting value.
Returns the natural coordinate of the requested node. A single-node element has its node at s = 0; a two-node element has its nodes at s = -1 and s = 1, respectively.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node. |
The natural coordinate of the node.
Returns the element Jacobian. Discrete elements have no spatial extent; therefore, a unit 1-by-1 Jacobian is returned.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the Jacobian. This argument is unused and is present for interface compatibility. |
The 1-by-1 Jacobian matrix.
Returns the element mass matrix. The default implementation returns a zero-valued matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility. |
The N-by-N mass matrix, where N is the total number of element degrees of freedom.
Defines the signature of a routine for returning a matrix associated with the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinates at which the matrix should be evaluated. |
The resulting matrix.
Returns the element stiffness matrix. The default implementation returns a zero-valued matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility. |
The N-by-N stiffness matrix, where N is the total number of element degrees of freedom.
Computes the element strain at the specified natural coordinate. The strain is
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the element coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the strain. |
The resulting strain vector.
Defines the signature of a routine for returning a matrix associated with the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinates at which the matrix should be evaluated. |
The resulting matrix.
Computes the element stress result at the specified natural coordinate. The stress result is
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the element coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the stress. |
The resulting stress vector.