sfepy.terms.terms_piezo module

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

Piezoelectric coupling term. Can be evaluated.

Definition:

\int_{\Omega} g_{kij}\ e_{ij}(\ul{v}) \nabla_k p\\
\int_{\Omega} g_{kij}\ e_{ij}(\ul{u}) \nabla_k q

Call signature:

dw_piezo_coupling

(material, virtual, state)

(material, state, virtual)

(material, parameter_v, parameter_s)

Arguments 1:
  • material: g_{kij}

  • virtual/parameter_v: \ul{v}

  • state/parameter_s: p

Arguments 2:
  • material : g_{kij}

  • state : \ul{u}

  • virtual : q

arg_shapes = {'material': 'D, S', 'parameter_s': 1, 'parameter_v': 'D', 'state/div': 'D', 'state/grad': 1, 'virtual/div': (1, None), 'virtual/grad': ('D', None)}
arg_types = (('material', 'virtual', 'state'), ('material', 'state', 'virtual'), ('material', 'parameter_v', 'parameter_s'))
get_eval_shape(mat, vvar, svar, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(mat, vvar, svar, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
modes = ('grad', 'div', 'eval')
name = 'dw_piezo_coupling'
set_arg_types()[source]
class sfepy.terms.terms_piezo.PiezoStrainTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate piezoelectric 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].

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

Definition:

\int_{\Omega} g_{kij} e_{ij}(\ul{u})

Call signature:

ev_piezo_strain

(material, parameter)

Arguments:
  • material : g_{kij}

  • parameter : \ul{u}

arg_shapes = {'material': 'D, S', 'parameter': 'D'}
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_piezo_strain'
class sfepy.terms.terms_piezo.PiezoStressTerm(name, arg_str, integral, region, **kwargs)[source]

Evaluate piezoelectric 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} g_{kij} \nabla_k p

Call signature:

ev_piezo_stress

(material, parameter)

Arguments:
  • material : g_{kij}

  • parameter : p

arg_shapes = {'material': 'D, S', 'parameter': '1'}
arg_types = ('material', 'parameter')
static function(out, val_qp, 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_piezo_stress'
class sfepy.terms.terms_piezo.SDPiezoCouplingTerm(*args, **kwargs)[source]

Sensitivity (shape derivative) of the piezoelectric coupling term.

Definition:

\int_{\Omega} \hat{g}_{kij}\ e_{ij}(\ul{u}) \nabla_k p

\hat{g}_{kij} = g_{kij}(\nabla \cdot \ul{\Vcal})
- g_{kil}{\partial \Vcal_j \over \partial x_l}
- g_{lij}{\partial \Vcal_k \over \partial x_l}

Call signature:

ev_sd_piezo_coupling

(material, parameter_u, parameter_p, parameter_mv)

Arguments:
  • material : g_{kij}

  • parameter_u : \ul{u}

  • parameter_p : p

  • parameter_mv : \ul{\Vcal}

arg_shapes = {'material': 'D, S', 'parameter_mv': 'D', 'parameter_p': 1, 'parameter_u': 'D'}
arg_types = ('material', 'parameter_u', 'parameter_p', 'parameter_mv')
geometries = ['2_3', '2_4', '3_4', '3_8']
get_function(mat, par_u, par_p, par_mv, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = 'ev_sd_piezo_coupling'