sfepy.terms.terms_hyperelastic_tl module

class sfepy.terms.terms_hyperelastic_tl.BulkActiveTLTerm(*args, **kwargs)[source]

Hyperelastic bulk active term. Stress S_{ij} = A J C_{ij}^{-1}, where A is the activation in [0, F_{\rm max}].

Definition:

\int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v})

Call signature:
dw_tl_bulk_active (material, virtual, state)
Arguments:
  • material : A
  • virtual : \ul{v}
  • state : \ul{u}
family_data_names = [‘det_f’, ‘sym_inv_c’]
name = ‘dw_tl_bulk_active’
static stress_function()
static tan_mod_function()
class sfepy.terms.terms_hyperelastic_tl.BulkPenaltyTLTerm(*args, **kwargs)[source]

Hyperelastic bulk penalty term. Stress S_{ij} = K(J-1)\; J C_{ij}^{-1}.

Definition:

\int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v})

Call signature:
dw_tl_bulk_penalty (material, virtual, state)
Arguments:
  • material : K
  • virtual : \ul{v}
  • state : \ul{u}
family_data_names = [‘det_f’, ‘sym_inv_c’]
name = ‘dw_tl_bulk_penalty’
static stress_function()
static tan_mod_function()
class sfepy.terms.terms_hyperelastic_tl.BulkPressureTLTerm(*args, **kwargs)[source]

Hyperelastic bulk pressure term. Stress S_{ij} = -p J C_{ij}^{-1}.

Definition:

\int_{\Omega} S_{ij}(p) \delta E_{ij}(\ul{u};\ul{v})

Call signature:
dw_tl_bulk_pressure (virtual, state, state_p)
Arguments:
  • virtual : \ul{v}
  • state : \ul{u}
  • state_p : p
arg_shapes = {‘state_p’: 1, ‘state’: ‘D’, ‘virtual’: (‘D’, ‘state’)}
arg_types = (‘virtual’, ‘state’, ‘state_p’)
compute_data(family_data, mode, **kwargs)[source]
family_data_names = [‘det_f’, ‘sym_inv_c’]
get_eval_shape(virtual, state, state_p, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(virtual, state, state_p, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = ‘dw_tl_bulk_pressure’
static stress_function()
static tan_mod_u_function()
static weak_dp_function()
static weak_function()
class sfepy.terms.terms_hyperelastic_tl.DiffusionTLTerm(*args, **kwargs)[source]

Diffusion term in the total Lagrangian formulation with linearized deformation-dependent permeability \ull{K}(\ul{u}) = J \ull{F}^{-1} \ull{k} f(J) \ull{F}^{-T}, where \ul{u} relates to the previous time step (n-1) and f(J) = \max\left(0, \left(1 + \frac{(J - 1)}{N_f}\right)\right)^2 expresses the dependence on volume compression/expansion.

Definition:

\int_{\Omega} \ull{K}(\ul{u}^{(n-1)}) : \pdiff{q}{\ul{X}}
\pdiff{p}{\ul{X}}

Call signature:
dw_tl_diffusion (material_1, material_2, virtual, state, parameter)
Arguments:
  • material_1 : \ull{k}
  • material_2 : N_f
  • virtual : q
  • state : p
  • parameter : \ul{u}^{(n-1)}
arg_shapes = {‘material_1’: ‘D, D’, ‘material_2’: ‘1, 1’, ‘parameter’: ‘D’, ‘state’: 1, ‘virtual’: (1, ‘state’)}
arg_types = (‘material_1’, ‘material_2’, ‘virtual’, ‘state’, ‘parameter’)
family_data_names = [‘mtx_f’, ‘det_f’]
static function()
get_eval_shape(perm, ref_porosity, virtual, state, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(perm, ref_porosity, virtual, state, parameter, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = ‘dw_tl_diffusion’
class sfepy.terms.terms_hyperelastic_tl.HyperElasticSurfaceTLBase(*args, **kwargs)[source]

Base class for all hyperelastic surface terms in TL formulation family.

get_family_data = HyperElasticSurfaceTLFamilyData
class sfepy.terms.terms_hyperelastic_tl.HyperElasticSurfaceTLFamilyData(**kwargs)[source]

Family data for TL formulation applicable for surface terms.

cache_name = ‘tl_surface_common’
data_names = (‘mtx_f’, ‘det_f’, ‘inv_f’)
static family_function()
class sfepy.terms.terms_hyperelastic_tl.HyperElasticTLBase(*args, **kwargs)[source]

Base class for all hyperelastic terms in TL formulation family.

The subclasses should have the following static method attributes: - stress_function() (the stress) - tan_mod_function() (the tangent modulus)

The common (family) data are cached in the evaluate cache of state variable.

get_family_data = HyperElasticTLFamilyData
hyperelastic_mode = 0
static weak_function()
class sfepy.terms.terms_hyperelastic_tl.HyperElasticTLFamilyData(**kwargs)[source]

Family data for TL formulation.

cache_name = ‘tl_common’
data_names = (‘mtx_f’, ‘det_f’, ‘sym_c’, ‘tr_c’, ‘in2_c’, ‘sym_inv_c’, ‘green_strain’)
static family_function()
class sfepy.terms.terms_hyperelastic_tl.MooneyRivlinTLTerm(*args, **kwargs)[source]

Hyperelastic Mooney-Rivlin term. Effective stress S_{ij} = \kappa J^{-\frac{4}{3}} (C_{kk} \delta_{ij} - C_{ij}
- \frac{2}{3 } I_2 C_{ij}^{-1}).

Definition:

\int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v})

Call signature:
dw_tl_he_mooney_rivlin (material, virtual, state)
Arguments:
  • material : \kappa
  • virtual : \ul{v}
  • state : \ul{u}
family_data_names = [‘det_f’, ‘tr_c’, ‘sym_inv_c’, ‘sym_c’, ‘in2_c’]
name = ‘dw_tl_he_mooney_rivlin’
static stress_function()
static tan_mod_function()
class sfepy.terms.terms_hyperelastic_tl.NeoHookeanTLTerm(*args, **kwargs)[source]

Hyperelastic neo-Hookean term. Effective stress S_{ij} = \mu J^{-\frac{2}{3}}(\delta_{ij} -
\frac{1}{3}C_{kk}C_{ij}^{-1}).

Definition:

\int_{\Omega} S_{ij}(\ul{u}) \delta E_{ij}(\ul{u};\ul{v})

Call signature:
dw_tl_he_neohook (material, virtual, state)
Arguments:
  • material : \mu
  • virtual : \ul{v}
  • state : \ul{u}
family_data_names = [‘det_f’, ‘tr_c’, ‘sym_inv_c’]
name = ‘dw_tl_he_neohook’
static stress_function()
static tan_mod_function()
class sfepy.terms.terms_hyperelastic_tl.SurfaceFluxTLTerm(*args, **kwargs)[source]

Surface flux term in the total Lagrangian formulation, consistent with DiffusionTLTerm.

Definition:

\int_{\Gamma} \ul{\nu} \cdot \ull{K}(\ul{u}^{(n-1)}) \pdiff{p}{\ul{X}}

Call signature:
d_tl_surface_flux (material_1, material_2, parameter_1, parameter_2)
Arguments:
  • material_1 : \ull{k}
  • material_2 : N_f
  • parameter_1 : p
  • parameter_2 : \ul{u}^{(n-1)}
arg_shapes = {‘material_1’: ‘D, D’, ‘material_2’: ‘1, 1’, ‘parameter_1’: 1, ‘parameter_2’: ‘D’}
arg_types = (‘material_1’, ‘material_2’, ‘parameter_1’, ‘parameter_2’)
family_data_names = [‘det_f’, ‘inv_f’]
static function()
get_eval_shape(perm, ref_porosity, pressure, displacement, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(perm, ref_porosity, pressure, displacement, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
integration = ‘surface_extra’
name = ‘d_tl_surface_flux’
class sfepy.terms.terms_hyperelastic_tl.SurfaceTractionTLTerm(*args, **kwargs)[source]

Surface traction term in the total Lagrangian formulation, expressed using \ul{\nu}, the outward unit normal vector w.r.t. the undeformed surface, \ull{F}(\ul{u}), the deformation gradient, J = \det(\ull{F}), and \ull{\sigma} a given traction, often equal to a given pressure, i.e. \ull{\sigma} = \pi \ull{I}.

Definition:

\int_{\Gamma} \ul{\nu} \cdot \ull{F}^{-1} \cdot \ull{\sigma} \cdot
\ul{v} J

Call signature:
dw_tl_surface_traction (opt_material, virtual, state)
Arguments:
  • material : \ull{\sigma}
  • virtual : \ul{v}
  • state : \ul{u}
arg_shapes = [{‘opt_material’: ‘D, D’, ‘state’: ‘D’, ‘virtual’: (‘D’, ‘state’)}, {‘opt_material’: None}]
arg_types = (‘opt_material’, ‘virtual’, ‘state’)
family_data_names = [‘det_f’, ‘inv_f’]
static function()
get_fargs(mat, virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
integration = ‘surface_extra’
name = ‘dw_tl_surface_traction’
class sfepy.terms.terms_hyperelastic_tl.VolumeSurfaceTLTerm(*args, **kwargs)[source]

Volume of a D-dimensional domain, using a surface integral in the total Lagrangian formulation, expressed using \ul{\nu}, the outward unit normal vector w.r.t. the undeformed surface, \ull{F}(\ul{u}), the deformation gradient, and J = \det(\ull{F}). Uses the approximation of \ul{u} for the deformed surface coordinates \ul{x}.

Definition:

1 / D \int_{\Gamma} \ul{\nu} \cdot \ull{F}^{-1} \cdot \ul{x} J

Call signature:
d_tl_volume_surface (parameter)
Arguments:
  • parameter : \ul{u}
arg_shapes = {‘parameter’: ‘D’}
arg_types = (‘parameter’,)
family_data_names = [‘det_f’, ‘inv_f’]
static function()
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]
integration = ‘surface_extra’
name = ‘d_tl_volume_surface’
class sfepy.terms.terms_hyperelastic_tl.VolumeTLTerm(*args, **kwargs)[source]

Volume term (weak form) in the total Lagrangian formulation.

Definition:

\begin{array}{l}
\int_{\Omega} q J(\ul{u}) \\
\mbox{volume mode: vector for } K \from \Ical_h: \int_{T_K}
J(\ul{u}) \\
\mbox{rel\_volume mode: vector for } K \from \Ical_h:
\int_{T_K} J(\ul{u}) / \int_{T_K} 1
\end{array}

Call signature:
dw_tl_volume (virtual, state)
Arguments:
  • virtual : q
  • state : \ul{u}
arg_shapes = {‘state’: ‘D’, ‘virtual’: (1, None)}
arg_types = (‘virtual’, ‘state’)
family_data_names = [‘mtx_f’, ‘det_f’, ‘sym_inv_c’]
static function()
get_eval_shape(virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
get_fargs(virtual, state, mode=None, term_mode=None, diff_var=None, **kwargs)[source]
name = ‘dw_tl_volume’