# sfepy.terms.terms_piezo module

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

  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)
  get_fargs(mat, vvar, svar, mode=None, term_mode=None, diff_var=None, **kwargs)
  modes = ('grad', 'div', 'eval')
  name = 'dw_piezo_coupling'
  set_arg_types()

class sfepy.terms.terms_piezo.PiezoStrainTerm(name, arg_str, integral, region, **kwargs)

  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)
  get_fargs(mat, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)
  name = 'ev_piezo_strain'

class sfepy.terms.terms_piezo.PiezoStressTerm(name, arg_str, integral, region, **kwargs)

  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)
  get_eval_shape(mat, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)
  get_fargs(mat, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)
  name = 'ev_piezo_stress'

class sfepy.terms.terms_piezo.SDPiezoCouplingTerm(*args, **kwargs)

  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)
  name = 'ev_sd_piezo_coupling'