3.2. anisotropy.materials
The anisotropy.materials module provides a suite of standard elastic
materials and means of interacting with them.
- copyright
2021–2022, AnisotroPy developers.
- license
GNU General Public License, Version 3 (https://www.gnu.org/licenses/gpl-3.0.html)
3.2.1. anisotropy.materials.core
Module for performing all things related to materials and their elastic properties. This includes the elastic stiffness and compliance tensors, various moduli, etc.
- copyright
2021–2022, AnisotroPy developers.
- license
GNU General Public License, Version 3 (https://www.gnu.org/licenses/gpl-3.0.html)
- class anisotropy.materials.core.Material(C, rho)[source]
Bases:
objectSmall class to encapsulate information that defines a material with an elastic stiffness tensor, C, and density, rho, and a suite of useful functions to query its properties.
Within the linear elastic theory of continuum mechanics, seismic anisotropy enters the elastodynamic equations of motion through the fourth-order stiffness tensor, composed of 81 independent elastic moduli. This tensor formally relates the applied stress, σ_ij , to the resulting deformation of an elastic body, ε_kl, via Hooke’s law.
- C
Stiffness tensor for the material, in GPa.
- Type
array-like of float, shape(6, 6)
- rho
Density of material, in g/cm^3.
- Type
float
- is_isotropic
Tests whether the material is isotropic.
- Type
bool
- lame_coefficients
Calculates Lame coefficients for the material.
- Type
[float, float]
- bulk_modulus
Calculates the bulk modulus, K, for the material.
- Type
float
- phase_velocities()[source]
Calculates the phase velocities for the material at requested azimuth/ inclination pairs.
- group_velocities()[source]
Calculates the group velocities, which are the phase velocities projected onto the group velocity directions, for the material at requested azimuth/inclination pairs.
- TO-DO
- -----
- - Provide methods to transform between the Voigt-form and full tensor
representations of the elasticity tensors
- - Finish documentation
- - Implement method to calculate the isotropic (symmetric) portion of a
arbitrarily anisotropic stiffness tensor
- property bulk_modulus
Returns the bulk modulus for the material.
- group_velocities(inclination, azimuth=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360]))[source]
Calculate the group velocities for the 6x6 elasticity matrix C along the direction (ψ, θ), in degrees, and return P-wave velocity Vp, and the fast and slow shear wave velocities, Vs1 and Vs2.
!! CURRENTLY APPEARS TO NOT BE WORKING !!
- Parameters
inclination (list of float or float) – Inclination, θ, from the x1-x2 plane towards x3, in degrees.
azimuth (list of float or float, optional) – Azimuth, ψ, from x1 towards x2, in degrees.
- Returns
gvp (list of float) – P-wave group velocity in km/s.
gvs1 (list of float) – Faster S-wave group velocity in km/s.
gvs2 (list of float) – Slower S-wave group velocity in km/s.
- property is_isotropic
Tests whether the material is isotropic. Returns a boolean.
- isotropic = array([[237.5533, 78.4733, 78.4733, 0. , 0. , 0. ], [ 78.4733, 237.5533, 78.4733, 0. , 0. , 0. ], [ 78.4733, 78.4733, 237.5533, 0. , 0. , 0. ], [ 0. , 0. , 0. , 79.54 , 0. , 0. ], [ 0. , 0. , 0. , 0. , 79.54 , 0. ], [ 0. , 0. , 0. , 0. , 0. , 79.54 ]])
- property lame_coefficients
Returns the Lame coefficients for the material.
- phase_velocities(inclination, azimuth=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360]))[source]
Calculate the phase velocities for the 6x6 elasticity matrix C along the direction (ψ, θ), in degrees, and return P-wave velocity Vp, the fast and slow shear wave velocities, Vs1 and Vs2, the polarisation of the fast shear wave, pol, and the shear wave velocity anisotropy, swa.
- Parameters
inclination (list of float or float) – Inclination, θ, from the x1-x2 plane towards x3, in degrees.
azimuth (list of float or float, optional) – Azimuth, ψ, from x1 towards x2, in degrees.
- Returns
vp (list of float) – P-wave phase velocity in km/s.
vs1 (list of float) – Faster S-wave phase velocity in km/s.
vs2 (list of float) – Slower S-wave phase velocity in km/s.
φφ (list of float) – Polarisation direction of the faster S-wave.
shear_wave_anisotropy (list of float) – Calculated shear wave anisotropy.
- Raises
ValueError – When vectors provided are not of equal length.
- anisotropy.materials.core.isotropic_C(vp=None, vs=None, rho=None, la=None, mu=None, K=None, G=None)[source]
Calculate the coefficients of the stiffness tensor expressed in the Voigt matrix form.
Voigt’s form does not preserve the sum of the squares, which in the case of Hooke’s law has geometric significance.
- Parameters
vp (float, optional) – Isotropic P wave velocity. Units of km/s.
vs (float, optional) – Isotropic S wave velocity. Units of km/s.
rho (float, optional) – Bulk density of material. Units of g/cm^3
la (float, optional) – Lamé’s first parameter. Units of m^2/s^2.
mu (float, optional) – Lamé’s second parameter - the shear modulus.
K (float, optional) – Bulk modulus.
G (float, optional) – Shear modulus.
- Returns
C – Isotropic elastic stiffness tensor in Voigt matrix form.
- Return type
6x6 array of floats
- anisotropy.materials.core.reuss_average(stiffness_tensors, volume_fractions)[source]
Calculates the Reuss average of a set material phases, described by their elastic stiffness tensors and densities, and constitutive phase volume fractions.
The Reuss average is defined as the inverse of the weighted arithmetic mean of elastic compliance tensors (i.e. the inverse of the elastic stiffness tensors), that is:
- C_r = __________________1_________________
f1*1/C_1 + f2*1/C_2 + … + fn*1/C_n
For more information, read:
Hill, R., 1952. The elastic behaviour of a crystalline aggregate. Proceedings of the Physical Society. Section A, 65(5), p.349.
- Parameters
stiffness_tensors (list of array-like of float, shape(n, 6, 6)) – Stiffness tensors of constitutive phases for which to calculate the Reuss average.
volume_fractions (list of float) – Fraction of each constitutive phase in the composite material.
- Returns
C_r – Reuss average elastic stiffness tensor, C, for the composite material.
- Return type
array-like of float, shape(6, 6)
- anisotropy.materials.core.voigt_average(stiffness_tensors, volume_fractions)[source]
Calculates the Voigt average of a set material phases, described by their elastic stiffness tensors and densities, and constitutive phase volume fractions.
The Voigt average is defined as the weighted arithmetic mean of elastic stiffness tensors, that is:
C_v = f1*C_1 + f2*C_2 + … + fn*C_n
For more information, read:
Hill, R., 1952. The elastic behaviour of a crystalline aggregate. Proceedings of the Physical Society. Section A, 65(5), p.349.
- Parameters
stiffness_tensors (list of array-like of float, shape(n, 6, 6)) – Stiffness tensors of constitutive phases for which to calculate the Reuss average.
volume_fractions (list of float) – Fraction of each constitutive phase in the composite material.
- Returns
C_v – Voigt average elastic stiffness tensor, C, for the composite material.
- Return type
array-like of float, shape(6, 6)
- anisotropy.materials.core.voigt_reuss_hill_average(materials, volume_fractions)[source]
Calculates the Voigt-Reuss-Hill average of a set material phases, described by their elastic stiffness tensors and densities, and constitutive phase volume fractions.
This was defined as the arithmetic mean of the Voigt average (arithmetic mean of stiffness tensors weighted by volume fraction) and the Reuss average (arithmetic mean of compliance tensors weighted by volume fraction).
For more information, read:
Hill, R., 1952. The elastic behaviour of a crystalline aggregate. Proceedings of the Physical Society. Section A, 65(5), p.349.
- Parameters
materials (list of anisotropy.Material) – Constitutive phases for which to calculate the Voigt-Reuss-Hill average.
volume_fractions (list of float) – Fraction of each constitutive phase in the composite material.
- Returns
C_vrh (array-like of float, shape(6, 6)) – Voigt-Reuss-Hill average elastic stiffness tensor, C, for the composite material.
rho_average (float) – Density of composite material.
C_v (array-like of float, shape(6, 6)) – Voigt average elastic stiffness tensor, C, for the composite material.
C_r (array-like of float, shape(6, 6)) – Reuss average elastic stiffness tensor, C, for the composite material.
3.2.2. anisotropy.materials.database
Module containing a collection of published elastic material descriptions, in terms of elastic stiffness tensor, C, and bulk density, rho.
- copyright
2021–2022, AnisotroPy developers.
- license
GNU General Public License, Version 3 (https://www.gnu.org/licenses/gpl-3.0.html)