elastodynamicsx.pde.materials package
Module contents
The materials module contains classes for a representation of a PDE of the kind:
M*a + C*v + K(u) = 0
i.e. the lhs of a PDE such as defined in the PDE class. An instance represents a single (possibly arbitrarily space-dependent) material.
material
function:from elastodynamicsx.pde import material
mat = material( (function_space, cell_tags, marker), type_, *args, **kwargs)
- elastodynamicsx.pde.materials.material(functionspace_tags_marker, type_, *args, **kwargs) Material [source]
Builder method that instanciates the desired material type
- Parameters:
functionspace_tags_marker –
Available possibilities are:
(function_space, cell_tags, marker)
: meaning applicationof the material in the cells whose tag correspond to marker
function_space
: in this casecell_tags=None
and
marker=None
, meaning application of the material in the entire domain
type –
Available options are:
linear (scalar): ‘scalar’
- linear: ‘isotropic’, ‘cubic’, ‘hexagonal’, ‘trigonal’, ‘tetragonal’,
’orthotropic’, ‘monoclinic’, ‘triclinic’
nonlinear, hyperelastic: ‘murnaghan’, ‘saintvenant-kirchhoff’, ‘mooney-rivlin-incomp’
*args – Passed to the required material
- Keyword Arguments:
**kwargs – Passed to the required material
- Returns:
An instance of the desired material
Example
# ### # Constant / variable material parameter # ### rho = 2.8 rho = fem.Constant(function_space.mesh, default_scalar_type(2.8)) rho = fem.Function(scalar_function_space); rho.interpolate(lambda x: 2.8 * np.ones(len(x))) # ### # Subdomain(s) or entire domain? # ### # restricted to subdomain number 1 aluminum = material((function_space, cell_tags, 1), 'isotropic', rho=2.8, lambda_=58, mu=26) # restricted to subdomains number 1, 2, 5 aluminum = material((function_space, cell_tags, (1,2,5)), 'isotropic', rho=2.8, lambda_=58, mu=26) # entire domain aluminum = material( function_space, 'isotropic', rho=2.8, lambda_=58, mu=26) # ### # Available laws # ### # Linear elasticity mat = material( function_space, 'isotropic' , rho, C12, C44) mat = material( function_space, 'cubic' , rho, C11, C12, C44) mat = material( function_space, 'hexagonal' , rho, C11, C13, C33, C44, C66) mat = material( function_space, 'trigonal' , rho, C11, C12, C13, C14, C25, C33, C44) mat = material( function_space, 'tetragonal' , rho, C11, C12, C13, C16, C33, C44, C66) mat = material( function_space, 'orthotropic', rho, C11, C12, C13, C22, C23, C33, C44, C55, C66) mat = material( function_space, 'monoclinic' , rho, C11, C12, C13, C15, C22, C23, C25, C33, C35, C44, C46, C55, C66) mat = material( function_space, 'triclinic' , rho, C11, C12, C13, C14, C15, C16, C22, C23, C24, C25, C26, C33, C34, C35, C36, C44, C45, C46, C55, C56, C66) # Hyperelasticity mat = material( function_space, 'saintvenant-kirchhoff', rho, C12, C44) mat = material( function_space, 'murnaghan', rho, C12, C44, l, m, n) mat = material( function_space, 'mooney-rivlin-incomp', rho, C1, C2) # Arbitrary mat = material( function_space, 'custom', M_fn=lambda u,v: ufl.inner(u,v) * ufl.dx, K_fn=lambda u,v: ... * ufl.dx)
- elastodynamicsx.pde.materials.damping(type_: str, *args) Damping [source]
Builder method that instanciates the desired damping law type
- Parameters:
type –
Available options are:
’none’
’rayleigh’
*args – Passed to the required damping law
- Returns:
An instance of the desired damping law
Example
from elastodynamicsx.pde import damping, material dmp = damping('none') dmp = damping('rayleigh', eta_m, eta_k) mat = material(V, 'isotropic', rho, lambda_, mu, damping=dmp)
- class elastodynamicsx.pde.materials.Material(functionspace_tags_marker, rho, is_linear, **kwargs)[source]
Bases:
object
Base class for a representation of a material law.
- Parameters:
functionspace_tags_marker –
Available possibilities are:
(function_space, cell_tags, marker)
: meaning application ofthe material in the cells whose tag correspond to marker
function_space
: in this casecell_tags=None
and
marker=None
, meaning application of the material in the entire domain
rho – Density
is_linear – True for linear, False for hyperelastic
- Keyword Arguments:
metadata – (default=None) The metadata used by the ufl measures (dx, dS). If set to
None
, uses thePDECONFIG.default_metadata
- labels: List[str]
- property is_linear: bool
- K0_fn_CG(u, v)[source]
K0 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K1_fn_CG(u, v)[source]
K1 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K2_fn_CG(u, v)[source]
K2 stiffness form function for a Continuous Galerkin formulation (waveguides)
- property rho
Density
- class elastodynamicsx.pde.materials.ElasticMaterial(functionspace_tags_marker, rho, C_21: List, **kwargs)[source]
Bases:
Material
Base class for linear elastic materials, supporting full anisotropy
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C_21 – list of the 21 independent elastic constants
- Keyword Arguments:
damping – (default=NoDamping()) An instance of a subclass of Damping
- eq_IJ: ndarray = array([[ 0, 1, 2, 3, 4, 5], [ 1, 6, 7, 8, 9, 10], [ 2, 7, 11, 12, 13, 14], [ 3, 8, 12, 15, 16, 17], [ 4, 9, 13, 16, 18, 19], [ 5, 10, 14, 17, 19, 20]])
- ijkm: ndarray = array([[0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 2, 2], [0, 0, 1, 2], [0, 0, 0, 2], [0, 0, 0, 1], [1, 1, 1, 1], [1, 1, 2, 2], [1, 1, 1, 2], [1, 1, 0, 2], [1, 1, 0, 1], [2, 2, 2, 2], [2, 2, 1, 2], [2, 2, 0, 2], [2, 2, 0, 1], [1, 2, 1, 2], [1, 2, 0, 2], [1, 2, 0, 1], [0, 2, 0, 2], [0, 2, 0, 1], [0, 1, 0, 1]])
- static Cij(C_21: List, i: int, j: int)[source]
Returns the \(C_{ij}\) coefficient from the C_21 list
i, j = 0..5
- static Cijkm(C_21: List, i: int, j: int, k: int, m: int)[source]
Returns the \(C_{ijkm}\) coefficient from the C_21 list
i, j, k, m = 0..2
- property epsilon
Strain function (matrix representation) \(\boldsymbol{\epsilon}(\mathbf{u})\)
- property epsilonVoigt
Strain function (Voigt representation) \(\boldsymbol{\epsilon}(\mathbf{u})\)
- sigma_n(u, n)[source]
Stress in the ‘n’ direction \(\boldsymbol{\sigma}(\mathbf{u}) \cdot \mathbf{n}\)
- diamond(v1, v2)[source]
Returns the diamond product of vectors v1 and v2.
- Returns:
\(\mathbf{d}\), such as \(d_{jk} = C_{ijkm} v_{1,i} v_{2,m}\)
- K0_fn_CG(u, v)[source]
K0 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K1_fn_CG(u, v)[source]
K1 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K2_fn_CG(u, v)[source]
K2 stiffness form function for a Continuous Galerkin formulation (waveguides)
- property DG_numerical_flux: Callable
Numerical flux for a Disontinuous Galerkin formulation
- DG_SIPG_regularization_parameter() Constant [source]
Regularization parameter for the Symmetric Interior Penalty Galerkin methods (SIPG)
- property P_modulus
P-wave modulus
- Returns:
\(\rho c_{max}^2\) where \(c_{max}\) is the highest wave velocity
\(\lambda + 2 \mu\) for isotropic materials
\(\mu\) for scalar materials
- property C11
C11 stiffness constant in the material coordinate frame
- property C12
C12 stiffness constant in the material coordinate frame
- property C13
C13 stiffness constant in the material coordinate frame
- property C14
C14 stiffness constant in the material coordinate frame
- property C15
C15 stiffness constant in the material coordinate frame
- property C16
C16 stiffness constant in the material coordinate frame
- property C22
C22 stiffness constant in the material coordinate frame
- property C23
C23 stiffness constant in the material coordinate frame
- property C24
C24 stiffness constant in the material coordinate frame
- property C25
C25 stiffness constant in the material coordinate frame
- property C26
C26 stiffness constant in the material coordinate frame
- property C33
C33 stiffness constant in the material coordinate frame
- property C34
C34 stiffness constant in the material coordinate frame
- property C35
C35 stiffness constant in the material coordinate frame
- property C36
C36 stiffness constant in the material coordinate frame
- property C44
C44 stiffness constant in the material coordinate frame
- property C45
C45 stiffness constant in the material coordinate frame
- property C46
C46 stiffness constant in the material coordinate frame
- property C55
C55 stiffness constant in the material coordinate frame
- property C56
C56 stiffness constant in the material coordinate frame
- property C66
C66 stiffness constant in the material coordinate frame
- class elastodynamicsx.pde.materials.HyperelasticMaterial(functionspace_tags_marker, rho, **kwargs)[source]
Bases:
Material
Base class for hyperelastic materials
- Parameters:
functionspace_tags_marker – See Material
rho – Density
sigma – Stress function
- Keyword Arguments:
**kwargs – see Material
Submodules
elastodynamicsx.pde.materials.material module
- class elastodynamicsx.pde.materials.material.Material(functionspace_tags_marker, rho, is_linear, **kwargs)[source]
Bases:
object
Base class for a representation of a material law.
- Parameters:
functionspace_tags_marker –
Available possibilities are:
(function_space, cell_tags, marker)
: meaning application ofthe material in the cells whose tag correspond to marker
function_space
: in this casecell_tags=None
and
marker=None
, meaning application of the material in the entire domain
rho – Density
is_linear – True for linear, False for hyperelastic
- Keyword Arguments:
metadata – (default=None) The metadata used by the ufl measures (dx, dS). If set to
None
, uses thePDECONFIG.default_metadata
- labels: List[str]
- property is_linear: bool
- K0_fn_CG(u, v)[source]
K0 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K1_fn_CG(u, v)[source]
K1 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K2_fn_CG(u, v)[source]
K2 stiffness form function for a Continuous Galerkin formulation (waveguides)
- property rho
Density
elastodynamicsx.pde.materials.elasticmaterial module
- class elastodynamicsx.pde.materials.elasticmaterial.ElasticMaterial(functionspace_tags_marker, rho, C_21: List, **kwargs)[source]
Bases:
Material
Base class for linear elastic materials, supporting full anisotropy
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C_21 – list of the 21 independent elastic constants
- Keyword Arguments:
damping – (default=NoDamping()) An instance of a subclass of Damping
- eq_IJ: ndarray = array([[ 0, 1, 2, 3, 4, 5], [ 1, 6, 7, 8, 9, 10], [ 2, 7, 11, 12, 13, 14], [ 3, 8, 12, 15, 16, 17], [ 4, 9, 13, 16, 18, 19], [ 5, 10, 14, 17, 19, 20]])
- ijkm: ndarray = array([[0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 2, 2], [0, 0, 1, 2], [0, 0, 0, 2], [0, 0, 0, 1], [1, 1, 1, 1], [1, 1, 2, 2], [1, 1, 1, 2], [1, 1, 0, 2], [1, 1, 0, 1], [2, 2, 2, 2], [2, 2, 1, 2], [2, 2, 0, 2], [2, 2, 0, 1], [1, 2, 1, 2], [1, 2, 0, 2], [1, 2, 0, 1], [0, 2, 0, 2], [0, 2, 0, 1], [0, 1, 0, 1]])
- static Cij(C_21: List, i: int, j: int)[source]
Returns the \(C_{ij}\) coefficient from the C_21 list
i, j = 0..5
- static Cijkm(C_21: List, i: int, j: int, k: int, m: int)[source]
Returns the \(C_{ijkm}\) coefficient from the C_21 list
i, j, k, m = 0..2
- property epsilon
Strain function (matrix representation) \(\boldsymbol{\epsilon}(\mathbf{u})\)
- property epsilonVoigt
Strain function (Voigt representation) \(\boldsymbol{\epsilon}(\mathbf{u})\)
- sigma_n(u, n)[source]
Stress in the ‘n’ direction \(\boldsymbol{\sigma}(\mathbf{u}) \cdot \mathbf{n}\)
- diamond(v1, v2)[source]
Returns the diamond product of vectors v1 and v2.
- Returns:
\(\mathbf{d}\), such as \(d_{jk} = C_{ijkm} v_{1,i} v_{2,m}\)
- K0_fn_CG(u, v)[source]
K0 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K1_fn_CG(u, v)[source]
K1 stiffness form function for a Continuous Galerkin formulation (waveguides)
- K2_fn_CG(u, v)[source]
K2 stiffness form function for a Continuous Galerkin formulation (waveguides)
- property DG_numerical_flux: Callable
Numerical flux for a Disontinuous Galerkin formulation
- DG_SIPG_regularization_parameter() Constant [source]
Regularization parameter for the Symmetric Interior Penalty Galerkin methods (SIPG)
- property P_modulus
P-wave modulus
- Returns:
\(\rho c_{max}^2\) where \(c_{max}\) is the highest wave velocity
\(\lambda + 2 \mu\) for isotropic materials
\(\mu\) for scalar materials
- property C11
C11 stiffness constant in the material coordinate frame
- property C12
C12 stiffness constant in the material coordinate frame
- property C13
C13 stiffness constant in the material coordinate frame
- property C14
C14 stiffness constant in the material coordinate frame
- property C15
C15 stiffness constant in the material coordinate frame
- property C16
C16 stiffness constant in the material coordinate frame
- property C22
C22 stiffness constant in the material coordinate frame
- property C23
C23 stiffness constant in the material coordinate frame
- property C24
C24 stiffness constant in the material coordinate frame
- property C25
C25 stiffness constant in the material coordinate frame
- property C26
C26 stiffness constant in the material coordinate frame
- property C33
C33 stiffness constant in the material coordinate frame
- property C34
C34 stiffness constant in the material coordinate frame
- property C35
C35 stiffness constant in the material coordinate frame
- property C36
C36 stiffness constant in the material coordinate frame
- property C44
C44 stiffness constant in the material coordinate frame
- property C45
C45 stiffness constant in the material coordinate frame
- property C46
C46 stiffness constant in the material coordinate frame
- property C55
C55 stiffness constant in the material coordinate frame
- property C56
C56 stiffness constant in the material coordinate frame
- labels: List[str]
- property C66
C66 stiffness constant in the material coordinate frame
elastodynamicsx.pde.materials.anisotropicmaterials module
- class elastodynamicsx.pde.materials.anisotropicmaterials.CubicMaterial(functionspace_tags_marker, rho, C11, C12, C44, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with cubic symmetry -> 3 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
C12 – Stiffness constant
C44 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['cubic']
- class elastodynamicsx.pde.materials.anisotropicmaterials.HexagonalMaterial(functionspace_tags_marker, rho, C11, C13, C33, C44, C66, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with hexagonal symmetry -> 5 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C66 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['hexagonal']
- class elastodynamicsx.pde.materials.anisotropicmaterials.TrigonalMaterial(functionspace_tags_marker, rho, C11, C12, C13, C14, C25, C33, C44, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with trigonal symmetry -> 7 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C44 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['trigonal']
- class elastodynamicsx.pde.materials.anisotropicmaterials.TetragonalMaterial(functionspace_tags_marker, rho, C11, C12, C13, C16, C33, C44, C66, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with tetragonal symmetry -> 7 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C66 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['tetragonal']
- class elastodynamicsx.pde.materials.anisotropicmaterials.OrthotropicMaterial(functionspace_tags_marker, rho, C11, C12, C13, C22, C23, C33, C44, C55, C66, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with orthotropic symmetry -> 9 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C66 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['orthotropic']
- class elastodynamicsx.pde.materials.anisotropicmaterials.MonoclinicMaterial(functionspace_tags_marker, rho, C11, C12, C13, C15, C22, C23, C25, C33, C35, C44, C46, C55, C66, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with monoclinic symmetry -> 13 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C66 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['monoclinic']
- class elastodynamicsx.pde.materials.anisotropicmaterials.TriclinicMaterial(functionspace_tags_marker, rho, C11, C12, C13, C14, C15, C16, C22, C23, C24, C25, C26, C33, C34, C35, C36, C44, C45, C46, C55, C56, C66, **kwargs)[source]
Bases:
ElasticMaterial
A linear elastic material with triclinic symmetry -> 21 independent constants
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C11 – Stiffness constant
... – Stiffness constant
C66 – Stiffness constant
- Keyword Arguments:
**kwargs – Passed to ElasticMaterial
- labels: List[str] = ['triclinic']
elastodynamicsx.pde.materials.hyperelasticmaterials module
- class elastodynamicsx.pde.materials.hyperelasticmaterials.HyperelasticMaterial(functionspace_tags_marker, rho, **kwargs)[source]
Bases:
Material
Base class for hyperelastic materials
- Parameters:
functionspace_tags_marker – See Material
rho – Density
sigma – Stress function
- Keyword Arguments:
**kwargs – see Material
- class elastodynamicsx.pde.materials.hyperelasticmaterials.Murnaghan(functionspace_tags_marker, rho, lambda_, mu, l_, m_, n_, **kwargs)[source]
Bases:
HyperelasticMaterial
Murnaghan’s model
- Strain energy density:
- \[W = \frac{\lambda}{2} \mathrm{tr}(\mathbf{E})^2 + \mu \mathrm{tr}(\mathbf{E}^2) + \frac{A}{3} \mathrm{tr}(\mathbf{E}^3) + B \mathrm{tr}(\mathbf{E}) \mathrm{tr}(\mathbf{E}^2) + \frac{C}{3} \mathrm{tr}(\mathbf{E})^3\]
with: \(l=B+C\), \(m=\frac{1}{2}A+B\), \(n=A\).
- Parameters:
functionspace_tags_marker – See Material
rho – Density
lambda – Lame’s first parameter
mu – Lame’s second parameter (shear modulus)
l – Murnaghan’s third order elastic constant
m – Murnaghan’s third order elastic constant
n – Murnaghan’s third order elastic constant
- Keyword Arguments:
**kwargs – Passed to HyperelasticMaterial
- labels: List[str] = ['murnaghan']
- property Z_N
(WARNING, infinitesimal strain asymptotics) P-wave mechanical impedance \(\rho c_L\)
- property Z_T
(WARNING, infinitesimal strain asymptotics) S-wave mechanical impedance \(\rho c_S\)
- class elastodynamicsx.pde.materials.hyperelasticmaterials.DummyIsotropicMaterial(functionspace_tags_marker, rho, lambda_, mu, **kwargs)[source]
Bases:
HyperelasticMaterial
A dummy implementation of an isotropic linear elastic material based on a HyperelasticMaterial
- Parameters:
functionspace_tags_marker – See Material
rho – Density
lambda – Lame’s first parameter
mu – Lame’s second parameter (shear modulus)
- Keyword Arguments:
**kwargs – Passed to HyperelasticMaterial
- labels: List[str] = ['dummy-isotropic']
- property Z_N
P-wave mechanical impedance \(\rho c_L\)
- property Z_T
S-wave mechanical impedance \(\rho c_S\)
- class elastodynamicsx.pde.materials.hyperelasticmaterials.StVenantKirchhoff(functionspace_tags_marker, rho, lambda_, mu, **kwargs)[source]
Bases:
HyperelasticMaterial
Saint Venant-Kirchhoff model
- Strain energy density:
- \[W = \frac{\lambda}{2} \mathrm{tr}(\mathbf{E})^2 + \mu \mathrm{tr}(\mathbf{E}^2)\]
- Parameters:
functionspace_tags_marker – See Material
rho – Density
lambda – Lame’s first parameter
mu – Lame’s second parameter (shear modulus)
- Keyword Arguments:
**kwargs – Passed to HyperelasticMaterial
- labels: List[str] = ['stvenant-kirchhoff', 'saintvenant-kirchhoff']
- property Z_N
(WARNING, infinitesimal strain asymptotics) P-wave mechanical impedance \(\rho c_L\)
- property Z_T
(WARNING, infinitesimal strain asymptotics) S-wave mechanical impedance \(\rho c_S\)
- class elastodynamicsx.pde.materials.hyperelasticmaterials.MooneyRivlinIncompressible(functionspace_tags_marker, rho, C1, C2, **kwargs)[source]
Bases:
HyperelasticMaterial
Mooney-Rivlin model for an incompressible solid
- Strain energy density:
- \[W = C_1 (\overline{I}_1 - 3) + C_2 (\overline{I}_2 - 3)\]
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C1 – first parameter
C2 – second parameter
- Keyword Arguments:
**kwargs – Passed to HyperelasticMaterial
- labels: List[str] = ['mooney-rivlin-incomp']
- property C1
- property C2
- class elastodynamicsx.pde.materials.hyperelasticmaterials.MooneyRivlinCompressible(functionspace_tags_marker, rho, C10, C01, D1, **kwargs)[source]
Bases:
HyperelasticMaterial
Mooney-Rivlin model for a compressible solid
- Strain energy density:
- \[W = C_{10} (\overline{I}_1 - 3) + C_{01} (\overline{I}_2 - 3) + \frac{1}{D_1} (J - 1)^2\]
- Parameters:
functionspace_tags_marker – See Material
rho – Density
C10 – First parameter
C01 – Second parameter
D1 – Third parameter
- Keyword Arguments:
**kwargs – Passed to HyperelasticMaterial
- labels: List[str] = ['mooney-rivlin-comp']
- property C1
- property C2
elastodynamicsx.pde.materials.dampings module
The damping module implements laws to model attenuation. A Damping instance is meant to be connected to a Material instance and thereby provides the damping form of the PDE.
The recommended way to instanciate a damping law is to use the damping
function.
- class elastodynamicsx.pde.materials.dampings.Damping[source]
Bases:
object
Dummy base class for damping laws
- labels: List[str]
- class elastodynamicsx.pde.materials.dampings.NoDamping[source]
Bases:
Damping
No damping
- labels: List[str] = ['none']
- class elastodynamicsx.pde.materials.dampings.RayleighDamping(eta_m, eta_k)[source]
Bases:
Damping
Rayleigh damping law, i.e. whose damping form is a linear combination of the mass and stiffness forms of the host material
\[c(u,v) = \eta_m m(u,v) + \eta_k k(u,v)\]- labels: List[str] = ['rayleigh']
- property eta_m
Parameter of the mass-matrix part of the damping
- property eta_k
Parameter of the stiffness-matrix part of the damping
- property host_material
Host material from whom the mass and stiffness matrices are copied
- elastodynamicsx.pde.materials.dampings.damping(type_: str, *args) Damping [source]
Builder method that instanciates the desired damping law type
- Parameters:
type –
Available options are:
’none’
’rayleigh’
*args – Passed to the required damping law
- Returns:
An instance of the desired damping law
Example
from elastodynamicsx.pde import damping, material dmp = damping('none') dmp = damping('rayleigh', eta_m, eta_k) mat = material(V, 'isotropic', rho, lambda_, mu, damping=dmp)
elastodynamicsx.pde.materials.kinematics module
The kinematics module is mainly designed for internal use and will probably not be used by an external user. It contains convenience functions to build some useful differential operators at the required ufl format, for many possible space dimensions and number of components of the function space.
- elastodynamicsx.pde.materials.kinematics.get_epsilon_function(dim, nbcomps)[source]
The strain function for a given dimension and number of components, in matrix form.
- elastodynamicsx.pde.materials.kinematics.get_epsilonVoigt_function(dim, nbcomps)[source]
The strain function for a given dimension and number of components, in vector form (Voigt notation).
- elastodynamicsx.pde.materials.kinematics.get_L_operators(dim, nbcomps, k_nrm=None)[source]
- Parameters:
dim – space dimension
nbcomps – number of components
k_nrm –
(dim==1 only) A unitary vector (len=3) representing the phase direction.
typically:
ufl.as_vector([0,ay,az])
default :ufl.as_vector([0,1,0])