sfepy.terms.terms_elastic module

class sfepy.terms.terms_elastic.CauchyStrainSTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate Cauchy strain tensor on a surface region.

See CauchyStrainTerm.

Supports ‘eval’, ‘el_avg’ and ‘qp’ evaluation modes.

Definition:

\int_{\Gamma} \ull{e}(\ul{w})

\mbox{vector for } K \from \Ical_h: \int_{T_K} \ull{e}(\ul{w}) / \int_{T_K} 1

\ull{e}(\ul{w})|_{qp}

Call signature:
ev_cauchy_strain_s (parameter)
Arguments:
  • parameter : \ul{w}
arg_types = ('parameter',)
integration = 'surface_extra'
name = 'ev_cauchy_strain_s'
class sfepy.terms.terms_elastic.CauchyStrainTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate Cauchy strain tensor.

It is given in the usual vector form exploiting symmetry: in 3D it has 6 components with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it has 3 components with the indices ordered as [11, 22, 12]. The last three (non-diagonal) components are doubled so that it is energetically conjugate to the Cauchy stress tensor with the same storage.

Supports ‘eval’, ‘el_avg’ and ‘qp’ evaluation modes.

Definition:

\int_{\Omega} \ull{e}(\ul{w})

\mbox{vector for } K \from \Ical_h: \int_{T_K} \ull{e}(\ul{w}) / \int_{T_K} 1

\ull{e}(\ul{w})|_{qp}

Call signature:
ev_cauchy_strain (parameter)
Arguments:
  • parameter : \ul{w}
arg_shapes = {'parameter': 'D'}
arg_types = ('parameter',)
static function(out, strain, vg, fmode)[source]
get_eval_shape(parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'ev_cauchy_strain'
class sfepy.terms.terms_elastic.CauchyStressETHTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate fading memory Cauchy stress tensor.

It is given in the usual vector form exploiting symmetry: in 3D it has 6 components with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it has 3 components with the indices ordered as [11, 22, 12].

Assumes an exponential approximation of the convolution kernel resulting in much higher efficiency.

Supports ‘eval’, ‘el_avg’ and ‘qp’ evaluation modes.

Definition:

\int_{\Omega} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau}

\mbox{vector for } K \from \Ical_h: \int_{T_K} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau} / \int_{T_K} 1

\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau}|_{qp}

Call signature:
ev_cauchy_stress_eth (ts, material_0, material_1, parameter)
Arguments:
  • ts : TimeStepper instance
  • material_0 : \Hcal_{ijkl}(0)
  • material_1 : \exp(-\lambda \Delta t) (decay at t_1)
  • parameter : \ul{w}
arg_shapes = {'material_0': 'S, S', 'material_1': '1, 1', 'parameter': 'D'}
arg_types = ('ts', 'material_0', 'material_1', 'parameter')
get_eval_shape(ts, mat0, mat1, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(ts, mat0, mat1, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'ev_cauchy_stress_eth'
class sfepy.terms.terms_elastic.CauchyStressTHTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate fading memory Cauchy stress tensor.

It is given in the usual vector form exploiting symmetry: in 3D it has 6 components with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it has 3 components with the indices ordered as [11, 22, 12].

Supports ‘eval’, ‘el_avg’ and ‘qp’ evaluation modes.

Definition:

\int_{\Omega} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau}

\mbox{vector for } K \from \Ical_h: \int_{T_K} \int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau} / \int_{T_K} 1

\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{w}(\tau)) \difd{\tau}|_{qp}

Call signature:
ev_cauchy_stress_th (ts, material, parameter)
Arguments:
  • ts : TimeStepper instance
  • material : \Hcal_{ijkl}(\tau)
  • parameter : \ul{w}
arg_shapes = {'material': '.: N, S, S', 'parameter': 'D'}
arg_types = ('ts', 'material', 'parameter')
get_eval_shape(ts, mats, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(ts, mats, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'ev_cauchy_stress_th'
class sfepy.terms.terms_elastic.CauchyStressTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate Cauchy stress tensor.

It is given in the usual vector form exploiting symmetry: in 3D it has 6 components with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it has 3 components with the indices ordered as [11, 22, 12].

Supports ‘eval’, ‘el_avg’ and ‘qp’ evaluation modes.

Definition:

\int_{\Omega} D_{ijkl} e_{kl}(\ul{w})

\mbox{vector for } K \from \Ical_h: \int_{T_K} D_{ijkl} e_{kl}(\ul{w}) / \int_{T_K} 1

D_{ijkl} e_{kl}(\ul{w})|_{qp}

Call signature:
ev_cauchy_stress (material, parameter)
Arguments:
  • material : D_{ijkl}
  • parameter : \ul{w}
arg_shapes = {'material': 'S, S', 'parameter': 'D'}
arg_types = ('material', 'parameter')
static function(out, coef, strain, mat, vg, fmode)[source]
get_eval_shape(mat, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(mat, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'ev_cauchy_stress'
class sfepy.terms.terms_elastic.LinearElasticETHTerm(name, arg_str, integral, region, **kwargs)[source]

This term has the same definition as dw_lin_elastic_th, but assumes an exponential approximation of the convolution kernel resulting in much higher efficiency. Can use derivatives.

Definition:

\int_{\Omega} \left [\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{u}(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v})

Call signature:
dw_lin_elastic_eth (ts, material_0, material_1, virtual, state)
Arguments:
  • ts : TimeStepper instance
  • material_0 : \Hcal_{ijkl}(0)
  • material_1 : \exp(-\lambda \Delta t) (decay at t_1)
  • virtual : \ul{v}
  • state : \ul{u}
arg_shapes = {'material_0': 'S, S', 'material_1': '1, 1', 'state': 'D', 'virtual': ('D', 'state')}
arg_types = ('ts', 'material_0', 'material_1', 'virtual', 'state')
static function()
get_fargs(ts, mat0, mat1, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'dw_lin_elastic_eth'
class sfepy.terms.terms_elastic.LinearElasticIsotropicTerm(name, arg_str, integral, region, **kwargs)[source]

Isotropic linear elasticity term.

Definition:

\int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u}) \mbox{ with } D_{ijkl} = \mu (\delta_{ik} \delta_{jl}+\delta_{il} \delta_{jk}) + \lambda \ \delta_{ij} \delta_{kl}

Call signature:
dw_lin_elastic_iso (material_1, material_2, virtual, state)
(material_1, material_2, parameter_1, parameter_2)
Arguments:
  • material_1 : \lambda
  • material_2 : \mu
  • virtual : \ul{v}
  • state : \ul{u}
Arguments 2:
  • material : D_{ijkl}
  • parameter_1 : \ul{w}
  • parameter_2 : \ul{u}
arg_shapes = {'virtual': ('D', 'state'), 'state': 'D', 'parameter_2': 'D', 'material_1': '1, 1', 'material_2': '1, 1', 'parameter_1': 'D'}
arg_types = (('material_1', 'material_2', 'virtual', 'state'), ('material_1', 'material_2', 'parameter_1', 'parameter_2'))
geometries = ['2_3', '2_4', '3_4', '3_8']
get_eval_shape(mat1, mat2, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(lam, mu, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'dw_lin_elastic_iso'
class sfepy.terms.terms_elastic.LinearElasticTHTerm(name, arg_str, integral, region, **kwargs)[source]

Fading memory linear elastic (viscous) term. Can use derivatives.

Definition:

\int_{\Omega} \left [\int_0^t \Hcal_{ijkl}(t-\tau)\,e_{kl}(\ul{u}(\tau)) \difd{\tau} \right]\,e_{ij}(\ul{v})

Call signature:
dw_lin_elastic_th (ts, material, virtual, state)
Arguments:
  • ts : TimeStepper instance
  • material : \Hcal_{ijkl}(\tau)
  • virtual : \ul{v}
  • state : \ul{u}
arg_shapes = {'state': 'D', 'material': '.: N, S, S', 'virtual': ('D', 'state')}
arg_types = ('ts', 'material', 'virtual', 'state')
static function()
get_fargs(ts, mats, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'dw_lin_elastic_th'
class sfepy.terms.terms_elastic.LinearElasticTerm(name, arg_str, integral, region, **kwargs)[source]

General linear elasticity term, with D_{ijkl} given in the usual matrix form exploiting symmetry: in 3D it is 6\times6 with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it is 3\times3 with the indices ordered as [11, 22, 12]. Can be evaluated. Can use derivatives.

Definition:

\int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u})

Call signature:
dw_lin_elastic (material, virtual, state)
(material, parameter_1, parameter_2)
Arguments 1:
  • material : D_{ijkl}
  • virtual : \ul{v}
  • state : \ul{u}
Arguments 2:
  • material : D_{ijkl}
  • parameter_1 : \ul{w}
  • parameter_2 : \ul{u}
arg_shapes = {'parameter_2': 'D', 'state': 'D', 'material': 'S, S', 'parameter_1': 'D', 'virtual': ('D', 'state')}
arg_types = (('material', 'virtual', 'state'), ('material', 'parameter_1', 'parameter_2'))
get_eval_shape(mat, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(mat, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
modes = ('weak', 'eval')
name = 'dw_lin_elastic'
set_arg_types()[source]
class sfepy.terms.terms_elastic.LinearPrestressTerm(name, arg_str, integral, region, **kwargs)[source]

Linear prestress term, with the prestress \sigma_{ij} given in the usual vector form exploiting symmetry: in 3D it has 6 components with the indices ordered as [11, 22, 33, 12, 13, 23], in 2D it has 3 components with the indices ordered as [11, 22, 12]. Can be evaluated.

Definition:

\int_{\Omega} \sigma_{ij} e_{ij}(\ul{v})

Call signature:
dw_lin_prestress (material, virtual)
(material, parameter)
Arguments 1:
  • material : \sigma_{ij}
  • virtual : \ul{v}
Arguments 2:
  • material : \sigma_{ij}
  • parameter : \ul{u}
arg_shapes = {'material': 'S, 1', 'parameter': 'D', 'virtual': ('D', None)}
arg_types = (('material', 'virtual'), ('material', 'parameter'))
d_lin_prestress(out, strain, mat, vg, fmode)[source]
get_eval_shape(mat, virtual, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(mat, virtual, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
modes = ('weak', 'eval')
name = 'dw_lin_prestress'
set_arg_types()[source]
class sfepy.terms.terms_elastic.LinearStrainFiberTerm(name, arg_str, integral, region, **kwargs)[source]

Linear (pre)strain fiber term with the unit direction vector \ul{d}.

Definition:

\int_{\Omega} D_{ijkl} e_{ij}(\ul{v}) \left(d_k d_l\right)

Call signature:
dw_lin_strain_fib (material_1, material_2, virtual)
Arguments:
  • material_1 : D_{ijkl}
  • material_2 : \ul{d}
  • virtual : \ul{v}
arg_shapes = {'material_1': 'S, S', 'material_2': 'D, 1', 'virtual': ('D', None)}
arg_types = ('material_1', 'material_2', 'virtual')
static function()
get_fargs(mat1, mat2, virtual, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'dw_lin_strain_fib'
class sfepy.terms.terms_elastic.SDLinearElasticTerm(name, arg_str, integral, region, **kwargs)[source]

Sensitivity analysis of the linear elastic term.

Definition:

\int_{\Omega} \hat{D}_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u})

\hat{D}_{ijkl} = D_{ijkl}(\nabla \cdot \ul{\Vcal}) - D_{ijkq}{\partial \Vcal_l \over \partial x_q} - D_{iqkl}{\partial \Vcal_j \over \partial x_q}

Call signature:
d_sd_lin_elastic (material, parameter_w, parameter_u, parameter_mesh_velocity)
Arguments:
  • material : D_{ijkl}
  • parameter_w : \ul{w}
  • parameter_u : \ul{u}
  • parameter_mesh_velocity : \ul{\Vcal}
arg_shapes = {'parameter_mesh_velocity': 'D', 'material': 'S, S', 'parameter_w': 'D', 'parameter_u': 'D'}
arg_types = ('material', 'parameter_w', 'parameter_u', 'parameter_mesh_velocity')
function()
geometries = ['2_3', '2_4', '3_4', '3_8']
get_eval_shape(mat, par_w, par_u, par_mv, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(mat, par_w, par_u, par_mv, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'd_sd_lin_elastic'