3.1.10.32. PML Element
This command is used to construct four-node and and eight-node PML elements. Perfectly Matched Layer (PML) elements are a numerical technique used in simulations to manage boundary conditions and minimize reflections at the edges of a computational domain. PMLs are often implemented as layers or regions at the edges of a computational domain, where the properties of the material in the PML are carefully designed to gradually absorb and attenuate outgoing waves. This absorption process is designed to be as efficient as possible, reducing the reflection of waves back into the domain. The choice of PML parameters, such as the profile of the absorbing material and its thickness, depends on the specific simulation and the desired level of accuracy.
Implementation details for these elements can be found in:
Zhang, E. Esmaeilzadeh Seylabi, E. Taciroglu,(2019), An ABAQUS toolbox for soil-structure interaction analysis, Computers and Geotechnics, Volume 114, 2019, https://doi.org/10.1016/j.compgeo.2019.103143.
Command
PML2D
element PML $eleTag $node1 $node2 $node3 $node4 $E $nu $rho $EleType $Thickness $m $R $RD_half_width_x $Depth $alpha $beta
- PML3D
element PML $eleTag $node1 $node2 $node3 $node4 $node5 $node6 $node7 $node8 $matTag $PMLThickness meshType meshParams… [-Cp $Cp] [-m $m] [-R $R] [-alphabeta $alpha $beta] [-Newmark $gamma $beta $eta $keisi]
PML2D
Argument |
Type |
Description |
|---|---|---|
eleTag |
integer |
unique integer tag identifying element object |
node1 $node2 node3 node4 |
4 integer |
the four nodes defining the element input in counterclockwise order (-ndm 2 -ndf 5) |
E |
float |
Young’s modulus |
nu |
float |
Poisson’s Ratio |
rho |
float |
Density |
EleType |
float |
Element type based on the region of the PML it can be 1 2 3 4 5 (you can choose any number the code automaticlly ) |
Thickness |
float |
Thickness of the PML around regular domain |
m |
float |
PML parameter (m=2 is recommended) |
R |
float |
PML parameter (R=1e-8 is recommended) |
RD_half_width_x |
float |
Distance of the border of the PML and regular domain to the center of the domain at origin |
Depth |
float |
Depth of the PML from the surface of the regular domain in the negative y direction |
alpha |
float |
Rayleigh damping parameter for PML (alpha will be 0 even if you input a value) |
beta |
float |
Rayleigh damping parameter for PML (beta will be 0 even if you input a value) |
PML3D
Argument |
Type |
Description |
|---|---|---|
eleTag |
integer |
unique integer tag identifying element object |
node1 node2 node3 node4 node5 node6 node7 node8 |
8 integer |
the eight nodes defining the element input in counterclockwise order (-ndm 3 -ndf 9) |
matTag |
integer |
material tag (must be an ElasticIsotropicMaterial) |
PMLThickness |
float |
Thickness of the PML around regular domain |
meshType |
string |
Mesh type defining the PML region (General, Box, Sphere, Cylinder) |
meshParams… |
float |
Additional parameters depending on meshType (see below) |
-Cp |
float |
PML parameter defining wave speed (default calculated from material properties) |
-m |
float |
PML parameter (default m=2) |
-R |
float |
PML parameter (default R=1e-8) |
-alphabeta |
User-defined alpha and beta parameters |
|
-Newmark |
Newmark integration parameters (gamma, beta, eta, keisi) |
Mesh Type Parameters
Mesh Type |
Required Parameters |
Description |
|---|---|---|
General |
Xref, Yref, Zref, N1, N2, N3 |
Reference point and normal vector components |
Box |
XC, YC, ZC, L, W, H |
Center coordinates at the surface and dimensions of the box (e.g., 20, 50, 0.0, widthX, widthY, depthZ) |
Note
For PML 2D, each node has 5 DOFs (2 translations and Sx, Sy, Sxy)
For PML 3D, each node has 9 DOFs (3 translations and Sx, Sy, Sz, Sxy, Sxz, Syz)
For PML 2D, the center of the regular domian should be at the origin of the global coordinate system (0,0,0)
There is no recorder for PML elements. The stresses can be obtained from the node recorders.
When using PML 3D, only the Newmark integration method can be used. If the parameters for the integration are not passed to the element, the default parameters will be used (Example: \(\gamma = 0.5, \beta = 0.25, \eta = 0.0833333333333333, \xi = 0.0208333333333333\)).
It is highly recommended to use the same mesh for the PML and the regular domain
It is highly recommended to use the same material for the PML and the regular domain
It is highly recommended to use uniform and square mesh for the PML elements
If the user provides the alpha and beta parameters explicitly using the -alphabeta flag, the following formulas for calculating alpha_0 and beta_0 are skipped, and the user-defined parameters are used instead:
\[\begin{split}\begin{aligned} C_p &= \sqrt{\frac{E \cdot (1 - \nu)}{\rho \cdot (1 + \nu) \cdot (1 - 2 \cdot \nu)}} \\ PML_b &= \frac{\text{PMLThickness}}{1.0} \\ \alpha_0 &= \frac{(m_{\text{coeff}} + 1) \cdot PML_b}{2.0 \cdot PML_b} \cdot \log_{10}\left(\frac{1}{R}\right) \\ \beta_0 &= \frac{(m_{\text{coeff}} + 1) \cdot C_p}{2.0 \cdot PML_b} \cdot \log_{10}\left(\frac{1}{R}\right) \end{aligned}\end{split}\]
Example
The following example constructs a PML 3D element with tag 1 between nodes 1, 2, 3, 4, 5, 6, 7, 8 using material tag 1, PML thickness 1.0, and a box-type mesh with parameters 10.0, 10.0, 5.0 20 20 20.
Tcl Code
element PML 1 1 2 3 4 5 6 7 8 1 1.0 Box 10.0 10.0 5.0 20.0 20.0 20.0 -m 2 -R 1e-8 -Newmark 0.5 0.25 0.0833333333333333 0.0208333333333333
Python Code
element('PML', 1, 1, 2, 3, 4, 5, 6, 7, 8, 1, 1.0, 'Box', 10.0, 10.0, 5.0, 20.0, 20.0, 20.0, '-m', 2, '-R', 1e-8, '-Newmark', 0.5, 0.25, 0.0833333333333333, 0.0208333333333333)
Example
The following example constructs a PML 2D element with tag 2 between nodes 1, 2, 3, 4 using Young’s modulus 3000, Poisson’s ratio 0.3, density 2500, element type 1, thickness 1.0, and PML parameters 2, 1e-8, 5.0, 10.0, 0.0, 0.0.
Tcl Code
element PML 2 1 2 3 4 3000 0.3 2500 1 1.0 2 1e-8 5.0 10.0 0.0 0.0
Python Code
element('PML', 2, 1, 2, 3, 4, 3000, 0.3, 2500, 1, 1.0, 2, 1e-8, 5.0, 10.0, 0.0, 0.0)