4.1.1.6.1.23. pyfem.materials.ViscoElasticity module

Viscoelastic material model using generalized Maxwell model.

This module implements a linear viscoelastic material based on the generalized Maxwell model (Prony series representation). The material behavior is modeled as a spring in parallel with multiple Maxwell elements (spring-dashpot pairs).

class ViscoElasticity(props)[source]

Bases: BaseMaterial

Viscoelastic material model using generalized Maxwell model.

This class implements a linear viscoelastic constitutive model based on the generalized Maxwell model (Prony series). The material consists of an elastic spring in parallel with N Maxwell elements, each having a relaxation time and modulus.

The relaxation modulus is expressed as: E(t) = E_inf + sum_i E_i * exp(-t/tau_i)

where: - E_inf: long-term (equilibrium) modulus - E_i: modulus of Maxwell element i - tau_i: relaxation time of Maxwell element i

4.1.1.6.1.23. Required Properties

Efloat

Instantaneous Young’s modulus (total modulus at t=0).

nufloat

Poisson’s ratio (assumed constant).

Einffloat, optional

Long-term equilibrium modulus. Default: 0.1*E

nMaxwellint, optional

Number of Maxwell elements. Default: 3

relaxTimeslist of float, optional

Relaxation times for each Maxwell element [tau_1, tau_2, …]. If not provided, logarithmically spaced times are used.

relaxModulilist of float, optional

Relaxation moduli for each Maxwell element [E_1, E_2, …]. If not provided, equal distribution is used.

Examples

Material properties in input file:

<Material>

type = “ViscoElasticity”; E = 1000.0; nu = 0.3; Einf = 100.0; nMaxwell = 2; relaxTimes = [1.0, 10.0]; relaxModuli = [300.0, 600.0];

</Material>

getStress(kinematics) Tuple[array, array][source]

Compute stress and tangent stiffness for the viscoelastic model.

Uses a generalized Maxwell model with multiple relaxation times to compute the stress from the strain history. The algorithm integrates the evolution equations for the internal strains of each Maxwell element using an exponential time integration scheme.

Parameters:

kinematics (Kinematics) – Kinematics object containing strain tensor and time step information. Required attributes: - dstrain: strain increment (3 or 6 components) - strain: total strain (optional, for debugging)

Returns:

  • sigma (ndarray) – Stress tensor (3 or 6 components, depending on input).

  • tang (ndarray) – Tangent stiffness matrix (3x3 or 6x6).

Notes

The stress is computed as: sigma = C_inf : (epsilon - sum_i eps_i)

where eps_i are the internal strains of each Maxwell element, evolved as: d(eps_i)/dt = (epsilon - eps_i) / tau_i